Postado Março 19, 2019 6 anos estou tentando usar o task system simples Mostrar conteúdo oculto <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") Scrpits: Lib: Crie amoebaTask.lua em data/lib e coloque Mostrar conteúdo oculto Ocultar conteúdo -- 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 Mostrar conteúdo oculto Ocultar conteúdo -- 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 Mostrar conteúdo oculto Ocultar conteúdo -- 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 Mostrar conteúdo oculto Ocultar conteúdo <?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()) Mas nao está contabilizando a morte dos bixos... fui verificar meu creature scripts e nenhum arquivo usa o type="Kill" creio que a funcao OnKill nao esteja ativa ou instalada no meu sv (nao entendo muito disso) Alguem poderia adaptar para funcao OnDeath esses scripts?? foi o unico task system que ao menos o npc funfou de boa... e o codigo é simples Tentei usar a Task Sytem do @Vodkart Mas infelizmente nao funfou no meu server... TFS 0.4 VALENDO 5 REP+ Editado Março 19, 2019 6 anos por joaovitorbk9 (veja o histórico de edições)
Postado Março 22, 2019 6 anos Qual a versão do tfs? Consegue ver a rev também? Toda terça-feira um tópico novo: Descanso para curar mana (Spell): https://tibiaking.com/forums/topic/94615-spell-descanso-para-curar-mana/ Peça sua spell (Suporte): https://tibiaking.com/forums/topic/84162-peça-sua-spell/ Chuva de flechas (Spell): https://tibiaking.com/forums/topic/72232-chuva-de-flechas-spell/ Doom (Spell): https://tibiaking.com/forums/topic/51622-doom-spell/ Utilização do VS Code (Infra): https://tibiaking.com/forums/topic/94463-utilizando-o-visual-studio-code-notepad-nunca-mais/ SD com Combo (Spell): https://tibiaking.com/forums/topic/94520-sd-modificada/ Alteração attack speed (C++): https://tibiaking.com/forums/topic/94714-c-attack-speed-spells-itens-e-onde-você-quiser/ Bônus de Speed (NPC): https://tibiaking.com/forums/topic/94809-npc-concede-bônus-aos-players/
Postado Março 22, 2019 6 anos Autor Em 22/03/2019 em 19:09, Reds disse: Qual a versão do tfs? Consegue ver a rev também? desculpa mas.. o que é rev?
Postado Março 22, 2019 6 anos Revision Toda terça-feira um tópico novo: Descanso para curar mana (Spell): https://tibiaking.com/forums/topic/94615-spell-descanso-para-curar-mana/ Peça sua spell (Suporte): https://tibiaking.com/forums/topic/84162-peça-sua-spell/ Chuva de flechas (Spell): https://tibiaking.com/forums/topic/72232-chuva-de-flechas-spell/ Doom (Spell): https://tibiaking.com/forums/topic/51622-doom-spell/ Utilização do VS Code (Infra): https://tibiaking.com/forums/topic/94463-utilizando-o-visual-studio-code-notepad-nunca-mais/ SD com Combo (Spell): https://tibiaking.com/forums/topic/94520-sd-modificada/ Alteração attack speed (C++): https://tibiaking.com/forums/topic/94714-c-attack-speed-spells-itens-e-onde-você-quiser/ Bônus de Speed (NPC): https://tibiaking.com/forums/topic/94809-npc-concede-bônus-aos-players/
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.