[Resolvido]

jpdiman
em Lixeira Pública

jpdiman

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/09/08Posts: 3

Olha, a ideia é colocar um sistema de /go "cidade" e o player VIP, que estiver sem battle se teleporte para o lugar X, nessa ideia, juntei alguns scripts do fórum e fui usando a minha experiencia (que não é muita) e para minha surpresa, está dando um erro.

 

Alguem poderia me informar onde está o erro, e se o resto está certo ?

 

Obrigado.

 

Scripts no spoil abaixo :

 

<talkaction words="/go difujia" script="go difujia.lua" />

 

function onSay(cid,words,param)

local access = getPlayerAccess(cid)

pid=getPlayerGUID(cid), -- não mecha

config = {

bat="yes" --players precisam estar sem fight pra teleportar? ("yes" or "no").

}

 

if(config.bat == "yes") and (getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE) then

doPlayerSendTextMessage(cid,22,"Você não pode teleportar durante uma batalha.")

return TRUE

end

 

if premiumdays < 0

local pos = {x=1051, y=1024, z=7}

doTeleportThing(cid,pos)

end

end

 

E o erro na hora de executar o server :

 

[23/11/2009 18:34:51] [Warning - Event::loadScript] Cannot load script (data/talkactions/scripts/go difujia.lua)

[23/11/2009 18:34:51] data/talkactions/scripts/go difujia.lua:4: unexpected symbol near '='

Nottinghster

Ex-Colaborador de Programação & Scripting
avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 02/09/06Posts: 186

Tenta este

 

function onSay(cid,words,param)
local access = getPlayerAccess(cid)
local pos = {x=1051, y=1024, z=7}
pid = getPlayerGUID(cid), -- não mecha

if getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE then
doPlayerSendTextMessage(cid,22,"Você não pode teleportar durante uma batalha.")
else
if getCreaturePremiumDays(cid) => 1 then
doTeleportThing(cid,pos)
return TRUE
end
end
end

 

O script não foi testado e eu diminui o tamanho do script.

Tibia World RPG OldSchool Developer!
Jyv3kht.jpg

joaohd

Neox Boy
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/02/09Posts: 361Char no Tibia: Fearless Man

Não garanto o funcionamento mas tenta ae:

 

function onSay(cid, words, param)

 

local config = {

pos = {x=10,y=10,z=10},

battle = "yes"

}

 

if config.battle == "yes" then

if getCreatureCondition(cid, CONDITION_INFIGHT) == TRUE then

doPlayerSendTextMessage(cid,22,"Você não pode teleportar durante uma batalha.")

else

doTeleportThing(cid, config.pos)

doSendMagicEffect(getCreaturePosition(cid),2)

end

elseif config.battle == "no" then

doTeleportThing(cid, config.pos)

doSendMagicEffect(getCreaturePosition(cid),2)

end

return TRUE

end

 

acho q funciona.

flw

Nottinghster

Ex-Colaborador de Programação & Scripting
avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 02/09/06Posts: 186

@Up

 

Amigo, creio que não precise disse tudo, por isso a função do ELSE e você ainda esqueceu se o player for Premium Account... :positive:

 

Eu estou um bom tempo fora do mundo da OpenTibia e nao lembro todas as funções, mas creio que o meu Script esteja funcionando perfeitamente e é muito menor que o seu !!

 

Procure encurtar sempre os Scripts

Tibia World RPG OldSchool Developer!
Jyv3kht.jpg

joaohd

Neox Boy
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 03/02/09Posts: 361Char no Tibia: Fearless Man

eu não vou discutir... a questão de encurtamento do script depende da funcionalidade que ele oferece. seu script não funciona porque tem erros:

 

ERROR: untitled.lua:6: unexpected symbol near 'if'

 

O erro acima foi acusado pelo debugger de lua scripts próprio para open tibia que uso.

 

ps: jaja edito o post com a resolução para uso restrito à players premium account.

 

flw

 

 

edited: aqui está o restrito à players premium account:

 

function onSay(cid, words, param)

 

local config = {

battle = TRUE, -- aqui os valores admitidos são TRUE e FALSE

pa = getPlayerPremiumDays(cid),

pos = {x=10, y=10, z=10},

condition = getCreatureCondition(cid, CONDITION_INFIGHT)

}

 

if config.battle == FALSE then

if config.pa > 0 then

doTeleportThing(cid, config.pos)

doSendMagicEffect(getPlayerPosition(cid),2)

else

doPlayerSendTextMessage(cid,22,"Somente premium accounts podem usar este comando.")

end

 

elseif config.battle == TRUE then

if config.condition == FALSE then

if config.pa > 0 then

doTeleportThing(cid, config.pos)

doSendMagicEffect(getPlayerPosition(cid),2)

doPlayerSendTextMessage(cid,22, "Você foi teleportado.")

else

doPlayerSendTextMessage(cid,22,"Somente premium accounts podem usar este comando.")

end

else

doPlayerSendTextMessage(cid,22,"Você não pode teleportar durante uma batalha.")

end

end

return TRUE

end

 

Testa ae e fala se deu certo.

 

flw

jpdiman

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/09/08Posts: 3

EDIIIIIIIT :

 

OBRIGADOOO apocarai !! =D

 

Funcionou sim, tá bonitinho agora o script. DUHASUIDAS

 

Brigadao ae mano :)

 

E também vou agradecer ao Nottinghster que também se propos a me ajudar. OBRIGADO :]

 

Algum moderador pode fechar o tópico, problema resolvido :positive:

\Mattheus ~*

Ex Moderador
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 11/02/09Posts: 559Char no Tibia: Deep Druid

Sharingan7, quando a sua dúvida for sanada reporte o tópico para que facilite os moderadores, lembre se da próxima vez, obrigado.

 

Tópico reportado

 

Abraços.

[/ Construçãao .

helinholima

avatar
Barão
Barão

INFOS

Grupo: BarãoRegistrado: 15/02/09Posts: 203Char no Tibia: Dom Diego De La Vega

Dúvida Sanada, tópico fechado.

dorgasmanolo.gif

 

 

 

 

 

 

 

 

 

Moderador Xtibia.com

Helio@xtibia.com