【游戏】
一、业务场景
帮会人少时打不死召唤的目标,人多时又抢不到,时机全靠会长手点,纠纷不断。改为每日一次的定时召唤加伤害排名奖励:统一窗口开打,名次说话。
二、实现方案
召唤窗口(每日限一次):
local function summon(guild)
local today = os.date("%Y%m%d")
if getsysvar("bossDay_" .. guild) == today then
return
end
setsysvarex("bossDay_" .. guild, today)
setsysvarex("raidHp_" .. guild, 300000)
genmon(3, 150, 150, "帮会BOSS")
sendcentermsg(0, guild .. " 的帮会BOSS 已出现")
end
排名结算(伤害前 5 名领对应礼包):
local function settle(guild)
local list = {}
for name in string.gmatch(
getsysvar("dmgList_" .. guild) or "", "[^|]+") do
list[#list + 1] = {name, getsysvar("dmg_" .. name) or 0}
end
table.sort(list, function(a, b) return a[2] > b[2] end)
for i = 1, math.min(#list, 5) do
local p = getplayerbyname(list[i][1])
if p ~= nil then giveitem(p, 5200 + i, 1) end
end
end
三、边界处理
同一帮会每日只召唤 1 次;伤害相同按先到先排名;当日未被击杀则次日 0 点血池重置不累计。
四、引擎验证
当日二次召唤被拦截;击杀后前 5 名各领对应名次礼包;伤害榜与战斗日志逐条一致。
五、FAQ
问:排名能实时看吗?
答:能,dmg 变量实时可查,列表页轮询展示。
问:小帮会打不动怎么办?
答:血池按帮会在线人数缩放,30 人帮对应 30 万血。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏】 一、规则机制 隐蔽的坑:折叠列表收起分组时只把子项 setVisible(false),占位还留在原地,列表下半截…
【语法】 一、机制原理 一行代码拆解:a, b = b, a % b。最大公约数的辗转相除法:两数相除取余数,余数再与除数继…
【游戏】 一、规则机制 线上事故:聊天里 @ 了某人,消息混在普通流水里,对方根本没注意,集合迟到的锅全甩给没提醒。点名提醒…
【游戏】 一、规则机制 一行定骨架:text = LANG[cur][key] or LANG.zh[key]。多语言文案的…
【语法】 一、机制原理 抛个坑:模板"$(name),您的$(item)已到账"这种带命名槽位的文案怎么填值?string.…
【游戏】 一、规则机制 抛个坑:横屏竖屏一切界面,控件坐标全按竖屏摆,一旋转错位满屏——适配该怎么做?两条策略配合:界面元素…