Ir para conteúdo

[Npc] Agrupar Duas Quest Em Uma !


robertt18

Posts Recomendados

Olá pessoal, to ajudando um amigo no OT de poketibia , ele ta criando um npc de quest que é assim ..

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

 

local talkState = {}

local quest = 76669

local reward = 70000

 

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)

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

if(not npcHandler:isFocused(cid)) then

return false

elseif msgcontains(msg, "sim") and talkState[talkUser] == 1 then

npcHandler:say("Ótimo, vou recompensalo muito bem{ok}?.", cid)

talkState[talkUser] = 2

elseif msgcontains(msg, "ok") and talkState[talkUser] == 2 then

npcHandler:say("OK!! Se Prepare", cid)

setPlayerStorageValue(cid, quest, 2)

talkState[talkUser] = 0

elseif msgcontains(msg, "sim") then

local str = getPlayerStorageValue(cid, quest)

if(str < 2) then

npcHandler:say("Tudo bem Treinador,preciso que voçê me ajude a manter a cidade em ordem..poderia matar 100 rattata's e 50 oddish ?", cid)

talkState[talkUser] = 1

return true

elseif(str == 2) then

npcHandler:say("Quando terminar volte para pegar sua recompensa.", cid)

elseif(str == 3) then

npcHandler:say("Ja matou os 100 rattata's?Nossa voçê é um verdadeiro treinador de pokemons!!Aqui esta sua recompensa...", cid)

doPlayerAddItem(cid, 2160, 30)

doPlayerAddItem(cid, 2147, 100)

doPlayerAddItem(cid, 2146, 10)

doPlayerAddExp(cid, 2000)

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voçê recebeu 10Hd 100 poke ball's e 10 ultra ball's!")

setPlayerStorageValue(cid, quest, 4)

elseif(str == 4) then

npcHandler:say("Voçê me ajudou bastante, agora os esgotos estao seguros!!", cid)

end

talkState[talkUser] = 0

end

return TRUE

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

 

 

Funciono tudo certo , só que assim .. ele queria que o npc desse continuaçao na quest ,e apos matar os 100 ratata e ganhar a recompensa matasse por exemplo + 100 Raticate ... Alguem tem ideia de como fazer issu ? Obrigado desde ja

Olá pessoal, to ajudando um amigo no OT de poketibia , ele ta criando um npc de quest que é assim ..

 

local keywordHandler = KeywordHandler:new()

local npcHandler = NpcHandler:new(keywordHandler)

NpcSystem.parseParameters(npcHandler)

 

local talkState = {}

local quest = 76669

local reward = 70000

 

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)

local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

if(not npcHandler:isFocused(cid)) then

return false

elseif msgcontains(msg, "sim") and talkState[talkUser] == 1 then

npcHandler:say("Ótimo, vou recompensalo muito bem{ok}?.", cid)

talkState[talkUser] = 2

elseif msgcontains(msg, "ok") and talkState[talkUser] == 2 then

npcHandler:say("OK!! Se Prepare", cid)

setPlayerStorageValue(cid, quest, 2)

talkState[talkUser] = 0

elseif msgcontains(msg, "sim") then

local str = getPlayerStorageValue(cid, quest)

if(str < 2) then

npcHandler:say("Tudo bem Treinador,preciso que voçê me ajude a manter a cidade em ordem..poderia matar 100 rattata's e 50 oddish ?", cid)

talkState[talkUser] = 1

return true

elseif(str == 2) then

npcHandler:say("Quando terminar volte para pegar sua recompensa.", cid)

elseif(str == 3) then

npcHandler:say("Ja matou os 100 rattata's?Nossa voçê é um verdadeiro treinador de pokemons!!Aqui esta sua recompensa...", cid)

doPlayerAddItem(cid, 2160, 30)

doPlayerAddItem(cid, 2147, 100)

doPlayerAddItem(cid, 2146, 10)

doPlayerAddExp(cid, 2000)

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voçê recebeu 10Hd 100 poke ball's e 10 ultra ball's!")

setPlayerStorageValue(cid, quest, 4)

elseif(str == 4) then

npcHandler:say("Voçê me ajudou bastante, agora os esgotos estao seguros!!", cid)

end

talkState[talkUser] = 0

end

return TRUE

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

 

 

 

Funciono tudo certo , só que assim .. ele queria que o npc desse continuaçao na quest ,e apos matar os 100 ratata e ganhar a recompensa matasse por exemplo + 100 Raticate ... Alguem tem ideia de como fazer issu ? Obrigado desde ja

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

×
×
  • Criar Novo...