师门任务的日常共同任务做成师徒双人副本:师父带徒弟进入专属关卡,关卡机制要求两人配合——师父扛伤开门、徒弟踩点解封,奖励按协同度结算。副本强制师徒绑定互动,师门关系从挂名走向实战。
关卡两段机关:重力门需要师父站压踏板,徒弟才能通过缺口;封印阵需要徒弟踩满四角,师父才能输出阵眼。actor是字符串,转对象后判定机关状态。
local gatePlate, sealCount = false, 0
function onStepPlate(actor)
local player = class(actor)
if getplayvar(actor, 2, "SM_ROLE") == "master" then
gatePlate = true
sendmsg(actor, 0, "重力门已开启,徒弟可以通过")
end
end
function onSealCorner(actor)
local player = class(actor)
if getplayvar(actor, 2, "SM_ROLE") == "pupil" then
sealCount = sealCount + 1
if sealCount >= 4 then
sendcentermsg("封印阵解开,阵眼暴露!")
end
end
end
通关后按协同事件完成度结算奖励,双方同档发放,师父额外得授业点。actor是字符串,转对象后协同结算。
local function settleDuo(actor, mateName, coopRate)
local player = class(actor)
sendmail(actor, 0, "双人副本结算", "协同度" .. coopRate .. "%", "师门礼盒|1")
sendmail(mateName, 0, "双人副本结算", "协同度" .. coopRate .. "%", "师门礼盒|1")
if coopRate >= 80 then
sendmail(mateName, 0, "授业嘉奖", "协同默契,授业点+5", "授业点|5")
end
end
单人无法通关的强制校验、协同度结算、非师徒组合拦截三路径验证。上线后看双人副本的周参与率与师徒散伙率的相关性,一起下本的师徒散伙率应显著更低。
gatePlate与sealCount是副本级共享状态,多支师徒同场时状态互串,按队伍ID分实例是前提。机关的判定只认角色不认人,师父小号进徒弟副本的角色校验要拦住。协同度统计的协同事件清单要明确,漏计的协同事件让默契的师徒拿不到高协同度。授业点的消耗出口与产出速率对账,产出大于消耗的货币会通胀。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 装备回收商 NPC 每天按评分收购玩家的装备,裁决之杖、骨玉权杖按攻击、持久加权打分,榜上只要前五名。数…
实战应用:用在哪里 沙巴克攻城是全服行会战的最高舞台:攻方砸开城门、抢占皇宫,守方依托城墙与复活点反打。规则设计的关键是节奏…
实战应用:用在哪里 影分身玩法给法师职业补上生存短板:危急时刻召唤四个影分身分担仇恨,敌人需要在六格范围内分辨真身,猜错就浪…
实战应用:用在哪里 组队邀请、行会宣战这类关键信令丢了没有兜底,玩家只能反复手点,高峰期体验很差。重试机制给信令加确认回执:…
实战应用:用在哪里 新资料片上线首日预约量常是日常十倍,一口气全开会让数据库与登录网关同时过载。滚动开区把开区动作排成队列:…
实战应用:用在哪里 百人同屏的沙巴克外围战场,每个玩家每秒跑动会触发数次位置更新,全部即时下发时广播量随人数平方增长,网关先…