攻城战两个月才一次,新会长连城门在哪都要找半天。城战演习把攻城流程拆成每周一次的无奖励演练:地图、门禁、复活规则与正式攻城一致,唯独去掉所有产出,让指挥练调度、让新人练走位。演练的设计难点在于去掉奖励后如何保住参与热情。
演练沿用攻城全部机制:门禁时序、城门耐久、皇宫归属判定全真;所有掉落与奖励关闭,死亡无惩罚,报名即参与,行会可报名攻或守任意一方。示例代码如下:
-- 城战演习:全真零产出
local player = class(actor)
local function joinDrill(player, side)
if getsysvar("DrillOpen") ~= 1 then
sendmsg(player, 1, 0, "本周演练未开放,开放时间为每周三 20 点。")
return
end
setplayvar(player, "HUMAN", "DrillSide", side, true)
setplayvar(player, "HUMAN", "DrillNoDrop", 1, true)
beginteleport(player, side == "attack" and 320 or 288, 300)
sendmsg(player, 1, 0, "已加入" .. (side == "attack" and "攻方" or "守方") ..
"演练,本场景无掉落无惩罚。")
end
演练按战术动作评分而非产出:破门用时、皇宫控制时长、指挥指令响应三项构成评分;结束后生成复盘报告发给双方指挥,评分不排名不上榜,只做自我对照。示例代码如下:
-- 演练结算:战术评分
local player = class(actor)
local function drillReport(player, breakSec, holdSec, cmdRate)
local score = 0
if breakSec <= 600 then score = score + 40 end
if holdSec >= 900 then score = score + 40 end
if cmdRate >= 80 then score = score + 20 end
sendmsg(player, 1, 0, "演练评分 " .. score .. "/100:破门 " .. breakSec ..
" 秒,皇宫控制 " .. math.floor(holdSec / 60) .. " 分钟,指令响应率 " .. cmdRate .. "%。")
end
机制全真验证:门禁开关、耐久判定、归属切换与正式攻城逐项一致,零产出确认无任何资产变动。参与度看三个数:演练报名率、全程完成率、次周回参率,报名率低就在演练前加一场战术讲堂引流;指挥反馈复盘报告不够细时,增加分阶段时间轴记录,演练的价值全部体现在复盘质量上。
首届演练漏关了掉落,有人借演练刷城门守卫的产出,零产出开关要在进入场景时强制生效。评分曾以击杀数为主,行会互刷人头刷分,评分项改成战术动作后风气回归。复盘报告曾只发评分不发过程,指挥看了分数不知道问题在哪,时间轴记录补上后,演练才算真正服务于下一场真攻城。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 行会日常任务十年如一日是同三件事,老成员做麻了,新人做懵了。行会任务大厅改成自选池:每天刷出八个任务,成…
实战应用:用在哪里 为了冲季度在线峰值,一周内同时开了双倍经验、掉落翻倍、充值返利三场活动,结果金币产出是平日六倍,裁决之杖…
实战应用:用在哪里 师徒系统的奖励散在多个环节,徒弟不知道出师还差什么,师傅不知道带徒收益几何。师徒面板把出师进度、五项师门…
实战应用:用在哪里 法师的终极愿景是流星火雨:天空落下火雨,范围内所有敌人同时受击,视觉与数值都是全服焦点。触发设计要处理三…
实战应用:用在哪里 攻城战两个月才一次,新会长连城门在哪都要找半天。城战演习把攻城流程拆成每周一次的无奖励演练:地图、门禁、…
实战应用:用在哪里 角色变量是隐形的存储:每个系统都往里塞数据,没人记得清场,一年后单个角色的变量膨胀到上万字符,存档变慢、…