Ir para conteúdo
  • Cadastre-se

Sistema [8.6] Task System 4.0! (Task system + Daily Task System)


Posts Recomendados

@Vodkart Usei/Uso esse script faz um tempão sempre funcionou certinho, nunca ocorreu bug algum, mas hoje fui aumentar as premiações e aconteceu algo estranho, quando eu tento por mais de 1 item de premiação da erro, mas ai é que ta, nas ultimas 5 task, ja ta pra ganhar 2 itens e não buga mas se eu por em outras tasks não funciona o script só nas ultimas.

 

Esse aqui é funcionando normal !

Spoiler

<?xml version="1.0" encoding="ISO-8859-1"?> 
<mod name="Simple Task" version="4.0" author="Vodkart" contact="tibiaking.com" enabled="yes"> 
<config name="task_func"><![CDATA[
task_sys = {
    [1] = {name = "Trolls", start = 176201, monsters_list = {"Troll","Troll champion"}, level = 8, count = 120, points = 2, items = {{2448,1}}, reward = {{2645,1}}, exp = 100000, money = 20000},
    [2] = {name = "rotworms", start = 176202, monsters_list = {"rotworm","carrion worm","Rotworm Queen"}, level = 8, count = 150, points = 2, items = {{2530,1}}, reward = {{2520,1}}, exp = 100000, money = 30000},
    [3] = {name = "cyclops", start = 176203, monsters_list = {"cyclops","cyclops smith","cyclops drone"}, level = 8, count = 130, points = 2, items = {{2490,1}}, reward = {{2466,1}}, exp = 100000, money = 40000},
    [4] = {name = "Dragon", start = 176204, monsters_list = {"dragon"}, level = 8, count = 150, points = 3, items = {{2397,1}}, reward = {{2195,1}}, exp = 150000, money = 50000},
    [5] = {name = "Dragon Lord", start = 176205, monsters_list = {"Dragon Lord"}, level = 300, count = 200, points = 3, items = {{2528,3}}, reward = {{2470,1}}, exp = 150000, money = 60000},
    [6] = {name = "Behemoth", start = 176206, monsters_list = {"Behemoth"}, level = 8, count = 150, points = 3, items = {{5930,3}}, reward = {{8889,1}}, exp = 150000, money = 70000},
    [7] = {name = "Lizard Dragons" ,start = 176220, monsters_list = {"Lizard Chosen","Lizard Dragon Priest","Lizard High Guard","Lizard Legionnaire", "Lizard Zaogun"}, level = 8, count = 350, points = 3, items = {{11297,3}}, reward = {{2493,1}}, exp = 150000, money = 80000},
    [8] = {name = "Defiler", start = 176208, monsters_list = {"Defiler"}, level = 8, count = 300, points = 3, items = {{6500,4}}, reward = {{2494,1}}, exp = 150000, money = 90000},
    [9] = {name = "Hellfire Fighter", start = 176209, monsters_list = {"Hellfire Fighter"}, level = 8, count = 350, points = 4, items = {{2136,4}}, reward = {{2538,1}}, exp = 250000, money = 100000},
    [10] = {name = "Hydra", start = 176210, monsters_list = {"Hydra"}, level = 100, count = 600, points = 4, items = {{4850,5}}, reward = {{6391,1}}, exp = 250000, money = 100000},
    [11] = {name = "Medusa", start = 176211, monsters_list = {"Medusa"}, level = 100, count = 650, points = 5, items = {{2536,5}}, reward = {{2517,1}}, exp = 250000, money = 150000},
    [12] = {name = "Frost Dragon", start = 176212, monsters_list = {"Frost Dragon"}, level = 100, count = 800, points = 5, items = {{1976,7}}, reward = {{1992,1}}, exp = 250000, money = 150000},
    [13] = {name = "Warlock" ,start = 176213, monsters_list = {"Warlock"}, level = 200, count = 800, points = 5, items = {{2656,7}}, reward = {{2343,1}}, exp = 350000, money = 200000},
    [14] = {name = "Grim Reaper" ,start = 176214, monsters_list = {"Grim Reaper"}, level = 250, count = 700, points = 6, items = {{2521,9}}, reward = {{2499,1}}, exp = 350000, money = 200000},
    [15] = {name = "Demon" ,start = 176215, monsters_list = {"Demon"}, level = 300, count = 1000, points = 6, items = {{5954,9}}, reward = {{2644,1}}, exp = 450000, money = 300000},
    [16] = {name = "Medusa Vip" ,start = 176216, monsters_list = {"Medusa Vip"}, level = 350, count = 1200, points = 6, items = {{7887,11}}, reward = {{6132,1}}, exp = 450000, money = 300000},
    [17] = {name = "Hydra Vip" ,start = 176217, monsters_list = {"Hydra Vip"}, level = 350, count = 1200, points = 6, items = {{2498,11}}, reward = {{2527,1}}, exp = 550000, money = 400000},
    [18] = {name = "Grim Reaper Vip" ,start = 176218, monsters_list = {"Grim Reaper Vip"}, level = 350, count = 1200, points = 8, items = {{6300,15}}, reward = {{2518,1}}, exp = 550000, money = 400000},
    [19] = {name = "Warlock Vip" ,start = 176219, monsters_list = {"Warlock Vip"}, level = 350, count = 1200, points = 8, items = {{2466,15}}, reward = {{2519,1}}, exp = 650000, money = 500000},
    [20] = {name = "Frost Dragon Vip" ,start = 176220, monsters_list = {"Frost Dragon Vip"}, level = 350, count = 1200, points = 8, items = {{2492,19}}, reward = {{8932,1}}, exp = 650000, money = 500000},
    [21] = {name = "Demon Vip" ,start = 176221, monsters_list = {"Demon Vip"}, level = 350, count = 2000, points = 10, items = {{2418,19}}, reward = {{8926,1}}, exp = 750000, money = 600000},
    [22] = {name = "Dragon Lord Vip II" ,start = 176222, monsters_list = {"Dragon Lord Vip II"}, level = 450, count = 1500, points = 10, items = {{2414,25}}, reward = {{2444,1}}, exp = 750000, money = 600000},
    [23] = {name = "Frost Dragon Vip II" ,start = 176223, monsters_list = {"Frost Dragon Vip II"}, level = 450, count = 1500, points = 10, items = {{7290,25}}, reward = {{7367,1}}, exp = 850000, money = 700000},
    [24] = {name = "Grim Reaper Vip II" ,start = 176224, monsters_list = {"Grim Reaper Vip II"}, level = 450, count = 1500, points = 10, items = {{5909,30}}, reward = {{7367,1}}, exp = 850000, money = 700000},
    [25] = {name = "Hydra Vip II" ,start = 176225, monsters_list = {"Hydra Vip II"}, level = 450, count = 1500, points = 10, items = {{2476,30}}, reward = {{7414,1}}, exp = 2500000, money = 1000000},
    [26] = {name = "Medusa Vip II" ,start = 176226, monsters_list = {"Medusa Vip II"}, level = 450, count = 1500, points = 10, items = {{2143,75}}, reward = {{2495,1},{2471,1}}, exp = 2500000, money = 1000000},
    [27] = {name = "Lord Of Demon" ,start = 176227, monsters_list = {"Lord Of Demon"}, level = 500, count = 6666, points = 10, items = {{2462,120}}, reward = {{9969,5},{2366,1}}, exp = 10000000, money = 1000000},
    [28] = {name = "Bossing Of Baiak" ,start = 176228, monsters_list = {"Bossing Of Baiak"}, level = 500, count = 30, points = 10, items = {{5903,5}}, reward = {{9969,5},{2366,1}}, exp = 20000000, money = 3000000},
    [29] = {name = "Arabian" ,start = 176229, monsters_list = {"Arabian"}, level = 500, count = 30, points = 10, items = {{10521,10}}, reward = {{2523,1},{2263,1}}, exp = 20000000, money = 3000000},
    [30] = {name = "Shadow Warrior" ,start = 176230, monsters_list = {"Shadow Warrior"}, level = 500, count = 70, points = 10, items = {{5875,25}}, reward = {{2298,1},{11114,1}}, exp = 20000000, money = 3000000},
    [31] = {name = "Castle Guardian" ,start = 176231, monsters_list = {"Castle Guardian"}, level = 600, count = 25, points = 25, items = {{2520,100}}, reward = {{9969,15},{2366,2}}, exp = 20000000, money = 5000000}
}
daily_task = {
    [1] = {name = "Hydra Vip" ,monsters_list = {"Hydra Vip"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
    [2] = {name = "Grim Reaper Vip" ,monsters_list = {"Grim Reaper Vip"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
    [3] = {name = "Grim Reaper Vip II" ,monsters_list = {"Grim Reaper Vip II"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
    [4] = {name = "Frost Dragon Vip" ,monsters_list = {"Frost Dragon Vip"}, count = 750, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
    [5] = {name = "Dragon Lord Vip II" ,monsters_list = {"Dragon Lord Vip II"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
    [6] = {name = "Frost Dragon Vip II" ,monsters_list = {"Frost Dragon Vip II"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
    [7] = {name = "Frost Dragon" ,monsters_list = {"Frost Dragon"}, count = 300, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
    [8] = {name = "Hydra" ,monsters_list = {"Hydra"}, count = 700, points = 3, reward = {{9969,1}}, exp = 3000000, money = 3000000},
    [9] = {name = "Demon Vip" ,monsters_list = {"Demon Vip"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
    [10] = {name = "Hydra Vip II" ,monsters_list = {"Hydra Vip II"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
    [11] = {name = "Medusa Vip" ,monsters_list = {"Medusa Vip"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
    [12] = {name = "Warlock Vip" ,monsters_list = {"Warlock Vip"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000}
}
task_sys_storages = {176601, 176602, 176603, 176604, 176605, 176606, 176607, 176608} -- task, points, count, daily task, daily count, daily time , daily start, contador
function getTaskMission(cid)
    return getPlayerStorageValue(cid,task_sys_storages[1]) < 0 and 1 or getPlayerStorageValue(cid,task_sys_storages[1])
end
function getDailyTaskMission(cid)
    return getPlayerStorageValue(cid,task_sys_storages[4]) < 0 and 1 or getPlayerStorageValue(cid,task_sys_storages[4])
end
function getTaskPoints(cid)
    return getPlayerStorageValue(cid,task_sys_storages[2]) < 0 and 0 or getPlayerStorageValue(cid,task_sys_storages[2])
end
function doRandomDailyTask(cid)
    local t = {
        [{6,100}] = {1,3},
        [{101,200}] = {4,6},
        [{201,300}] = {7,9},
        [{301,math.huge}] = {10,12}
    }
    for a , b in pairs(t) do
        if getPlayerLevel(cid) >= a[1] and getPlayerLevel(cid) <= a[2] then
            return math.random(b[1], b[2])
        end
    end
    return 0
end
function GetRankTask(cid)
    local ranks = {
        [{1, 40}] = "Leite com Pera", 
        [{41, 80}] = "Iniciante",
        [{81, 120}] = "Intermediario",
        [{121, 200}] = "Fodao",        
        [{201, math.huge}] = "Supremo Lord"
    }
    for v , r in pairs(ranks) do
        if getTaskPoints(cid) >= v[1] and getTaskPoints(cid) <= v[2] then
            return r
        end
    end
    return 0
end
function getItemsFromList(items)
    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 doRemoveItemsFromList(cid,items)
    local count = 0
    if table.maxn(items) > 0 then
        for i = 1, table.maxn(items) do
            if getPlayerItemCount(cid,items[i][1]) >= items[i][2] then
            count = count + 1 end 
        end 
    end
    if count == table.maxn(items) then
        for i = 1, table.maxn(items) do doPlayerRemoveItem(cid,items[i][1],items[i][2]) end
    else 
        return false 
    end
    return true 
end
function getMonsterFromList(monster)
    local str = ''
    if #monster > 0 then
        for i = 1, #monster do
            str = str .. monster[i]
            if i ~= #monster then str = str .. ', ' end
        end 
    end
    return str
end
function GiveRewardsTask(cid, items)
    local backpack = doPlayerAddItem(cid, 1999, 1) -- backpackID
    for _, i_i in ipairs(items) do
        local item, amount = i_i[1],i_i[2]
        if isItemStackable(item) or amount == 1 then
            doAddContainerItem(backpack, item, amount)
        else
            for i = 1, amount do
                doAddContainerItem(backpack, item, 1)
            end
        end
    end
end
function isSummon(cid)
    if(not isCreature(cid)) then
        return false
    end
    return getCreatureMaster(cid) ~= cid
end
function getDeathsAndKills(cid, type) -- by vodka
  local query,d = db.getResult("SELECT `player_id` FROM "..(tostring(type) == "kill" and "`player_killers`" or "`player_deaths`").." WHERE `player_id` = "..getPlayerGUID(cid)),0
  if (query:getID() ~= -1) then
    repeat
      d = d+1
    until not query:next()
    query:free()
  end
  return d
end
]]></config>
<event type="login" name="TaskLogin" event="script"><![CDATA[
function onLogin(cid)
    registerCreatureEvent(cid, "KillTask")
    registerCreatureEvent(cid, "TaskLook")
    return true
end]]></event>
<talkaction words="/task;!task" event="buffer"><![CDATA[
domodlib('task_func')
param,task,daily = param:lower(), getTaskMission(cid), getDailyTaskMission(cid)
if isInArray({"counter","contador"},param) then
    setPlayerStorageValue(cid, task_sys_storages[8], getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and 1 or 0)
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"[Task System] O contador foi "..(getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and "ativado" or "desativado")..".") return true
elseif isInArray({"daily","diaria"},param) then
    if not daily_task[daily] or getPlayerStorageValue(cid, task_sys_storages[7]) <= 0 then
        doPlayerSendCancel(cid, "Desculpe, Mas você não está em nenhuma Daily Task.") return true
    elseif getPlayerStorageValue(cid, task_sys_storages[6]) - os.time() <= 0 and getPlayerStorageValue(cid, task_sys_storages[5]) < daily_task[daily].count then
        doPlayerSendCancel(cid,"Desculpe, Mas Você não terminou a Daily Task a tempo! Por favor volte ao npc e comece uma nova Daily Task!") return true
    end
    return doShowTextDialog(cid, 8983, "[->] CURRENT DAILY TASK INFO [<-]\n\nNome: "..daily_task[daily].name.."\nProgresso: ["..(getPlayerStorageValue(cid, task_sys_storages[5]) < 0 and 0 or getPlayerStorageValue(cid, task_sys_storages[5])).."/"..daily_task[daily].count.."]\nPrazo para entrega: "..os.date("%d %B %Y %X ", getPlayerStorageValue(cid,task_sys_storages[6])).."\nMonstros para caçar: "..getMonsterFromList(daily_task[daily].monsters_list).."\n\n[->] CURRENT TASK REWARDS [<-]\n\nMoney: "..(daily_task[daily].money > 0 and daily_task[daily].money or 0).."\nExperiencia: "..(daily_task[daily].exp > 0 and daily_task[daily].exp or 0).."\nTask Points: "..daily_task[daily].points.."\nItems: "..(#daily_task[daily].reward > 0 and getItemsFromList(daily_task[daily].reward) or "Nenhum item de recompensa")..".")
end
if not task_sys[task] or getPlayerStorageValue(cid, task_sys[task].start) <= 0 then
    doPlayerSendCancel(cid, "você não está em nenhuma task.") return true
end 
return doShowTextDialog(cid, 8983, "-> CURRENT TASK ["..getTaskMission(cid).."/"..#task_sys.."] <-\n\nTask Name: "..task_sys[task].name.."\nTask Level: "..task_sys[task].level.."\nTask Progress: ["..(getPlayerStorageValue(cid, task_sys_storages[3]) < 0 and 0 or getPlayerStorageValue(cid, task_sys_storages[3])).."/"..task_sys[task].count.."]\nMonster To Hunt: "..getMonsterFromList(task_sys[task].monsters_list)..".\nItens Para Entrega: "..(#task_sys[task].items > 0 and getItemsFromList(task_sys[task].items) or "Nenhum")..".\n\n[->] CURRENT TASK REWARDS [<-]\n\nReward Money: "..(task_sys[task].money > 0 and task_sys[task].money or 0).."\nReward Experiencia: "..(task_sys[task].exp > 0 and task_sys[task].exp or 0).."\nReward Points: "..task_sys[task].points.."\nRedward Items: "..(#task_sys[task].reward > 0 and getItemsFromList(task_sys[task].reward) or "Nenhum item de recompensa")..".")
]]></talkaction>
<event type="look" name="TaskLook" event="script"><![CDATA[
domodlib('task_func')
function onLook(cid, thing, position, lookDistance)
    if isPlayer(thing.uid) and getTaskPoints(thing.uid) > 0 then
        doPlayerSetSpecialDescription(thing.uid, "\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").. " has Killed: ["..getDeathsAndKills(thing.uid, "kill").."] Players.\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Died: ["..getDeathsAndKills(thing.uid, "death").."] Times.\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." is a "..GetRankTask(thing.uid))
    end    
    return true
end]]></event> 
<event type="kill" name="KillTask" event="script"><![CDATA[
domodlib('task_func')
function onKill(cid, target)
    if isPlayer(cid) and isMonster(target) then
        local t,daily = task_sys[getTaskMission(cid)], daily_task[getDailyTaskMission(cid)]
        if t and getPlayerStorageValue(cid, t.start) > 0 and isInArray(t.monsters_list, getCreatureName(target):lower()) and getPlayerStorageValue(cid, task_sys_storages[3]) < t.count then
            setPlayerStorageValue(cid, task_sys_storages[3], getPlayerStorageValue(cid, task_sys_storages[3]) < 0 and 1 or (getPlayerStorageValue(cid, task_sys_storages[3])+1))
            if getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and getPlayerStorageValue(cid, task_sys_storages[3]) < t.count then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Task System] defeated Total [" .. getPlayerStorageValue(cid, task_sys_storages[3]) .. "/" .. t.count .. "] da Task do " .. t.name .. ".")
            end
            if getPlayerStorageValue(cid, task_sys_storages[3]) >= t.count then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Task System] Parabéns! Você terminou a Task do "..t.name..", volte ao npc parece receber sua recompensa.")
            end
        end
        if daily and getPlayerStorageValue(cid, task_sys_storages[7]) > 0 and getPlayerStorageValue(cid, task_sys_storages[6]) - os.time() >= 0 and isInArray(daily.monsters_list, getCreatureName(target):lower()) and getPlayerStorageValue(cid, task_sys_storages[5]) < daily.count then
            setPlayerStorageValue(cid, task_sys_storages[5], getPlayerStorageValue(cid, task_sys_storages[5]) < 0 and 1 or (getPlayerStorageValue(cid, task_sys_storages[5])+1))
            if getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and getPlayerStorageValue(cid, task_sys_storages[5]) < daily.count then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"[Daily Task System] defeated Total [" .. getPlayerStorageValue(cid, task_sys_storages[5]) .. "/" .. daily.count .. "] da Task do " .. daily.name .. ".")
            end
            if getPlayerStorageValue(cid, task_sys_storages[5]) >= daily.count then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Daily Task System] Parabéns! Você terminou a Task do "..daily.name..", volte ao npc parece receber sua recompensa.")
            end
        end 
    end
    return true
end]]></event>
<action actionid="60001;60002;60003;60004" event="script"><![CDATA[
domodlib('task_func')
function onUse(cid, item, frompos, item2, topos)
local t = {[60001] = 20, [60002] = 40, [60003] = 100, [60004] = 200}
if not t[item.actionid] then return true end
if getTaskPoints(cid) < t[item.actionid] then
return doPlayerSendTextMessage(cid,22,"Você só pode passar se tiver " .. t[item.actionid] .. " Task Points.") 
end
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, topos, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Welcome, Task Hunter!")
return true
end]]></action>
</mod>

 

 

 

E esse aqui é depois de eu aumentar apenas 1 item de reward, e o dinheiro !

 

Spoiler

<?xml version="1.0" encoding="ISO-8859-1"?> 
<mod name="Simple Task" version="4.0" author="Vodkart" contact="tibiaking.com" enabled="yes"> 
<config name="task_func"><![CDATA[
task_sys = {
	[1] = {name = "Trolls", start = 176201, monsters_list = {"Troll","Troll champion"}, level = 8, count = 120, points = 2, items = {{2448,1}}, reward = {{2645,1}},{5903,1}}, exp = 100000, money = 10000},
	[2] = {name = "rotworms", start = 176202, monsters_list = {"rotworm","carrion worm","Rotworm Queen"}, level = 8, count = 150, points = 2, items = {{2530,1}}, reward = {{2520,1}},{8982,1}}, exp = 100000, money = 150000},
	[3] = {name = "cyclops", start = 176203, monsters_list = {"cyclops","cyclops smith","cyclops drone"}, level = 8, count = 130, points = 2, items = {{2490,1}}, reward = {{2466,1}},{8931,1}}, exp = 100000, money = 200000},
	[4] = {name = "Dragon", start = 176204, monsters_list = {"dragon"}, level = 8, count = 150, points = 3, items = {{2397,1}}, reward = {{2195,1}},{8925,1}}, exp = 150000, money = 250000},
	[5] = {name = "Dragon Lord", start = 176205, monsters_list = {"Dragon Lord"}, level = 300, count = 200, points = 3, items = {{2528,3}}, reward = {{2470,1}},{2424,1}}, exp = 150000, money = 300000},
	[6] = {name = "Behemoth", start = 176206, monsters_list = {"Behemoth"}, level = 8, count = 150, points = 3, items = {{5930,3}}, reward = {{8889,1}},{2410,1}}, exp = 150000, money = 350000},
	[7] = {name = "Lizard Dragons" ,start = 176220, monsters_list = {"Lizard Chosen","Lizard Dragon Priest","Lizard High Guard","Lizard Legionnaire", "Lizard Zaogun"}, level = 8, count = 350, points = 3, items = {{11297,3}}, reward = {{2493,1}},{12609,1}}, exp = 150000, money = 400000},
	[8] = {name = "Defiler", start = 176208, monsters_list = {"Defiler"}, level = 8, count = 300, points = 3, items = {{6500,4}}, reward = {{2494,1}},{8932,1}}, exp = 150000, money = 450000},
	[9] = {name = "Hellfire Fighter", start = 176209, monsters_list = {"Hellfire Fighter"}, level = 8, count = 350, points = 4, items = {{2136,4}}, reward = {{2538,1}},{8926,1}}, exp = 250000, money = 500000},
	[10] = {name = "Hydra", start = 176210, monsters_list = {"Hydra"}, level = 100, count = 600, points = 4, items = {{4850,5}}, reward = {{6391,1}},{2444,1}}, exp = 250000, money = 550000},
	[11] = {name = "Medusa", start = 176211, monsters_list = {"Medusa"}, level = 100, count = 650, points = 5, items = {{2536,5}}, reward = {{2517,1}},{2444,1}}, exp = 250000, money = 600000},
	[12] = {name = "Frost Dragon", start = 176212, monsters_list = {"Frost Dragon"}, level = 100, count = 800, points = 5, items = {{1976,7}}, reward = {{1992,1}},{7367,1}}, exp = 250000, money = 700000},
	[13] = {name = "Warlock" ,start = 176213, monsters_list = {"Warlock"}, level = 200, count = 800, points = 5, items = {{2656,7}}, reward = {{2343,1}},{7414,1}}, exp = 350000, money = 800000},
	[14] = {name = "Grim Reaper" ,start = 176214, monsters_list = {"Grim Reaper"}, level = 250, count = 700, points = 6, items = {{2521,9}}, reward = {{2499,1}},{2421,1}}, exp = 350000, money = 900000},
	[15] = {name = "Demon" ,start = 176215, monsters_list = {"Demon"}, level = 300, count = 1000, points = 6, items = {{5954,9}}, reward = {{2644,1}},{2431,1}}, exp = 450000, money = 1000000},
	[16] = {name = "Medusa Vip" ,start = 176216, monsters_list = {"Medusa Vip"}, level = 350, count = 1200, points = 6, items = {{7887,11}}, reward = {{6132,1}},{2400,1}}, exp = 450000, money = 1500000},
	[17] = {name = "Hydra Vip" ,start = 176217, monsters_list = {"Hydra Vip"}, level = 350, count = 1200, points = 6, items = {{2498,11}}, reward = {{2527,1}},{8851,1}}, exp = 550000, money = 2000000},
	[18] = {name = "Grim Reaper Vip" ,start = 176218, monsters_list = {"Grim Reaper Vip"}, level = 350, count = 1200, points = 8, items = {{6300,15}}, reward = {{2518,1}},{8905,1}}, exp = 550000, money = 3000000},
	[19] = {name = "Warlock Vip" ,start = 176219, monsters_list = {"Warlock Vip"}, level = 350, count = 1200, points = 8, items = {{2466,15}}, reward = {{2519,1}},{2495,1}}, exp = 650000, money = 3000000},
	[20] = {name = "Frost Dragon Vip" ,start = 176220, monsters_list = {"Frost Dragon Vip"}, level = 350, count = 1200, points = 8, items = {{2492,19}}, reward = {{8932,1}},{2471,1}}, exp = 650000, money = 4000000},
	[21] = {name = "Demon Vip" ,start = 176221, monsters_list = {"Demon Vip"}, level = 350, count = 2000, points = 10, items = {{2418,19}}, reward = {{8926,1}},{2523,1}}, exp = 750000, money = 4000000},
	[22] = {name = "Dragon Lord Vip II" ,start = 176222, monsters_list = {"Dragon Lord Vip II"}, level = 450, count = 1500, points = 10, items = {{2414,25}}, reward = {{2444,1}},{8892,1}}, exp = 750000, money = 5000000},
	[23] = {name = "Frost Dragon Vip II" ,start = 176223, monsters_list = {"Frost Dragon Vip II"}, level = 450, count = 1500, points = 10, items = {{7290,25}}, reward = {{7367,1}},{7957,1}}, exp = 850000, money = 5000000},
	[24] = {name = "Grim Reaper Vip II" ,start = 176224, monsters_list = {"Grim Reaper Vip II"}, level = 450, count = 1500, points = 10, items = {{5909,30}}, reward = {{7367,1}},{9931,1}}, exp = 850000, money = 6000000},
	[25] = {name = "Hydra Vip II" ,start = 176225, monsters_list = {"Hydra Vip II"}, level = 450, count = 1500, points = 10, items = {{2476,30}}, reward = {{7414,1}}, exp = 2500000,{2506,1}}, money = 6000000},
	[26] = {name = "Medusa Vip II" ,start = 176226, monsters_list = {"Medusa Vip II"}, level = 450, count = 1500, points = 10, items = {{2143,75}}, reward = {{2495,1},{2471,1}},{9971,1}}, exp = 2500000, money = 7000000},
	[27] = {name = "Lord Of Demon" ,start = 176227, monsters_list = {"Lord Of Demon"}, level = 500, count = 6666, points = 10, items = {{2462,120}}, reward = {{9969,5},{2366,1}},{9971,1}}, exp = 10000000, money = 7000000},
	[28] = {name = "Bossing Of Baiak" ,start = 176228, monsters_list = {"Bossing Of Baiak"}, level = 500, count = 30, points = 10, items = {{5903,5}}, reward = {{9969,5},{2366,1}},{9971,1}}, exp = 20000000, money = 8000000},
	[29] = {name = "Arabian" ,start = 176229, monsters_list = {"Arabian"}, level = 500, count = 30, points = 10, items = {{10521,10}}, reward = {{2523,1},{2263,1}},{9971,1}}, exp = 20000000, money = 8000000},
	[30] = {name = "Shadow Warrior" ,start = 176230, monsters_list = {"Shadow Warrior"}, level = 500, count = 70, points = 10, items = {{5875,25}}, reward = {{2298,1},{11114,1}},{9971,1}}, exp = 20000000, money = 10000000},
	[31] = {name = "Castle Guardian" ,start = 176231, monsters_list = {"Castle Guardian"}, level = 600, count = 25, points = 25, items = {{2520,100}}, reward = {{9969,15},{2366,2}},{9971,1}}, exp = 20000000, money = 10000000}
}
daily_task = {
	[1] = {name = "Hydra Vip" ,monsters_list = {"Hydra Vip"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
	[2] = {name = "Grim Reaper Vip" ,monsters_list = {"Grim Reaper Vip"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
	[3] = {name = "Grim Reaper Vip II" ,monsters_list = {"Grim Reaper Vip II"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
	[4] = {name = "Frost Dragon Vip" ,monsters_list = {"Frost Dragon Vip"}, count = 750, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
	[5] = {name = "Dragon Lord Vip II" ,monsters_list = {"Dragon Lord Vip II"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
	[6] = {name = "Frost Dragon Vip II" ,monsters_list = {"Frost Dragon Vip II"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
	[7] = {name = "Frost Dragon" ,monsters_list = {"Frost Dragon"}, count = 300, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
	[8] = {name = "Hydra" ,monsters_list = {"Hydra"}, count = 700, points = 3, reward = {{9969,1}}, exp = 3000000, money = 3000000},
	[9] = {name = "Demon Vip" ,monsters_list = {"Demon Vip"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
	[10] = {name = "Hydra Vip II" ,monsters_list = {"Hydra Vip II"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
	[11] = {name = "Medusa Vip" ,monsters_list = {"Medusa Vip"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000},
	[12] = {name = "Warlock Vip" ,monsters_list = {"Warlock Vip"}, count = 700, points = 4, reward = {{9969,1}}, exp = 3000000, money = 3000000}
}
task_sys_storages = {176601, 176602, 176603, 176604, 176605, 176606, 176607, 176608} -- task, points, count, daily task, daily count, daily time , daily start, contador
function getTaskMission(cid)
	return getPlayerStorageValue(cid,task_sys_storages[1]) < 0 and 1 or getPlayerStorageValue(cid,task_sys_storages[1])
end
function getDailyTaskMission(cid)
	return getPlayerStorageValue(cid,task_sys_storages[4]) < 0 and 1 or getPlayerStorageValue(cid,task_sys_storages[4])
end
function getTaskPoints(cid)
	return getPlayerStorageValue(cid,task_sys_storages[2]) < 0 and 0 or getPlayerStorageValue(cid,task_sys_storages[2])
end
function doRandomDailyTask(cid)
	local t = {
		[{6,100}] = {1,3},
		[{101,200}] = {4,6},
		[{201,300}] = {7,9},
		[{301,math.huge}] = {10,12}
	}
	for a , b in pairs(t) do
		if getPlayerLevel(cid) >= a[1] and getPlayerLevel(cid) <= a[2] then
			return math.random(b[1], b[2])
		end
	end
	return 0
end
function GetRankTask(cid)
	local ranks = {
		[{1, 40}] = "Leite com Pera", 
		[{41, 80}] = "Iniciante",
		[{81, 120}] = "Intermediario",
		[{121, 200}] = "Fodao",		
		[{201, math.huge}] = "Supremo Lord"
	}
	for v , r in pairs(ranks) do
		if getTaskPoints(cid) >= v[1] and getTaskPoints(cid) <= v[2] then
			return r
		end
	end
	return 0
end
function getItemsFromList(items)
	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 doRemoveItemsFromList(cid,items)
	local count = 0
	if table.maxn(items) > 0 then
		for i = 1, table.maxn(items) do
			if getPlayerItemCount(cid,items[i][1]) >= items[i][2] then
			count = count + 1 end 
		end 
	end
	if count == table.maxn(items) then
		for i = 1, table.maxn(items) do doPlayerRemoveItem(cid,items[i][1],items[i][2]) end
	else 
		return false 
	end
	return true 
end
function getMonsterFromList(monster)
	local str = ''
	if #monster > 0 then
		for i = 1, #monster do
			str = str .. monster[i]
			if i ~= #monster then str = str .. ', ' end
		end 
	end
	return str
end
function GiveRewardsTask(cid, items)
	local backpack = doPlayerAddItem(cid, 1999, 1) -- backpackID
	for _, i_i in ipairs(items) do
		local item, amount = i_i[1],i_i[2]
		if isItemStackable(item) or amount == 1 then
			doAddContainerItem(backpack, item, amount)
		else
			for i = 1, amount do
				doAddContainerItem(backpack, item, 1)
			end
		end
	end
end
function isSummon(cid)
	if(not isCreature(cid)) then
		return false
	end
	return getCreatureMaster(cid) ~= cid
end
function getDeathsAndKills(cid, type) -- by vodka
  local query,d = db.getResult("SELECT `player_id` FROM "..(tostring(type) == "kill" and "`player_killers`" or "`player_deaths`").." WHERE `player_id` = "..getPlayerGUID(cid)),0
  if (query:getID() ~= -1) then
    repeat
      d = d+1
    until not query:next()
    query:free()
  end
  return d
end
]]></config>
<event type="login" name="TaskLogin" event="script"><![CDATA[
function onLogin(cid)
	registerCreatureEvent(cid, "KillTask")
	registerCreatureEvent(cid, "TaskLook")
	return true
end]]></event>
<talkaction words="/task;!task" event="buffer"><![CDATA[
domodlib('task_func')
param,task,daily = param:lower(), getTaskMission(cid), getDailyTaskMission(cid)
if isInArray({"counter","contador"},param) then
	setPlayerStorageValue(cid, task_sys_storages[8], getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and 1 or 0)
	doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"[Task System] O contador foi "..(getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and "ativado" or "desativado")..".") return true
elseif isInArray({"daily","diaria"},param) then
	if not daily_task[daily] or getPlayerStorageValue(cid, task_sys_storages[7]) <= 0 then
		doPlayerSendCancel(cid, "Desculpe, Mas você não está em nenhuma Daily Task.") return true
	elseif getPlayerStorageValue(cid, task_sys_storages[6]) - os.time() <= 0 and getPlayerStorageValue(cid, task_sys_storages[5]) < daily_task[daily].count then
		doPlayerSendCancel(cid,"Desculpe, Mas Você não terminou a Daily Task a tempo! Por favor volte ao npc e comece uma nova Daily Task!") return true
	end
	return doShowTextDialog(cid, 8983, "[->] CURRENT DAILY TASK INFO [<-]\n\nNome: "..daily_task[daily].name.."\nProgresso: ["..(getPlayerStorageValue(cid, task_sys_storages[5]) < 0 and 0 or getPlayerStorageValue(cid, task_sys_storages[5])).."/"..daily_task[daily].count.."]\nPrazo para entrega: "..os.date("%d %B %Y %X ", getPlayerStorageValue(cid,task_sys_storages[6])).."\nMonstros para caçar: "..getMonsterFromList(daily_task[daily].monsters_list).."\n\n[->] CURRENT TASK REWARDS [<-]\n\nMoney: "..(daily_task[daily].money > 0 and daily_task[daily].money or 0).."\nExperiencia: "..(daily_task[daily].exp > 0 and daily_task[daily].exp or 0).."\nTask Points: "..daily_task[daily].points.."\nItems: "..(#daily_task[daily].reward > 0 and getItemsFromList(daily_task[daily].reward) or "Nenhum item de recompensa")..".")
end
if not task_sys[task] or getPlayerStorageValue(cid, task_sys[task].start) <= 0 then
	doPlayerSendCancel(cid, "você não está em nenhuma task.") return true
end 
return doShowTextDialog(cid, 8983, "-> CURRENT TASK ["..getTaskMission(cid).."/"..#task_sys.."] <-\n\nTask Name: "..task_sys[task].name.."\nTask Level: "..task_sys[task].level.."\nTask Progress: ["..(getPlayerStorageValue(cid, task_sys_storages[3]) < 0 and 0 or getPlayerStorageValue(cid, task_sys_storages[3])).."/"..task_sys[task].count.."]\nMonster To Hunt: "..getMonsterFromList(task_sys[task].monsters_list)..".\nItens Para Entrega: "..(#task_sys[task].items > 0 and getItemsFromList(task_sys[task].items) or "Nenhum")..".\n\n[->] CURRENT TASK REWARDS [<-]\n\nReward Money: "..(task_sys[task].money > 0 and task_sys[task].money or 0).."\nReward Experiencia: "..(task_sys[task].exp > 0 and task_sys[task].exp or 0).."\nReward Points: "..task_sys[task].points.."\nRedward Items: "..(#task_sys[task].reward > 0 and getItemsFromList(task_sys[task].reward) or "Nenhum item de recompensa")..".")
]]></talkaction>
<event type="look" name="TaskLook" event="script"><![CDATA[
domodlib('task_func')
function onLook(cid, thing, position, lookDistance)
	if isPlayer(thing.uid) and getTaskPoints(thing.uid) > 0 then
		doPlayerSetSpecialDescription(thing.uid, "\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").. " has Killed: ["..getDeathsAndKills(thing.uid, "kill").."] Players.\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." has Died: ["..getDeathsAndKills(thing.uid, "death").."] Times.\n"..(getPlayerSex(thing.uid) == 0 and "She" or "He").." is a "..GetRankTask(thing.uid))
	end	
	return true
end]]></event> 
<event type="kill" name="KillTask" event="script"><![CDATA[
domodlib('task_func')
function onKill(cid, target)
	if isPlayer(cid) and isMonster(target) then
		local t,daily = task_sys[getTaskMission(cid)], daily_task[getDailyTaskMission(cid)]
		if t and getPlayerStorageValue(cid, t.start) > 0 and isInArray(t.monsters_list, getCreatureName(target):lower()) and getPlayerStorageValue(cid, task_sys_storages[3]) < t.count then
			setPlayerStorageValue(cid, task_sys_storages[3], getPlayerStorageValue(cid, task_sys_storages[3]) < 0 and 1 or (getPlayerStorageValue(cid, task_sys_storages[3])+1))
			if getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and getPlayerStorageValue(cid, task_sys_storages[3]) < t.count then
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Task System] defeated Total [" .. getPlayerStorageValue(cid, task_sys_storages[3]) .. "/" .. t.count .. "] da Task do " .. t.name .. ".")
			end
			if getPlayerStorageValue(cid, task_sys_storages[3]) >= t.count then
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Task System] Parabéns! Você terminou a Task do "..t.name..", volte ao npc parece receber sua recompensa.")
			end
		end
		if daily and getPlayerStorageValue(cid, task_sys_storages[7]) > 0 and getPlayerStorageValue(cid, task_sys_storages[6]) - os.time() >= 0 and isInArray(daily.monsters_list, getCreatureName(target):lower()) and getPlayerStorageValue(cid, task_sys_storages[5]) < daily.count then
			setPlayerStorageValue(cid, task_sys_storages[5], getPlayerStorageValue(cid, task_sys_storages[5]) < 0 and 1 or (getPlayerStorageValue(cid, task_sys_storages[5])+1))
			if getPlayerStorageValue(cid, task_sys_storages[8]) <= 0 and getPlayerStorageValue(cid, task_sys_storages[5]) < daily.count then
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"[Daily Task System] defeated Total [" .. getPlayerStorageValue(cid, task_sys_storages[5]) .. "/" .. daily.count .. "] da Task do " .. daily.name .. ".")
			end
			if getPlayerStorageValue(cid, task_sys_storages[5]) >= daily.count then
				doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,"[Daily Task System] Parabéns! Você terminou a Task do "..daily.name..", volte ao npc parece receber sua recompensa.")
			end
		end 
	end
	return true
end]]></event>
<action actionid="60001;60002;60003;60004" event="script"><![CDATA[
domodlib('task_func')
function onUse(cid, item, frompos, item2, topos)
local t = {[60001] = 20, [60002] = 40, [60003] = 100, [60004] = 200}
if not t[item.actionid] then return true end
if getTaskPoints(cid) < t[item.actionid] then
return doPlayerSendTextMessage(cid,22,"Você só pode passar se tiver " .. t[item.actionid] .. " Task Points.") 
end
doTransformItem(item.uid, item.itemid + 1)
doTeleportThing(cid, topos, true)
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Welcome, Task Hunter!")
return true
end]]></action>
</mod>

 

 

 

E esse é o erro que acontece na distro quando tento utilizar o script !

 

59cfc7b089782_errodistro.thumb.png.6414271e9b71e966b0d02201309474ea.png

       112674.gif

 

 

 

Link para o post
Compartilhar em outros sites
  • Respostas 296
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Removido:   *Boss Room *Rank Task *Prêmios para os 10 primeiros a terminar todas as tasks   Adicionado:   *Daily Task System (Sistema exclusivo de Task diario, podendo pegar 1x a cada 24 hrs, irei explicar mais depois.) *Task agora é por progresso, você não pode sair e voltar, terá que terminar a task 1 para avançar para a task  2, assim sucessivamente. *Task Points *Level para realizar a task *Nova talkaction que mostra uma janela de i

tenta deixar essa linha: if isPlayer(cid) and isMonster(target) and not isSummon(target) then assim if isPlayer(cid) and isMonster(target) then   e testa

gostei dessa ideia, então estou num projeto e estou meio sem tempo, já passei parto do simple task pra tfs 1.2 e tal. terminando esse projeto e de passar o sistema pra tfs 1.2 eu começo a editar o sistema e colocar um somente para Daily Task System com essas coisas que vc citou, pq achei mto boa essas dicas. só n vou te dar prazo pq não sei qndo começo kk

Posted Images

Gostei muito do Sistema Vodkart Parabens. Porem esta dando erro no meu servidor, Depois que eu pego a Task no NPC e dou /task o servidor cai sem deixar logs de erro.

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

@Thayguroficial Deixa eu tentar ajudar.

 

Em talkactions/scripts, crie um arquivo.lua:

 

 

Spoiler

domodlib('task_func')
function onSay(cid, words, param)
doPlayerPopupFYI(cid, "You have " .. getTaskPoints(cid).. " task points.")
return true
end

 

 

Em talkactions.xml: <talkaction words="/taskpoints" event="script" value="NOMEDOSEUARQUIVO.lua"/>

 

O item de adicionar task points:

 

Crie um arquivo em actions/scripts:

 

Spoiler

domodlib('task_func')
local points = 10
function onUse(cid, item, fromPosition, itemEx, toPosition)
setPlayerStorageValue(cid, task_sys_storages[2], (getTaskPoints(cid)+points))
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have received " .. points .. " task points!")
doSendMagicEffect(fromPosition, CONST_ME_STUN)
return true
end

 

 

No actions.xml: <action itemid="ID_DO_ITEM" script="NOMEDOARQUIVO.lua" />

Contato:

 

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por KotZletY
      Salve geral, recentemente fiz um Task System para meu servidor, então gostaria de compartilha ele com vocês, assim como outros scripts que fiz e gostaria de compartilhar. Bom, vamos ao que interessa.
                        
       
                                                                                                               Informações!!
      Task Normal - Você 1x por vez, quantas vezes quiser, repetindo a task se também quiser.
      Task Diaria -  Você faz uma vez por dia, não podendo repeti em quanto as 24 horas não terminar.
      Task Rank - É mostrado na descrição do player qual rank task ele possui.
      Task Rank Quest - Um extra desse task system é o piso task, será explicado na parte do script, leiam com atenção.
      Task Comandos - Comandos task, 1 para ver o progresso das suas task e outro para mostrar informações do seu personagem, como uma consulta, os comandos são: !task que mostra quais task você ta fazendo, tanto diaria quanto normal e !task me que mostrar informações do seu personagem, como rank, quantidade de pontos task e quantidade de pontos task rank.
      Well, o resto é surpresa, cabe você descobrir! xD
       
       
      Para não ficar só nas palavras, mostrarei algumas imagens, várias no caso: Removida, colocarei novas!
       
                                                                                                               Instalação!!
      Muito bem, chega de conversa, como instalar logo essa bagaça. Primeiramente vá em data/lib e abra o arquivo lib.lua e adicione:
      dofile('data/lib/task system.lua') Ainda na pasta lib crie um arquivo.lua chamado task system.lua e adicione esse code dentro:
       
      No final do tópico, ensinarei a configurar a lib. Agora vai em, data/npc e crie um arquivo.xml chamado  task.xml e coloque esse code dentro:
      <?xml version="1.0" encoding="UTF-8"?> <npc name="NPC Task" script="task system.lua" walkinterval="0" floorchange="0"> <health now="150" max="150"/> <look type="430"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|. I'm in charge of delivering missions to the players. Would you like to do a {normal} task, {daily} task, {receive} your reward from a task or {abandon} a task ? You can also see the {normal task list} and the {daily task list}."/> <parameter key="message_farewell" value="See you later." /> <parameter key="message_walkaway" value="See you later." /> </parameters> </npc> Ainda na pasta npc, entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro:
       
      Agora vá em data/talkactions e abra o arquivo talkactions.xml e adicione a seguinte tag:
      <talkaction words="!task" separator=" " script="task system.lua" /> Ainda na pasta talkactions entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro dele:
       
      Agora vá em data/creaturescripts e abra o arquivo creaturescripts.xl e adicione a seguinte tag:
      <event type="kill" name="tasksystem" script="task system.lua"/> Ainda na pasta creaturescripts entre na pasta scripts e crie um arquivo.lua chamado task system.lua e adicione esse code dentro dele:
      Ainda na pasta script  abra o login.lua e adicione dentro:
      player:registerEvent("tasksystem") Agora vá em data/events/scripts e abra o arquivo player.lua, depois de aberto, antes de:
      self:sendTextMessage(MESSAGE_INFO_DESCR, description) adicione:
      if thing:isCreature() then if thing:isPlayer() then description = string.format("%s\nTask Rank: "..getRankTask(thing), description) end end  
                                                                                              Extra(Opcional)!!
       
      Extra,  vá em data/movements/scripts e crie um  arquivo chamado tile task.lua, depois de aberto, antes de:
            
      Vá em data/movements/movements.xml adicione: 
      <movevent event="StepIn" actionid="XXXX" script="tile task.lua"/>  
      Explicação: Com esse movements acima, você só poderá passar por o piso caso tenha pontos task necessário para passar, se ativar a opção, removePoints então a mesma quantidade de pontos necessária para passar, será removida, ao passar, caso esteja desativada, então
      apenas será necessário ter os pontos task para passar. Em XXXX coloque o actionid, e o actionid coloque no piso desejado!
       
      New Extra: Vá em data/movements/scripts e crie um arquivo chamado tile task2.lua e adicione o seguinte scripts:
       
      Vá em data/movements/movements.xml adicione:  
      <movevent event="StepIn" actionid="XXXX" script="tile task2.lua"/> Explicação: Ao adicionar esse movements acima, você só poderá passar pelo piso caso seu rank task seja igual ou superior ao rank definido na variável, caso não seja igual e nem superior, não será possível passar.
      Configure na lib, a sequência de ranks de acordo com a sequência de rank da tabela de pontos, assim:
       
      A sequência precisa está igual e numeradas.
                                                                                               Configurando!!
      task_monsters = { [1] = {name = "monster1", mons_list = {"monster_t2", "monster_t3"}, storage = 30000, amount = 20, exp = 5000, pointsTask = {1, 1}, items = {{id = 2157, count = 1}, {id = 2160, count = 3}}}, [2] = {name = "monster2", mons_list = {"", ""}, storage = 30001, amount = 10, exp = 10000, pointsTask = {1, 1}, items = {{id = 10521, count = 1}, {id = 2160, count = 5}}}, [3] = {name = "monster3", mons_list = {"", ""}, storage = 30002, amount = 10, exp = 18000, pointsTask = {1, 1}, items = {{id = 2195, count = 1}, {id = 2160, count = 8}}}, [4] = {name = "monster4", mons_list = {"", ""}, storage = 30003, amount = 10, exp = 20000, pointsTask = {1, 1}, items = {{id = 2520, count = 1}, {id = 2160, count = 10}}} } task_daily = { [1] = {name = "monsterDay1", mons_list = {"monsterDay1_t2", "monsterDay1_t3"}, storage = 40000, amount = 10, exp = 5000, pointsTask = {1, 1}, items = {{id = 2157, count = 1}, {id = 2160, count = 3}}}, [2] = {name = "monsterDay2", mons_list = {"", ""}, storage = 40001, amount = 10, exp = 10000, pointsTask = {1, 1}, items = {{id = 10521, count = 1}, {id = 2160, count = 5}}}, [3] = {name = "monsterDay3", mons_list = {"", ""}, storage = 40002, amount = 10, exp = 18000, pointsTask = {1, 1}, items = {{id = 2195, count = 1}, {id = 2160, count = 8}}}, [4] = {name = "monsterDay4", mons_list = {"", ""}, storage = 40003, amount = 10, exp = 20000, pointsTask = {1, 1}, items = {{id = 2520, count = 1}, {id = 2160, count = 10}}} }                                        
                                                    
      nome - Nome do monstro.
      mons_list - Nome dos monstro que são semelhantes e que matando eles também contará.
      Exemplo:
      name = "troll", mons_list = {"troll","frost troll","island troll"} e assim matando,  troll, frost troll e island troll contará na task também.
      storage - É a storage que salva a quantidade de monstros já matados.
      amount - É a quantidade necessária de monstros matados para finalizar a task.
      exp - É a quantidade de Experiência que vai ganhar ao finalizar a task, caso não queira dar experiência, basta deixar em 0.
      pointsTask = {Task Points Que vai ganhar(Pontos usado no piso e etc..), Pontos Rank, que irá ganhar e aumentar seu rank.}
      items - Itens que o player vai ganhar, devem está tabelados, dentro da tabela item, adicione das tabelas contendo o id do item e count, quantidade de items que irá ganhar.
      Ex: items = {{id = 2157, count = 1}, {id = 2160, count = 3}} -- Aqui contém 2x tipos de itens, o 2157 e o 2160, e suas devidas quantidades que irá ganhar.
      items = {{id = 2157, count = 1}} -- Aqui só tem 1 tipo de item e a quantidade que vai ganhar.
      Adicione quantos itens quiser. O mesmo vale para as task diarias!
       
       
       
      Bom, é isso ae, qualquer duvida, crítica, sugestões, deixem ae, se precisa de suporte na instalação ou está com erro em algo estarei dando suporte, abraços e bom uso do sistema.
      É totalmente proibido leva meu sistema para outro site, blog ou fórum!
    • Por Nextbr
      Eae Galera Beleza?
      - Hoje Vou Postar um Sistema de TASK separados por Elementos Configurado (Primeira e Segunda) Geraçao , Intao Vamos La:
       
      [+] Info:
      - Task System (Pode Repetir a Task Varias Vezes)
      - Task Separado Por (Elemento) - Configurado (Primeira e Segunda) Geraçao
      - Npc Mega Task (Receber Premio e Experiencias) - Configurado
       
      [+] Cria um Arquivo em (data/lib) e cria um Arquivo Chamado: amoebaTask.lua
       
       
      - obs: Aki voce Adiciona Mais Pokemons Separados Por Elementos e Edita o Premio e a ExP que vai Ganhar
       
      [+] Depois vai em (data/creaturescripts/scripts) e cria um Arquivo Chamado: Task.lua
       
      - Depois vai em (data/creaturescripts/creaturescripts.xml) e adiciona isso:
       
      <event type="kill" name="task" event="script" value="task.lua"/>
       
      - Logo Apos registra no Login:
       
      registerCreatureEvent(cid, "task")
       
      [+] Depois Cria um Arquivo em (data/npc/scripts) Chamado: task.lua:
       
      - Logo Apos vai em (data/npc) e cria um arquivo chamado: task.xml
       
       
      [+] Agora Cria um Arquivo (data/talkactions/scripts) Chamado: task.lua
       
       
      - Depois vai em (data/talkactions/talkactions.xml) e adiciona isso:
       
          <talkaction words="!task;/task" script="task.lua"/>
       
      Creditos: Killua
                      NextBR (Por Editar)
    • Por Killua
      Como funciona?
      A cada monstro que vc mata, seus itens equipados ganham 1 de exp. Quando seus itens chegarem às quantidades de exp definidas, eles upam e ficam com o nome assim: Demon Helmet + 1. Helmets, armors, legs, e boots recebem 1 de arm a cada vez que upam. Armas recebem 1 de ataque e escudos 1 de defesa.
       
      Para o monstro contar, ele deve dar um mínimo de exp (definido no script). O número de exp a que me refiro é aquele um presente no arquivo .xml.
       
      Para instalar, crie Killua Items Upgrade.lua em data/creaturescripts/scripts e coloque:
        Em data/creaturescripts/creaturescripts.xml coloque essas duas tags:
      <event type="kill" name="Item level" event="script" value="Killua Items Upgrade.lua"/> <event type="login" name="Item levell" event="script" value="Killua Items Upgrade.lua"/> Configurando: Na tabela table_of_slots, coloque em quais slots os itens upam.
      min_exp é a experiência mínima que o monstro deve ter para contar exp para o item. Se vc colocar 500, somente os monstros que tem exp igual ou superior a 500 no arquivo.xml vão valer.
      exp_levels são os valores de exp que os itens devem atingir para upar. No meu caso, quando o item alcançar 50 de exp, ele upa para o level 1. Quando alcançar 50 de exp, upa para o level 2 e assim por diante.
    • Por Sekk
      Bom, procurei esse Castle por MUITO TEMPO, mas não achei em NENHUM LUGAR DA INTERNET. Ontem, eu estava vendo alguns mapas do @Deathrocks, e vi nos prints, que o mapa possuia o evento que eu queria!
       
      Então baixei o mapa e extrai o evento, então venho lhes trazer!
       
       
      Nome: Castle 24H
      Cliente: 8.6
      Versão TFS: 0.4
      Tipo: Evento
       
      Bom, para começar, vamos em actions/scripts e crie 2 arquivos:
       
      castledoor1.lua
       
      castlewar1.lua
       
        Agora em actions.xml adicione as tags:
       
      Agora em monster/traps crie 3 arquivos:
       
      porta.xml
       
      protectcastle.xml  
      statue.xml  
      Agora em monsters.xml adicione as tags:    
      Vamos para movements/scripts e crie 2 arquivos:
       
      castlewar2.lua
       
      level.lua  
      Agora em movements.xml adicione as tags:  
       
      Pronto. Agora você só precisa baixar o mapa, inserir o mesmo ao seu servidor, configurar os teleports, e as hunts dentro do castle etc.
       
      PRINTS:
      1ª parte
       
      2ª parte:
       
      Obs.: Todos os ActionID e monsters já estão no mapa! Você só precisa configurar as coordenadas dos teleports, e o que possui no castle!
       
      Obs².: Tudo o que você pode configurar, já está escrito em cada script!
       
       
      Créditos:
      @DeathRocks
      PC98
      mapa.rar
    • Por gpedro
      Testado: MySQL & SQLite
      Distro: TFS 0.4_SVN & TFS 0.3.6

      MySQL

      ALTER TABLE `players` ADD `resets` INT(11) NOT NULL DEFAULT "0"; SQLite ALTER TABLE players ADD resets INTEGER not null default 0 Adicionando nas sources player.h procure por: uint32_t level; logo abaixo, adicione: uint32_t resets; iologindata.cpp procure por query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`," substitua por: query << "SELECT `id`, `account_id`, `group_id`, `world_id`, `sex`, `vocation`, `experience`, `level`, `resets`, " procure por player->level = std::max((uint32_t)1, (uint32_t)result->getDataInt("level")); logo abaixo adicione: player->resets = (uint32_t)result->getDataInt("resets"); procure por query << "`maglevel` = " << player->magLevel << ", "; logo abaixo adicione: query << "`resets` = " << player->resets << ", "; players.cpp procure por: s << " (Level " << level << ")"; substitua por: s << " (Level " << level << ") [Reset " << resets << "]"; players.h procure por: void setPromotionLevel(uint32_t pLevel); logo abaixo adicione: uint32_t getResets() { return resets;} void setResets(int32_t amount) { resets += amount; if (resets < 0) {resets = 0;} } luascript.cpp para 0.3.6 static int32_t luaDoPlayerSetIdleTime(lua_State* L); logo abaixo adicione: static int32_t luaGetResets(lua_State* L); static int32_t luaSetResets(lua_State* L); talkactions.xml <talkaction words="!rank;/rank" event="script" value="ranks.lua"/> <talkaction words="!reset;/reset" script="reset.lua"/> ranks.lua
      Créditos: Dark Skyllen, Marcryzius, Mock, Kydrai, Cykotitan, gpedro*.
      * adaptação para 0.4
  • Estatísticas dos Fóruns

    96844
    Tópicos
    519599
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo