行会资金的分配全凭会长临时决定:建筑维护超支、活动奖励不足、紧急需求无钱可用——行会资金缺乏预算制度。资金预算分配封装:月初按各用途分配预算(建筑维护、活动奖励、紧急备用),当月支出不超预算,月度执行报告公示给全员。
预算分配与执行监控:月初分配、执行跟踪、超支告警。示例代码如下:
local BUDGET = { maintenance = 40, reward = 30, reserve = 30 }
local monthly = {}
local function initBudget(month, totalFund)
monthly[month] = {}
for k, pct in pairs(BUDGET) do
monthly[month][k] = math.floor(totalFund * pct / 100)
end
end
local function spend(month, category, amount)
local budget = monthly[month]
if budget == nil or budget[category] == nil then
return false
end
if budget[category] < amount then
sendmsg(nil, 1, category .. " 预算不足,剩余 " .. budget[category])
return false
end
budget[category] = budget[category] - amount
return true
end
月度执行报告示例代码如下:
local function monthReport(month)
local b = monthly[month]
for k, v in pairs(b) do
sendmsg(nil, 1, k .. " 预算 " .. v .. " 金币。")
end
end
BUDGET 按用途定义预算百分比(维护 40%、奖励 30%、备用 30%),initBudget 在月初按上期资金总额计算各用途的分配额度。spend 从对应类别的预算中扣减,余额不足拒绝支出。monthReport 月末公示执行情况,超支项标红提醒下月调整。
资金预算踩过三个坑:一是紧急备用金被挪用为常规支出(备用金变成了第四个预算类别),备用金只允许会长与副会长双签才能动用;二是月初初始化时上月预算未清零直接覆盖,上月未用完的预算被静默清空引发争议,月末结余转入下月备用金;三是预算分配比例写死在代码中,调整比例需要改代码重发布,比例改为配置表由会长在行会管理面板调整。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏】 一、一行代码拆解:score = 3000 - used 10 —— 副本评分的全部骨架:基础分减去用时惩罚,分数…
【语法】 一、隐蔽陷阱:Lua 没有四舍五入函数,math.floor(2.5) 得 2 恒向负无穷取整——正数的四舍五入要…
【游戏】 一、业务场景:攻城战开打,会长世界喊话等人集合耽误 8 分钟,守军早已布防;集结令上线——会长发起,在线成员一键传…
【语法】 一、抛坑提问:乱序编号 {100, 4, 200, 1, 3, 2} 里最长连续段是 1 到 4 长度 4——排序…
【语法】 一、抛坑提问:统计第 1 到第 10 项,写 for i = 1, t - 1 少算一个,写 for i = 1,…
【游戏】 一、一行代码拆解:if old and old = actor then kick(old) end —— 顶号的…