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
 |