usoparagames 0 Postado Dezembro 30, 2021 Share Postado Dezembro 30, 2021 salve salve , gostaria de uma ajuda pra deixar esse npc de task apenas para ser feito 1x por player , alguem pode me ajudar ? Link para o comentário Compartilhar em outros sites More sharing options...
0 Yan Oliveira 211 Postado Fevereiro 8, 2022 Share Postado Fevereiro 8, 2022 Eu melhorei seu código, organizei e também deixei toda fala do player em minúscula para ficar mais fácil a verificação. Substitua o código por esse: 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 msg = string.lower(msg) local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local storage_done = 77777 -- STORAGE PARA NÃO REPETIR A TASK local task = { ["ADM do Tibia"] = {{"Fire Devil", 50}, {"Demon", 6}}, } if msgcontains(msg, 'task') then if getPlayerStorageValue(storage_done) > 0 then selfSay("Você já concluiu minha task.", cid) return true end local sto = getMyTaskSto(cid, getNpcCid()) if isMyTaskComplete(cid, getNpcCid()) then selfSay("Muito bem , vc nos ajudou msm ,pegue seu bonus por terminar a task !!", cid) doPlayerAddExperience(cid, 2000000) --premio doPlayerAddItem(cid, 11447, 10) doPlayerAddItem(cid, 12244, 5) doPlayerAddItem(cid, 2159, 20) setPlayerStorageValue(cid, sto, -1) setPlayerStorageValue(cid, storage_done, 1) talkState[talkUser] = 0 return true else selfSay("Prazer sou o ADM desse mundo ,jah que es forte e ta aki ,que tal pegar essa task de matar {50 Fire Devil and 5 Demon}, voce aceita?", cid) talkState[talkUser] = 2 end elseif msgcontains(msg, 'yes') and talkState[talkUser] == 2 then if getMyTaskSto(cid, getNpcCid()) ~= -1 then selfSay("Voce jah pegou minha task , agr va temina-la", cid) talkState[talkUser] = 0 return true end local sto = getFreeTaskStorage(cid) if sto == -1 then selfSay("You can't catch more tasks! You are already with the maximum of "..(maxTasks).." tasks!", cid) talkState[talkUser] = 0 return true end selfSay("OK rapaiz... Va matar esses monstros ,e nao se preocupe cmg , eu pego sua task no final!!", cid) setStorageArray(cid, sto, task) talkState[talkUser] = 0 return true end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) O código está muito confuso, e como tem funções que trabalham com storage, pode ser que esteja vinculada à outros códigos, então não mexi. No caso, adicionei uma storage a mais só para finalizar a task e verificar. Se quiser, posso refazer essa task para você, mas nesse caso vai ter que criar um outro tópico para isso em Pedidos de Script. Teste esse script e veja se vai dar erro. Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
usoparagames 0
salve salve , gostaria de uma ajuda pra deixar esse npc de task apenas para ser feito 1x por player , alguem pode me ajudar ?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados