Ir para conteúdo

Level Doll (Igual Do Globalwar)


W0lfer

Posts Recomendados

Muitos ja viram no GlobalWar que tem uma quest que dá um doll que adiciona level para quem usa. Fiz um parecido e gostaria de compartilhar com vocês smile.png

 

Adicione esta linha em actions.xml:

 

<action itemid="ID" event="script" value="leveldoll.lua"/>

 

Troque o ID pelo ID do item que voce quer que sirva de Level Doll.

 

Agora vá em actions/scripts e cria um arquivo leveldoll.lua e adicione:

 

 

 

 

amount = 2 -- Quantidade de levels que serão adicionados ao player

 

function onUse(cid, item)

doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You advanced from level "..getPlayerLevel(cid).." to level "..(getPlayerLevel(cid)+amount)..".")

doPlayerAddLevel(cid, amount)

doSendAnimatedText(getCreaturePosition(cid), "Texto", TEXTCOLOR_RED)

doSendMagicEffect(getCreaturePosition(cid), 28)

doRemoveItem(cid, item.uid, 1)

return true

end

 

E seja feliz smile.png

Editado por W0lfer
Link para o comentário
Compartilhar em outros sites

Rapaz, teu script tá um tanto quanto errado.

 

Correções:

 

Primeiro:

 

local cfg = {
amount = 2 <!-- quantidade de level -->
}

 

Para quê isso? Se vai usar uma variável só, não tem necessidade nenhuma de usar local cfg = {...

 

 

Segundo:

 

doPlayerAddLevel(cid, 2)

 

Cara, você colocou uma variável pra indicar quantos levels serão adicionados e não utilizou ela? Se um cara coloca na variável amount o número que ele quiser, vai continuar dando 2 levels porquê no script não tá configurado

 

 

 

Terceiro:

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

 

Pra que declarar esse tanto de parâmetros, sendo que você usou só 2 deles?

 

O correto seria assim:

function onUse(cid, item)

 

 

Quarto:

doRemoveItem(cid, item, 1)

 

Isso vai bugar, o correto teria que ser:

 

doRemoveItem(cid, item.uid, 1)

 

 

Quinto:

<!-- quantidade de level -->

 

O sistema de comentários em LUA é --, e não <!--, assim vai bugar.

 

Correção:

amount = 2 -- quantidade de level

 

 

Sexto:

doSendTextAnimated(getCreaturePosition(cid), 28, TEXTCOLOR_RED)

 

Cara, o que é isso? Tá totalmente errado, primeiro que 28 tinha que ser string (entre aspas "28"), e segundo, pra quê 28?

 

O correto seria assim:

doSendTextAnimated(getCreaturePosition(cid), "Texto", TEXTCOLOR_RED)

 

 

Sétimo:

doSendTextAnimated(getCreaturePosition(cid), 28, TEXTCOLOR_RED)

 

Que eu saiba, não existe doSendTextAnimated, mas sim doSendAnimatedText. Posso estar equivocado, mas não existe no meu server, pelo menos.

 

 

 

Compreendeu?

 

Script corrigido:

 

Editado por LuckOake
Link para o comentário
Compartilhar em outros sites

Bom, ainda sou iniciante em Script, postei o Script que deu certo.

Sobre a correção eu alterei apenas o "doRemoveItem(cid, item.uid, 1)" porque o resto ta funcionando, é o que importa.

Link para o comentário
Compartilhar em outros sites

Na verdade, vai continuar dando erro. Vê as correções e o script corrigido no meu post para você entender o erro.

 

Acredite, pode parecer chato, mas é sabendo o que errou e depois corrigindo que você melhora em scripting.

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...