师门任务的日常共同任务做成师徒双人副本:师父带徒弟进入专属关卡,关卡机制要求两人配合——师父扛伤开门、徒弟踩点解封,奖励按协同度结算。副本强制师徒绑定互动,师门关系从挂名走向实战。
关卡两段机关:重力门需要师父站压踏板,徒弟才能通过缺口;封印阵需要徒弟踩满四角,师父才能输出阵眼。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 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 沃玛祭坛是沃玛森林深处的隐藏玩法:玩家投放指定祭品积累召唤进度,进度满格召唤出沃玛教主之影,全服玩家都可…
实战应用:用在哪里 全服入侵事件最大的问题是玩家总是在事后才知道。魔军压境前哨把预警做成玩法的一部分:入侵前三哨塔依次亮起,…
实战应用:用在哪里 坐骑不喂会饿、喂饱了跑得快,饱食度是坐骑系统的核心状态。坐骑喂养接口管理饱食度的增减与加成联动:饱食度一…
实战应用:用在哪里 宠物合成要消耗材料与金币,分解返还多少材料,玩家在操作前就该知道。宠物合成分解页把合成消耗、分解返还、成…
实战应用:用在哪里 角色数据与订单数据曾共用一套备份,订单回滚时把角色也卷了回去,玩家充了钱角色却回到三天前。异库备份把角色…
实战应用:用在哪里 师门成员平日各忙各的,同门之间几乎零交流。师门切磋周把门内切磋变成积分赛:一周内师门成员互相发起切磋,胜…