传奇死亡触发脚本写法 PK死亡公告脚本实操教程

来源: 作者: 点击:
很多玩传奇、做版本的朋友,都想在版本里加上死亡触发脚本,最常用的就是PK死亡公告脚本,比如小红在土城把小明杀死了,全服或者全地图弹出公告,让所有玩家都能看到,增强游戏的互动感和PK氛围,我结合自己做版本、写脚本的实操经验,直奔主题,一步步教大家怎么写,不用复杂术语,新手也能跟着做,每一步都讲得详细,照着操作就能成功,全程无多余修饰,所有脚本代码都能直接复制使用。
先给大家说清楚核心:传奇死亡触发脚本,核心触发命令是(@PlayDie),这个命令是传奇脚本里专门用来触发人物死亡事件的,不管是被玩家杀死(PK死亡),还是被怪物杀死,只要人物死亡,就会触发这个脚本,而我们要写的PK死亡公告脚本,就是在这个触发命令的基础上,添加判断条件和公告内容,实现“谁在哪个地图把谁杀死了”的全服/全地图提示,比如你说的小红在土城把小明杀死了,就是最基础的PK死亡公告,也是最容易实现的。
首先,明确脚本的存放路径,这是基础,放错路径,脚本再好也无法生效。所有死亡触发脚本,不管是PK死亡公告,还是被怪物杀死的提示,都要放在传奇服务端的指定文件夹里,具体路径是:D:\mirserver\Mir200\Envir\Market_Def\QFunction-0.txt,这个文件是传奇的核心功能脚本文件,所有人物死亡、升级、杀怪等触发脚本,都要写在这里面,没有这个文件的话,直接创建一个文本文档,重命名为QFunction-0.txt即可,不用修改后缀,直接放在Market_Def文件夹里就行。
重点来了,PK死亡公告脚本(如小红在土城把小明杀死了)的核心写法,分基础版和进阶版,基础版就能实现你想要的效果,进阶版可以添加更多细节,比如死亡地点坐标、击杀提示样式,大家可以根据自己的版本需求选择,先从基础版开始,一步步来,新手优先学基础版,简单易上手,不用修改太多参数。
基础版PK死亡公告脚本(直接复制可用,修改提示内容即可):
// PK死亡公告脚本(基础版,实现“谁在哪个地图把谁杀死了”)
(@PlayDie)
#IF
KILLBYHUM // 判断死亡原因:被玩家杀死(PK死亡),排除被怪物杀死的情况
#ACT
SENDMSG 1 【PK公告】玩家<$KILLER>在地图<$MAPNAME>成功击杀玩家<$USERNAME>! // 全服红字公告
break // 结束脚本,避免重复触发
#ELSEACT // 否则(被怪物杀死),触发以下提示(可选,可删除)
SENDMSG 6 你被怪物<$MONKILLER>杀死了,快回城复活再战! // 个人提示,只显示给死者
break
给大家拆解一下这个基础版脚本,一看就懂,不用懂编程,重点看这几个关键部分,这样你后续想修改也能轻松上手:
1. (@PlayDie):核心触发命令,只要人物死亡,就会触发这个脚本,这是传奇死亡触发脚本的必备命令,不能写错,括号和@符号都不能少,写错就无法触发。
2. #IF KILLBYHUM:条件判断,意思是“判断死者是不是被玩家杀死的”,只有满足这个条件,才会执行后面的公告内容;如果是被怪物杀死,就不会执行PK公告,会执行后面的#ELSEACT内容(被怪物杀死的提示)。
3. SENDMSG 1 【PK公告】......:公告发送命令,其中“1”代表全服红字公告,所有在线玩家都能看到,最醒目,适合PK公告;里面的<$KILLER>是“击杀者名称”变量,会自动显示杀死人的玩家名字(比如小红);<$MAPNAME>是“地图名称”变量,会自动显示PK发生的地图(比如土城);<$USERNAME>是“死者名称”变量,会自动显示被杀死的玩家名字(比如小明)。
4. break:结束脚本的命令,必须加上,避免脚本重复触发,导致公告多次弹出,影响游戏体验。
5. #ELSEACT及后面的内容:可选部分,如果你只想要PK死亡公告,不想显示被怪物杀死的提示,直接删除#ELSEACT到最后一个break的内容即可,不影响PK公告的正常触发。
举个例子,你想要的“小红在土城把小明杀死了”,用这个基础版脚本,就能自动触发公告,显示为【PK公告】玩家小红在地图土城成功击杀玩家小明!,完全符合你的需求,不用手动修改任何变量,脚本会自动识别击杀者、死者和地图名称,非常方便。
接下来是进阶版PK死亡公告脚本,在基础版的基础上,添加了死亡坐标、公告样式优化,更有氛围感,适合想让版本更精致的朋友,同样可以直接复制使用,修改细节即可:
// PK死亡公告脚本(进阶版,带坐标、更有氛围感)
(@PlayDie)
#IF
KILLBYHUM // 判断为PK死亡
#ACT
SENDMSG 1 🔥【巅峰PK】🔥 玩家<$KILLER>在<$MAPNAME>(坐标:<$X>,<$Y>)强势击杀玩家<$USERNAME>!
SENDMSG 1 🏆 强者归来,谁与争锋!围观玩家可前往该坐标见证巅峰对决!
break
#ELSEACT
SENDMSG 6 ⚠️ 你不慎被怪物<$MONKILLER>击杀,可使用复活道具立即复活,或回城重新出发!
break
进阶版脚本的新增细节拆解:新增了<$X>和<$Y>两个变量,这是“死亡坐标”变量,会自动显示PK发生的具体坐标,方便其他玩家前往围观;添加了火焰、奖杯等特殊符号,让公告更醒目、更有氛围感;增加了第二条公告,引导玩家围观,增强游戏互动性;被怪物杀死的提示也做了优化,更贴合游戏场景。
这里要补充几个关键变量,不管是基础版还是进阶版,只要写PK死亡公告脚本,都会用到,记好这些变量,后续修改脚本会更方便,不用反复查资料:
- <$KILLER>:击杀者名称(比如小红),自动识别,无需手动输入;
- <$USERNAME>:死者名称(比如小明),自动识别,无需手动输入;
- <$MAPNAME>:PK发生的地图名称(比如土城、比奇城),自动识别;
- <$X>、<$Y>:死亡坐标,自动显示具体位置,进阶版可用;
- <$MONKILLER>:杀死玩家的怪物名称,只有被怪物杀死时才会生效,基础版和进阶版的#ELSEACT部分会用到。
再给大家说几个实操细节,都是我做版本时实测总结的,能帮大家避免脚本无法生效、公告显示异常的问题,新手一定要看完:
1. 脚本存放路径必须正确,只能放在D:\mirserver\Mir200\Envir\Market_Def\QFunction-0.txt,放错文件夹(比如放去MapQuest_def文件夹),脚本无法触发,这是最容易出错的地方,一定要核对路径。
2. 命令格式不能错,所有符号都必须是英文符号,比如括号、感叹号、逗号,不能用中文符号,比如把“()”改成“()”、“!”改成“!”,都会导致脚本失效,新手可以直接复制我给的代码,避免手动输入出错。
3. SENDMSG后面的数字,决定了公告的显示方式和范围,新手可以根据需求选择,不用都用1(全服红字),给大家整理了常用的数字对应的效果,直接参考:
- SENDMSG 1:全服红字公告,所有在线玩家都能看到,最醒目,适合PK公告、全服通知;
- SENDMSG 2:全服白字公告,比红字柔和,适合普通通知;
- SENDMSG 6:个人提示,只有死者能看到,适合被怪物杀死的提示、复活提醒;
- SENDMSG 0:地图公告,只有当前地图的玩家能看到,适合区域性PK公告。
比如你想让PK公告只有当前地图的玩家看到(比如只让土城的玩家看到小红杀小明的公告),就把SENDMSG 1改成SENDMSG 0,其他内容不变,脚本就能正常触发。
4. 可以自定义公告内容,比如把“成功击杀”改成“强势碾压”“一击秒杀”,把公告前缀【PK公告】改成【热血PK】【皇城对决】,只要不修改变量和命令格式,怎么改都可以,贴合自己的版本风格。
5. 脚本写完后,一定要重启传奇服务端,脚本才能生效,不重启服务端,哪怕脚本写得再对,也不会触发,这是新手最容易忽略的一步,写完脚本后,关闭服务端,重新启动,再去测试PK死亡公告,就能正常显示。
6. 测试方法很简单,登录两个游戏账号,比如账号A(小红)、账号B(小明),让小红在土城杀死小明,看看游戏里是否弹出对应的PK公告,若弹出,说明脚本生效;若没弹出,排查两个问题:一是脚本存放路径是否正确,二是命令格式是否有错误(比如中文符号、漏写break)。
再给大家分享一个常见需求的脚本写法:只在指定地图(比如土城)触发PK死亡公告,其他地图不触发,比如你只想让土城的PK有公告,比奇城、封魔谷的PK不显示公告,脚本写法如下,同样可以直接复制使用:
// 指定地图(土城)PK死亡公告脚本
(@PlayDie)
#IF
KILLBYHUM // 判断为PK死亡
CheckMap 土城 // 判断PK发生在土城,其他地图不触发
#ACT
SENDMSG 1 【土城PK】玩家<$KILLER>在土城强势击杀玩家<$USERNAME>,掀起热血对决!
break
#ELSEACT
// 其他地图PK,不显示全服公告,只给死者个人提示(可选)
SENDMSG 6 你被玩家<$KILLER>击杀,再接再厉!
break
这个脚本的核心是添加了“CheckMap 土城”命令,意思是只有在土城发生的PK死亡,才会触发全服公告,其他地图的PK死亡,只会给死者发送个人提示,不会全服通知,适合想重点突出某个地图PK氛围的版本。如果想指定其他地图(比如比奇城),只要把“CheckMap 土城”改成“CheckMap 比奇城”即可,地图名称要和传奇服务端里的地图名称一致,不能有错别字。
还有一个常见需求:PK死亡公告添加击杀者和死者的等级,让公告更详细,比如“玩家小红(35级)在土城击杀玩家小明(30级)”,脚本写法如下,新增等级变量即可:
// 带等级的PK死亡公告脚本
(@PlayDie)
#IF
KILLBYHUM
#ACT
SENDMSG 1 【等级对决】玩家<$KILLER>(<$KILLERLEVEL>级)在<$MAPNAME>击杀玩家<$USERNAME>(<$LEVEL>级),实力碾压!
break
这里新增了两个等级变量:<$KILLERLEVEL>是击杀者的等级,<$LEVEL>是死者的等级,脚本会自动识别两个玩家的等级,显示在公告里,让公告更有层次感,增强游戏的竞技氛围。
很多新手会问,为什么脚本写好了,重启服务端,PK死亡后还是没有公告?除了前面说的路径和格式问题,还有两个常见原因,给大家整理好,直接对照排查,不用反复试错:
1. 脚本文件编码错误,QFunction-0.txt的编码必须是ANSI,用记事本打开脚本,点击“文件→另存为”,在编码选项里选择ANSI,保存后替换原来的文件,再重启服务端,就能正常触发;如果编码是UTF-8,会导致脚本无法识别,公告不显示。
2. 变量写错,比如把<$KILLER>写成<$KILLER1>、<$MAPNAME>写成<$MAP>,变量写错会导致公告里显示空白,比如“玩家 在地图 击杀玩家 ”,只要核对变量拼写,改成正确的变量,就能解决问题。
再补充一点,死亡触发脚本不止PK死亡公告,还能延伸出其他功能,比如PK死亡后掉落指定物品、死亡后自动回城、死亡后发送私聊提示给好友,大家可以根据自己的版本需求,在(@PlayDie)命令下添加更多操作,比如:
// PK死亡后自动回城+掉落物品脚本(延伸功能)
(@PlayDie)
#IF
KILLBYHUM
#ACT
SENDMSG 1 【PK公告】玩家<$KILLER>在<$MAPNAME>击杀玩家<$USERNAME>!
MapMove 土城 320 320 // 死亡后自动传送回土城安全区
Take 金币 1000 // 死亡后掉落1000金币(可选,可删除)
break
这个延伸脚本,在PK死亡公告的基础上,添加了自动回城和掉落金币的功能,让死亡触发脚本更丰富,大家可以根据自己的版本规则,添加或删除对应的操作,比如掉落装备、扣除经验等,只要遵循脚本命令格式,就能正常生效。
总结一下,传奇死亡触发脚本的核心是(@PlayDie)命令,而你想要的“小红在土城把小明杀死了”这种PK死亡公告,只要在QFunction-0.txt文件里,添加基础版脚本,修改公告内容,重启服务端,就能实现,全程不用懂复杂编程,新手也能轻松上手。重点注意脚本存放路径、命令格式(英文符号)、变量拼写,写完重启服务端,测试无误后,就能正常使用。
如果想让公告更有氛围感,就用进阶版脚本,添加坐标、等级、特殊符号;如果想指定地图触发,就添加CheckMap命令;如果想延伸更多功能,就添加自动回城、掉落物品等操作。所有脚本代码都能直接复制,修改对应的细节就能适配自己的版本,不用从零开始写,节省时间,实操性拉满。
最后再强调一次关键步骤:找到QFunction-0.txt文件→复制对应脚本→粘贴进去→保存文件→重启传奇服务端→测试PK死亡公告,只要跟着这几步操作,就能成功添加PK死亡触发脚本,实现你想要的公告效果,不管是新手还是做版本的老玩家,都能快速上手。