28 lines
		
	
	
		
			836 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			836 B
		
	
	
	
		
			Lua
		
	
	
	
	
	
function onLogin(player)
 | 
						|
	if not configManager.getBoolean(configKeys.STAMINA_SYSTEM) then
 | 
						|
		return true
 | 
						|
	end
 | 
						|
 | 
						|
	local lastLogout = player:getLastLogout()
 | 
						|
	local offlineTime = lastLogout ~= 0 and math.min(os.time() - lastLogout, 86400 * 21) or 0
 | 
						|
	offlineTime = offlineTime - 600
 | 
						|
 | 
						|
	if offlineTime < 180 then
 | 
						|
		return true
 | 
						|
	end
 | 
						|
 | 
						|
	local staminaMinutes = player:getStamina()
 | 
						|
	local maxNormalStaminaRegen = 3240 - math.min(3240, staminaMinutes)
 | 
						|
 | 
						|
	local regainStaminaMinutes = offlineTime / 180
 | 
						|
	if regainStaminaMinutes > maxNormalStaminaRegen then
 | 
						|
		local happyHourStaminaRegen = (offlineTime - (maxNormalStaminaRegen * 180)) / 600
 | 
						|
		staminaMinutes = math.min(3360, math.max(3240, staminaMinutes) + happyHourStaminaRegen)
 | 
						|
	else
 | 
						|
		staminaMinutes = staminaMinutes + regainStaminaMinutes
 | 
						|
	end
 | 
						|
 | 
						|
	player:setStamina(staminaMinutes)
 | 
						|
	return true
 | 
						|
end
 |