DI

[ Resolvido ]

Por dionatha14, 31 de jul. de 2009 em Archived

otserv
tibia
script
7
1.1k
dionatha14D
31 de julho de 2009 às 19:15

Ola xtibianos, fiço um script que quandoo o player completa a quest ele usa a chest e ganha os 2 addons demonhunter.

Mas tem um problema, apenas characters femininos ganham os addons.

Esta faltando alguma coisa no script que eu nao coloquei se tive por favor corrijam meu script.

function onUse(cid, item,pos)

 

if getPlayerSex(cid) == 0 then

if getPlayerStorageValue(cid,5600) == -1 then

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED)

doPlayerAddOutfit(cid, 288, 1)

doPlayerAddOutfit(cid, 288, 2)

doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a full Demonhunter outfit.")

 

elseif getPlayerSex(cid) == 1 then

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED)

doPlayerAddOutfit(cid, 288, 1)

doPlayerAddOutfit(cid, 288, 2)

doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a full Demonhunter outfit.")

else

doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.")

end

end

return TRUE

end

Editado Julho 31 por Dionatha14

KydraiK
31 de julho de 2009 às 22:37

Erro besta:

function onUse(cid, item,pos)

 

if getPlayerSex(cid) == 0 then

if getPlayerStorageValue(cid,5600) == -1 then

...

 

elseif getPlayerSex(cid) == 1 then

...

 

else

...

end

end

 

return TRUE

end

 

Primeiro aqui:

if getPlayerSex(cid) == 0 then

if getPlayerStorageValue(cid,5600) == -1 then

Devia ser:

if getPlayerStorageValue(cid,5600) == -1 then

if getPlayerSex(cid) == 0 then

 

Depois aqui:

else

doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.")

end

end

Devia ser:

end

else

doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.")

end

 

E mais uma coisa, vc não usou setPlayerStorageValue.

Assim seu player repete a quest o quanto quise.

Editado Julho 31 por kydrai

dionatha14D
01 de agosto de 2009 às 09:01

blz , o setPlayerStorageValue é pra nao repetir a quest i o getPlayerStorageValue pra que serve?

 

function onUse(cid, item,pos)

 

if getPlayerSex(cid) == 0 then

if getPlayerStorageValue(cid,5600) == -1 then

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED)

doPlayerAddOutfit(cid, 288, 1)

doPlayerAddOutfit(cid, 288, 2)

setPlayerStorageValue(cid,5600,1)

doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a full Demonhunter outfit.")

 

elseif getPlayerSex(cid) == 1 then

doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED)

doPlayerAddOutfit(cid, 288, 1)

doPlayerAddOutfit(cid, 288, 2)

setPlayerStorageValue(cid,5600,1)

doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a full Demonhunter outfit.")

end

else

doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.")

end

return TRUE

end

Agora só character masculinos faz a quest, feminino nao que faze.

tem como vc postar o script completo que vc arrumado?

Editado Agosto 1 por Dionatha14

lucasjockeyL
01 de agosto de 2009 às 12:14

function onUse(cid, item,pos)

if getPlayerStorageValue(cid,5600) == -1 then

local sex = getPlayerSex(cid)
if sex == 0 then
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED)
doPlayerAddOutfit(cid, 288, 3)
setPlayerStorageValue(cid,5600,1)
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a full Demonhunter outfit.")
elseif sex == 1 then
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED)
doPlayerAddOutfit(cid, 289, 3)
setPlayerStorageValue(cid,5600,1)
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "You have found a full Demonhunter outfit.")
end

else
doPlayerSendTextMessage(cid,MESSAGE_INFO_DESCR, "It is empty.")
end

return TRUE
end

 

Edit~~

 

Arrumei um pequeno erro, o male outfit é 289 e não 288.

Editado Agosto 1 por lucasjockey

KydraiK
01 de agosto de 2009 às 14:33

Só pra responder a pergunta:

blz , o setPlayerStorageValue é pra nao repetir a quest i o getPlayerStorageValue pra que serve?

getPlayerStorageValue = pega o valor do storage (5600), se não existir é igual a -1.

setPlayerStorageValue = adiciona um valor ao storage (5600).

 

Exemplo:

if getPlayerStorageValue(cid,5600) == -1 then

Se StorageValue(5600) for igual a -1.

setPlayerStorageValue(cid,5600,1)

Muda o StorageValue(5600) para 1.

 

Assim a proxima vez que abrir o baú o if será falso (diferete de -1)

dionatha14D
02 de agosto de 2009 às 20:03

Boa lucasjockey, esse serviu.

Té mais ae galera.

DaNDaNrOxXD
02 de agosto de 2009 às 20:11

Dúvida Sanada,

:button_cancel: Tópico Fechado