Ir para conteúdo
  • 0

Npc De Missão


Azzus

Pergunta

Tenho um probleminha com o NPC que eu criei; Ele deve setar o Storage especifico e entregar 1 item para o jogador, só que eu não consigo fazê-lo entregar só 1 item, se o jogador repetir a conversa seguidamente, ele entrega o item infinitamente, caso possam me ajudar, o script é esse.

 

____________________________________________________________________________________

 

 

<--! 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

 

 

npcHandler:setMessage(MESSAGE_GREET, "Vejo que você procura um raro item, posso lhe dizer onde encontrar se cumprir uma {missão}.")

 

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,'missão') then

if getPlayerStorageValue(cid,10064) == 1 then

selfSay('Preciso que você leve uma informação para um antigo Nomad, que ficou preso nas Catacumbas de Nightmares. Você aceita essa tarefa?',cid)

talkState[talkUser] = 1

else

selfsay('Você já tem a informação agora leve-a.',cid)

end

elseif talkState[talkUser] == 1 then

if msgcontains(msg,'yes') or msgcontains (msg,'sim') then

selfSay('Você tem certeza disso? é uma tarefa arriscada e você enfrentará criaturas inimaginaveis.',cid)

talkState[talkUser] = 2

end

elseif talkState[talkUser] == 2 then

if msgcontains(msg,'yes') or msgcontains (msg,'sim') then

selfSay('As catacumbas são habitadas por terriveis Nightmares, e diz a lenda que la hiberna o famoso mestre dos Nightmares. Por isso leve recursos.',cid)

talkState[talkUser] = 0

doPlayerAddItem(cid,10122,1)

setPlayerStorageValue(cid,10080,1)

end

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT,creatureSayCallback)

npcHandler:addModule(FocusModule:new()) !-->

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
npcHandler:setMessage(MESSAGE_GREET, "Vejo que você procura um raro item, posso lhe dizer onde encontrar se cumprir uma {missão}.")
function creatureSayCallback(cid,type,msg)
if(not npcHandler:isFocused(cid)) then
return false
end
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
msg = string.lower(msg)
if msgcontains(msg,'missão') or msgcontains(msg,'mission') then
if getPlayerStorageValue(cid,10064) == 1 then
selfSay('Preciso que você leve uma informação para um antigo Nomad, que ficou preso nas Catacumbas de Nightmares. Você aceita essa tarefa? {yes}',cid)
talkState[talkUser] = 1
else
selfsay('Você já tem a informação agora leve-a.',cid)
end
elseif msgcontains(msg,'yes') or msgcontains (msg,'sim') and talkState[talkUser] == 1 then
selfSay('Você tem certeza disso? é uma tarefa arriscada e você enfrentará criaturas inimaginaveis. {yes}',cid)
talkState[talkUser] = 2
elseif msgcontains(msg,'yes') or msgcontains (msg,'sim') and talkState[talkUser] == 2 then
if getPlayerStorageValue(cid,10080) <= 0 then
selfSay('As catacumbas são habitadas por terriveis Nightmares, e diz a lenda que la hiberna o famoso mestre dos Nightmares. Por isso leve recursos.',cid)
talkState[talkUser] = 0
doPlayerAddItem(cid,10122,1)
setPlayerStorageValue(cid,10080,1)
else
selfsay('Você já recebeu o item, agora vá embora.',cid)
talkState[talkUser] = 0
end
end
return true
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT,creatureSayCallback)
npcHandler:addModule(FocusModule:new())

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

  • 0

Eu fui obrigado a modificar algumas coisas... o Script está quase certo, exceto pela setStorage ali, mas ganhou meu rep. obrigado!

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...