Postado Dezembro 15, 2017 7 anos Olá Tkinganos venho aqui para pedir ajuda a esse grandes membros fodoens do TK, tenho um npc que e para mim poder falar com ele só se eu tiver umas certa storage, e ele me pede certos itens para me dar outra storage por um tempo de dois dias. A primeira parte de falar com ele apenas se tiver uma storage esta ok, mais a de que ele pede pra mim entregar os items para ele me dar outra estorage por 2 dias não vai. Eu: Hi. NPC: Parabens voce provou-me que e um guerreiro promissor. Quer fazer a {mission}?. Eu: Mission. NPC: Ok, traga-me 25 protective charm que te darei permissão de dois dias para treinar comigo, boa sorte na busca das protective charm. EU: yes. alguém poderia consertar pra mim ? SCRIPT NPC 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 items = { [1] = {id = 12400, count = 5}, [2] = {id = 12400, count = 5}, [3] = {id = 12400, count = 5}, [4] = {id = 12400, count = 10} } if(msgcontains(msg, 'permissao')) then selfSay('Parabens voce provou-me que e um guerreiro promissor. Quer fazer a {mission}?', cid) end local quest = 444454 -- Storage da Quest --garden if getPlayerStorageValue(cid, quest) < 1 then selfSay("voce nao completou a quest do vilarejo dos orc ao south da cidade, complete-a e e mostre-me que voce e realmente um guerreiro promissor.", cid) return true end if(msgcontains(msg, 'mission')) then selfSay('Diga {yes} para aceitar.', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if getPlayerStorageValue(cid, 99952) >= 1 then selfSay('Você fez essa missão.', cid) return true end local tempo = 172800 -- tempo que vai durar a storage local storage = 99952 -- storage elseif (getPlayerStorageValue(cid, storage) <= os.time()) then selfSay('Ok, traga-me 25 protective charm que te darei permissao de dois dias para treinar comigo, boa sorte na busca das protective charm', cid) elseif getPlayerItemCount(cid, items[1].id) == items[1].count or getPlayerItemCount(cid, items[2].id) == items[2].count or getPlayerItemCount(cid, items[3].id) == items[3].count or getPlayerItemCount(cid, items[4].id) == items[4].count then setPlayerStorageValue(cid, storage, os.time()+tempo) -- garden selfSay('Claro, você foi para a próxima missão. Boa sorte.', cid) else selfSay('Você não tem os itens.', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Postado Dezembro 15, 2017 7 anos Solução @amoxicilina 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 config = { item1 = 12400, item2 = 12400, item3 = 12400, item4 = 12400, count1 = 5, count2 = 5, count3 = 5, count4 = 10, level = 300, -- Level que precisara para viajar sto = 99952, -- Storage não mecher tempo = 172800, -- tempo que vai durar a storage quest = 444454, -- quest necessaria... } if msgcontains(msg, 'mission') then if (getPlayerStorageValue(cid, config.sto) <= os.time()) then if getPlayerStorageValue(cid, config.quest) >= 1 then if getPlayerItemCount(cid, config.item1) >= config.count1 and getPlayerItemCount(cid, config.item2) >= config.count2 and getPlayerItemCount(cid, config.item3) >= config.count3 and getPlayerItemCount(cid, config.item4) >= config.count4 then selfSay('Claro, você foi para a próxima missão. Boa sorte.', cid) setPlayerStorageValue(cid, config.sto, os.time()+config.tempo) doPlayerRemoveItem(cid, config.item1, config.count1) doPlayerRemoveItem(cid, config.item2, config.count2) doPlayerRemoveItem(cid, config.item3, config.count3) doPlayerRemoveItem(cid, config.item4, config.count4) else selfSay('Traga-me os 25 protective charm para poder treinar comigo por dois dias.', cid) end else selfSay("voce nao completou a quest do vilarejo dos orc ao south da cidade, complete-a e e mostre-me que voce e realmente um guerreiro promissor.", cid) end else selfSay('Você Ja fez essa missão!' , cid) return true end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) xml <?xml version="1.0" encoding="UTF-8"?> <npc name="NomeDoNpc" script="NomeDoArquivo.lua" walkinterval="0" floorchange="0"> <health now="150" max="150"/> <look type="589" head="20" body="100" legs="50" feet="99" corpse="2212"/>] <parameters> <parameter key="message_greet" value="Parabens, voce provou-me que e um guerreiro promissor. Se quiser continuar diga {mission}."/> </parameters> </npc> Editado Dezembro 15, 2017 7 anos por gabrielzika (veja o histórico de edições)
Postado Dezembro 15, 2017 7 anos Autor Já fiz a quest antes para poder falar com o npc mais ele continua falando que eu não completei ela, storage da quest está: 444454, oque poderia ser que ele não esta reconhecendo que já completei a primeira quest pra ele poder trocar comigo a storage de 2 dias pelos itens ? -----------------NPC ARRUMADO-------------- 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 config = { item1 = 12400, item2 = 12400, item3 = 12400, item4 = 12400, count1 = 5, count2 = 5, count3 = 5, count4 = 10, level = 8, -- Level que precisara para viajar sto = 99952, -- Storage não mecher tempo = 172800, -- tempo que vai durar a storage quest = 39455, -- quest necessaria... } if msgcontains(msg, 'mission') then if (getPlayerStorageValue(cid, config.sto) <= os.time()) then if getPlayerStorageValue(cid, 39455) >= 1 then if getPlayerItemCount(cid, config.item1) >= config.count1 and getPlayerItemCount(cid, config.item2) >= config.count2 and getPlayerItemCount(cid, config.item3) >= config.count3 and getPlayerItemCount(cid, config.item4) >= config.count4 then selfSay('Claro, você foi para a próxima missão. Boa sorte.', cid) setPlayerStorageValue(cid, config.sto, os.time()+config.tempo) doPlayerRemoveItem(cid, config.item1, config.count1) doPlayerRemoveItem(cid, config.item2, config.count2) doPlayerRemoveItem(cid, config.item3, config.count3) doPlayerRemoveItem(cid, config.item4, config.count4) else selfSay('Traga-me os 25 protective charm para poder treinar comigo por dois dias.', cid) end else selfSay("voce nao completou a quest do vilarejo dos orc ao south da cidade, complete-a e e mostre-me que voce e realmente um guerreiro promissor.", cid) end else selfSay('Você Ja fez essa missão!' , cid) return true end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) vlw. Editado Dezembro 15, 2017 7 anos por amoxicilina (veja o histórico de edições)
Postado Dezembro 15, 2017 7 anos Post Corrigido! Editado Dezembro 15, 2017 7 anos por gabrielzika (veja o histórico de edições)
Postado Março 24, 2018 7 anos Autor Em 15/12/2017 em 19:22, gabrielzika disse: Post Corrigido! Desculpe a demora mias é que só percebi ressente mente que o npc não remove a storage apos passar o período de tempo especificado na script, poderia arrumar mim ? =)
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.