Ir para conteúdo
  • 0

Um Npc Varias Quests.


othereality

Pergunta

Eu trouxe recentemente uma duvida em relação a isso e trago agora algo bem parecido.

 

Eu tenho um npc que não está funcionando.

porque eu mesmo tentei edita-lo para mudar de uma missão para duas.

 

Este é o npc:

 

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, 'carta') or msgcontains(msg, 'aquiesta') then

if getPlayerItemCount(cid, 1949) >= 1 then

if getPlayerStorageValue(cid, 25503) == -1 then

doPlayerAddExp(cid, 800)

doPlayerAddItem(cid, 2175, 1)

doPlayerRemoveItem(cid, 1949, 1)

setPlayerStorageValue(cid, 25503, 1)

selfSay('Ora uma carta... e bom ter noticias de Ruch. Olhe, leve sempre com voce este livro, ele e um livro magico, que pode te mostrar coisas inimaginaveis.', cid)

else

selfSay('Esta louco? voce ja me deu a carta de Ruch.', cid)

end

else

selfSay('Voce nao tem carta nehuma ai.', cid)

end

end

 

 

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

E isso, foi oque eu tentei fazer:

 

 

 

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, 'carta') or msgcontains(msg, 'aquiesta') then

if getPlayerItemCount(cid, 1949) >= 1 then

if getPlayerStorageValue(cid, 25503) == -1 then

doPlayerAddExp(cid, 800)

doPlayerAddItem(cid, 2175, 1)

doPlayerRemoveItem(cid, 1949, 1)

setPlayerStorageValue(cid, 25503, 1)

selfSay('Ora uma carta... e bom ter noticias de Ruch. Olhe, leve sempre com voce este livro, ele e um livro magico, que pode te mostrar coisas inimaginaveis.', cid)

else

selfSay('Esta louco? voce ja me deu a carta de Ruch.', cid)

end

else

selfSay('Voce nao tem carta nehuma ai.', cid)

end

end

 

 

return true

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, 'alimentos') or msgcontains(msg, 'aquiestaa') then

if getPlayerItemCount(cid, 2677) >= 50 then

if getPlayerItemCount(cid, 2686) >= 20 then

if getPlayerStorageValue(cid, 25504) == -1 then

doPlayerAddExp(cid, 800)

doPlayerAddItem(cid, 2148, 25)

doPlayerRemoveItem(cid, 2677, 50)

doPlayerRemoveItem(cid, 2686, 20)

setPlayerStorageValue(cid, 25501, 1)

selfSay('Obrigado por ajudar. Este helmet e um presente meu.', cid)

else

selfSay('Nao estou precisando de alimentos agora.', cid)

end

else

selfSay('voce tem ai os 50 blueberryes e os 20 milhos?', cid)

end

end

 

 

return true

end

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

 

O erro é:

 

O npc não faz nada quando o player fala as palavras chaves.

Acredito que a minha tentativa tenha sido algo ridículo pra quem entende um pouco de scripts.

Bem, espero ajuda. Muito Obrigado.

 

 

 

Edit:

Gostaria de saber como posso adicionar não só duas, mas futuramente 3 ou mais quest seguindo esse mesmo principio.

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

2 respostass a esta questão

Posts Recomendados

  • 0

Não se cria outra função, faz na mesma:

 

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, 'carta') or msgcontains(msg, 'aquiesta') then
if getPlayerItemCount(cid, 1949) >= 1 then
if getPlayerStorageValue(cid, 25503) == -1 then
doPlayerAddExp(cid, 800)
doPlayerAddItem(cid, 2175, 1)
doPlayerRemoveItem(cid, 1949, 1)
setPlayerStorageValue(cid, 25503, 1)
selfSay('Ora uma carta... e bom ter noticias de Ruch. Olhe, leve sempre com voce este livro, ele e um livro magico, que pode te mostrar coisas inimaginaveis.', cid)
else
selfSay('Esta louco? voce ja me deu a carta de Ruch.', cid)
end
else
selfSay('Voce nao tem carta nehuma ai.', cid)
end
end

if msgcontains(msg, 'alimentos') or msgcontains(msg, 'aquiestaa') then
if getPlayerItemCount(cid, 2677) >= 50 and getPlayerItemCount(cid, 2686) >= 20 then
if getPlayerStorageValue(cid, 25504) == -1 then
doPlayerAddExp(cid, 800)
doPlayerAddItem(cid, 2148, 25)
doPlayerRemoveItem(cid, 2677, 50)
doPlayerRemoveItem(cid, 2686, 20)
setPlayerStorageValue(cid, 25501, 1)
selfSay('Obrigado por ajudar. Este helmet e um presente meu.', cid)
else
selfSay('Nao estou precisando de alimentos agora.', cid)
end
else
selfSay('voce tem ai os 50 blueberryes e os 20 milhos?', cid)
end
end


return true
end

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

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...