local config = {
storage = 99960 -- reserved storages from X to X + amount of things in rewards below (now it's 5)
}
local rewards = {
[1] = {vocs = {}, level = 45, gold = 50000, items = {}}, -- in vocs {} is empty, that means every vocation gets the reward.
[2] = {vocs = {}, level = 100, gold = 100000, items = {}},
[3] = {vocs = {}, level = 150, gold = 150000, items = {}},
[4] = {vocs = {}, level = 200, gold = 200000, items = {13529}},
[5] = {vocs = {}, level = 250, gold = 300000, items = {13581}},
[6] = {vocs = {3, 7}, level = 30, gold = 0, items = {2195}} -- vocs 3 and 7 (paladin and royal paladin) gets bohs (id 2195) at level 30
}
-- YOU DONT HAVE TO TOUCH ANYTHING BELOW THIS LINE
local function doPlayerAddGold(cid, amount)
local gold = {
c = {2160, math.floor(amount/10000)},
p = {2152, math.floor((amount-(c * 10000))/100)},
g = {2148, (amount-(c * 10000 + p * 100))}
}
for k = 1, #gold do
doPlayerAddItem(cid, gold[k][1], gold[k][2])
end
return true
end
function onAdvance(cid, skill, oldlevel, newlevel)
if skill == SKILL__LEVEL then
for i = 1, #rewards do
if newLevel >= rewards[i].level then
if getPlayerStorageValue(cid, config.storage + i) ~= nil then
return true
else
if (rewards[i].vocs ~= nil and isInArray(rewards[i].vocs, getPlayerVocation(cid)) == true) or rewards[i].vocs == nil then
doPlayerAddGold(cid, rewards[i].gold)
local line = ""
if #rewards[i].items ~= nil then
line = "and extra reward "
for j = 1, #rewards[i].items do
doPlayerAddItem(cid, rewards[i].items[j])
end
end
setPlayerStorageValue(cid, config.storage + i, 1)
doPlayerSendTextMessage(cid, 22, "You have received " ..rewards[i].gold.. " coins " ..line.. "because you reached level " ..rewards[i].level)
end
end
end
end
end
return true
end