33 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
| local Config = require("shared.sh_config")
 | ||
| local Locales = require("shared.sh_locales")
 | ||
| 
 | ||
| if Config.Framework ~= "custom" then return end
 | ||
| 
 | ||
| --- Processes payment of the fine for death and notifies the player.
 | ||
| ---@param source number  -- The player’s source ID
 | ||
| ---@return boolean  -- Returns true if the fine was successfully paid, false otherwise
 | ||
| local function PayFine(source)
 | ||
| 	local player = GetPlayerId(source) -- Retrieve the player object using their source ID
 | ||
| 	if not player then return false end
 | ||
| 
 | ||
| 	local amount = Config.PriceForDeath -- Fine amount to be paid
 | ||
| 	local moneyAvailable = player.GetMoney("cash") -- Player’s available cash balance
 | ||
| 	local bankAvailable = player.GetMoney("bank") -- Player’s available bank balance
 | ||
| 
 | ||
| 	-- Attempt to pay with cash first, then bank, and notify accordingly
 | ||
| 	if moneyAvailable >= amount then
 | ||
| 		player.RemoveMoney("cash", amount) -- Remove Player’s cash
 | ||
| 		ServerNotify(source, Locales.Notify.PaidFine:format(amount), "info")
 | ||
| 		return true
 | ||
| 	elseif bankAvailable >= amount then
 | ||
| 		player.RemoveMoney("bank", amount) -- Remove Player’s bank money
 | ||
| 		ServerNotify(source, Locales.Notify.PaidFine:format(amount), "info")
 | ||
| 		return true
 | ||
| 	else
 | ||
| 		ServerNotify(source, Locales.Notify.NoMoney, "error")
 | ||
| 		return false
 | ||
| 	end
 | ||
| end
 | ||
| 
 | ||
| -- Registers the PayFine function as a server callback
 | ||
| lib.callback.register("cloud-deathscreen:server:PayFine", PayFine)
 | 
