Ir para conteúdo

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
https://xtibia.com/forum/topic/197622-level-doll-igual-do-globalwar/
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
https://xtibia.com/forum/topic/197622-level-doll-igual-do-globalwar/#findComment-1375076
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
https://xtibia.com/forum/topic/197622-level-doll-igual-do-globalwar/#findComment-1375080
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
https://xtibia.com/forum/topic/197622-level-doll-igual-do-globalwar/#findComment-1375089
Compartilhar em outros sites

×
×
  • Criar Novo...