Estou configurando NPCs de missão que usam esse script:
local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local quest = 76669 -- O que significa esse numero? local reward = 70000 -- E esse? 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("Muito obrigado! Você será muito bem recompensado {ok}?", cid) talkState[talkUser] = 2 elseif msgcontains(msg, "ok") and talkState[talkUser] == 2 then npcHandler:say("Certo, entre esse portal, seja cauteloso! Apresse-se!", cid) setPlayerStorageValue(cid, quest, 2) talkState[talkUser] = 0 elseif msgcontains(msg, "ajuda") then local str = getPlayerStorageValue(cid, quest) if(str < 2) then npcHandler:say("Aventureiro, eu preciso que você limpe o lugar de onde esses vermes veêm! Elimine 20 rotworms para mim? {sim} ", cid) talkState[talkUser] = 1 return true elseif(str == 2) then npcHandler:say("Você concluiu a missão, volte para buscar sua recompensa.", cid) elseif(str == 3) then npcHandler:say("Muito obrigado por eliminar essas pragas! Aqui está sua recompensa.", cid) doPlayerAddItem(cid, 2648, 1) doPlayerAddExp(cid, 3100) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você recebeu uma Chain Legs e 3100EXP. Procure Arkires, no cemitério ao norte, ele precisa de sua ajuda. ") setPlayerStorageValue(cid, quest, 4) elseif(str == 4) then npcHandler:say("Você tem feito o suficiente para mim, Siga ao notrte e encontre Arkires, ele precisa de sua ajuda! ", cid) end talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Minha dúvida é:
Esse script checa se o player ja concluiu a quest caso ele tente fazer a mesma missão outra vez?
Quero que seja possível fazer apenas 1 vez por char.
Rep+ pra quem checar p/ mim, obrigado.