当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇“斩杀/阵亡”称号系统移植与文件路径详解

热度:
功能本质:动态封号脚本

你看到的≮斩杀[0人]◆阵亡[0]次≯并非固定文字,而是动态统计脚本。它利用SETRANKLEVELNAME命令,将“杀人数量”和“死亡次数”变量实时显示在人物头顶。要将其移植到其他服务端,需提取脚本逻辑与变量存储两部分。

源文件查找路径(Mir200\Envir)

该功能涉及多个文件联动,核心路径均在MirServer\Mir200\Envir目录下。

1.入口文件:QManage.txt(登录触发)

路径:MirServer\Mir200\Envir\MapQuest_def\QManage.txt
-作用:玩家登录时自动执行。此处通常包含调用封号系统的命令。
•查找关键词:在[@Login]段内搜索#CALL、封号、斩杀。你会看到类似以下代码:
#CALL[\系统\斩杀统计.txt]@斩杀封号

这指明了具体的脚本文件位置。

2.逻辑文件:QuestDiary(具体脚本)

路径:MirServer\Mir200\Envir\QuestDiary\
-作用:存放具体的计数与封号设置脚本。
•典型路径:根据QManage.txt中的调用路径,通常位于QuestDiary\系统\或QuestDiary\封号\文件夹下。

-核心代码:在此文件中找到类似结构(以GOM/GEE引擎为例):
[@斩杀封号]
#ACT
;组合文字:N20=杀人变量,N21=死亡变量
MOVS20≮斩杀[<$STR(N20)>人]◆阵亡[<$STR(N21)>次]≯
;设置头顶显示
SETRANKLEVELNAME%s\<$STR(S20)>

变量说明:N20、N21是全局自定义变量,用于存储数据。

3.计数文件:QFunction-0.txt(触发统计)

路径:MirServer\Mir200\Envir\Market_Def\QFunction-0.txt
•作用:当玩家杀人或死亡时,修改N20、N21变量的值。

•查找关键词:搜索[@KillPlay](杀人触发)和[@PlayDie](死亡触发)。

•典型代码:
[@KillPlay];杀人触发
#ACT
INCN201;N20变量+1
;立即更新封号显示
GOTO@更新斩杀封号


完整移植步骤(加到你自己的服务端)

假设你已找到源端的所有相关文件,按以下步骤操作:

第一步:复制脚本文件

1.进入源端Envir\QuestDiary\,找到包含“斩杀”逻辑的.txt文件(如斩杀统计.txt)。
2.将其整个文件夹(如系统文件夹)复制到你目标服务端的Envir\QuestDiary\下。

第二步:修改入口触发

1.打开你目标服务端的MapQuest_def\QManage.txt。
2.在[@Login]段内添加调用命令(路径需与复制的位置一致):
[@Login]
#IF
#ACT
;其他原有脚本...
#CALL[\系统\斩杀统计.txt]@斩杀封号;添加这一行


第三步:同步计数触发

1.打开目标服务端的Market_Def\QFunction-0.txt。
2.将源端QFunction-0.txt中的[@KillPlay]和[@PlayDie]段落复制进去。
◦注意:如果目标端已有这些触发段,需将INCN201等逻辑合并到原有段落中,避免覆盖。

第四步:变量冲突排查

•关键点:源端使用的变量(如N20、N21)可能在目标端已被占用。

•解决方法:在源脚本中,将N20、N21批量替换为目标端未使用的自定义变量(如G20、G21),确保不与其他功能冲突。

第五步:开启称号显示

检查目标端Mir200\Envir\!Setup.txt文件,确认有以下设置:
ShowRankLevelName=1

若为0则修改为1,否则称号不会显示。

常见问题与注意事项

•路径差异:不同版本目录结构可能不同,务必根据#CALL指令的实际路径进行复制。

•引擎兼容:SETRANKLEVELNAME命令在GOM、GEE、V8、翎风引擎通用,但部分老引擎(如HERO)可能不支持,需改用RANKLEVELNAME命令。

•测试流程:修改后重启M2Server,登录游戏测试杀怪/杀人,观察数字是否递增。若显示<$STR(N20)>原文,说明变量未定义,需检查变量初始化脚本。
[顶部]