Postado Maio 24, 2017 8 anos A storage é uma chave que armazena um valor(que é -1 por padrão), no primeiro script a chave 10001 mudou para o valor 1 com a função: setPlayerStorageValue(cid, 10001, 1) Depois, no segundo script, a função getPlayerStorageValue(cid, 10001) == 1, checa se o valor da chave 10001 é igual a 1 para realizar a ação. @Darcio Antonio ➥ Regras | Seções OTServ | Seções BOT
Postado Maio 24, 2017 8 anos 17 horas atrás, Wakon disse: 01: 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 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 msg = msg:lower() if msgcontains(msg, 'sim') then if (getPlayerStorageValue(cid, 10001) > 0) then selfSay('Eu já falei com você, vá até o {Mago Berlino} e descubra o que ele está fazendo.', cid) else doSendMagicEffect(getCreaturePosition(cid), 30) setPlayerStorageValue(cid, 10001, 1) selfSay('Ouvi falar que na montanha mais alta dos ogros vive o {Mago Berlino}, dizem que esse mago está tramando alguma coisa para acabar com venture, preciso que você vá {investigar} o que esta acontecendo e me traga um {relatório}.', cid) end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) 02: 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 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 msg = msg:lower() if msgcontains(msg, 'sim') then if (getPlayerStorageValue(cid, 10001) == 0) then selfSay('Esse Lucios vive falando que eu sou um mago mau, mas não é bem por ai.', cid) selfSay('Faço meus experimentos para sempre melhorar a qualidade de vida e o balanço da natureza aqui em venture..', cid) selfSay('Falando nisso você poderia me {ajudar} com algumas tarefinhas? Irei recompensa-lo no final.', cid) talkState[talkUser] = 1 else selfSay('Eu não tenho permissão para falar com você.', cid) end elseif msgcontains(msg, 'ajudar') then if talkState[talkUser] == 1 then if (getPlayerStorageValue(cid, 10001) == 1) then selfSay('Tarefa, blablabla', cid) end end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Use o exemplo do talkState e tente criar sua quest, se tiver alguma dúvida, pode perguntar. Amigo seguindo a mesma logica teria como modificar para o 2º npc mandar mantar uma certa quantidade de monstro ? e recolher alguns itens ?
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.