Ir para conteúdo
  • 0

NPC não Funciona


koete

Pergunta

Fis um Npc de quest mas ele não esta funcionando mas também não mostra mensagem de erro alguém pode me ajudar?

 

 

 

 

 

 

 

 

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
--------------------MESSAGES------------------------------------------------------------------------------
if not getPlayerStorageValue(cid,70003) >= 1 then
if msgcontains(msg, 'missao') or msgcontains(msg, 'quest') then
selfSay('Iruka me disse que estava vindo, temos que te preparar para o futuro ninja pois nunca saberemos o que há de vir. Bom tenho um trabalho para voce, poderia me ajudar a coletar algumas plantas medicinais?', cid)
setPlayerStorageValue(cid,70003,2)
talkState[talkUser] = 1
----------------------henge-------------------------------------------------------
elseif talkState[talkUser] == 1 then
if getPlayerStorageValue(cid,70003) == 2 then
if getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2 or getPlayerVocation(cid) == 3 or getPlayerVocation(cid) == 4 or getPlayerVocation(cid) == 5 or getPlayerVocation(cid) == 7 or getPlayerVocation(cid) == 8 or getPlayerVocation(cid) == 9 then
if msgcontains(msg, 'sim') or msgcontains(msg, 'yes') then
selfSay('Okay, primeiramente pegue esta Knife e vá coletar para mim 5 Yellow rose, 5 blue rose, 5 white rose, 5 purple rose e 5 red rose. Quando terminar volte até a mim', cid)
setPlayerStorageValue(cid,70003,3)
doPlayerAddItem(cid, 2566, 1)
talkState[talkUser] = 2
end
else
selfSay('Desculpe, mas você não pode aprender Jutsus!', cid)
end
end
elseif talkState[talkUser] == 2 then
if getPlayerStorageValue(cid,70003) == 3 then
if msgcontains(msg, 'missao') or msgcontains(msg, 'quest') then
if getPlayerItemCount(cid, 2233) >= 5 and getPlayerItemCount(cid, 2234) >= 5 and getPlayerItemCount(cid, 2235) >= 5 and getPlayerItemCount(cid, 2236) >= 5 and getPlayerItemCount(cid, 2237) >= 5 then
doPlayerRemoveItem(cid, 2233, 5)
doPlayerRemoveItem(cid, 2234, 5)
doPlayerRemoveItem(cid, 2235, 5)
doPlayerRemoveItem(cid, 2236, 5)
doPlayerRemoveItem(cid, 2237, 5)
doPlayerLearnInstantSpell(cid, 'seikatsunojutsu')
doSendMagicEffect(getThingPos(cid), 27)
selfSay('Parabéns! Você completou minha quest e em troca lhe ensinei um Jutsu de recuperar seu HP. Cheque seus Stats para Ver o Jutsu.', cid)
talkState[talkUser] = 0
else
selfSay('Desculpe, mas você não tem o que eu lhe pedi, volte quando tiver!', cid)
end
end
end
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())
-- function maded by Gesior--
function getNumber(txt) --return number if its number and is > 0, else return 0
x = string.gsub(txt,"%a","")
x = tonumber(x)
if x ~= nill and x > 0 then
return x
else
return 0
end
end
end

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

tenta assim entao...

 

 

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
 
local need = {{2233,5}, {2234,5}, {2235,5}, {2236,5}, {2237,5}}
 
local function haveAllItens(cid)
   local flag = true
   for _, t in ipairs(need) do
       if getPlayerItemCount(cid, t[1]) < t[2] then
          flag = false
          break
       end
   end
   return flag
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, 'missao') or msgcontains(msg, 'quest')) and getPlayerStorageValue(cid,70003) == 1 then
      selfSay('Iruka me disse que estava vindo, temos que te preparar para o futuro ninja pois nunca saberemos o que há de vir. Bom tenho um trabalho para'..
              ' voce, poderia me ajudar a coletar algumas plantas medicinais?', cid)
      setPlayerStorageValue(cid,70003,2)       
      talkState[talkUser] = 1
   elseif (msgcontains(msg, 'sim') or msgcontains(msg, 'yes')) and talkState[talkUser] == 1 and getPlayerStorageValue(cid,70003) == 2 then
      if getPlayerVocation(cid) >= 1 and getPlayerVocation(cid) <= 9 then
         selfSay('Okay, primeiramente pegue esta Knife e vá coletar para mim 5 Yellow rose, 5 blue rose, 5 white rose, 5 purple rose e 5 red rose.'..
                 ' Quando terminar volte até a mim', cid)
         setPlayerStorageValue(cid,70003,3)  
         doPlayerAddItem(cid, 2566, 1)
         talkState[talkUser] = 0            
      else
         selfSay('Desculpe, mas você não pode aprender Jutsus!', cid)
         talkState[talkUser] = 0
      end
   elseif (msgcontains(msg, 'missao') or msgcontains(msg, 'quest')) and getPlayerStorageValue(cid,70003) == 3 then
      if haveAllItens(cid) then
         for _, t in ipairs(need) do
            doPlayerRemoveItem(cid, t[1], t[2])
         end
         doPlayerLearnInstantSpell(cid, 'seikatsunojutsu')     
         doSendMagicEffect(getThingPos(cid), 27)
         selfSay('Parabéns! Você completou minha quest e em troca lhe ensinei um Jutsu de recuperar seu HP. Cheque seus Stats para Ver o Jutsu.', cid)
         talkState[talkUser] = 0
      else
         selfSay('Desculpe, mas você não tem o que eu lhe pedi, volte quando tiver!', cid)
         talkState[talkUser] = 0
      end
   end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

 

 

ps: nao adianta nd fazer soh 'if talkState[talkUser] == x then'...

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

  • 0

tente estudar oq eu fiz.. deve lhe ajudar na criaçao de outros scripts ^^

o uso de aritmética e tabelas ajuda muito a diminuir o script e deixa-lo mais legível...

e fazer uma identaçao correta tb ajuda muito na leitura do script...

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...