押镖是传奇的强交互经济玩法:接镖护送镖车从起点走到终点领取酬金,其他玩家可以劫镖抢走镖银,保护与劫掠的对抗是野外 PVP 的重要引擎。镖车是可被攻击的移动单位,护送与劫镖的双向判定都在引擎触发里实现。
local ESCORT_REWARD = { base = 50000, perKm = 5000 }
function QF.AcceptEscort(plr, routeId)
if plr:HasEscort() then return false, "已在押镖中" end
local deposit = 20000
if not plr:TakeGold(deposit) then return false, "押金不足" end
local cart = QF_SpawnCart(plr, routeId)
cart.hp = cart.maxHp
cart:SetFollow(plr, 2)
plr.escort = { route = routeId, cart = cart, deposit = deposit }
return true
end
接镖交 2 万押金,镖车作为跟随单位生成,跟随主人 2 格距离。押金的意义是双向保险:完成押镖退押金加酬金,镖车被劫镖金归劫掠者、押金不退,风险与收益对等。
function QF.CartDestroyed(cart, killer)
local owner = cart:GetOwner()
owner.escort = nil
owner:SendMsg("镖车被劫!押金不予退还")
QF_GiveGold(killer, cart.cargo)
QF_SendMsg(killer, "劫镖成功,获得镖银 " .. cart.cargo)
QF_AddPkValue(killer, 30)
end
function QF.EscortDone(plr)
local e = plr.escort
QF_GiveGold(plr, ESCORT_REWARD.base + e.route.distance * ESCORT_REWARD.perKm / 1000)
plr:TakeGold(e.deposit) and QF_GiveGold(plr, e.deposit)
plr.escort = nil
end
镖车被劫时货款归劫掠者、劫镖者涨 30 点 PK 值进红名区,劫镖的代价写在规则里。押镖完成按路线距离计酬,长线路高风险高回报。镖车血量公开展示,劫镖要打的血量与护镖的反杀都在明面上。
劫镖率按线路与时段统计,劫镖率超过四成的线路提高酬金吸引押镖,供需自动平衡。
镖车的跟随寻路在狭窄地形卡死过,卡死超时镖车自动瞬移到主人身边,防止卡位白跑。自导自演的劫镖刷 PK 曾成风,同 IP 段劫镖不涨 PK 值不给货款的规则切断了自娱自乐的口子。
镖车的血量显示在车顶的血条与押镖面板双处展示,护镖的战况对双方透明。劫镖的红名惩罚 30 点 PK 值的计算叠加了受害者等级修正:劫低级玩家的镖 PK 惩罚翻倍,恃强凌弱的成本被制度放大。押镖的路线有三条:短线低酬低险、中线均衡、长线高酬高危,路线的选择是玩家对自身实力的自评。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 脚本的规范靠人盯盯不过来:命名风格漂移、全局变量乱用、缩进混着来——风格检查器把这些规则的执行自动化。提…
实战应用:用在哪里 拍卖行的出价是一场与时间的博弈:出价的按钮、倒计时的紧迫、截拍瞬间的悬念——拍卖界面的要点是出价的流程、…
实战应用:用在哪里 强化连败七次是什么体验?幸运值机制给失败的玩家一个隐性的承诺:每次失败累加幸运值,幸运值越高下一次的成功…
实战应用:用在哪里 审计日志的价值在于不可抵赖:被改过的日志比没有日志更危险——纠纷的追溯、内部的追责都建立在「日志没被动过…
实战应用:用在哪里 活动结束给 3 万玩家发奖励:一次性群发让邮件表瞬间多 3 万行、投递的队列堵塞正常的通信。批量邮件的分…
实战应用:用在哪里 面对面的交易是传奇最经典的交互:两人面对面、各自放入物品与金币、双方确认后成交。交易的协议要点是会话的建…