Someone asked me on Discord about script that gives configurable rewards on level advance.
It's onAdvance event. Rewards are easy configurable and can be limited by vocations and level.
EDIT:
Fixed level comparison. Now script works when player advanced from level 19 to 21 and reward is for level 20.
It's onAdvance event. Rewards are easy configurable and can be limited by vocations and level.
Lua:
local rookVocations = { 0 }
local sorcererVocations = { 1, 5 }
local druidVocations = { 2, 6 }
local paladinVocations = { 3, 7 }
local knightVocations = { 4, 8 }
local mainVocations = { 1, 2, 3, 4, 5, 6, 7, 8 }
local allVocations = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }
local rewardsConfig = {
-- 2cc and Magic Sword for every 20 level on main
{
level = 20,
vocations = mainVocations,
storage = 25100,
items = {
{ 2160, 2 },
{ 2400, 1 },
}
},
-- wand of inferno for 33 sorc
{
level = 33,
vocations = sorcererVocations,
storage = 25101,
items = {
{ 2187, 1 },
}
},
}
function onAdvance(player, skill, oldLevel, newLevel)
if skill ~= SKILL_LEVEL then
return true
end
for i1, rewardConfig in pairs(rewardsConfig) do
if newLevel >= rewardConfig.level then
if table.contains(rewardConfig.vocations, player:getVocation():getId()) then
if player:getStorageValue(rewardConfig.storage) < 1 then
player:setStorageValue(rewardConfig.storage, os.time())
for i2, item in pairs(rewardConfig.items) do
player:addItem(item[1], item[2])
end
player:getPosition():sendMagicEffect(CONST_ME_CRAPS)
player:sendTextMessage(MESSAGE_INFO_DESCR, "You received reward for getting " .. rewardConfig.level .. " level.")
end
end
end
end
return true
end
EDIT:
Fixed level comparison. Now script works when player advanced from level 19 to 21 and reward is for level 20.
Last edited: