E aew Povo do xtibia
Galera vo explicar para que o npc iria servir antes de tudo.
seria o seguinte... um player noob sem a quest (vamos supor) numero 1 feita.
ai o noob chega no npc1 e diz: hi
Npc1: sai fora meu irmao
daí o tempo vai passando e o noob se evoluindo e talz... daí ele vai la e faz a quest 1... ai quando ele clicka no bau manda ele fazer: Fale Com o Npc1
ai o noob chega la com a quest numero 1 feita e fla
noob: HI!
npc: quer que eu te leve para o final da quest?
noob:Yes!
daí o npc leva ele...
eu fiz o script e talz mas o npc nao ta respondendo nada e nao aparece nenhum erro no exe do ot... entaum resolvi postar aki no xtibia
Script do npc:
finaldaquest = {x=854, y=1602, z=7} local focus = 0 local talk_start = 0 local target = 0 local following = false local attacking = false function onThingMove(creature, thing, oldpos, oldstackpos, cid, item, frompos, item2, topos) end 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 function onCreatureAppear(creature) end function onCreatureDisappear(cid, pos) if focus == cid then selfSay('Flw.') focus = 0 talk_start = 0 end end function onCreatureTurn(creature) end local storage = 11578 -- storage da sua quest function msgcontains(txt, str) return (string.find(txt, str) and not string.find(txt, '(%w+)' .. str) and not string.find(txt, str .. '(%w+)')) end function onCreatureSay(cid, type, msg) msg = string.lower(msg) if (msgcontains(msg, 'hi') and (focus == 0)) and getDistanceToCreature(cid) < 4 then if getPlayerStorageValue(cid, storage) <= 0 then selfSay('Sai daqui meu irmao!.', cid) talkState[talkUser] = 1 else selfSay('fla aew noob, quer finalmente terminar a quest?.') talkState[talkUser] = 2 focus = cid talk_start = os.clock() end elseif msgcontains(msg, 'hi') and (focus ~= cid) and getDistanceToCreature(cid) < 4 then selfSay('Sorry, ' .. getCreatureName(cid) .. '! Pera noob to flando com ele') elseif focus == cid then talk_start = os.clock() if msgcontains(msg, 'yes') then talkState[talkUser] = (2) doTeleportThing(cid,finaldaquest) doSendMagicEffect(finaldaquest,10) selfSay("Bora!") focus = 0 talk_start = 0 end elseif msgcontains(msg, 'bye') and getDistanceToCreature(cid) < 4 then selfSay('Vlw brother... te vejo na proxima') focus = 0 talk_start = 0 end end function onCreatureChangeOutfit(creature) end function onThink() doNpcSetCreatureFocus(focus) if (os.clock() - talk_start) > 30 then if focus > 0 then selfSay('Ta afk? Proximo noob!.') end focus = 0 talk_start = 0 end if focus ~= 0 then if getDistanceToCreature(focus) > 5 then selfSay('MAL EDUCADO VOLTA AKI E DIZ BYE') focus = 0 talk_start = 0 end end endend
Npc xml:
<?xml version="1.0" encoding="UTF-8"?> <npc name="Jobson" script="data/npc/scripts/npc jobson.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="113" body="113" legs="113" feet="88" addons="3"/> </npc>