Olá pessoal!
Estou aqui com o meu segundo tutorial de scripting, e desta vez, como fazer um tipo de addon diferente...
Em vez de npc, coal basin!
Foto explicativa:
Começando o Tutorial
Primeiro abra a pasta do seu server, vá em data > actions > scripts.
Copie qualquer arquivo LUA lá dentro, renomeie para citizen1 e cole isto:
----- Addons por coal basin by DaNDaNrOxX -------function onUse(cid, item, frompos, item2, topos)
quest = getPlayerStorageValue(cid,9530)
if quest == -1 then
item1pos = {x=XXXX,y=XXXX,z=XXXX,stackpos=255}
itemid = 1485
item1 = getThingfromPos(item1pos)
item2pos = {x=XXXX,y=XXXX,z=XXXX,stackpos=255}
itemid = 1485
item2 = getThingfromPos(item2pos)
if item.itemid == 1946 then
if item1.itemid == 5878 and item1.type >= 100 and item2.itemid == 5902 and item2.type >= 50 then
doSendMagicEffect(item1pos,5)
doSendMagicEffect(item2pos,5)
doRemoveItem(item1.uid,100)
doRemoveItem(item2.uid,50)
doPlayerAddAddon(cid,136,1)
doPlayerAddAddon(cid,128,1)
doPlayerSendTextMessage(cid,22,"Parabens, voce conseguiu um addon!")
setPlayerStorageValue(cid,9530,1)
else
doPlayerSendCancel(cid,"Você não tem os 100 minotaur leather ou os 50 honeycombs necessários para este addon.")
end
end
else
doPlayerSendCancel(cid,"Você ja fez este addon")
end
return 1
end
Explicação:
Aonde está em MARROM, é a storage usada, para guardar a informação de quem já fez ou não a quest. Não é necessário alterar.
Aonde está em VERMELHO, coloque a posição em X, Y, Z de aonde o coal basin ficará. É necessário alterar.
Aonde está em VERDE, é o ID do coal basin usado. Não é necessário alterar.
Aonde está em ROSA, é o ID da alavanca usada, no caso a virada para o leste (direita). Não é necessário alterar.
Aonde está em LARANJA, é o ID do item a ser removido em cima do coal basin 1, no caso 100 minotaur leathers. Não é necessário alterar, mas caso queira alterar a quantidade, mude apenas esta linha 'item1.type >=100' Aonde está 100, coloque a quantia desejada.
Aonde está em AZUL, é o ID do item a ser removido em cima do coal basin 2. no caso 50 honeycombs. Não é necessário alterar, mas caso queira alterar a quantidade, mude apenas esta linha 'item2.type >= 50' Aonde está 50, coloque a quantia desejada.
Aonde está em ROXO, é a mensagem que será enviada ao player, caso ele tiver as 100 minotaur leather e as 50 honeycombs e tiver colocado-as nos coal basin de forma correta. Não é necessário alterar.
Aonde está em VERDE CLARO, é a mensagem que será enviada ao player, caso ele não tenha os items necessários e/ou não tiver colocado eles corretamente nos coal basins. Não é necessário alterar.
O resto do código, não é aconselhavem se editar, ao menos que você saiba o que está fazendo
Como faço para usar este código para adicionar outros addons?
Este é apenas do citizen 1, da 'mochilinha', se você quiser fazer dos outros addons também... Apenas mude a storage usada (no caso 9530), os IDs dos items que serão removidos no coal basin, a posição dos coal basins e ésta linha no código:
doPlayerAddAddon(cid,136,1)doPlayerAddAddon(cid,128,1)
Vá até outfit.xml e veja o respectivo ID do outfit, para adicionar o addon que você deseja ao outfit. Se você desejar adicionar addon 2 e não 1, mude apenas isto:
doPlayerAddAddon(cid,136,1)doPlayerAddAddon(cid,128,1)
Aonde está 1, apenas coloque 2 (em ambas linhas)
Agora vá até Data > Actions > Actions.xml e abra o arquivo (actions.xml).
Logo após esta linha:
<?xml version="1.0"?>
<actions>
Cole isto:
<action actionid="9530" script="citizen1.lua" />
Ficando assim:
<?xml version="1.0"?>
<actions>
<action actionid="9530" script="citizen1.lua" />
Depois salve e feche.
Vá até o seu map editor, coloque uma alavanca de ID 1946, ao lado 2 coal basin de ID 1485.
Click com o botão direito na alavanca, em Actions ID coloque 9530 e em Unique ID coloque 9530 também.
Salve o seu mapa e teste o código !
Lembrando que estes códigos foram testados no Aries Server 0.4.0 versão 8.1, mas é possivel que funcione em 8.22 também, não sei, não testei.
PS: Postei este tutorial separado do outro tópico, porquê do contrário, ele iria ficar muito grande e iria atrapalhar a compreensão.
Quero agradecer a ajuda que noobinhu (Yunie) me deu neste script, eu não estava conseguindo fazer uma parte, e ele me deu uma grande ajuda.
Créditos portanto para DaNDaNrOxX e para noobinhu.
Abraço