mirror of
https://github.com/ErikasKontenis/SabrehavenServer.git
synced 2025-04-30 09:39:20 +02:00
49 lines
1.5 KiB
Lua
49 lines
1.5 KiB
Lua
local config = {
|
|
['exp'] = {skillKey = 17585, timeKey = 17589},
|
|
['skill'] = {skillKey = 17586, timeKey = 17590},
|
|
['magic'] = {skillKey = 17587, timeKey = 17591},
|
|
['loot'] = {skillKey = 17588, timeKey = 17592} -- TODO
|
|
}
|
|
|
|
function onSay(player, words, param)
|
|
if not player:getGroup():getAccess() then
|
|
return true
|
|
end
|
|
|
|
if player:getAccountType() < ACCOUNT_TYPE_GOD then
|
|
return false
|
|
end
|
|
|
|
local split = param:split(",")
|
|
if split[3] == nil then
|
|
player:sendCancelMessage("Insufficient parameters [(exp,skill,loot,magic),percentage,hours].")
|
|
return false
|
|
end
|
|
|
|
local skillName = split[1]
|
|
local percentage = tonumber(split[2])
|
|
local hours = tonumber(split[3])
|
|
|
|
local globalStorage = config[skillName]
|
|
if not globalStorage then
|
|
player:sendCancelMessage("Skill name value must be one of the following: exp, skill, loot, magic.")
|
|
return false
|
|
end
|
|
|
|
if percentage <= 0 then
|
|
player:sendCancelMessage("Percentage value must be higher than 0. For example, 50% means 1.5x higher rate.")
|
|
return false
|
|
end
|
|
|
|
if hours <= 0 then
|
|
player:sendCancelMessage("Hours value must be higher than 0.")
|
|
return false
|
|
end
|
|
|
|
setGlobalStorageValue(globalStorage.skillKey, percentage)
|
|
setGlobalStorageValue(globalStorage.timeKey, os.time() + hours * 60 * 60)
|
|
broadcastMessage(player:getName() .. " have activated the global " .. percentage .. "% " .. skillName .. " rate boost for next " .. hours .. " " .. (hours == 1 and "hour" or "hours") .. ".", MESSAGE_STATUS_WARNING)
|
|
|
|
return false
|
|
end
|