Killua 389 Postado Janeiro 2, 2014 Share Postado Janeiro 2, 2014 (editado) Killua Task Sytem Versões testadas: tfs 0.3.6 e 0.4 Eu sei que já existem vários task systems, inclusive aqui no fórum, mas do jeitinho que eu queria, não consegui achar nenhum. Por isso, resolvi fazer um eu mesmo. O que ele tem de diferente? • É totalmente simplificado. • Não precisa "pegar" as tasks. Elas já são todas automáticas, ou seja, os monstros são contados desde sempre. • É tudo configurado em uma única tabela, de forma muito simples. • Tem um NPC que somente entra as recompensas. • Seu progresso pode ser visto pelo comando !task Atualização do sistema: Refiz os códigos pois existia uma possibilidade de bug. Otimizei eles, deixando o código mais limpo, eficiente e rápido. Aconselho a todos que usam o sistema que instalem a nova versão. Instalação: Tags: Em talkacions.xml adicione: <talkaction log="yes" words="!task" event="script" value="amoebaTask.lua"/> Em creaturescripts.xml adicione: <event type="kill" name="AmoebaTask" event="script" value="amoebaTaskCreature.lua"/> Em data/creaturescritps/scripts/login.lua adicione: registerCreatureEvent(cid, "AmoebaTask") Scripts: Lib: Crie amoebaTask.lua em data/lib e coloque -- Script feito por Killua, antigo amoeba13 -- amoebaTask = { ["Jabuti"] = {creatures = {"Jabuti","Jabuti Hatchling"}, storage = 2312112, storagecount = 890120, count = 300, exp = 0, money = 0, premios = {{6527, 10},{10133, 1}}}, ["Thenebreus"] = {creatures = {"Thenebreus"}, storage = 2312113, storagecount = 890121, count = 250, exp = 0, money = 0, premios = {{6527, 4},{10134, 1}}}, ["Demon"] = {creatures = {"Demon"}, storage = 2312114, storagecount = 890122, count = 5, exp = 0, money = 0, premios = {{6527, 4},{10134, 1}}} } function taskKills(cid, storage) local kills = getPlayerStorageValue(cid, storage) return kills < 0 and 0 or kills end Talkaction: Crie amoebaTask.lua em data/talkactions/scripts e coloque -- Script por Killua, antigo amoeba13 -- function onSay(cid, words, param, channel) local stt = "" for nome, info in pairs(amoebaTask) do nomes = nome storages = info.storagecount counts = info.count stt = stt .. nomes .. " [" .. taskKills(cid, storages) .. "/" .. counts .. "]\n" end doShowTextDialog(cid, 11231, "Tasks disponiveis em nosso servidor: \n" .. stt .. "") return true end Creaturescripts: Crie amoebaTaskCreature.lua em data/creaturescripts/scripts e coloque -- Script por Killua, antigo amoeba13 -- function onKill(cid, target, lastHit) if not isMonster(target) or not isPlayer(cid) then return true end for _, tasks in pairs(amoebaTask) do if isInArray(tasks.creatures, getCreatureName(target)) then if taskKills(cid, tasks.storagecount) < tasks.count then doPlayerSetStorageValue(cid, tasks.storagecount, taskKills(cid, tasks.storagecount)+1) break end end end return true end NPC: Em data/npc crie Task Man.xml e coloque <?xml version="1.0" encoding="UTF-8"?><npc name="Task Man" script="data/npc/scripts/amoebaTask.lua" walkinterval="2000" floorchange="0"> <health now="150" max="150"/> <look type="129" head="95" body="116" legs="121" feet="115" addons="3"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|! Eu posso recompensa-lo por terminar tasks, basta dizer o nome de alguma! Para saber o nome das tasks e seu progresso em cada uma, diga !task."/> </parameters> </npc> Em data/npc/script crie amoebaTask.lua e coloque -- Script por Killua, antigo Amoeba13 -- 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 if amoebaTask[msg] then if getPlayerStorageValue(cid, amoebaTask[msg].storage) == -1 then if getPlayerStorageValue(cid, amoebaTask[msg].storagecount) == amoebaTask[msg].count then local esperiencia = amoebaTask[msg].exp > 0 and "" ..amoebaTask[msg].exp.. " exp e " or "" local dineiro = amoebaTask[msg].money > 0 and "" .. amoebaTask[msg].money .. " gold coins e " or "" selfSay("Voce conseguiu completar a task de ".. msg .. ", parabens! Eu vou te dar " .. esperiencia .. "" .. dineiro .."alguns itens como recompensa.", cid) doPlayerAddExperience(cid, amoebaTask[msg].exp) doPlayerAddMoney(cid, amoebaTask[msg].money) doPlayerSetStorageValue(cid, amoebaTask[msg].storage, 1) for juba, prize in pairs(amoebaTask[msg].premios) do doPlayerAddItem(cid, prize[1], prize[2]) end else selfSay("Desculpe, mas voce ainda nao matou todos os " .. msg .. "s. Voce so matou " .. taskKills(cid, amoebaTask[msg].storagecount) .. " de " .. amoebaTask[msg].count .. " " .. msg .. "s.", cid) end else selfSay("Voce so pode recber uma vez o premio de cada task.", cid) end else selfSay("O que?", cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Configuração: A configuração é feita unicamente na tabela da lib: amoebaTask = { ["Jabuti"] = {creatures = {"Jabuti","Jabuti Hatchling"}, storage = 2312112, storagecount = 890120, count = 300, exp = 0, money = 0, premios = {{6527, 10},{10133, 1}}}, ["Thenebreus"] = {creatures = {"Thenebreus"}, storage = 2312113, storagecount = 890121, count = 250, exp = 0, money = 0, premios = {{6527, 4},{10134, 1}}}, ["Demon"] = {creatures = {"Demon"}, storage = 2312114, storagecount = 890122, count = 5, exp = 0, money = 0, premios = {{6527, 4},{10134, 1}}} } Em [""] vc coloca o nome que vai aparecer no !task e que também será usado para pega a recompensa no NPC. Em creatures vc coloca todos os monstros que vão contabilizar para tal task. Em storage vc coloca o storage de task completa, que garante que o premio só será pego uma vez. Esse storage nunca pode ser repetido! Em storagecount vc coloca o storage de contagem de monstros. Esse também nunca pode ser repetido! Em count vc coloca o número de monstros necessários pra completar a task. Em exp vc coloca a exp que ganha completando. Em money vc coloca o dinheiro que ganha completando. Em premios vc coloca os itens que ganham completando, seguido de sua quantidade. Ex: {6527, 4} o player vai receber 4 itens de id 6527. Espero que façam bom uso do sistema. Vou ficar feliz em atender qualquer tipo de dúvida e também aceito sugestões. Caso queira que as tasks possam ser feitas repetidas vezes, me peça que eu ponho aqui. Pois basta mudar duas linhas. Editado Abril 27, 2014 por Killua Atualização Link para o comentário https://xtibia.com/forum/topic/226410-killua-task-system-atualizado-16042014/ Compartilhar em outros sites More sharing options...
SkyDarkyes 104 Postado Janeiro 2, 2014 Share Postado Janeiro 2, 2014 Curti xD Link para o comentário https://xtibia.com/forum/topic/226410-killua-task-system-atualizado-16042014/#findComment-1597792 Compartilhar em outros sites More sharing options...
JonatasLucasf 60 Postado Janeiro 2, 2014 Share Postado Janeiro 2, 2014 Daora Talvez Vou uSAR EM MEU BAIAK, HEHE Link para o comentário https://xtibia.com/forum/topic/226410-killua-task-system-atualizado-16042014/#findComment-1597811 Compartilhar em outros sites More sharing options...
Alexclusive 687 Postado Janeiro 11, 2014 Share Postado Janeiro 11, 2014 Boa cara, pega bem na maioria dos servidores! Link para o comentário https://xtibia.com/forum/topic/226410-killua-task-system-atualizado-16042014/#findComment-1601685 Compartilhar em outros sites More sharing options...
Killua 389 Postado Janeiro 12, 2014 Autor Share Postado Janeiro 12, 2014 Aham , valeu alex Link para o comentário https://xtibia.com/forum/topic/226410-killua-task-system-atualizado-16042014/#findComment-1601821 Compartilhar em outros sites More sharing options...
Alexclusive 687 Postado Janeiro 12, 2014 Share Postado Janeiro 12, 2014 Da pra adicionar quantos monstros quiser? Link para o comentário https://xtibia.com/forum/topic/226410-killua-task-system-atualizado-16042014/#findComment-1601846 Compartilhar em outros sites More sharing options...
Killua 389 Postado Janeiro 12, 2014 Autor Share Postado Janeiro 12, 2014 Dá sim, não tem um limite. Eu to usando no meu server e vou adicionar muitas mais http://baiakstorm.no-ip.biz/?subtopic=tasks rs Link para o comentário https://xtibia.com/forum/topic/226410-killua-task-system-atualizado-16042014/#findComment-1601860 Compartilhar em outros sites More sharing options...
BrunnoAlmeidahh 0 Postado Janeiro 16, 2014 Share Postado Janeiro 16, 2014 "Em dinheiro voce poe a quantidade de dinheiro que o player vai ganhar" _________ Esse valor eh em gold coin, ou crystal? Link para o comentário https://xtibia.com/forum/topic/226410-killua-task-system-atualizado-16042014/#findComment-1604103 Compartilhar em outros sites More sharing options...
Killua 389 Postado Janeiro 17, 2014 Autor Share Postado Janeiro 17, 2014 Em gold coins (1000 = 1k). Link para o comentário https://xtibia.com/forum/topic/226410-killua-task-system-atualizado-16042014/#findComment-1604196 Compartilhar em outros sites More sharing options...
Dbko 120 Postado Janeiro 20, 2014 Share Postado Janeiro 20, 2014 Gostei Muito REP Ai mano Deu Tudo Certo Aki no meu Servidor Tava procurando Um Tipo Esse Ai FLW Link para o comentário https://xtibia.com/forum/topic/226410-killua-task-system-atualizado-16042014/#findComment-1605762 Compartilhar em outros sites More sharing options...
JustinnoTibianno 71 Postado Janeiro 21, 2014 Share Postado Janeiro 21, 2014 (editado) Muito bom trabalho mano! Amanhã meu rep é seu akspdokasdop Tem coisa melhor que task no tibia? @Edit Você falou que não precisa pegar a task, é só chegar na hunt e ir matando que vai contar? Se sim, da para fazer a mesma task mais de uma vez? Editado Janeiro 21, 2014 por JPedroTibianno Link para o comentário https://xtibia.com/forum/topic/226410-killua-task-system-atualizado-16042014/#findComment-1606022 Compartilhar em outros sites More sharing options...
Killua 389 Postado Janeiro 21, 2014 Autor Share Postado Janeiro 21, 2014 Muito bom trabalho mano! Amanhã meu rep é seu akspdokasdop Tem coisa melhor que task no tibia? @Edit Você falou que não precisa pegar a task, é só chegar na hunt e ir matando que vai contar? Se sim, da para fazer a mesma task mais de uma vez? Valeu cara Isso, é só sair matando que já conta. Do jeito que eu configurei ele aqui, só dá pra fazer uma vez cada task... Mas dá pra mudar e deixar fazer a mesma várias vezes, pra isso só mudaria umas 3 linhas Link para o comentário https://xtibia.com/forum/topic/226410-killua-task-system-atualizado-16042014/#findComment-1606029 Compartilhar em outros sites More sharing options...
srkapetinha 3 Postado Janeiro 23, 2014 Share Postado Janeiro 23, 2014 Não entendo mt de script ,para poder fazer várias vezes, oque que muda? Link para o comentário https://xtibia.com/forum/topic/226410-killua-task-system-atualizado-16042014/#findComment-1606725 Compartilhar em outros sites More sharing options...
Killua 389 Postado Janeiro 23, 2014 Autor Share Postado Janeiro 23, 2014 Mais tarde, quando eu estiver no pc, eu faço pra você e já posto aqui. Link para o comentário https://xtibia.com/forum/topic/226410-killua-task-system-atualizado-16042014/#findComment-1606785 Compartilhar em outros sites More sharing options...
FelipeGuilherme 0 Postado Janeiro 24, 2014 Share Postado Janeiro 24, 2014 amoebaTask = { {nome = "Jabuti", creatures = {"Jabuti","Jabuti Hatchling"}, storage = 2312112, storagecount = 890120, count = 300, exp = 0, money = 0, premios = {{2160, 10},{2195, 1}}}, {nome = "Thenebreus", creatures = {"Thenebreus"}, storage = 2312113, storagecount = 890121, count = 250, exp = 0, money = 0, premios = {{2160, 8},{10134, 1}}}, {nome = "Demon", creatures = {"Demon"}, storage = 2312114, storagecount = 890122, count = 200, exp = 0, money = 0, premios = {{2160, 80},{10134, 1}}} {nome = "Dragon", creatures = {"Dragon"}, storage = 2312114, storagecount = 890123, count = 200, exp = 0, money = 0, premios = {{2160, 20},{10134, 1}}} storagecount = 890123 < Eu adicionei o dragon so que ta dando ero oque errei ? em storage account como voçe disse n pode ser repetido adicionei 23 e da erro Link para o comentário https://xtibia.com/forum/topic/226410-killua-task-system-atualizado-16042014/#findComment-1607527 Compartilhar em outros sites More sharing options...
Posts Recomendados