Ir para conteúdo
  • 0

Oque A De Errado No Meu Npc?


othereality

Pergunta

Eu fiz um npc de quest que quando o player leva para ele 5 peixes e diz: "peixes"

ele da xp, gp e uma storage.

 

se eu chego com 5 peixes e digo "peixes" funciona.

porem se eu chego sem os peixes e digo "peixes", ele responde "vamos la me traga os peixes", depois eu pego eles e volto. Quando eu falo "peixes" ele simplemente não faz nada.

 

O Script está aqui:

 

 

 

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

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

if msgcontains(msg, 'peixes') or msgcontains(msg, 'aquiesta') then if

getPlayerStorageValue(cid, 25501) == -1 and

doPlayerRemoveItem(cid, 2667, 5) then

doPlayerAddExp(cid, 800)

doPlayerAddItem(cid, 2148, 25)

setPlayerStorageValue(cid, 25501, 1)

npcHandler:say('Obrigado pela ajuda, sempre que quizer podemos pescar e bater um {papo}.', cid)

else

if getPlayerStorageValue(cid, 25501) == 1 then

npcHandler:say('pode vender peixes na minha loja.', cid)

else

npcHandler:say('Vamos la me traga os peixes...', cid)

end

return true

end

end

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

Se alguem souber aonde eu errei... =/

Obrigado a todos que responderem.

 

 

---

Edit:

Na verdade acabei de perceber que quando alguem fala com o npc sem ter o peixes,

nem ele nem ninguem mais consegue completar a quest. ele não faz mais nada quando a pessoas diz "Peixes". Parece que ele só executa alguma ação uma vez. depois para.

Editado por OtheReality
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

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 = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

if msgcontains(msg, 'peixes') or msgcontains(msg, 'aquiesta') then
if getPlayerItemCount(cid, 2667) >= 5 then
if getPlayerStorageValue(cid, 25501) == -1 then
doPlayerAddExp(cid, 800)
doPlayerAddItem(cid, 2148, 25)
setPlayerStorageValue(cid, 25501, 1)
doPlayerRemoveItem(cid, 2667, 5)
selfSay('Obrigado pela ajuda, sempre que quizer podemos pescar e bater um papo.', cid)
else
selfSay('Você já fez esta quest.', cid)
end
else
selfSay('Vamos la me traga os peixes...', cid)
end
end


return true
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Não sei mesmo se funciona, não testei nem revisei.

Editado por Demonbholder
Link para o comentário
Compartilhar em outros sites

  • 0

Vlw Demonb. Funcionou direitinho... Só não entendi porque o meu n tava dando certo =(

Ah..

se alguem for usar o script só tem que adicionar:

 

 

doPlayerRemoveItem(cid, 2667, 5)

 

pro npc pegar os peixes. ;D

 

rep+

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...