死亡是传奇的重量:沙巴克城下的阵亡、红名村口的伏杀、沃玛深处的团灭,死亡惩罚的规则决定了 PK 的代价与打宝的风险。playdie 触发在被杀的瞬间启动,掉落的裁决与复活的账单都在这里结算。
---playdie: 玩家被杀触发 self:被杀者 hiter:攻击者
function playdie(self, hiter)
-- 沙巴克攻城战内死亡免掉落
if Siege.running and self.mapId == "shabake" then
sendmsg(self, 1, "攻城战内死亡,免除掉落")
return
end
-- 红名者死亡:背包掉落概率翻倍
local pk = tonumber(getplayvar(self, 2, "PKValue")) or 0
local dropRate = pk >= 200 and 60 or 30
if math.random(1, 100) <= dropRate then
Die.dropOne(self)
end
-- 凶手加 PK 值
if hiter and hiter:IsPlayer() then
local v = tonumber(getplayvar(hiter, 2, "PKValue")) or 0
setplayvar(hiter, "HUMAN", "PKValue", v + 100, 1)
sendmsg(hiter, 1, "PK 值 +100,当前 " .. (v + 100))
end
end
触发带被杀者与攻击者两个对象:攻城战内的死亡豁免掉落——沙巴克的阵亡只损失时间不损失装备,攻城的烈度由规则托底。掉落概率按 PK 值分档:白名 30%、红名 60%,红名死一次掉半身是老传奇的铁律。凶手的 PK 值加 100 落库,200 的红名线让三杀即红,红名的通缉与掉落惩罚构成 PK 的经济账。
---复活三选一:回城、原地、等待
function Die.revive(self)
-- 原地复活币:1000 元宝一次
if checkitemw(self, "复活币", 1) then
takeitem(self, "复活币", 1, 0, "原地复活")
humanhp(self, "=", self:GetMaxHp())
sendmsg(self, 1, "原地复活成功")
return
end
-- 常规:回城复活,等 5 秒读秒
Die.countdown(self, 5)
end
---playreconnection: 重连时的死亡态恢复
function playreconnection(actor)
if (getplayvar(actor, 2, "IsDead") or "") ~= "" then
sendmsg(actor, 1, "角色处于死亡状态,请选择复活方式")
end
end
复活的三条路:回城复活免单、原地复活消耗一枚复活币并满血起身、等待读秒后免费回城。复活币的定价 1000 元宝,沙巴克战场的原地复活是行会后勤的战略物资。死亡态的标记落库,掉线重连后仍处于死亡选择界面——死亡不会因为网络问题变成无敌。死亡掉落的物品进捡取的公共归属,掉在地上 60 秒后无主可捡,捡与反捡的博弈是 PK 的下半场。
死亡的原因分布与掉落的物品价值统计,红名村的死亡密度是 PK 生态的温度计;复活方式的占比监控复活币的消耗曲线。
PK 值的加成曾经对宠物击杀也生效,道士的狗背了全部锅,宠物击杀的归属判定修正。豁免的判定曾经只看地图没看战况,攻城结束的瞬间阵亡仍被豁免,战况标志的实时判断修复。死亡标记曾经在复活后不清,重连的玩家永远躺在选择界面,复活完成时清标记。
掉落概率与 PK 红线进行会与版本配置,怀旧服可以更狠。复活币的投放渠道与价格按服务器经济季度校准。死亡回放(谁在何处杀了谁)进客服的查询工具,恶意 PK 的举报有据可查。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 沙巴克占领行会坐收税收却只进不出,非占领行会的玩家心里不平衡。税务官玩法把税收做成明账:占领行会对摆摊与…
实战应用:用在哪里 高端玩家婚姻系统只有仪式没有过程,社交绑定缺一个高光事件。比武招亲做成擂台玩法:擂主设擂摆彩头,攻擂者报…
实战应用:用在哪里 开服七日限时礼包发到第六天断了粮,9 月 1 日当天领奖按钮灰的,投诉当天破千。事故根因是一条数字日期循…
实战应用:用在哪里 玩家拔线不退游戏,连接半开着,人不在指令也没有,在线数虚高,容量预案被假数据带着跑。心跳探测给每个在线玩…
实战应用:用在哪里 周三发了合成系统补丁,周四又改强化概率,两条变更叠加后玩家分不清是哪个改出来的。发布日历把全月变更集中排…
实战应用:用在哪里 容量预案需要知道滚动一小时的副本进入峰值,而不是全天累计。滑动窗口用 60 个槽位每槽记一分钟的进入数,…