Ir para conteúdo

[Encerrado] Npcs dando várias vezes a mesma coisa


Djonga

Posts Recomendados

Galera, preciso da ajuda de vocês.

Fiz um NPC de catcher, que com uma certa quantidade de catch, ele te dá um outfit e dinheiro.

O player pega, mais , ele não para de dar a recompensa, fica dando varias e varias vezes.

Script:

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

local talkState = {}

 

function doBuyPokemonWithCasinoCoins(cid, poke) npcHandler:onSellpokemon(cid) end

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

 

local stoQuest = 9873242

local stoOut = 181644

 

if msgcontains(msg, 'mission') and (not talkState[talkUser] or talkState[talkUser] == 0) then

if getPlayerStorageValue(cid, stoQuest) >= 1 then

selfSay("You already did this quest!", cid)

talkState[talkUser] = 0

return true

end

selfSay("You need catch atleast 1 pokemons, and I bring to you the Shiny Box, u can do it?", cid)

talkState[talkUser] = 1

 

elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then

 

local list = getCatchList(cid)

if #list >= 1 then

selfSay("Thank you very much, take you reward...", cid)

setPlayerStorageValue(cid, stoOut, 1)

setPlayerStorageValue(cid, stoQuest, 1)

 

doPlayerAddExperience(cid,40000000)

doPlayerAddItem(cid, 11638, 1) --box 4

doPlayerAddMoney(cid, 100000000) --400k

 

else

selfSay("You haven't caught 1 pokemons yet, come back when you do that...", cid)

talkState[cid] = 0

return true

end

 

elseif (msgcontains(msg, 'no') or msgcontains(msg, 'nao')) then

selfSay("So good bye...", cid)

talkState[cid] = 0

return true

end

end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

alguem me ajuda ? REP+ pra quem ajudar

Link para o comentário
Compartilhar em outros sites

tu fez o script? ta brincando comigo neh? kkk

anyway, tenta usar assim...

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function doBuyPokemonWithCasinoCoins(cid, poke) npcHandler:onSellpokemon(cid) end
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

local stoQuest = 9873242
local stoOut = 181644

if msgcontains(msg, 'mission') and (not talkState[talkUser] or talkState[talkUser] == 0) then
if getPlayerStorageValue(cid, stoQuest) >= 1 then
selfSay("You already did this quest!", cid)
talkState[talkUser] = 0
return true
end
selfSay("You need catch atleast 1 pokemons, and I bring to you the Shiny Box, u can do it?", cid)
talkState[talkUser] = 1

elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then
if getPlayerStorageValue(cid, stoQuest) >= 1 then
selfSay("You already did this quest!", cid)
talkState[talkUser] = 0
return true
end
local list = getCatchList(cid)
if #list >= 1 then
selfSay("Thank you very much, take you reward...", cid)
setPlayerStorageValue(cid, stoOut, 1)
setPlayerStorageValue(cid, stoQuest, 1)

doPlayerAddExperience(cid,40000000)
doPlayerAddItem(cid, 11638, 1) --box 4
doPlayerAddMoney(cid, 100000000) --400k
talkState[talkUser] = 0
return true
else
selfSay("You haven't caught 1 pokemons yet, come back when you do that...", cid)
talkState[cid] = 0
return true
end

elseif (msgcontains(msg, 'no') or msgcontains(msg, 'nao')) then
selfSay("So good bye...", cid)
talkState[cid] = 0
return true
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

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

  • 5 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...