Soul Gain

Moonshadow
em Actions e Talkactions

Moonshadow

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/08/12Posts: 15

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"/>>

 

brun123

vash
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 24/09/06Posts: 512

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

5303fg1.png

Vodkart

Sumus Validus
avatar
Herói
Herói

INFOS

Grupo: HeróiRegistrado: 21/05/10Posts: 3406Gênero: Masculino

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+

bossisg.png

caotic

Afinal de contas,sou um mordomo e tanto
avatar
Infante
Infante

INFOS

Grupo: InfanteRegistrado: 04/03/11Posts: 1599Char no Tibia: No Have

O codigo pelo que eu vi e funcional.

Alem de que você iniciante e um otimo scripts

Moonshadow

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 27/08/12Posts: 15

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.

groku

Ciaossu!
avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 17/05/08Posts: 110

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)