一、脚本核心功能
本脚本适配传奇服服务端,实现人物死亡后触发全服广播(俗称“上电视”)功能,覆盖玩家PK死亡、怪物击杀死亡、特殊场景死亡等全场景,可自定义广播内容、触发条件及展示样式,直接嵌入服务端脚本即可调用,兼容主流传奇引擎。
二、脚本基础参数配置
先定义脚本核心参数,可根据服务器设定灵活调整,参数说明及默认配置如下:
- 广播范围:全服可见(默认开启,无需额外配置)
- 广播颜色:红色(对应引擎颜色代码255,可替换为金色170、蓝色204等)
- 触发阈值:无门槛(所有人物死亡均触发,可设置等级门槛过滤低等级死亡)
- 死亡类型标识:区分PK死亡(玩家击杀)、怪物击杀、自杀/环境死亡
- 广播间隔:无冷却(连续死亡可连续广播,可添加间隔参数避免刷屏)
三、核心脚本代码(多场景适配版)
1. 脚本逻辑
监听人物死亡事件,判定死亡原因(玩家击杀/怪物击杀/其他),根据不同原因生成对应广播内容,调用全服广播接口推送信息,同时支持添加特殊标识强化展示效果。
2. 脚本代码
// 传奇服人物死亡上电视脚本
function OnPlayerDeath(player, killer) {
// 定义广播颜色代码(默认红色255,可按需替换)
const broadcastColor = 255;
// 定义等级门槛(0为无门槛,可设为30过滤低等级死亡)
const levelThreshold = 0;
// 等级判断:低于门槛不触发广播
if (player.Level < levelThreshold) return;
// 判定死亡类型,生成对应广播内容
let broadcastMsg = "";
if (killer && killer.IsPlayer()) {
// 场景1:被其他玩家击杀(PK死亡)
broadcastMsg = `【全服播报】玩家${player.Name}被${killer.Name}击败,遗憾陨落!`;
} else if (killer && !killer.IsPlayer()) {
// 场景2:被怪物击杀
const monsterName = killer.Name;
broadcastMsg = `【全服播报】玩家${player.Name}惨死于${monsterName}利爪之下!`;
} else {
// 场景3:自杀、环境死亡(如坠落、中毒等)
broadcastMsg = `【全服播报】玩家${player.Name}意外殒命,令人惋惜!`;
}
// 触发全服广播(上电视)
World.BroadcastMsg(broadcastColor, broadcastMsg);
// 可选:添加特殊音效提示,增强广播存在感
// World.PlayGlobalSound("Sound/Notice.wav");
}
四、脚本扩展功能(可选配置)
1. 特殊死亡广播强化
针对高阶玩家、VIP玩家或携带特殊装备死亡,添加专属广播文案,提升辨识度。示例代码片段如下,嵌入上述函数即可:
// 高阶玩家专属广播(等级≥80级)
if (player.Level >= 80) {
broadcastMsg = `【全服播报】高阶强者${player.Name}${killer.IsPlayer() ? "被" + killer.Name + "强势斩杀" : "陨落于" + monsterName + "之口"},震动全服!`;
}
// 携带专属装备死亡广播
if (player.HaveItem(5001, 1)) { // 5001为专属装备ID
broadcastMsg += " 其携带的【神装】也随之散落!";
}
2. 广播间隔控制(防刷屏)
添加时间戳限制,同一玩家两次死亡广播间隔不低于60秒,避免高频死亡刷屏。示例代码如下:
// 在函数顶部定义全局变量存储上次广播时间
let lastBroadcastTime = new Map();
// 间隔控制逻辑(嵌入等级判断后)
const currentTime = Date.now();
const lastTime = lastBroadcastTime.get(player.Guid) || 0;
if (currentTime - lastTime < 60000) { // 60000毫秒=60秒
return; // 间隔不足,不触发广播
}
lastBroadcastTime.set(player.Guid, currentTime);
3. 死亡广播关联奖励
玩家击杀高阶玩家并触发广播时,给予击杀者少量奖励(如货币、材料),提升PK积极性。示例代码:
// 击杀高阶玩家奖励(嵌入玩家击杀判定逻辑内)
if (player.Level >= 80) {
killer.AddItem(1002, 5); // 1002为黑铁矿ID,奖励5份
killer.SendMsg(204, `击杀高阶玩家${player.Name},获得额外奖励!`);
}
五、脚本调用与适配
1. 脚本挂载:将核心函数绑定至服务端人物死亡事件接口(OnPlayerDeath),服务端启动后自动监听死亡事件,无需额外触发指令。
2. 颜色调整:替换“broadcastColor”对应的数值,适配服务器整体视觉风格,常见颜色代码:红色255、金色170、蓝色204、绿色66、白色255。
3. 门槛设置:修改“levelThreshold”数值,如设置为30,仅30级及以上玩家死亡触发广播,减少低等级无效广播。
4. 音效添加:将指定音效文件放入服务端Sound文件夹,解除脚本内音效代码注释,即可触发全服音效提示。
六、脚本注意事项
1. 引擎兼容:部分小众引擎需调整广播接口(如将World.BroadcastMsg改为Global.Broadcast),需结合服务端引擎文档适配。
2. 性能优化:批量测试时,若服务器玩家数量较多,建议保留广播间隔控制功能,避免大量死亡事件占用服务器资源。
3. 文案统一:广播文案需与服务器内其他全服通知风格一致,避免话术突兀,增强玩家沉浸感。

