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())
5
1.4k
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

07 de junho de 2012 às 15:17
Editado Junho 7 por Vodkart
info
Grupo: Campones
Registrado: 09/12/11
Posts: 7
Reputação: 0
Gênero: Masculino
Char no Tibia: Geru Pozin

07 de junho de 2012 às 15:59
Eu fui obrigado a modificar algumas coisas... o Script está quase certo, exceto pela setStorage ali, mas ganhou meu rep. obrigado!
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

07 de junho de 2012 às 16:01
como assim? não tinha funcionado?




info
Grupo: Campones
Registrado: 09/12/11
Posts: 7
Reputação: 0
Gênero: Masculino
Char no Tibia: Geru Pozin
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()) !-->