门派战是行会之间的赛季制对抗:每周报名、自动对阵、积分累计、赛季结算,行会的荣誉体系围绕门派战展开。与沙巴克攻城的争夺不同,门派战是制度化的常规赛,强弱行会都有明确的参与回报。
local SECT_WAR_FEE = 3000000
function sectWarSignUp(actor, guildId)
local guild = getguild(guildId)
if guild.leader ~= actor:GetID() then return false, "仅帮主可报名" end
if sectWarSigned(guildId) then return false, "本周已报名" end
if not actor:TakeGold(SECT_WAR_FEE) then return false, "报名费 300 万" end
sectWarPool[#sectWarPool + 1] = guildId
if #sectWarPool >= 2 then
sectWarMatchup()
end
end
function sectWarMatchup()
table.sort(sectWarPool, function(a, b)
return getguildscore(a) > getguildscore(b)
end)
for i = 1, #sectWarPool - 1, 2 do
sectWarPair(sectWarPool[i], sectWarPool[i + 1])
end
end
报名费 300 万过滤随意参与,积分接近的行会优先配对,对阵的悬念来自实力的接近。配对的对阵表全服公示,比赛的观众由此聚集。报名的截止时间与开战时间各留 24 小时,备战期的行会动员是玩法的一部分。
function sectWarOnKill(war, killer)
war.score[killer.guildId] = (war.score[killer.guildId] or 0) + 10
if war.score[killer.guildId] >= 200 then
sectWarEndWar(war, killer.guildId)
end
end
function sectWarEndWar(war, winner)
addattacksabukall()
addHonor(winner, 500)
sectWarReset()
end
积分先到 200 的行会获胜,胜方获得 500 点行会荣誉与攻城战的增益标记。门派战的败方也有参与奖,参赛的保底收益让弱会不至于血本无归。赛季的积分清零与段位保留并行:荣誉永久、竞争重新开始。
对阵的胜率对称性监控,双方胜率长期偏离五成的配对算法需要调参。
报名费的扣除与登记曾经不同步,扣了费没登记的行会错过了开赛,事务的原子性是收费玩法的底线。积分的同帧并发累加曾经丢分,击杀的积分累加加锁后准确。
门派战的时段避开攻城战,两大 PVP 玩法的错峰让行会的战力分配有节奏。赛季的段位与沙巴克攻城的增益联动:门派战的强会打攻城有小幅加成,玩法之间的生态互相输血。观战的押注玩法(竞猜胜负)增加围观乐趣,竞猜的筹码与赔率的公示保证公平。门派战的季报同步发送给各帮主,季报里的对阵复盘与积分曲线是行会招新的宣传素材,赛果的传播让参与行会的招募效率提升。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 沃玛教主血量每降一档触发一次全服播报,播报逻辑散在伤害结算里,改一条文案翻三个文件。时间轴框架把阶段播报…
实战应用:用在哪里 金位摊位成了稀缺资产,私下转让滋生倒卖。过户系统把转让收编:双方确认、缴纳成交价一成的过户费、转让后原主…
实战应用:用在哪里 师门积分商店的热门商品每周限购两件,限购状态跨周重置的口径必须稳:本周已购几件、下周何时刷新、补签周怎么…
实战应用:用在哪里 练级区怪物密度是玩家口碑的晴雨表:太密抢怪打架,太稀挂机空转。密度动态平衡机制把刷新倍率做成运营参数,按…
实战应用:用在哪里 新玩家不知道安全区边界在哪,迈出一步被野怪围殴,第一印象直接崩坏。边界警示方案:接近安全区边界时地面浮现…
实战应用:用在哪里 自动寻路省心但让玩家成了观光客,手动跑图自由却容易迷路。追踪切换方案:任务追踪面板提供自动与手动两种模式…