vc vai colocar vários npc diferente pelo mapa? LOL
ok... criei um npc dps vc só tira a base dele e edita as falas e o ID da voc que vai dar
Nome do seu npc.xml
<?xml version="1.0"?>
<npc name="Nome do seu npc" script="data/npc/scripts/changevoc.lua" walkinterval="50000" floorchange="0">
<health now="100" max="100"/>
<look type="129" head="95" body="116" legs="121" feet="115" addons="3"/>
<parameters>
<parameter key="message_greet" value="Ola |PLAYERNAME|. deseja se tornar um {healer}? "/>
</parameters>
</npc>
changevoc.lua
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
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 talkUser, msg, pid = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid, string.lower(msg), getPlayerGUID(cid)
local voc_ID = 4 -- id da nova VOC
if isInArray({"healer","voc","change","mudar","heal", "yes", "sim"}, msg) and not talkState[talkUser] then
npcHandler:say("Você deseja realmente se tornar um healer?! {yes}", cid)
talkState[talkUser] = 1
elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and talkState[talkUser] == 1) then
setPlayerStorageValue(cid, 889456, voc_ID) -- evitar bugs
local hp,mana = (getVocationInfo(voc_ID).healthGain*getPlayerLevel(cid)),(getVocationInfo(voc_ID).manaGain*getPlayerLevel(cid))
doRemoveCreature(cid)
db.executeQuery("UPDATE `players` SET `manamax` = "..mana..",`health` = "..hp..", `healthmax` = "..hp..",`mana` = "..mana.." WHERE `id` = "..pid)
elseif msg == "no" then
selfSay("então tudo bem.", cid)
talkState[talkUser] = 0
npcHandler:releaseFocus(cid)
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
sobre o item, CADA item é diferente ou vai ser um item só, mas com actionID modificado?
exemplo:
Item ID 8865 para VOC 5
Item ID 8866 para VOC 6
etc...