攻城有始也有终:占领的荣耀在 getcastle0,失去的落幕在 beforgetcastle——被其他行会夺下沙巴克的瞬间,这个触发通知脚本做失位的收尾:降旗、停税、安抚旧部。
---beforgetcastle: 失去沙巴克触发
---sysObj:系统对象 guildName:失去城堡的行会名
function beforgetcastle(sysObj, guildName)
-- 停止该行会的税收权
Tax.revoke(guildName)
sendmsg(nil, 1, "「" .. guildName ..
"」失去了沙巴克的统治,税收权移交新主!")
-- 记录失位的历史时刻
Siege.history[#Siege.history + 1] = {
guild = guildName,
lostAt = os.time(),
}
end
失去沙巴克的触发带失去方行会名:脚本侧拿到名字后做三件收尾——税收权的撤销(每日 5% 的抽成立即停止)、行会驻地的降旗(城头的旗帜换为新主的颜色)、失位时刻写进行会的兴衰史。旧成员的 compensation:城主在位期间的贡献者收到一封告别邮件,附上在位天数的总结,输掉的行会也有体面。
---新主的福利与旧主的缓冲
function Siege.afterLose(guildName)
-- 旧城主行会保留 24 小时的免税缓冲
Tax.setRate(guildName, 0)
-- 行会等级与建设度保留:夺城可以重来
sendmsg(nil, 1, "沙巴克易主!行会等级与建设度不受影响")
end
失位的惩罚边界明确:税收权与城主称号转移,行会等级与建设度原地保留——推倒重来的挫败感会劝退整个行会,留着重来的资本才有下一周的攻城。失败的行会进入 7 天的复仇保护期:同对手的攻城申请优先受理,恩怨的轮回是攻城生态的燃料。数据侧的移交:税收的账本封存归档,新主行会从零开始记新的账,财务的边界随归属同步切换。
失位事件的触发与占领触发的配对核查:一次易主必须同时产生一失一得两条记录;税收停发与新主开账的时序监控,财务的空窗期为零。
税收的撤销曾经滞后一个结算周期,旧主多领了一天的税,撤销与结算的时序对齐。降旗的广播曾经不带新旧行会的名字,围观的玩家不知道谁上谁下,文案的模板补全。失位历史的记录曾经只存内存,重启后行会的兴衰史清零,历史落库。
失位的补偿与缓冲时长进配置,赛季的攻城规则可调。易主的播报与官网的战报联动,沙巴克的兴衰史做成可浏览的页面。失位行会的管理层自动收到复盘的数据包:守城时长、参战人数、关键战斗的时间点。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 版本更新上线后突然下架了某件热销商品,但更新公告里没有提到这件事。玩家发现后截图传播,两小时内贴吧帖子超…
实战应用:用在哪里 技能升级后缺少视觉与听觉反馈,玩家不确定升级是否成功。技能升级反馈在升级成功的瞬间展示金色光效、播放升级…
实战应用:用在哪里 点击其他玩家的角色时默认弹出查看面板,但在战斗中玩家希望点击即攻击。双击检测在单击查看的基础上增加双击攻…
实战应用:用在哪里 灵宠在战斗中作用有限,玩家养了宠物但缺少日常互动。灵宠派遣让宠物成为玩家的探索伙伴:派遣灵宠外出探索获取…
实战应用:用在哪里 宠物养成线只有喂食和升级,缺少宠物之间的对抗玩法。宠物竞技让两只宠物在专属竞技场进行自动对战,玩家通过调…
实战应用:用在哪里 测试环境直接复制生产库会把真实玩家数据暴露给开发和测试人员,存在隐私泄露风险。脱敏测试库的搭建分三步:从…