Curti xD
- Fórum
- OTServ
- Recursos
- Scripting
- Mods, funções e outros
- Killua Task System [Atualizado 16/04/2014]
Killua Task System [Atualizado 16/04/2014]
Por Killua, 02 de jan. de 2014 em Mods, funções e outros
info
Grupo: Infante
Registrado: 27/01/13
Posts: 1.7k
Reputação: +104
Gênero: Masculino

info
Grupo: Conde
Registrado: 29/07/13
Posts: 780
Reputação: +60
Gênero: Masculino
Char no Tibia: aguarde...

Daora Talvez Vou uSAR EM MEU BAIAK, HEHE
info
Grupo: Herói
Registrado: 25/10/12
Posts: 2.4k
Reputação: +687
Gênero: Masculino
Char no Tibia: Nuncative

Boa cara, pega bem na maioria dos servidores! ![]()
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Aham
, valeu alex
info
Grupo: Herói
Registrado: 25/10/12
Posts: 2.4k
Reputação: +687
Gênero: Masculino
Char no Tibia: Nuncative

Da pra adicionar quantos monstros quiser?
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

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
info
Grupo: Campones
Registrado: 16/01/14
Posts: 2
Reputação: 0

"Em dinheiro voce poe a quantidade de dinheiro que o player vai ganhar"
_________
Esse valor eh em gold coin, ou crystal?
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Em gold coins (1000 = 1k).
Gostei Muito REP Ai mano Deu Tudo Certo Aki no meu Servidor Tava procurando Um Tipo Esse Ai FLW
info
Grupo: Conde
Registrado: 30/11/11
Posts: 696
Reputação: +71
Gênero: Masculino
Char no Tibia: treinador de lobo

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 por JPedroTibianno
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

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
info
Grupo: Campones
Registrado: 07/12/11
Posts: 61
Reputação: +3
Char no Tibia: Thanatus Ironfirst

Não entendo mt de script ,para poder fazer várias vezes, oque que muda?
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

Mais tarde, quando eu estiver no pc, eu faço pra você e já posto aqui.
info
Grupo: Campones
Registrado: 24/01/14
Posts: 5
Reputação: 0
Gênero: Masculino






info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem
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:
Em creaturescripts.xml adicione:
Em data/creaturescritps/scripts/login.lua adicione:
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 endTalkaction:
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 endCreaturescripts:
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 endNPC:
Em data/npc crie Task Man.xml e coloque
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}}} }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 por Killua
Atualização