Postado Abril 3, 2017 8 anos Gostaria de um NPC que mude a vocação de ID 1 para vocação de ID X, para mudar você deve pagar 100 itens com o ID 6527 Alguem?
Postado Abril 5, 2017 8 anos Solução @Duality vá em data/npc/script crie um arquivo com o nome desejado com a extensão lua e adicione esse script dentro: Spoiler local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local e = { voc = 1, -- id da vocação que irá ganhar itemid = 2160, -- id do item que precisa para comprar a vocação icount = 100, -- quantidade do item acima, que precisa para comprar a vocação } if msgcontains(msg, 'sim') or msgcontains(msg, 'yes') then if getPlayerItemCount(cid, e.itemid) >= e.icount then doPlayerRemoveItem(cid, e.itemid, e.icount) doPlayerSetVocation(cid, e.voc) selfSay("Você acabou de comprar a nova vocação.", cid) npcHandler:releaseFocus(cid) else selfSay("Você não tem os "..e.icount.." "..getItemNameById(e.itemid).." para comprar a vocação.", cid) npcHandler:releaseFocus(cid) end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) em data/npc crie um arquivo com o nome desejado, com a extensão xml e cole esse code dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Nome do NPC" script="NomeDoArquivo.lua" walkinterval="999000" floorchange="0"> <health now="150" max="150"/> <look type="795" head="20" body="100" legs="50" feet="99" corpse="2212"/> <parameters> <parameter key="message_greet" value="Estou vendendo tal vocação. Gostaria de comprar ?"/> </parameters> </npc> não esqueça de configurar o item desejado, a quantidade que precisa, a vocação, e as falas. Não esqueça também de bota o nome do npc, e o nome do arquivo lua na xml do npc.
Postado Abril 5, 2017 8 anos Autor @KotZletY Qualquer vocação pode comprar esse nova vocação? gostaria que só a vocação de ID 1 pudesse comprar. Editado Abril 5, 2017 8 anos por Duality (veja o histórico de edições)
Postado Abril 5, 2017 8 anos @Duality Spoiler local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local e = { voc = 1, -- id da vocação que irá ganhar itemid = 2160, -- id do item que precisa para comprar a vocação icount = 100, -- quantidade do item acima, que precisa para comprar a vocação vocNeed = 1 -- id da vocação que precisa para mudar para a próxima vocação } if msgcontains(msg, 'sim') or msgcontains(msg, 'yes') then if getPlayerItemCount(cid, e.itemid) >= e.icount then if getPlayerVocation(cid) == e.vocNeed then doPlayerRemoveItem(cid, e.itemid, e.icount) doPlayerSetVocation(cid, e.voc) selfSay("Você acabou de comprar a nova vocação.", cid) npcHandler:releaseFocus(cid) else selfSay("Você não pode mudar de vocação. Apenas a vocação tal, pode mudar.", cid) npcHandler:releaseFocus(cid) end else selfSay("Você não tem os "..e.icount.." "..getItemNameById(e.itemid).." para comprar a vocação.", cid) npcHandler:releaseFocus(cid) end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Em vocNeed você altera para a vocação que pode mudar, caso a vocação for diferente da que está ali, o npc não irá mudar.
Postado Abril 5, 2017 8 anos Autor @KotZletY Agradecido com tamanho suporte, vou testar, VLW @KotZletY o script funcionou perfeitamente, mas preciso deslogar e logar para mudar tudo certo, poderia acrescentar no script para que ao terminar de comprar o player tomasse kick?
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.