Vodkart 1515 Postado Fevereiro 14, 2011 Share Postado Fevereiro 14, 2011 (editado) Update: 12/01/2012: para correção de bugs no npc. 19/03/2012 : adicionada Lib Configuração da task mais fácil todos possíveis bugs removidos 09/04/12 Agora eles terão que iniciar a task pelo npc, tendo que completar uma por vez. Eles poderão sair de uma task a qualquer hora pelo npc Poderão também escolher que task desejam fazer 09/07/12 Sistema foi passado para Mods Room Bosses Adicionado Time Room Bosses -- evita que o jogador fique segurando o respaw do boss Monster por raças: exemplo na task do rotworm, vai contar tanto se matar carion worm como conta tbm se matar rowotm Configuração de items,exp e money mais prático Rank Task Finalizada, só usar o comando !task rank Créditos Finais: Vodkart & Demonbholder Versão testada: 8.54 ~ 8.60 Sobre: é um npc de task simples,onde você tem que matar "x" quantidade de monstro para receber uma recompensa ,seja ela items ou experiência. Task Adicionais: - Comando que checa quantidade de monstro que você já matou. - Ao completar todas as task você recebe items especiais. - Os 10 primeiros jogadores a completar a task ganham um troféu único, items ou money ou exp(tudo configurável) -- Avisa quando a task de tal monstro foi completada Screen: Npc ------ talkactions !task ----- avisa quando acabou a task do mostro que está matando (no meu caso o minotaur task) ----- mostra o rank de task finalizados por jogador ----- Os 10 primeiros ganham troféu e Premium Days(configurável) (no meu caso fui o primeiro do ot kk) Mods: Simple Task.xml <?xml version="1.0" encoding="UTF-8"?> <mod name="Simple Task" version="3.0" author="Vodkart" contact="xtibia.com" enabled="yes"> <config name="task_func"><![CDATA[ tasktabble = { ["troll"] = {monster_race={"troll","frost troll","furious troll","island troll","swamp troll","troll champion","troll legionnaire"}, storage_start = 200201, storage = 91001,count = 150,exp = 200,money = 250}, ["globin"] = {monster_race={"goblin","goblin assassin","goblin leader"}, storage_start = 200202, storage = 91002,count = 150,exp = 300,money = 300}, ["rotworm"] = {monster_race={"rotworm","carrion worm"}, storage_start = 200203, storage = 91003,count = 300,exp = 1000,money = 800}, ["cyclops"] = {monster_race={"cyclops","cyclops smith","cyclops drone"}, storage_start = 200204, storage = 91004,count = 500,exp = 3000,money = 800}, ["green djinn"] = {monster_race={"green djinn","efreet"}, storage_start = 200205, storage = 91005,count = 500,exp = 10000,money = 5000}, ["blue djinn"] = {monster_race={"blue djinn","marid"}, storage_start = 200206, storage = 91006,count = 500,exp = 10000,money = 5000}, ["pirate one"] = {monster_race={"pirate buccaneer","pirate corsair","pirate cutthroat","pirate ghost","pirate marauder","pirate skeleton"}, storage_start = 200207, storage = 91007,count = 300,exp = 10000,money = 5000}, ["pirate two"] = {monster_race={"pirate buccaneer","pirate corsair","pirate cutthroat","pirate ghost","pirate marauder","pirate skeleton"}, storage_start = 200208, storage = 91008,count = 300,exp = 10000,money = 5000}, ["minotaur"] = {monster_race={"minotaur","minotaur archer","minotaur mage","minotaur guard"}, storage_start = 200209, storage = 91009,count = 20}, ["necromancer"] = {monster_race={"necromancer","priestess"}, storage_start = 200210, storage = 91010,count= 400}, ["carniphila"] = {monster_race={"carniphila"}, storage_start = 200211, storage = 91011,count= 150, exp = 2500}, ["stone golem"] = {monster_race={"stone golem"}, storage_start = 200212, storage = 91012,count= 220, exp = 2000}, ["ice golem"] = {monster_race={"ice golem"}, storage_start = 200213, storage = 91013,count= 300, exp = 12000}, ["dragon"] = {monster_race={"dragon","dragon lord","frost dragon"}, storage_start = 200214, storage = 91014,count= 250, exp = 50000}, ["mutated rat"] = {monster_race={"mutated rat"}, storage_start = 200215, storage = 91015,count = 210, exp = 25000, money = 10000}, ["giant spider"] = {monster_race={"giant spider"}, storage_start = 200215, storage = 91016,count = 500, exp = 50000, money = 15000}, ["hydra"] = {monster_race={"hydra"}, storage_start = 200217, storage = 91017,count = 5000, exp = 2000, money = 15000, reward = {{6433,1},{7434,1},{2197,1},{2476,1}}}, ["sea serpent"] = {monster_race={"sea serpent"}, storage_start = 200218, storage = 91018,count = 1500, exp = 70000, money = 30000}, ["behemoth"] = {monster_race={"behemoth"}, storage_start = 200219, storage = 91019,count = 1800, exp = 50000, money = 30000, reward = {{6391,1},{5741,1}}}, ["serpent spawn"] = {monster_race={"serpent spawn"}, storage_start = 200220, storage = 91020,count = 1400, exp = 70000, money = 30000}, ["demon"] = {monster_race={"demon"}, storage_start = 200221, storage = 91021,count = 6666, exp = 70000, money = 200000, reward = {{2495,1},{2496,1},{2520,1},{2472,1}}}, ["quara"] = {monster_race={"quara predator","quara constrictor","quara hydromancer","quara mantassin","quara pincher"}, storage_start = 200222, storage = 91022,count = 300, exp = 40000, money = 50000}, ["quara scout"] = {monster_race={"quara predator scout","quara constrictor scout","quara hydromancer scout","quara mantassin scout","quara pincher scout"}, storage_start = 200223, storage = 91023,count = 300, exp = 50000, money = 60000} } configbosses_task = { {race = "minotaur",Playerpos = {x = 189, y = 57, z = 7}, FromPosToPos = {{x = 186, y = 54, z = 7},{x = 193, y = 60, z = 7}},time = 5}, {race = "necromancer",Playerpos = {x = 196, y = 39, z = 7}, FromPosToPos = {{x = 195, y = 37, z = 7},{x = 198, y = 41, z = 7}}, time = 5}, {race = "dragon",Playerpos = {x = 208, y = 59, z = 7}, FromPosToPos = {{x = 206, y = 56, z = 7},{x = 209, y = 65, z = 7}}, time = 5} } function isSummon(uid) return uid ~= getCreatureMaster(uid) or false end function CheckTask(cid) for k, v in pairs(tasktabble) do if getPlayerStorageValue(cid,v.storage_start) >= 1 then return true end end return false end function finisheAllTask(cid) local config = { exp = {true,100000}, money = {true,200000}, items ={false,{{2124,2},{2173,1}}}, premium ={true,5} } local x = true for k, v in pairs(tasktabble) do if tonumber(getPlayerStorageValue(cid,v.storage)) then x = false end end if x == true then setPlayerStorageValue(cid, 521456, 0) local b = getGlobalStorageValue(63005) if b == -1 then b = 1 end if b < 11 then setGlobalStorageValue(63005,b+1) doBroadcastMessage('[Task Mission Complete] '..getCreatureName(cid)..' was the '..b..' to finish the task!.') doPlayerAddPremiumDays(cid, config.premium[1] == true and config.premium[2] or 0) doPlayerAddExp(cid, config.exp[1] == true and config.exp[2] or 0) doPlayerAddMoney(cid, config.money[1] == true and config.money[2] or 0) if config.items[1] == true then doAddItemsFromList(cid,config.items[2]) end doItemSetAttribute(doPlayerAddItem(cid, 7369), "name", "trophy "..getCreatureName(cid).." completed all the task.") end end end function HavePlayerPosition(cid, from, to) return isInRange(getPlayerPosition(cid), from, to) and true or false end function getRankStorage(cid, value, max, RankName) -- by vodka local str ="" str = "--[".. (RankName == nil and "RANK STORAGE" or ""..RankName.."") .."]--\n\n" local query = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = "..value.." ORDER BY cast(value as INTEGER) DESC;") if (query:getID() ~= -1) then k = 1 repeat if k > max then break end str = str .. "\n " .. k .. ". "..getPlayerNameByGUID(query:getDataString("player_id")).." - [" .. query:getDataInt("value") .. "]" k = k + 1 until not query:next() end return doShowTextDialog(cid, 2529, str) end function getItemsInContainerById(container, itemid) -- Function By Kydrai local items = {} if isContainer(container) and getContainerSize(container) > 0 then for slot=0, (getContainerSize(container)-1) do local item = getContainerItem(container, slot) if isContainer(item.uid) then local itemsbag = getItemsInContainerById(item.uid, itemid) for i=0, #itemsbag do table.insert(items, itemsbag[i]) end else if itemid == item.itemid then table.insert(items, item.uid) end end end end return items end function doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid) local piles = 0 if #item > 0 then for i,x in pairs(item) do if getThing(x).type < 100 then local it = getThing(x) doTransformItem(it.uid, itemid, it.type+quant) if it.type+quant > 100 then doPlayerAddItem(cid, itemid, it.type+quant-100) end else piles = piles+1 end end else return doPlayerAddItem(cid, itemid, quant) end if piles == #item then doPlayerAddItem(cid, itemid, quant) end end function getItemsFromList(items) -- by vodka local str = '' if table.maxn(items) > 0 then for i = 1, table.maxn(items) do str = str .. items[i][2] .. ' ' .. getItemNameById(items[i][1]) if i ~= table.maxn(items) then str = str .. ', ' end end end return str end function doAddItemsFromList(cid,items) -- by vodka if table.maxn(items) > 0 then for i = 1, table.maxn(items) do local count = items[i][2] while count > 0 do if isItemStackable(items[i][1]) then doPlayerAddItemStacking(cid, items[i][1], 1) else doPlayerAddItem(cid, items[i][1],1) end count = count - 1 end end end end function pairsByKeys(t, f) local a = {} for n in pairs(t) do table.insert(a, n) end table.sort(a, f) local i = 0 local iter = function () i = i + 1 if a[i] == nil then return nil else return a[i], t[a[i]] end end return iter end ]]></config> <event type="login" name="TaskLogin" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "KillTask") return true end]]></event> <talkaction words="/task;!task" event="buffer"><![CDATA[ domodlib('task_func') local param = string.lower(param) if param == "rank" then getRankStorage(cid, 521456, 20, "Task Rank Finalizadas") return true end local str = "" str = str .. "Task Completed :\n\n" for k, v in pairsByKeys(tasktabble) do local contagem = getPlayerStorageValue(cid, v.storage) if (contagem == -1) then contagem = 1 end str = str..k.." = ".. (not tonumber(contagem) and "["..contagem.."]" or "["..((contagem)-1).."/"..v.count.."]") .."\n" end str = str .. "" return doShowTextDialog(cid, 8983, str) ]]></talkaction> <event type="kill" name="KillTask" event="script"><![CDATA[ domodlib('task_func') function onKill(cid, target, lastHit) if isMonster(target) and not isSummon(target) then local n = string.lower(getCreatureName(target)) for race, mob in pairs(tasktabble) do if getPlayerStorageValue(cid,mob .storage_start) >= 1 then for i = 1,#mob.monster_race do if n == mob.monster_race[i] then local contagem = getPlayerStorageValue(cid, mob.storage) if not tonumber(contagem) then return true end if (contagem == -1) then contagem = 1 end if contagem > mob.count then return true end setPlayerStorageValue(cid, mob.storage, contagem+1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,""..(contagem == mob.count and "Congratulations! You finished the task of "..race.."." or "defeated. Total [" .. contagem .. "/" .. mob.count .. "] " .. race .. ".").."") end end end end end return true end]]></event> </mod> NPC NPC/SCRIPT simple_task.lua domodlib('task_func') 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 msg = string.lower(msg) if isInArray({"task","tasks","missao","mission"}, msg) then npcHandler:say("Me diga o nome do monstro que você deseja fazer a task!", cid) talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if tasktabble[msg] then if CheckTask(cid) ~= true then local contagem = getPlayerStorageValue(cid, tasktabble[msg].storage) if (contagem == -1) then contagem = 1 end if not tonumber(contagem) then npcHandler:say('Desculpe, mas você já terminou a task do '..msg, cid) return true end setPlayerStorageValue(cid, tasktabble[msg].storage_start, 1) npcHandler:say("Parabéns, agora você está participando da missão task do "..msg..", falta matar "..string.sub(((contagem)-1)-tasktabble[msg].count, 2).." "..msg, cid) talkState[talkUser] = 0 else npcHandler:say('Desculpe, mas você já faz parte de uma task!', cid) talkState[talkUser] = 0 end else npcHandler:say('digite o nome correto da missão task! para mais informações digite {!task}', cid) talkState[talkUser] = 1 end elseif isInArray({"receber","reward","recompensa","report","reportar"}, msg) then if CheckTask(cid) then for k, v in pairs(tasktabble) do racetype = k if getPlayerStorageValue(cid,v.storage_start) >= 1 then local contagem = getPlayerStorageValue(cid, v.storage) if (contagem == -1) then contagem = 1 end if not tonumber(contagem) then npcHandler:say('você só pode receber os items uma única vez!', cid) return true end if (((contagem)-1) >= v.count) then for _, check in pairs(configbosses_task) do if string.lower(check.race) == string.lower(racetype) then local on = getPlayersOnline() for i=1, #on do if HavePlayerPosition(on[i], check.FromPosToPos[1],check.FromPosToPos[2]) then selfSay('aguarde alguns instantes, tem pessoas fazendo a task.', cid) return true end end doTeleportThing(cid, check.Playerpos) local function checkArea(cid) if not isCreature(cid) then return LUA_ERROR end if HavePlayerPosition(cid, check.FromPosToPos[1],check.FromPosToPos[2]) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end end addEvent(checkArea, check.time*60*1000, cid) end end local str = "" if v.exp ~= nil then doPlayerAddExp(cid, v.exp ) str = str.."".. (str == "" and "" or ",") .." "..v.exp.." de exp" end if v.money ~= nil then doPlayerAddMoney(cid, v.money) str = str.."".. (str == "" and "" or ",") ..""..v.money.." gps" end if v.reward ~= nil then doAddItemsFromList(cid,v.reward) str = str.."".. (str == "" and "" or ",") ..""..getItemsFromList(v.reward) end npcHandler:say("Obrigado pela sua ajuda Recompensas: "..(str == "" and "nenhuma" or ""..str.."").." por ter completado a task do "..k, cid) setPlayerStorageValue(cid, v.storage, "Finished") setPlayerStorageValue(cid, v.storage_start, 0) setPlayerStorageValue(cid, 521456, getPlayerStorageValue(cid, 521456) == -1 and 1 or getPlayerStorageValue(cid, 521456)+1) finisheAllTask(cid) else npcHandler:say('Desculpe,mas você só matou '..((contagem)-1)..' de '..v.count..' '..k, cid) end end end else npcHandler:say("você não está em nenhuma missão task", cid) end elseif isInArray({"sair","leave","exit"}, msg) then if CheckTask(cid) then talkState[talkUser] = 2 for k, v in pairs(tasktabble) do if getPlayerStorageValue(cid,v.storage_start) >= 1 then storagesair = v.storage_start local contagem = getPlayerStorageValue(cid, v.storage) if (contagem == -1) then contagem = 1 end npcHandler:say('você está participando de uma missão task do '..k..' e já tem '..((contagem)-1)..' '..k..' mortos, deseja mesmo sair?', cid) end end else npcHandler:say("você não está em nenhuma missão task", cid) end elseif msgcontains(msg, 'yes') and talkState[talkUser] == 2 then setPlayerStorageValue(cid, storagesair, 0) npcHandler:say("Você foi retirado da task com sucesso!", cid) elseif msg == "no" then selfSay("Tudo bem então", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) NPC Ludger.xml <?xml version="1.0"?> <npc name="Ludger" script="data/npc/scripts/simple_task.lua" walkinterval="50000" floorchange="0"> <health now="100" max="100"/> <look type="129" head="95" body="116" legs="121" feet="115" addons="3"/> <parameters> <parameter key="message_greet" value="Ola |PLAYERNAME|. quer fazer uma {task}? ou {sair} de uma? tambem pode {receber} premios se terminou ela!" /> </parameters> </npc> Como configurar? -- configuração task monstros -- para configurar você vai ali no Mods lá tem uma tabela chamada 'tasktabble' que funciona da seguinte maneira: ["nome da task"] -- aqui você coloca o nome da task monster_race={"nome dos monstro"} -- aqui você coloca o nome dos monstro que vão contar na task exemplo: monster_race={"cyclops","cyclops smith","cyclops drone"} ou seja vai contar nessa task tanto se eu matar um 'cyclops' como matar tbm um 'cyclops drone' storage_start -- n mexa, é para checar se ele está com a task storage -- é o valor da storage para fazer a contagem. obs: não edite count -- é o total de monstro que tem que matar money -- é qnto de dinheiro ele vai receber ao terminar a task, se n quiser colocar pra receber money só remover essa parte exp -- é quanto ele vai ganhar de exp ao terminar a task, se n quiser colocar pra receber exp só remover essa parte reward -- é a lista dos items que ele vai ganhar ao terminar a task, caso não queira que ele receba items só remover essa parte -- configuração bosses -- em mods tem uma tabela chamada 'configbosses_task' configbosses_task = { {race = "minotaur",Playerpos = {x = 189, y = 57, z = 7}, FromPosToPos = {{x = 186, y = 54, z = 7},{x = 193, y = 60, z = 7}},time = 5}, {race = "necromancer",Playerpos = {x = 196, y = 39, z = 7}, FromPosToPos = {{x = 195, y = 37, z = 7},{x = 198, y = 41, z = 7}}, time = 5}, {race = "dragon",Playerpos = {x = 208, y = 59, z = 7}, FromPosToPos = {{x = 206, y = 56, z = 7},{x = 209, y = 65, z = 7}}, time = 5} } race -- é o nome da task que vai ter boss, só olhar dentro dos [""] que vc editou a tabela dos monstros Playerpos -- é pra onde o jogador vai ao entrar no boss FromPosToPos -- nessa parte são duas pos, é o começo da área e o final da área do boss time -- é o limite de tempo em minutos que o jogador vai poder ficar na sala do boss -- configuração recompensas top 10 jogadores terminar todas as TASKS -- ali em mods tem essa tabela: local config = { exp = {true,100000}, -- vai ganhar exp? se true edite a exp money = {true,200000}, -- vai ganhar money? se true edite a qntidade de dinheiro items ={false,{{2124,2},{2173,1}}}, -- vai receber items? se true edite os items dentro da tabela premium ={false,5} -- vai receber premium days? se true edite os dias q vai receber } Editado Outubro 24, 2012 por Vodkart Kevin vem 69 e Duhisback reagiu a isso 2 Link para o comentário Compartilhar em outros sites More sharing options...
teteusinhu 1 Postado Fevereiro 14, 2011 Share Postado Fevereiro 14, 2011 Boa Vodkart, estava pensando em algo diferente ... Ai está =D Muito Bom Mesmo =D Link para o comentário Compartilhar em outros sites More sharing options...
Demonbholder 420 Postado Fevereiro 14, 2011 Share Postado Fevereiro 14, 2011 Aee velho, ficou muito bom. Link para o comentário Compartilhar em outros sites More sharing options...
meubk 257 Postado Fevereiro 14, 2011 Share Postado Fevereiro 14, 2011 legal vod, está de parabéns mto foda. bjus gatão <3. Link para o comentário Compartilhar em outros sites More sharing options...
gabrielf10 6 Postado Março 8, 2011 Share Postado Março 8, 2011 Boa mano, ótimo sistema, gostei muito, como você disse, é uma task simples, tem previsão para sair uma mais complexa? Link para o comentário Compartilhar em outros sites More sharing options...
gabrielf10 6 Postado Março 8, 2011 Share Postado Março 8, 2011 Boa mano, ótimo sistema, gostei muito, como você disse, é uma task simples, tem previsão para sair uma mais complexa? Link para o comentário Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Março 9, 2011 Autor Share Postado Março 9, 2011 Quando eu tiver um tempinho eu vou dar uma melhorada nela,alias alguma sugestão para a task? abraços Link para o comentário Compartilhar em outros sites More sharing options...
beto06 304 Postado Abril 18, 2011 Share Postado Abril 18, 2011 Olá, olá! É possível adicionar um outfit como recompensa em alguma task? Script ótimo. REP++ Link para o comentário Compartilhar em outros sites More sharing options...
Piabeta Kun 359 Postado Junho 1, 2011 Share Postado Junho 1, 2011 qro saber se tem como vc terminar a task o player fala com npc e se tiver completo ele teleporte o player para um lugar celecionado para infrentar o boss do monstro da task! Link para o comentário Compartilhar em outros sites More sharing options...
Hudsin 47 Postado Junho 2, 2011 Share Postado Junho 2, 2011 Tem como fazer em conjunto dando Party e pra Repartir EXP tem como ajeitar pra 1 só poder fazer? Link para o comentário Compartilhar em outros sites More sharing options...
Carlinhow789 1 Postado Junho 4, 2011 Share Postado Junho 4, 2011 oq temq fala com o npc pra pode começa a faser? Link para o comentário Compartilhar em outros sites More sharing options...
Piabeta Kun 359 Postado Junho 13, 2011 Share Postado Junho 13, 2011 outra coisa testando aki, tem alguns bugs! 1° ele nao diferencia um frost dragon ou um dragoj lord de um dragon! 2° task de bheolder nao funfa! vc mata e nao soma pontos! espero resposta desse post e do meu outro la de cima! Link para o comentário Compartilhar em outros sites More sharing options...
gonorreiaswat 151 Postado Junho 17, 2011 Share Postado Junho 17, 2011 Créditos Finais: Vodkart & Demonbholder Versão testada: 8.54 ~ 8.60 Sobre: é um npc de task simples,onde você tem que matar "x" quantidade de monstro para receber uma recompensa ,seja ela items ou experiência. Task Adicionais: - Comando que checa quantidade de monstro que você já matou. - Ao completar todas as task você recebe items especiais. - Os 10 primeiros jogadores a completar a task ganham um troféu único,items + Premium days.(configuravél) Screen: ------ Creaturescript taskcount.lua function onKill(cid, target) local m = { ["minotaur mage"] = 91001, ["orc spearman"] = 91002, ["cyclops"] = 91003, ["cave rat"] = 91004, ["fire devil"] = 91005, ["orc warrior"] = 91006, ["slime"] = 91007, ["beholder"] = 91008, ["dragon hatchling"] = 91009, ["wyvern"] = 91010, ["fire elemental"] = 91011, ["blue djinn"] = 91012, ["demon skeleton"] = 91013, ["dragon"] = 91014, ["dragon lord"] = 91015, ["vampire"] = 91016, ["crystal spider"] = 91017, ["earth elemental"] = 91018, ["hero"] = 91019, ["avalanche"] = 91020, ["giant spider"] = 91021, ["fury"] = 91022, ["orc warlord"] = 91023, ["green djinn"] = 91024, ["demon"] = 91025, ["hydra"] = 91026, ["frost dragon"] = 91027, ["warlock"] = 91028, ["medusa"] = 91029, ["grim reaper"] = 91030, ["undead dragon"] = 91031, ["ferumbras"] = 91032, ["orshabaal"] = 91033, ["morgaroth"] = 91034, ["ghazbaran"] = 91035, ["minishabaal"] = 91036, ["diabolic imp"] = 91037, ["juggernaut"] = 91038, ["behemoth"] = 91039 } if(isMonster(target) == TRUE) then local n = getCreatureName(target) local name_monster = m[string.lower(n)] if(name_monster) then local contagem = getPlayerStorageValue(cid, name_monster) if(contagem == -1) then contagem = 1 end setPlayerStorageValue(cid, name_monster, contagem+1) end end return TRUE end creaturescript/script/login.lua registerCreatureEvent(cid, "task_count") creaturescript.xml <event type="kill" name="task_count" script="taskcount.lua"/> Talkactions Talkactions/script task_complete.lua function onSay(cid, words, param) function pairsByKeys (t, f) local a = {} for n in pairs(t) do table.insert(a, n) end table.sort(a, f) local i = 0 local iter = function () i = i + 1 if a[i] == nil then return nil else return a[i], t[a[i]] end end return iter end local m = { ["minotaur mage"] = {storage = 91001,count = 12}, ["orc spearman"] = {storage = 91002,count = 14}, ["cyclops"] = {storage = 91003,count = 25}, ["cave rat"] = {storage = 91004,count = 10}, ["fire devil"] = {storage = 91005,count = 17}, ["orc warrior"] = {storage = 91006,count = 28}, ["slime"] = {storage = 91007,count = 18}, ["beholder"] = {storage = 91008,count = 40}, ["dragon hatchling"] = {storage = 91009,count = 45}, ["wyvern"] = {storage = 91010,count = 55}, ["fire elemental"] = {storage = 91011,count = 60}, ["blue djinn"] = {storage = 91012,count = 64}, ["demon skeleton"] = {storage = 91013,count = 45}, ["dragon"] = {storage = 91014,count = 80}, ["dragon lord"] = {storage = 91015,count = 90}, ["vampire"] = {storage = 91016,count = 50}, ["crystal spider"] = {storage = 91017,count = 45}, ["earth elemental"] = {storage = 91018,count = 80}, ["hero"] = {storage = 91019,count = 72}, ["avalanche"] = {storage = 91020,count = 83}, ["giant spider"] = {storage = 91021,count = 97}, ["fury"] = {storage = 91022,count = 105}, ["orc warlord"] = {storage = 91023,count = 74}, ["green djinn"] = {storage = 91024,count = 65}, ["demon"] = {storage = 91025,count = 400}, ["hydra"] = {storage = 91026,count = 295}, ["frost dragon"] = {storage = 91027,count = 330}, ["warlock"] = {storage = 91028,count = 210}, ["medusa"] = {storage = 91029,count = 152}, ["grim reaper"] = {storage = 91030,count = 350}, ["undead dragon"] = {storage = 91031,count = 200}, ["ferumbras"] = {storage = 91032,count = 7}, ["orshabaal"] = {storage = 91033,count = 20}, ["morgaroth"] = {storage = 91034,count = 10}, ["ghazbaran"] = {storage = 91035,count = 20}, ["minishabaal"] = {storage = 91036,count = 243}, ["diabolic imp"] = {storage = 91037,count = 163}, ["juggernaut"] = {storage = 91038,count = 45}, ["behemoth"] = {storage = 91039,count = 147} } local str = "" str = str .. "Task Completed :\n\n" for k, v in pairsByKeys(m) do local contagem = getPlayerStorageValue(cid, v.storage) if(contagem == -1) then contagem = 1 end str = str..k.." = ["..((contagem)-1).."/"..v.count.."]\n" end str = str .. "" return doShowTextDialog(cid, 8983, str) end talkactions.xml <talkaction words="!task" script="task_complete.lua"/> NPC NPC/SCRIPT simple_task.lua local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 MonsterCount(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end local contagem = getPlayerStorageValue(cid, parameters.storage) if(contagem == -1) then contagem = 1 end if getPlayerStorageValue(cid, parameters.x) <= 0 then if (((contagem)-1) >= parameters.count) then doPlayerAddExp(cid, parameters.exp) for k,v in pairs(parameters.reward) do doPlayerAddItem(cid, v.item, v.count or 1) end setPlayerStorageValue(cid, parameters.x, 1) npcHandler:say('Thanks for your help,receive your rewards!', cid) else npcHandler:say('Sorry,but you still only killed '..((contagem)-1)..' monsters!', cid) npcHandler:resetNpc() end else npcHandler:say('You can only receive the reward once!', cid) npcHandler:resetNpc() end return TRUE end function Completed(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if getPlayerStorageValue(cid, parameters.x) <= 0 then for i = 21001,21039 do if getPlayerStorageValue(cid,i) <= 0 then return npcHandler:say('Sorry,but you have not still finished the whole task!', cid) end end doPlayerAddExp(cid, parameters.exp) for k,v in pairs(parameters.reward) do doPlayerAddItem(cid, v.item, v.count or 1) end setPlayerStorageValue(cid, parameters.x, 1) b = getGlobalStorageValue(63004) if b == -1 then b = 1 end if b < 11 then setGlobalStorageValue(63004,b+1) npcHandler:say('you recivied items,trophy and 10 days of premium account!!', cid) doBroadcastMessage('[Task Mission Complete] '..getCreatureName(cid)..' was the '..b..'° to finish the task!.') doPlayerAddPremiumDays(cid, 10) doPlayerAddItem(cid, 2646,1) doPlayerAddItem(cid, 2343,1) doItemSetAttribute(doPlayerAddItem(cid, 7369), "name", "trophy of the 10 firsts finish all task") end npcHandler:say('Congratulations,now you have completed all the task!', cid) npcHandler:resetNpc() else npcHandler:say('You can only receive the reward once!', cid) npcHandler:resetNpc() end return TRUE end keywordHandler:addKeyword({'task'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I have a mission to {low level},{mid level} and {high level},{all mission} or {help} for know the amount of monsters you/ve killed!'}) keywordHandler:addKeyword({'all mission'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Wow! You/re a great hunter!,you really {completed} all mission?'}) keywordHandler:addKeyword({'help'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'To see how many monsters you killed just use command {!task}'}) keywordHandler:addKeyword({'low level'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Then low level you have to kill some monsters like: {minotaur mage},{orc spearman},{cyclops},{cave rat},{fire devil},{fire devil},{orc warrior},{slime},{beholder},{dragon hatchling} and {wyvern}!'}) keywordHandler:addKeyword({'mid level'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'hmm mid level,you have to kill some monsters: {fire elemental},{blue djinn},{demon skeleton},{dragon},{dragon lord},{crystal spider},{earth elemental},{hero},{avalanche},{giant spider},{fury},{orc warlord} and {green djinn}'}) keywordHandler:addKeyword({'high level'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'haha high level,to you it will not be easy because you have to kill some monsters: {demon},{hydra},{frost dragon},{warlock},{medusa},{grim reaper},{undead dragon},{ferumbras},{orshabaal},{morgaroth},{ghazbaran},{minishabaal},{diabolic imp},{juggernaut} and {behemoth}'}) local node1 = keywordHandler:addKeyword({'minotaur mage'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 12 minotaur mage? {yes}'}) node1:addChildKeyword({'yes'}, MonsterCount, {x = 21001,storage = 91001,count = 12,reward = {{item = 2656, count = 1},{item = 7730, count = 1},{item = 2152, count = 20}},exp = 1000}) node1:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node2 = keywordHandler:addKeyword({'orc spearman'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 14 orc spearman? {yes}'}) node2:addChildKeyword({'yes'}, MonsterCount, {x = 21002, storage = 91002,count = 14,reward = {{item = 2152, count = 50}},exp = 2000}) node2:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node3 = keywordHandler:addKeyword({'cyclops'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 25 cyclops? {yes}'}) node3:addChildKeyword({'yes'}, MonsterCount, {x = 21003, storage = 91003,count = 25,reward = {{item = 2462, count = 1},{item = 2648, count = 1},{item = 2152, count = 35}},exp = 4000}) node3:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node4 = keywordHandler:addKeyword({'cave rat'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 10 cave rat? {yes}'}) node4:addChildKeyword({'yes'}, MonsterCount, {x = 21004, storage = 91004,count = 10,reward = {{item = 2696, count = 1},{item = 2152, count = 20}},exp = 0}) node4:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node5 = keywordHandler:addKeyword({'fire devil'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 17 fire devil? {yes}'}) node5:addChildKeyword({'yes'}, MonsterCount, {x = 21005, storage = 91005,count = 17,reward = {{item = 2160, count = 2},{item = 2491, count = 1},{item = 2488, count = 1}},exp = 10000}) node5:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node6 = keywordHandler:addKeyword({'orc warrior'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 28 orc warrior? {yes}'}) node6:addChildKeyword({'yes'}, MonsterCount, {x = 21006, storage = 91006,count = 28,reward = {{item = 2152, count = 25}},exp = 0}) node6:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node7 = keywordHandler:addKeyword({'slime'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 18 slime? {yes}'}) node7:addChildKeyword({'yes'}, MonsterCount, {x = 21007, storage = 91007,count = 18,reward = {{item = 2160, count = 1},{item = 2477, count = 1}},exp = 15000}) node7:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node8 = keywordHandler:addKeyword({'beholder'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 40 beholder? {yes}'}) node8:addChildKeyword({'yes'}, MonsterCount, {x = 21008, storage = 91008,count = 40,reward = {{item = 2160, count = 2},{item = 2518, count = 1}},exp = 0}) node8:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node9 = keywordHandler:addKeyword({'dragon hatchling'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 45 dragon hatchling? {yes}'}) node9:addChildKeyword({'yes'}, MonsterCount, {x = 21009, storage = 91009,count = 45,reward = {{item = 2475, count = 1},{item = 2187, count = 1}},exp = 20000}) node9:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node10 = keywordHandler:addKeyword({'wyvern'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 55 wyvern? {yes}'}) node10:addChildKeyword({'yes'}, MonsterCount, {x = 21010, storage = 91010,count = 55,reward = {{item = 2519, count = 1},{item = 2160, count = 2}},exp = 0}) node10:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node11 = keywordHandler:addKeyword({'fire elemental'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 60 fire elemental? {yes}'}) node11:addChildKeyword({'yes'}, MonsterCount, {x = 21011,storage = 91011,count = 60,reward = {{item = 2392, count = 1},{item = 2160, count = 5}},exp = 0}) node11:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node12 = keywordHandler:addKeyword({'blue djinn'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 64 blue djinn {yes}'}) node12:addChildKeyword({'yes'}, MonsterCount, {x = 21022, storage = 91012,count = 64,reward = {{item = 2160, count = 10},{item = 2451, count = 1}},exp = 0}) node12:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node13 = keywordHandler:addKeyword({'demon skeleton'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 45 demon skeleton? {yes}'}) node13:addChildKeyword({'yes'}, MonsterCount, {x = 21013, storage = 91013,count = 45,reward = {{item = 2498, count = 1},{item = 2152, count = 30}},exp = 0}) node13:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node14 = keywordHandler:addKeyword({'dragon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 80 dragon? {yes}'}) node14:addChildKeyword({'yes'}, MonsterCount, {x = 21014, storage = 91014,count = 80,reward = {{item = 2516, count = 1},{item = 7457, count = 1},{item = 2160, count = 4}},exp = 0}) node14:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node15 = keywordHandler:addKeyword({'dragon lord'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 90 dragon lord? {yes}'}) node15:addChildKeyword({'yes'}, MonsterCount, {x = 21015, storage = 91015,count = 95,reward = {{item = 7402, count = 1},{item = 2537, count = 1}},exp = 101321}) node15:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node16 = keywordHandler:addKeyword({'vampire'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 50 vampire? {yes}'}) node16:addChildKeyword({'yes'}, MonsterCount, {x = 21016, storage = 91016,count = 50,reward = {{item = 2534, count = 1},{item = 2197, count = 1}},exp = 60000}) node16:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node17 = keywordHandler:addKeyword({'crystal spider'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 45 crystal spider? {yes}'}) node17:addChildKeyword({'yes'}, MonsterCount, {x = 21017, storage = 91017,count = 45,reward = {{item = 2160, count = 25},{item = 8920, count = 1}},exp = 0}) node17:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node18 = keywordHandler:addKeyword({'earth elemental'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 80 earth elemental? {yes}'}) node18:addChildKeyword({'yes'}, MonsterCount, {x = 21018, storage = 91018,count = 80,reward = {{item = 2160, count = 10},{item = 11114, count = 1}},exp = 80000}) node18:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node19 = keywordHandler:addKeyword({'hero'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 72 hero? {yes}'}) node19:addChildKeyword({'yes'}, MonsterCount, {x = 21019, storage = 91019,count = 72,reward = {{item = 2487, count = 1},{item = 2491, count = 1}},exp = 0}) node19:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node20 = keywordHandler:addKeyword({'avalanche'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 83 avalanche? {yes}'}) node20:addChildKeyword({'yes'}, MonsterCount, {x = 21020, storage = 91020,count = 83,reward = {{item = 8851, count = 1}},exp = 0}) node20:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node21 = keywordHandler:addKeyword({'giant spider'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 97 giant spider? {yes}'}) node21:addChildKeyword({'yes'}, MonsterCount, {x = 21021, storage = 91021,count = 97,reward = {{item = 2536, count = 1},{item = 2160, count = 13}},exp = 150000}) node21:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node22 = keywordHandler:addKeyword({'fury'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 105 fury? {yes}'}) node22:addChildKeyword({'yes'}, MonsterCount, {x = 21022, storage = 91022,count = 105,reward = {{item = 6500, count = 35},{item = 2414, count = 1}},exp = 0}) node22:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node23 = keywordHandler:addKeyword({'orc warlor'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 74 orc warlord? {yes}'}) node23:addChildKeyword({'yes'}, MonsterCount, {x = 21023, storage = 91023,count = 74,reward = {{item = 7414, count = 1}},exp = 98574}) node23:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node24 = keywordHandler:addKeyword({'green djinn'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 65 green djinn? {yes}'}) node24:addChildKeyword({'yes'}, MonsterCount, {x = 21024, storage = 91024,count = 65,reward = {{item = 2517, count = 1}},exp = 123125}) node24:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node25 = keywordHandler:addKeyword({'demon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 400 demons {yes}'}) node25:addChildKeyword({'yes'}, MonsterCount, {x = 21025, storage = 91025,count = 400,reward = {{item = 2160, count = 80},{item = 2495, count = 1},{item = 2496, count = 1},{item = 2520, count = 1},{item = 2472, count = 1}},exp = 7500000}) node25:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node26 = keywordHandler:addKeyword({'hydra'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 295 hydras? {yes}'}) node26:addChildKeyword({'yes'}, MonsterCount, {x = 21026, storage = 91026,count = 295,reward = {{item = 2160, count = 50},{item = 6433, count = 1},{item = 7434, count = 1},{item = 2197, count = 1},{item = 2476, count = 1}},exp = 2500000}) node26:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node27 = keywordHandler:addKeyword({'frost dragon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 80 frost dragons? {yes}'}) node27:addChildKeyword({'yes'}, MonsterCount, {x = 21027, storage = 91027,count = 330,reward = {{item = 2396, count = 1},{item = 2492, count = 1},{item = 2160, count = 100}},exp = 5246300}) node27:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node28 = keywordHandler:addKeyword({'warlock'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 210 warlocks? {yes}'}) node28:addChildKeyword({'yes'}, MonsterCount, {x = 21028, storage = 91028,count = 210,reward = {{item = 8918, count = 1},{item = 2206, count = 1},{item = 2173, count = 1},{item = 2160, count = 100}},exp = 27393800}) node28:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node29 = keywordHandler:addKeyword({'medusa'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 152 medusas? {yes}'}) node29:addChildKeyword({'yes'}, MonsterCount, {x = 21029, storage = 91029,count = 152,reward = {{item = 2542, count = 1},{item = 7403, count = 1},{item = 2536, count = 1},{item = 2160, count = 65}},exp = 1639300}) node29:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node30 = keywordHandler:addKeyword({'grim reaper'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 350 grim reapers? {yes}'}) node30:addChildKeyword({'yes'}, MonsterCount, {x = 21030, storage = 91030,count = 350,reward = {{item = 2160, count = 70},{item = 2474, count = 1},{item = 8927, count = 1},{item = 6433, count = 1}},exp = 38124230}) node30:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node31 = keywordHandler:addKeyword({'undead dragon'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 200 undead dragons? {yes}'}) node31:addChildKeyword({'yes'}, MonsterCount, {x = 21031, storage = 91031,count = 200,reward = {{item = 2160, count = 80},{item = 2514, count = 1},{item = 2466, count = 1}},exp = 2219180}) node31:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node32 = keywordHandler:addKeyword({'ferumbras'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 7 ferumbras? {yes}'}) node32:addChildKeyword({'yes'}, MonsterCount, {x = 21032, storage = 91032,count = 7,reward = {{item = 2472, count = 1},{item = 8925, count = 1},{item = 8904, count = 1},{item = 5903, count = 1},{item = 2160, count = 100}},exp = 5246300}) node32:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node33 = keywordHandler:addKeyword({'orshabaal'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 20 orshabaal? {yes}'}) node33:addChildKeyword({'yes'}, MonsterCount, {x = 21033, storage = 91033,count = 20,reward = {{item = 2469, count = 1},{item = 2472, count = 1},{item = 2393, count = 1},{item = 2160, count = 100}},exp = 7915800}) node33:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node34 = keywordHandler:addKeyword({'morgaroth'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 10 morgaroth? {yes}'}) node34:addChildKeyword({'yes'}, MonsterCount, {x = 21034, storage = 91034,count = 10,reward = {{item = 2523, count = 1},{item = 2415, count = 1},{item = 2160, count = 100}},exp = 15694800}) node34:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node35 = keywordHandler:addKeyword({'ghazbaran'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 20 ghazbaran? {yes}'}) node35:addChildKeyword({'yes'}, MonsterCount, {x = 21035, storage = 91035,count = 20,reward = {{item = 2494, count = 1},{item = 2408, count = 1},{item = 2390, count = 1},{item = 2160, count = 100}},exp = 15694800}) node35:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node36 = keywordHandler:addKeyword({'minishabaal'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 243 minishabaal? {yes}'}) node36:addChildKeyword({'yes'}, MonsterCount, {x = 21036, storage = 91036,count = 243,reward = {{item = 2470, count = 1},{item = 2466, count = 1},{item = 7753, count = 1},{item = 2160, count = 70}},exp = 1118190}) node36:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node37 = keywordHandler:addKeyword({'diabolic imp'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 163 diabolic imp? {yes}'}) node37:addChildKeyword({'yes'}, MonsterCount, {x = 21037, storage = 91037,count = 163,reward = {{item = 9776, count = 1},{item = 7418, count = 1},{item = 2421, count = 1},{item = 2160, count = 68}},exp = 2125150}) node37:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node38 = keywordHandler:addKeyword({'juggernaut'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 45 juggernaut? {yes}'}) node38:addChildKeyword({'yes'}, MonsterCount, {x = 21038, storage = 91038,count = 45,reward = {{item = 2506, count = 1},{item = 2522, count = 1},{item = 2160, count = 90}},exp = 24858000}) node38:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node39 = keywordHandler:addKeyword({'behemoth'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'You already killed 147 behemoth? {yes}'}) node39:addChildKeyword({'yes'}, MonsterCount, {x = 21039, storage = 91039,count = 147,reward = {{item = 6391, count = 1},{item = 5741, count = 1},{item = 2160, count = 65}},exp = 3138470}) node39:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) local node40 = keywordHandler:addKeyword({'completed'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'I have to give you special items! You already killed all monster? {yes}'}) node40:addChildKeyword({'yes'}, Completed, {x = 21040,reward = {{item = 2471, count = 1},{item = 2469, count = 1},{item = 9932, count = 1},{item = 2160, count = 100}},exp = 54042300}) node40:addChildKeyword({'no'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Ok, then.', reset = true}) npcHandler:addModule(FocusModule:new()) NPC/ Ludger.xml <?xml version="1.0"?> <npc name="Ludger" script="data/npc/scripts/simple_task.lua" walkinterval="50000" floorchange="0"> <health now="100" max="100"/> <look type="129" head="95" body="116" legs="121" feet="115" addons="3"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|.I have some {task} for you!" /> </parameters> </npc> Caso queiram fazer Download dos script: Download task Scan ~ Vixe, oque eu vou dizer pra vc? Perfeito o Script, sem choros / sem lágrimas REP+ valeu ae! Link para o comentário Compartilhar em outros sites More sharing options...
mxlr14 3 Postado Agosto 9, 2011 Share Postado Agosto 9, 2011 1.0Depois que o players faz a task ele pode fazer novamente a mesma task ? 1.1Ex: faço a dos demon, terminei ganhei meus premios, posso fazer ela novamente ?. 2.0 Como faço para ajustar o numero de monstros e experiencia que ganha por fazer cada task ? Link para o comentário Compartilhar em outros sites More sharing options...
Vodkart 1515 Postado Agosto 25, 2011 Autor Share Postado Agosto 25, 2011 1.0Depois que o players faz a task ele pode fazer novamente a mesma task ? Não 1.1Ex: faço a dos demon, terminei ganhei meus premios, posso fazer ela novamente ?. Não 2.0 Como faço para ajustar o numero de monstros e experiencia que ganha por fazer cada task ? count -- quantidade de monstro que tem que matar Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados