MO
action

Soul Gain

Por Moonshadow, 27 de ago. de 2012 em Actions e Talkactions

tibia
script
otserv
6
1.3k
MoonshadowM
27 de agosto de 2012 às 14:37

5dpR5.png

 

Nome: Soul Gain

Função: Toda vez que o player dá use em um vampire lord token (vampire_lord_token.gif), ele ganha 10 de soul.

 

- soulGain.lua

 

function onUse(cid, item)
if getPlayerPromotionLevel(cid) < 5 then
if getPlayerSoul(cid)==100 then
doPlayerSendCancel(cid, "Seu soul já está no máximo.")
return true
end
if getPlayerSoul(cid) < 90 then
doPlayerAddSoul(cid, 10)
doSendMagicEffect(getCreaturePosition(cid), 17)
doPlayerRemoveItem(cid, 9020, 1)
else
local taxa = 100 - getPlayerSoul(cid)
doPlayerAddSoul(cid, taxa)
doSendMagicEffect(getCreaturePosition(cid), 17)
doPlayerRemoveItem(cid, 9020, 1)
end
end
if getPlayerPromotionLevel(cid) > 4 then
if getPlayerSoul(cid)==200 then
doPlayerSendCancel(cid, "Seu soul já está no máximo.")
return true
end
if getPlayerSoul(cid) < 190 then
doPlayerAddSoul(cid, 10)
doSendMagicEffect(getCreaturePosition(cid), 17)
doPlayerRemoveItem(cid, 9020, 1)
else
taxa = (getPlayerSoul(cid) - 200) * (-1)
doPlayerAddSoul(cid, taxa)
doSendMagicEffect(getCreaturePosition(cid), 17)
doPlayerRemoveItem(cid, 9020, 1)
end
end
end

 

 

- No actions.xml coloque:

 

<action itemid="9020" event="script" value="soulGain.lua"/>>

 

Editado Agosto 29 por Moonshadow

brun123B
29 de agosto de 2012 às 08:27

Só um detalhezinho, quando você declarou as variáveis "taxa", você usou "getPlayerSoul(cid) - 100", mas o correto seria "100 - getPlayerSoul(cid)".

Do jeito que você fez, o valor de "taxa" vai ficar negativo e em vez de adicionar soul ao player, vai remover.

 

Por uma questão de estética, eu não usaria a função doPlayerRemoveItem, mas sim doRemoveItem(item.uid, 1).

E não precisava repetir as mesmas duas funções dentro de 4 ifs, a doSendMagicEffect e a doPlayerRemoveItem, bastava colocar elas 1x no final do script.

 

Bom script de toda forma

VodkartV
29 de agosto de 2012 às 10:41

Até que o script não ficou tão ruim vendo que você está iniciando agora, outra coisa, e você que faz as imagens? ficam bem boas!

 

parabéns amigo, rep+

caoticC
29 de agosto de 2012 às 12:35

O codigo pelo que eu vi e funcional.

Alem de que você iniciante e um otimo scripts

MoonshadowM
29 de agosto de 2012 às 21:13

Só um detalhezinho, quando você declarou as variáveis "taxa", você usou "getPlayerSoul(cid) - 100", mas o correto seria "100 - getPlayerSoul(cid)".

Do jeito que você fez, o valor de "taxa" vai ficar negativo e em vez de adicionar soul ao player, vai remover.

 

Por uma questão de estética, eu não usaria a função doPlayerRemoveItem, mas sim doRemoveItem(item.uid, 1).

E não precisava repetir as mesmas duas funções dentro de 4 ifs, a doSendMagicEffect e a doPlayerRemoveItem, bastava colocar elas 1x no final do script.

 

Bom script de toda forma

 

Opa, valeu pelas dicas.

 

Valeu pelos comentários.

 

@Vodkart

 

Opa, sou eu que as faço sim, valeu.

Editado Agosto 29 por Moonshadow

1 mês depois...
grokuG
15 de setembro de 2012 às 17:30

Valeu precisava desse sistema pra meu ot de bomberman '-' õ/

Assim vou poder botar NPC que vai vender recarga extra de bomba pra o nego caçar por mais tempo :D

(sim meu system de bombas gasta soul e.e)

Editado Setembro 15 por groku