Postado Janeiro 25, 2020 5 anos .Qual servidor ou website você utiliza como base? Qual o motivo deste tópico? NPC QUEST TEM QUE ENTREGA 2 item PARA o NPC MAIS QUANDO EU MANDO ELE ENTREGAR ELE SO ENTREGA 1 E se TIVER OS DOIS ELE ENTREGA OS DOIS AE FICA UM BUG ELE SO PEGA 1 item de 3 PARA TERMINA QUEST nao 4 ITEM Você tem o código disponível? Se tiver publique-o aqui: 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 -- VARIÁVEIS -- local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid msg = string.lower(msg) local nome_primeiro_npc = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" local nome_terceiro_npc = "xxxxxxxxxxxxxxxxxxxxxxxxxx" local id_item = 1441 ----------------------------------- [[ ID DO ITEM PARA DROP]] --------------------------------- local quantidade_item = 3 local id_item1 = 1440 ----------------------------------- [[ ID DO ITEM PARA DROP]] --------------------------------- local quantidade_item1 = 1 local id_item_recebido1 = 1450 local id_item_recebido2 = 2148 local id_item_recebido3 = 1443 local quantidade_item_recebido1 = 4 ----------------------------------- [[ BOX]] --------------------------------- local quantidade_item_recebido2 = 100 ----------------------------------- [[ BOX]] --------------------------------- local quantidade_item_recebido3 = 1 ----------------------------------- [[ BOX]] --------------------------------- ----------------------------------- [ DIALOGO COM NPC] --------------------------------- if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') or msgcontains(msg, 'missao') then if getPlayerStorageValue(cid, 9992) == 1 then -- STORAGE DO PRIMEIRO NPC, OU SEJA, VERIFICA SE FALOU COM PRIMEIRO NPC. if getPlayerStorageValue(cid, 9991) == 1 then -- VERIFICA SE JÁ FEZ A MISSÃO DO SEGUNDO NPC selfSay("Você já fez minha missão, agora você deve falar diretamente com o NPC " ..nome_terceiro_npc.. ".", cid) talkState[talkUser] = 0 return true else selfSay("Preciso que você me traga " ..quantidade_item.. " xxxxxxxxxxxxxxxx e xxxxxxxxxxxx. Você trouxe?", cid) talkState[talkUser] = 1 return true end else selfSay("Você deve falar com o NPC " ..nome_primeiro_npc.. " para conseguir fazer minha missão.", cid) talkState[talkUser] = 0 return true end elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then if getPlayerItemCount(cid, id_item) >= quantidade_item then doPlayerRemoveItem(cid, id_item, quantidade_item) doPlayerRemoveItem(cid, id_item1, quantidade_item1) selfSay("Você me trouxe as " ..quantidade_item.. " que eu precisava. Agora você consegue falar com o NPC " ..nome_terceiro_npc.. ".", cid) doPlayerAddItem(cid, id_item_recebido1, quantidade_item_recebido1) doPlayerAddItem(cid, id_item_recebido2, quantidade_item_recebido2) doPlayerAddItem(cid, id_item_recebido3, quantidade_item_recebido3) doSendMagicEffect(getThingPos(cid), 29) setPlayerStorageValue(cid, 9991, 1) talkState[talkUser] = 0 return true else selfSay("Você não trouxe a quantidade de xxxxxxxxxxxe eu preciso. Me traga " ..quantidade_item.. " xxxxxxxxxxxxxxxxxxxx para prosseguir com a missão.", cid) talkState[talkUser] = 0 return true end return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. https://www.facebook.com/groups/659018184245665/ https://www.facebook.com/profile.php?id=133706320308745
Postado Janeiro 28, 2020 5 anos testado -- coloca assim: 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 -- VARIÁVEIS -- local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid msg = string.lower(msg) local nome_primeiro_npc = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" local nome_terceiro_npc = "xxxxxxxxxxxxxxxxxxxxxxxxxx" local id_item = 1441 ----------------------------------- [[ ID DO ITEM PARA DROP]] --------------------------------- local quantidade_item = 3 local id_item1 = 1440 ----------------------------------- [[ ID DO ITEM PARA DROP]] --------------------------------- local quantidade_item1 = 1 local id_item_recebido1 = 1450 local id_item_recebido2 = 2148 local id_item_recebido3 = 1443 local quantidade_item_recebido1 = 4 ----------------------------------- [[ BOX]] --------------------------------- local quantidade_item_recebido2 = 100 ----------------------------------- [[ BOX]] --------------------------------- local quantidade_item_recebido3 = 1 ----------------------------------- [[ BOX]] --------------------------------- ----------------------------------- [ DIALOGO COM NPC] --------------------------------- if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') or msgcontains(msg, 'missao') then if getPlayerStorageValue(cid, 9992) == 1 then -- STORAGE DO PRIMEIRO NPC, OU SEJA, VERIFICA SE FALOU COM PRIMEIRO NPC. if getPlayerStorageValue(cid, 9991) == 1 then -- VERIFICA SE JÁ FEZ A MISSÃO DO SEGUNDO NPC selfSay("Você já fez minha missão, agora você deve falar diretamente com o NPC " ..nome_terceiro_npc.. ".", cid) talkState[talkUser] = 0 return true else selfSay("Preciso que você me traga " ..quantidade_item.. " xxxxxxxxxxxxxxxx e xxxxxxxxxxxx. Você trouxe?", cid) talkState[talkUser] = 1 return true end else selfSay("Você deve falar com o NPC " ..nome_primeiro_npc.. " para conseguir fazer minha missão.", cid) talkState[talkUser] = 0 return true end elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then if doPlayerRemoveItem(cid, id_item, quantidade_item) then selfSay("Você me trouxe as " ..quantidade_item.. " que eu precisava. Agora você consegue falar com o NPC " ..nome_terceiro_npc.. ".", cid) doPlayerAddItem(cid, id_item_recebido1, quantidade_item_recebido1) doPlayerAddItem(cid, id_item_recebido2, quantidade_item_recebido2) doPlayerAddItem(cid, id_item_recebido3, quantidade_item_recebido3) doSendMagicEffect(getThingPos(cid), 29) setPlayerStorageValue(cid, 9991, 1) talkState[talkUser] = 0 return true else selfSay("Você não trouxe a quantidade de xxxxxxxxxxxe eu preciso. Me traga " ..quantidade_item.. " xxxxxxxxxxxxxxxxxxxx para prosseguir com a missão.", cid) talkState[talkUser] = 0 return true end return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
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.