• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Task Problem

jareczekjsp

Member
Joined
Jan 30, 2023
Messages
264
Solutions
1
Reaction score
22
GitHub
Jarek123
Hello everyone I have question , I have Grizzly Adams Task With Reward xxx Experience but I would like rewards is 4levels is possible ?.

LUA:
--[[
    TODO
        Unite all related variables / functions in a table
        rewrite functions like "getTasksByPlayer" to "Player.getTasks"
]]

RANK_NONE = 0
RANK_JOIN = 1
RANK_HUNTSMAN = 2
RANK_RANGER = 3
RANK_BIGGAMEHUNTER = 4
RANK_TROPHYHUNTER = 5
RANK_ELITEHUNTER = 6

REWARD_MONEY = 1
REWARD_EXP = 2
REWARD_ACHIEVEMENT = 3
REWARD_STORAGE = 4
REWARD_POINT = 5
REWARD_ITEM = 6

QUESTSTORAGE_BASE = 1500
JOIN_STOR = 100157
KILLSSTORAGE_BASE = 65000
REPEATSTORAGE_BASE = 48950
POINTSSTORAGE = 2500
tasks =
{
    [1] = {killsRequired = 50, raceName = "Rotworms", level = {8, 9999}, premium = true, creatures = {"rotworm", "troll champion", "rotworm queen"}, rewards = {{type = "exp", value = {300000}},{type = "money", value = {100000}}}},
    [2] = {killsRequired = 100, raceName = "Cyclops", level = {25, 9999}, premium = true, creatures = {"cyclops"}, rewards = {{type = "exp", value = {500000}},{type = "money", value = {150000}}}},
    [3] = {killsRequired = 150, raceName = "Heros", level = {40, 9999}, premium = true, creatures = {"hero"}, rewards = {{type = "exp", value = {800000}},{type = "achievement", value = {"Blood-Red Snapper"}},{type = "storage", value = {35310, 1}},{type = "points", value = {2}}}},
[4] = {killsRequired = 200, raceName = "Dragons", level = {55, 9999}, premium = true, creatures = {"dragon"}, rewards = {
    {type = "exp", value = {2000000}},
    {type = "points", value = {2}}
}},
    [5] = {killsRequired = 250, raceName = "Dragon Lords", level = {70, 9999}, premium = true, creatures = {"dragon lord"}, rewards = {{type = "exp", value = {3000000}},{type = "achievement", value = {"No More Hiding"}},{type = "storage", value = {35201, 1}},{type = "points", value = {2}}}},
    [6] = {killsRequired = 300, raceName = "Frost Dragons", level = {85, 9999}, premium = true, creatures = {"frost dragon"}, rewards = {{type = "exp", value = {3000000}},{type = "achievement", value = {"Rootless Behaviour"}},{type = "storage", value = {35002, 1}},{type = "points", value = {3}}}},
    [7] = {killsRequired = 350, raceName = "Medusa", level = {100, 9999}, premium = true, creatures = {"medusa"}, rewards = {{type = "exp", value = {3000000}},{type = "points", value = {3}}}},
    [8] = {killsRequired = 400, raceName = "Behemoths", level = {115, 9999}, premium = true, creatures = {"behemoth"}, rewards = {{type = "exp", value = {3000000}},{type = "achievement", value = {"Meat Skewer"}},{type = "storage", value = {35003, 1}},{type = "points", value = {3}}}},
    [9] = {killsRequired = 500, raceName = "Demons", level = {130, 9999}, premium = true, creatures = {"demon"}, rewards = {{type = "exp", value = {3000000}},{type = "points", value = {3}}}},
    [10] = {killsRequired = 550, raceName = "Warlocks", level = {145, 9999}, premium = true, creatures = {"warlock"}, rewards = {{type = "exp", value = {3000000}},{type = "points", value = {3}}}},
    [11] = {killsRequired = 600, raceName = "Nightmares", level = {160, 9999}, premium = true, creatures = {"nightmare"}, rewards = {{type = "exp", value = {3000000}},{type = "points", value = {3}}}},
    [12] = {killsRequired = 600, raceName = "Destroyers", level = {175, 9999}, premium = true, creatures = {"destroyer"}, rewards = {{type = "exp", value = {3000000}},{type = "points", value = {3}}}},
    [13] = {killsRequired = 700, raceName = "Fury", level = {190, 9999}, premium = true, creatures = {"fury"}, rewards = {{type = "exp", value = {4400000}}}},
    [14] = {killsRequired = 700, raceName = "Serpent Spawns", level = {205, 9999}, premium = true, creatures = {"serpent spawn"}, rewards = {{type = "exp", value = {4800000}},{type = "achievement", value = {"Breaking The Ice"}},{type = "storage", value = {35004, 1}},{type = "points", value = {4}}}},
    [15] = {killsRequired = 750, raceName = "Undead Dragons", level = {220, 9999}, premium = true, creatures = {"undead dragon"}, rewards = {{type = "exp", value = {5600000}},{type = "points", value = {2}}}},
    [16] = {killsRequired = 700, raceName = "Betrayed Wraiths", level = {235, 9999}, premium = true, creatures = {"betrayed wraiths"}, rewards = {{type = "exp", value = {6200000}},{type = "achievement", value = {"Twisted Mutation"}},{type = "storage", value = {35005, 1}},{type = "points", value = {8}}}},                                                                                           
    [17] = {killsRequired = 750, raceName = "Dark Torturers", level = {250, 9999}, premium = true, creatures = {"dark torturer"}, rewards = {{type = "exp", value = {9000000}},{type = "achievement", value = {"Crawling Death"}},{type = "storage", value = {35006, 1}},{type = "points", value = {4}}}},
    [18] = {killsRequired = 800, raceName = "Infernalists", level = {265, 9999}, premium = true, creatures = {"infernalist"}, rewards = {{type = "exp", value = {9000000}},{type = "points", value = {2}}}},                                                                                                   
    [19] = {killsRequired = 700, raceName = "Hellhounds", level = {280, 9999}, premium = true, creatures = {"hellhound"}, rewards = {{type = "exp", value = {9000000}},{type = "points", value = {2}}}},                                                                                                   
    [20] = {killsRequired = 400, raceName = "Lost Souls", level = {295, 9999}, premium = true, creatures = {"lost soul"}, rewards = {{type = "exp", value = {9000000}},{type = "points", value = {3}}}},                                                                                                   
    [21] = {killsRequired = 450, raceName = "Hellfire Fighter", level = {310, 9999}, premium = true, creatures = {"hellfire fighter"}, rewards = {{type = "exp", value = {12000000}},{type = "points", value = {2}}}},                                                                                                   
    [22] = {killsRequired = 500, raceName = "Finger Killers", level = {325, 9999}, premium = true, creatures = {"finger killer"}, rewards = {{type = "exp", value = {15000000}},{type = "achievement", value = {"Spareribs for Dinner"}},{type = "storage", value = {35007, 1}},{type = "points", value = {4}}}},
    [23] = {killsRequired = 600, raceName = "Wyrms", level = {340, 9999}, creatures = {"wyrm"}, premium = true, rewards = {{type = "exp", value = {15000000}},{type = "achievement", value = {"Arachnoise"}},{type = "storage", value = {35008, 1}},{type = "points", value = {3}}}},
    [24] = {killsRequired = 300, raceName = "Grim Reapers", level = {355, 9999}, premium = true, creatures = {"grim reaper"}, rewards = {{type = "exp", value = {19000000}},{type = "points", value = {2}}}},
    [25] = {killsRequired = 500, raceName = "Black Knights", level = {370, 9999}, premium = true, creatures = {"black knight"}, rewards = {{type = "exp", value = {21000000}},{type = "achievement", value = {"Back into the Abyss"}},{type = "storage", value = {35009, 1}},{type = "points", value = {5}}}},
    [26] = {killsRequired = 1000, raceName = "Demodras", level = {385, 9999}, premium = true, creatures = {"demodras"}, rewards = {{type = "exp", value = {150000000}},{type = "achievement", value = {"Choking on Her Venom"}},{type = "storage", value = {35010, 1}},{type = "points", value = {5}}}},
    [27] = {killsRequired = 1000, raceName = "Defilers", level = {400, 9999}, premium = true, creatures = {"defiler"}, rewards = {{type = "exp", value = {110000000}},{type = "achievement", value = {"Howly Silence"}},{type = "storage", value = {35011, 1}},{type = "points", value = {5}}}},
    [28] = {killsRequired = 1000, raceName = "Ghastly Dragons", level = {415, 9999}, premium = true, creatures = {"ghastly dragon"}, rewards = {{type = "exp", value = {31000000}},{type = "achievement", value = {"Dream is Over"}},{type = "storage", value = {35012, 1}},{type = "points", value = {5}}}},   
    [29] = {killsRequired = 1000, raceName = "Hellspawns", level = {430, 9999}, premium = true, creatures = {"hellspawn"}, rewards = {{type = "exp", value = {210000000}},{type = "achievement", value = {"Scorched Flames"}},{type = "storage", value = {35013, 1}}}},
    [30] = {killsRequired = 1000, raceName = "Random Noobs", level = {445, 9999}, premium = true, creatures = {"random noob"}, rewards = {{type = "exp", value = {210000000}},{type = "achievement", value = {"Zzztill Zzztanding!"}},{type = "storage", value = {35014, 1}},{type = "points", value = {5}}}},
    [31] = {killsRequired = 1000, raceName = "Fluffy", level = {460, 9999}, premium = true, creatures = {"fluffy"}, rewards = {{type = "exp", value = {310000000}},{type = "achievement", value = {"Stepped on a Big Toe"}},{type = "storage", value = {35015, 1}},{type = "points", value = {5}}}},   
    [32] = {killsRequired = 1000, raceName = "Storm Wolfs", level = {475, 9999}, premium = true, creatures = {"storm wolf"}, rewards = {{type = "exp", value = {41000000}},{type = "achievement", value = {"Something Smells"}},{type = "storage", value = {35016, 1}},{type = "points", value = {5}}}},
    [33] = {killsRequired = 1000, raceName = "Deadeye Devious", level = {480, 9999}, premium = true, creatures = {"deadeye devious"}, rewards = {{type = "exp", value = {310000000}},{type = "achievement", value = {"Kapow!"}},{type = "storage", value = {352017, 1}},{type = "points", value = {5}}}},                                       
    [34] = {killsRequired = 1000, raceName = "Dworc Voodoomasters", level = {480, 9999}, premium = true, creatures = {"dworc voodoomaster"}, rewards = {{type = "exp", value = {310000000}},{type = "achievement", value = {"One Less"}},{type = "storage", value = {352018, 1}},{type = "points", value = {5}}}},
    [35] = {killsRequired = 800, raceName = "Thuls", level = {500, 9999}, premium = true, creatures = {"thul"}, rewards = {{type = "exp", value = {310000000}},{type = "achievement", value = {"Hissing Downfall"}},{type = "storage", value = {35019, 1}},{type = "points", value = {5}}}},   
    [36] = {killsRequired = 800, raceName = "Lethal Lissy", level = {500, 9999}, premium = true, creatures = {"lethal lissy"}, rewards = {{type = "exp", value = {7500000}},{type = "achievement", value = {"The Serpent's Bride"}},{type = "storage", value = {352020, 1}},{type = "points", value = {6}}}},
    [37] = {killsRequired = 900, raceName = "Nomads", level = {500, 9999}, premium = true, creatures = {"nomad"}, rewards = {{type = "exp", value = {410000000}},{type = "achievement", value = {"Just Cracked Me Up!"}},{type = "storage", value = {352021, 1}},{type = "points", value = {6}}}},
    [38] = {killsRequired = 1000, raceName = "Posejdon", level = {500, 9999}, premium = true, creatures = {"posejdon"}, rewards = {{type = "exp", value = {310000000}},{type = "achievement", value = {"The Drowned Sea God"}},{type = "storage", value = {352022, 1}},{type = "points", value = {6}}}},   
    [39] = {killsRequired = 1000, raceName = "Island Trolls", level = {130, 9999}, premium = true, creatures = {"island troll"}, rewards = {{type = "exp", value = {310000000}},{type = "achievement", value = {"The Gates of Hell"}},{type = "storage", value = {352023, 1}},{type = "points", value = {7}}}},   
    [40] = {killsRequired = 1000, raceName = "Dawnfire Asura", level = {500, 9999}, premium = true, creatures = {"dawnfire asura"}, rewards = {{type = "exp", value = {310000000}},{type = "achievement", value = {"Beautiful Agony"}},{type = "storage", value = {352024, 1}},{type = "points", value = {9}}}},   
    [41] = {killsRequired = 1000, raceName = "Midnight Asura", level = {500, 9999}, premium = true, creatures = {"midnight asura"} , rewards = {{type = "exp", value = {310000000}},{type = "achievement", value = {"Enter zze Draken!"}},{type = "storage", value = {352025, 1}},{type = "points", value = {15}}}},
    [42] = {killsRequired = 1200, raceName = "Hydra Vip", level = {500, 9999}, premium = true, creatures = {"hydra vip"}, rewards = {{type = "exp", value = {220000000}},{type = "achievement", value = {"Best there was!"}},{type = "storage", value = {352026, 1}},{type = "points", value = {4}}}},       
    [43] = {killsRequired = 2000, raceName = "Frost Dragon Vip", level = {500, 9999}, premium = true, creatures = {"frost dragon vip"}, rewards = {{type = "exp", value = {220000000}},{type = "achievement", value = {"Back from the Dead"}},{type = "storage", value = {35027, 1}},{type = "points", value = {6}}}},
    [44] = {killsRequired = 2000, raceName = "Demon VIP", level = {500, 9999}, rank = RANK_ELITEHUNTER, premium = true, creatures = {"demon vip"}, rewards = {{type = "storage", value = {41300, 1}}}},
    [45] = {killsRequired = 1200, raceName = "Grim Reaper Vip", level = {500, 9999}, storage = {12500, 1}, premium = true, creatures = {"grim reaper vip"}, rewards = {{type = "exp", value = {290000000}},{type = "money", value = {500000}},{type = "storage", value = {352028, 1}}}},
    [46] = {killsRequired = 1500, raceName = "Dragon Lord VIP", level = {500, 9999}, storage = {12501, 1}, premium = true, creatures = {"dragon lord vip"}, rewards = {{type = "exp", value = {250000000}},{type = "money", value = {500000}},{type = "storage", value = {352029, 1}}}},   
    [47] = {killsRequired = 3000, raceName = "Warlock Vip", level = {500, 9999}, storage = {12600, 1}, premium = true, creatures = {"warlock vip"}, rewards = {{type = "exp", value = {310000000}},{type = "money", value = {15000000}},{type = "storage", value = {352030, 1}}}},
    [48] = {killsRequired = 4000, raceName = "Fury Vip", level = {500, 9999}, storage = {REPEATSTORAGE_BASE + 47, 3}, norepeatable = true, premium = true, creatures = {"fury vip"}, rewards = {{type = "exp", value = {310000000}},{type = "money", value = {500000}},{type = "storage", value = {352031, 1}}}},
    [49] = {killsRequired = 4000, raceName = "Master Hydra", level = {500, 40}, storage = {12700, 1}, norepeatable = true, premium = false, creatures = {"master hydra"}, rewards = {{type = "exp", value = {310000000}},{type = "storage", value = {35032, 1}}}},
    [50] = {killsRequired = 4000, raceName = "Master Frost Dragon", level = {500, 9999}, norepeatable = true, premium = true, creatures = {"master frost dragon"}, rewards = {{type = "storage", value = {35033, 1}}}},
    [51] = {killsRequired = 2000, raceName = "spectre", level = {500, 9999}, storage = {12800, 1}, norepeatable = true, premium = true, creatures = {"spectre"}, rewards = {{type = "exp", value = {300000000}},{type = "storage", value = {35034, 1}}}},                                                                                                                                   
    [52] = {killsRequired = 4000, raceName = "Special Haunter", level = {1000, 9999}, premium = true, creatures = {"special haunter"}, rewards = {{type = "exp", value = {400000000}},{type = "storage", value = {3522035, 1}}}}, 
    [53] = {killsRequired = 2000, raceName = "master demon", level = {500, 9999}, premium = true, creatures = {"master demon"}, rewards = {{type = "exp", value = {400000000}},{type = "storage", value = {352036, 1}}}}, 
    [54] = {killsRequired = 2000, raceName = "brimstone bug", level = {500, 9999}, premium = true, creatures = {"brimstone bug"}, rewards = {{type = "exp", value = {400000000}},{type = "storage", value = {352037, 1}}}}, 
    [55] = {killsRequired = 2000, raceName = "master grim reaper", level = {500, 9999}, premium = true, creatures = {"master grim reaper"}, rewards = {{type = "exp", value = {400000000}},{type = "storage", value = {352041, 1}}}},     
    [56] = {killsRequired = 2000, raceName = "master warlock", level = {500, 9999}, premium = true, creatures = {"master warlock"}, rewards = {{type = "exp", value = {400000000}},{type = "storage", value = {352038, 1}}}},     
    [57] = {killsRequired = 2000, raceName = "rhyder", level = {500, 9999}, premium = true, creatures = {"rhyder"}, rewards = {{type = "exp", value = {400000000}},{type = "storage", value = {352033, 1}}}}, 
    [58] = {killsRequired = 2000, raceName = "phantom lord", level = {500, 9999}, premium = true, creatures = {"phantom lord"}, rewards = {{type = "exp", value = {400000000}},{type = "storage", value = {352039, 1}}}},     
    [59] = {killsRequired = 3000, raceName = "lavanos", level = {500, 9999}, premium = true, creatures = {"lavanos"}, rewards = {{type = "exp", value = {400000000}},{type = "storage", value = {36033, 1}}}},     
    [60] = {killsRequired = 5000, raceName = "living plant", level = {500, 9999}, premium = true, creatures = {"living plant"}, rewards = {{type = "exp", value = {400000000}},{type = "storage", value = {352040, 1}}}},     
}

tasksByPlayer = 3
repeatTimes = 1

function getPlayerRank(cid)
    local p = Player(cid)
    return (p:getStorageValue(POINTSSTORAGE) >= 100 and RANK_ELITEHUNTER or p:getStorageValue(POINTSSTORAGE) >= 70 and RANK_TROPHYHUNTER or p:getStorageValue(POINTSSTORAGE) >= 40 and RANK_BIGGAMEHUNTER or p:getStorageValue(POINTSSTORAGE) >= 20 and RANK_RANGER or p:getStorageValue(POINTSSTORAGE) >= 10 and RANK_HUNTSMAN or p:getStorageValue(JOIN_STOR) == 1 and RANK_JOIN or RANK_NONE)
end

function getTaskByName(name, table)
    local t = (table and table or tasks)
    for k, v in pairs(t) do
        if(v.name) then
            if(v.name:lower() == name:lower()) then
                return k
            end
        else
            if(v.raceName:lower() == name:lower()) then
                return k
            end
        end
    end
    return false
end

function getTasksByPlayer(cid)
    local p = Player(cid)
    local canmake = {}
    local able = {}
    for k, v in pairs(tasks) do
        if(p:getStorageValue(QUESTSTORAGE_BASE + k) < 1 and p:getStorageValue(REPEATSTORAGE_BASE + k) < repeatTimes) then
            able[k] = true
            if(p:getLevel() < v.level[1] or p:getLevel() > v.level[2]) then
                able[k] = false
            end
            if(v.storage and p:getStorageValue(v.storage[1]) < v.storage[2]) then
                able[k] = false
            end

            if(v.rank) then
                if(getPlayerRank(cid) < v.rank) then
                    able[k] = false
                end
            end

            if(v.premium) then
                if(not(isPremium(cid))) then
                    able[k] = false
                end
            end

            if(able[k]) then
                table.insert(canmake, k)
            end
        end
    end
    return canmake
end

function canStartTask(cid, name, table)
    local p = Player(cid)
    local v = ""
    local id = 0
    local t = (table and table or tasks)
    for k, i in pairs(t) do
        if(i.name) then
            if(i.name:lower() == name:lower()) then
                v = i
                id = k
                break
            end
        else
            if(i.raceName:lower() == name:lower()) then
                v = i
                id = k
                break
            end
        end
    end
    if(v == "") then
        return false
    end
    if(p:getStorageValue(QUESTSTORAGE_BASE + id) > 0) then
        return false
    end
    if(p:getStorageValue(REPEATSTORAGE_BASE +  id) >= repeatTimes) or (v.norepeatable and p:getStorageValue(REPEATSTORAGE_BASE +  id) > 0) then
        return false
    end
    if(p:getLevel() >= v.level[1] and p:getLevel() <= v.level[2]) then
        if(v.premium) then
            if(isPremium(cid)) then
                if(v.rank) then
                    if(getPlayerRank(cid) >= v.rank) then
                        if(v.storage) then
                            if(p:getStorageValue(v.storage[1]) >= v.storage[2]) then
                                return true
                            end
                        else
                            return true
                        end
                    end
                else
                    return true
                end
            end
        else
            return true
        end
    end
    return false
end

function getPlayerStartedTasks(cid)
    local p = Player(cid)
    local tmp = {}
    for k, v in pairs(tasks) do
        if(p:getStorageValue(QUESTSTORAGE_BASE + k) > 0 and p:getStorageValue(QUESTSTORAGE_BASE + k) < 2) then
            table.insert(tmp, k)
        end
    end
    return tmp
end
 
add this in rewards table
{type = "lvl", value = {4}

and in npc script add
elseif isInArray({REWARD_LEVEL, "lvl", "level"}, reward.type:lower()) and not deny then
doPlayerAddLevel(cid, reward.value[1])
 
Back
Top