Postado Outubro 24, 2020 4 anos .Qual servidor ou website você utiliza como base? TFS 0.4 8.6 Qual o motivo deste tópico? Olá boa noite, tenho um script de NPC de Task funciona porem esta com alguns erro, e precisa fazer algumas modificações. Está surgindo algum erro? Se sim coloque-o aqui. Citar n ta contando a task e tem outra coisa quando vai fazer a task so ta dando pra pegar 1 task por semana era pra poder pegar todas elas exemplo se eu quiser pegar todas as task dragon,dragon,lord etc eu poderia porem dps de terminha exemplo a de dragon so dps de 1 semana que eu posso fazer a de dragons denovo más se eu não tive feito a de dragon guardian eu posso fazer ou seja cada task teria o seu devido prazo pra fazer separadamente. edit pra pode pegar todas as task se quiser acho que voce vai ter que colocar pra cada task ter uma storage propria exemplo o dragon ter a sua storage e a do dragon lord outra e pah dai não haveria problema se o player quise-se fazer varias task Você tem o código disponível? Se tiver publique-o aqui: 1* creaturescripts/scripts/DragonsTask.lua Mostrar conteúdo oculto Ocultar conteúdo local function isSummon(cid) if getCreatureMaster(cid) ~= cid then return true end return false end function onDeath(cid, corpse, deathList) local stoTime = 96588 local stoKill = 96589 local stoName = 96590 local task = { ["dragon"] = {kill = "Dragon", qnt = 1500, exp = 1000000}, ["dragon lord"] = {kill = "Dragon Lord", qnt = 1000, exp = 800000}, ["hydra"] = {kill = "Hydra", qnt = 800, exp = 700000}, ["frost dragon"] = {kill = "Frost Dragon", qnt = 600, exp = 500000}, ["dragon guardian"] = {kill = "Dragon Guardian", qnt = 500, exp = 400000}, ["thunder dragon"] = {kill = "Thunder Dragon", qnt = 400, exp = 300000}, ["demodras"] = {kill = "Demodras", qnt = 300, exp = 200000}, } for a = 1, #deathList do local pk = deathList[a] local myTask = task[string.lower(getPlayerStorageValue(pk, stoName))] local left = math.ceil((getPlayerStorageValue(pk, stoTime) - os.time())/(24 * 60 * 60)) if myTask and getCreatureName(cid) == getPlayerStorageValue(pk, stoName) and not isSummon(cid) then if left > 0 and getPlayerStorageValue(pk, stoKill) > 0 then setPlayerStorageValue(pk, stoKill, getPlayerStorageValue(pk, stoKill) - 1) local sto = getPlayerStorageValue(pk, stoKill) local jaMatou = math.abs(getPlayerStorageValue(pk, stoKill)-myTask.qnt) if sto == 0 then doPlayerSendTextMessage(pk, 20, "["..myTask.kill.." Task Finalizada] ("..myTask.qnt.."/"..myTask.qnt..")") else doPlayerSendTextMessage(pk, 20, "["..myTask.kill.." Task] ("..jaMatou.."/"..myTask.qnt..")") end end end end return true end creaturescripts/scripts/login.lua registerCreatureEvent(cid, "DragonsTask") creaturescripts/creaturescripts.xml <event type="death" name="DragonsTask" event="script" value="DragonsTask.lua"/> monster/ em todos os dragoes da quest... <script> <event name="DragonsTask"/> </script> npc/scripts/NpcDragonsTask.lua Mostrar conteúdo oculto Ocultar conteúdo 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 stoTime = 96588 local stoKill = 96589 local stoName = 96590 ---- local msg = string.lower(msg) local left = math.ceil((getPlayerStorageValue(cid, stoTime) - os.time())/(24 * 60 * 60)) --nao mexe! local task = { ["dragon"] = {kill = "Dragon", qnt = 1500, exp = 1000000}, ["dragon lord"] = {kill = "Dragon Lord", qnt = 1000, exp = 800000}, ["hydra"] = {kill = "Hydra", qnt = 800, exp = 700000}, ["frost dragon"] = {kill = "Frost Dragon", qnt = 600, exp = 500000}, ["dragon guardian"] = {kill = "Dragon Guardian", qnt = 500, exp = 400000}, ["thunder dragon"] = {kill = "Thunder Dragon", qnt = 400, exp = 300000}, ["demodras"] = {kill = "Demodras", qnt = 300, exp = 200000}, } local myTask = task[string.lower(getPlayerStorageValue(cid, stoName))] or {} if (msgcontains(msg, 'dragoes') or msgcontains(msg, 'missao')) then if getPlayerStorageValue(cid, stoTime) ~= -1 and left > 0 and getPlayerStorageValue(cid, stoKill) > 0 then local faltaMatar = getPlayerStorageValue(cid, stoKill) local jaMatou = math.abs(getPlayerStorageValue(cid, stoKill)-myTask.qnt) local prazo = os.date("%d/%m/%y %X", getPlayerStorageValue(cid, stoTime)) selfSay("Você ainda não matou os "..myTask.qnt.." "..myTask.kill..", atualmente você matou ".. (jaMatou)..", resta "..faltaMatar..". Seu prazo é de até "..prazo..".", cid) talkState[talkUser] = 0 return true elseif getPlayerStorageValue(cid, stoTime) ~= -1 and left <= 0 and getPlayerStorageValue(cid, stoKill) ~= -1 then selfSay("Infelismente você não matou os "..myTask.qnt.." "..myTask.kill.." a tempo. Se você quiser, você pode tentar fazer denovo a missao.", cid) setPlayerStorageValue(cid, stoTime, -1) setPlayerStorageValue(cid, stoKill, -1) setPlayerStorageValue(cid, stoName, -1) talkState[talkUser] = 0 return true elseif getPlayerStorageValue(cid, stoTime) ~= -1 and left > 0 and getPlayerStorageValue(cid, stoKill) == -1 then local prazo = os.date("%d/%m/%y %X", getPlayerStorageValue(cid, stoTime)) selfSay("Você tem que esperar pelo menos 1 semana para poder pegar essa tarefa denovo. O prazo acaba dia ".. prazo..".", cid) talkState[talkUser] = 0 return true elseif getPlayerStorageValue(cid, stoTime) ~= -1 and left > 0 and getPlayerStorageValue(cid, stoKill) == 0 then selfSay("Obrigado! você matou os "..myTask.qnt.." "..myTask.kill.." em menos de 1 semana. Aqui esta sua recompensa! Lembre-se que você pode fazer esta task quantas vezes quiser,desde que tenha concluído 1 semana contado a partir do dia de inicio.", cid) doPlayerAddExp(cid, myTask.exp) --premio setPlayerStorageValue(cid, stoKill, -1) setPlayerStorageValue(cid, stoName, -1) talkState[talkUser] = 0 return true else if getPlayerStorageValue(cid, stoTime) ~= -1 and getPlayerStorageValue(cid, stoKill) == -1 then setPlayerStorageValue(cid, stoTime, -1) --soh pra evitar problemas... end selfSay("Eu caço vários tipos, como dragon, dragon lord, hydra, frost dragon, dragon guardian, thunder dragon e demodras. Você quer me ajudar a caçar um deles? Qual?", cid) talkState[talkUser] = 1 end elseif task[msg] and talkState[talkUser] == 1 then setPlayerStorageValue(cid, stoName, task[msg].kill) myTask = task[string.lower(getPlayerStorageValue(cid, stoName))] selfSay("Ótimo! Você precisa matar pelo menos "..myTask.qnt.." "..myTask.kill.." em um prazo de 1 semana para te dar recompensa. Aceita?", cid) talkState[talkUser] = 2 elseif (msgcontains(msg, 'no') or msgcontains(msg, 'nao')) and talkState[talkUser] == 2 then selfSay("Ok então, fale comigo denovo quando você quiser me ajudar a matar esses malditos dragões!", cid) talkState[talkUser] = 0 elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 2 then local semana = 7 * 24 * 60 * 60 setPlayerStorageValue(cid, stoTime, os.time()+semana) setPlayerStorageValue(cid, stoKill, myTask.qnt) setPlayerStorageValue(cid, stoName, myTask.kill) local sto = getPlayerStorageValue(cid, stoTime) selfSay("Você já pode começar a matar os ".. (myTask.kill) ..", mas cuidado! É uma criatura muito forte. Volte aqui quando matar ".. (myTask.qnt) .." ".. (myTask.kill) .." para ser recompensado. O prazo é até ".. os.date("%d/%m/%y %X", sto) ..".", cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) npc/Arthas.xml Mostrar conteúdo oculto Ocultar conteúdo <?xml version="1.0" encoding="UTF-8"?> <npc name="Arthas" script="NpcDragonsTask.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2"> <health now="150" max="150"/> <look type="640" head="91" body="114" legs="86" feet="0"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. Meu nome é Arthas, sou caçador de {dragoes}."/> </parameters> </npc> Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. Editado Outubro 29, 2020 4 anos por Vitorelias (veja o histórico de edições)
Postado Novembro 26, 2020 4 anos Eu recomendo você usar o sistema de task do Vodkart, eu testei em tfs 0.4 e foi perfeitamente funcional. O sistema conta com uma janela pop-up para as tasks, você acompanha em tempo real no seu default o andamento da task atual, há um rank de players das tasks falando !task rank e ainda há um prêmio para o player que completar todas as tasks (tudo configurável). Sinceramente, não consigo imaginar um sistema de task melhor que este. Caso queira dar uma olhada, clique aqui. mídias sociais talk to me vídeos
Postado Novembro 26, 2020 4 anos Autor Em 26/11/2020 em 20:59, Rogex Joyz disse: Eu recomendo você usar o sistema de task do Vodkart, eu testei em tfs 0.4 e foi perfeitamente funcional. O sistema conta com uma janela pop-up para as tasks, você acompanha em tempo real no seu default o andamento da task atual, há um rank de players das tasks falando !task rank e ainda há um prêmio para o player que completar todas as tasks (tudo configurável). Sinceramente, não consigo imaginar um sistema de task melhor que este. Caso queira dar uma olhada, clique aqui. Podem fechar o topico, já foi resolvido Vodkart já me ajudo.
Postado Novembro 27, 2020 4 anos Em 26/11/2020 em 23:31, Vitorelias disse: Podem fechar o topico, já foi resolvido Vodkart já me ajudo. Se possível, posta a solução e marque ela como melhor resposta para que os outros possam achar e ver caso tenham o mesmo problema. mídias sociais talk to me vídeos
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.