一、核心脚本文件定位与基础配置
传奇blue引擎杀人和被杀显示功能,需通过服务端QF脚本文件实现,核心配置文件为QFunction-0.txt,部分引擎版本需配合HeroQuest.txt或MapQuest.txt协同生效,优先操作QFunction-0.txt(路径通常为MirServer\Mir200\Envir\QuestDiary\QF)。
打开QFunction-0.txt文件,关闭自动换行与语法高亮功能,避免格式错乱导致脚本失效。在文件末尾另起一行添加脚本头部标识,格式为“[@KillDeathMsg]”,作为杀人和被杀显示脚本的入口,后续所有相关命令均需嵌套在该标识下方,不可插入现有脚本段中间。
基础参数初始化:添加“#ACT”命令触发执行动作,依次配置提示信息显示时长、范围及颜色参数。示例配置为“SETMSGCOLOR251”(设置字体颜色为黄色,251为blue引擎通用黄色代码)、“SETMSGTIME5”(提示信息显示5秒)、“SETMSGRANGE0”(全服可见,0为全服范围,1-99为指定地图范围),参数可按需求调整,颜色代码支持1-255区间数值,需提前测试适配性。
二、杀人提示脚本编写与参数设置
杀人提示核心脚本需调用“@Kill”触发事件,当玩家击杀其他玩家时自动执行。脚本结构分为提示信息配置、击杀记录统计两部分,优先完成提示信息设置,确保基础显示功能正常。
杀人提示信息配置:在[@KillDeathMsg]标识下添加“[@Kill]”子标识,后续添加“#SAY”命令定义提示内容,支持调用玩家名称、被击杀者名称、击杀地图等变量。示例配置为“#SAY【击杀公告】%USERNAME于%MAPNAME成功击杀%TARGETNAME,战力碾压!”,其中%USERNAME为击杀者名称变量,%TARGETNAME为被击杀者名称变量,%MAPNAME为击杀地图名称变量,变量需严格使用%包裹,不可遗漏或错写。
击杀记录统计配置:若需记录击杀次数,可添加“INCQ7KillCount1”命令(Q7为自定义变量前缀,KillCount为击杀次数变量名,1为每次击杀递增1),同时添加“SAVEVAR”命令保存变量数据,避免引擎重启后数据丢失,完整配置为“#ACTINCQ7KillCount1SAVEVAR”。如需显示击杀连杀数,可补充“CHECKVARQ7KillStreak>=1”(检测连杀数是否大于等于1)、“INCQ7KillStreak1”(连杀数递增),连杀中断时需添加重置命令,后续在被杀脚本中配置。
特殊击杀提示:若需区分普通击杀与暴击击杀,可添加“CHECKSKILL%USERNAME烈火剑法”(检测击杀者是否使用烈火剑法),搭配“#IF”条件判断命令实现差异化提示。示例为“#IFCHECKSKILL%USERNAME烈火剑法#SAY【暴击击杀】%USERNAME施展烈火剑法,一击秒杀%TARGETNAME!#ELSE#SAY【击杀公告】%USERNAME于%MAPNAME成功击杀%TARGETNAME,战力碾压!”,通过#IF与#ELSE实现条件分支,未使用指定技能则显示普通击杀提示。
三、被杀提示脚本编写与连杀重置
被杀提示脚本对应“@Death”触发事件,当玩家被其他玩家击杀时执行,核心功能为显示被杀公告、重置连杀数,可额外添加掉落提示或复活引导内容,提升玩法关联性。
被杀提示信息配置:添加“[@Death]”子标识,配合#SAY命令编写提示内容,示例为“#SAY【阵亡公告】%USERNAME于%MAPNAME被%KILLERNAME击杀,节哀顺变!”,其中%KILLERNAME为击杀者名称变量,与杀人脚本中的%USERNAME对应,确保名称显示一致。若需添加掉落提示,可补充“#SAY本次阵亡掉落:%DROPITEM”(%DROPITEM为掉落物品变量,需引擎支持该变量调用)。
连杀数重置配置:在被杀脚本中添加“#ACT”命令,执行“SETQ7KillStreak0”(将连杀数变量重置为0)、“SAVEVAR”(保存重置后的数据),确保玩家被杀后连杀记录清零,下次击杀重新计数。若需显示连杀中断提示,可补充“#SAY%KILLERNAME终结了%USERNAME的%Q7.KillStreak连杀!”,通过%Q7.KillStreak调用当前连杀数变量,实现连杀中断公告。
复活引导配置(可选):可在被杀提示后添加复活引导命令,示例为“#SAY点击前往安全区复活:@传送3330330”(3为主地图编号,330330为安全区坐标),通过@传送命令实现快速复活跳转,坐标需与MapInfo.txt中主地图安全区坐标一致,避免传送出错。
四、脚本权限设置与地图差异化配置
脚本权限控制:部分场景需限制提示信息显示范围,如仅在PK地图显示击杀公告,可通过#IF条件判断命令配置地图权限。示例为“#IFMAPNAME沙巴克#SAY【沙巴克激战】%USERNAME击杀%TARGETNAME,沙巴克归属岌岌可危!#ELSEIFMAPNAME赤月峡谷#SAY【赤月PK】%USERNAME于赤月峡谷击杀%TARGETNAME!#ELSE#SAY【击杀公告】%USERNAME击杀%TARGETNAME!”,通过多个ELSEIF实现不同地图差异化提示,未匹配地图则显示默认提示。
玩家等级权限限制:若需限制低等级玩家击杀提示不显示,可添加等级判断条件,示例为“#IFLEVEL%USERNAME>=50#SAY【高阶击杀】%USERNAME(%LEVEL%级)击杀%TARGETNAME(%TARGETLEVEL%级)!#ELSE#ACTSETMSGRANGE1”(低等级玩家击杀提示仅当前地图可见),其中%LEVEL%为击杀者等级变量,%TARGETLEVEL%为被击杀者等级变量,等级阈值可按玩法需求调整。
脚本冲突规避:配置完成后需检查是否存在重复的[@Kill]、[@Death]标识,若其他脚本文件中已存在相同标识,需删除或重命名重复标识,避免脚本冲突导致部分功能失效。建议在脚本头部添加注释,格式为“//杀人和被杀显示脚本开始”,尾部添加“//杀人和被杀显示脚本结束”,便于后续维护与修改。
五、客户端与服务端同步设置
服务端配置收尾:保存QFunction-0.txt文件,关闭文本编辑器,打开服务端引擎配置工具(通常为msever.exe),找到“脚本设置”选项,勾选“启用杀人被杀提示脚本”“加载QFunction-0.txt”,确认脚本优先级设置为“最高”,避免被其他脚本覆盖。
客户端提示显示设置:打开客户端配置文件(通常为mir2.ini或client.ini,路径为客户端根目录),找到“MsgDisplay”相关配置项,设置“ShowKillMsg=1”(启用击杀提示显示,1为启用,0为关闭)、“KillMsgPos=2”(提示信息显示位置,2为屏幕顶部居中,1为左上角,3为右上角),保存文件后关闭。
字体与显示效果调整:若客户端提示字体模糊或显示不全,可修改客户端Fonts文件夹下的字体文件,替换为清晰的宋体或黑体字体,字体大小建议设置为16号,同时调整客户端分辨率,确保提示信息完整显示,无遮挡或错位现象。
六、脚本测试与常见问题排查
基础功能测试:重启blue引擎,使用两个测试账号登录游戏,在指定地图进行PK操作,确认击杀与被杀时均能正常显示提示信息,检查字体颜色、显示时长、范围是否符合配置,变量是否正确调用(无%USERNAME等占位符显示)。
数据统计测试:连续击杀多次,确认连杀数正常递增,被杀后连杀数重置,重启引擎后检查击杀次数数据是否保留,若数据丢失需补充“SAVEVAR”命令,确保每个变量修改后都执行保存操作。
常见问题排查:
1.提示信息不显示:检查QFunction-0.txt文件格式,确认无多余空格或换行,标识[@KillDeathMsg]、[@Kill]、[@Death]是否正确,变量名称是否拼写错误,颜色代码是否在1-255区间。
2.脚本冲突导致功能失效:删除重复的触发标识,将杀人和被杀脚本移至文件末尾,提升脚本优先级,重启引擎后重新测试。
3.变量不生效:确认变量使用%包裹,引擎版本是否支持该变量(部分旧版本不支持%MAPNAME等地图变量),替换为基础变量(如仅保留%USERNAME、%TARGETNAME)后测试。
4.提示范围异常:检查SETMSGRANGE参数,0为全服,1-99为地图编号,若设置为地图编号需确认地图编号与MapInfo.txt中一致,避免编号错误导致范围异常。
七、进阶功能配置(可选)
击杀排行榜同步:添加“INCQ7RankKill1”命令统计总击杀数,配合RankList.txt文件实现排行榜显示,在RankList.txt中添加“击杀榜:%Q7.RankKill(%USERNAME)”,通过@排行榜命令调用显示,需确保RankList.txt与QFunction-0.txt变量前缀一致。
特殊称号触发:设置击杀达到指定次数触发称号,示例为“#IFCHECKVARQ7KillCount>=100#ACTADDTITLE杀戮战神#SAVEVAR”,通过ADDTITLE命令添加称号,称号名称可自定义,需提前在称号配置文件中添加对应称号信息。
跨地图提示差异化:针对高危PK地图设置特殊提示,示例为“#IFMAPNAME猪洞七层#SAY【高危击杀】%USERNAME在猪洞七层击杀%TARGETNAME,斩获稀有掉落!#ACTSETMSGCOLOR255”(255为红色代码),通过地图判断实现颜色与内容差异化,提升玩法氛围。
传奇blue引擎杀人和被杀显示功能,需通过服务端QF脚本文件实现,核心配置文件为QFunction-0.txt,部分引擎版本需配合HeroQuest.txt或MapQuest.txt协同生效,优先操作QFunction-0.txt(路径通常为MirServer\Mir200\Envir\QuestDiary\QF)。
打开QFunction-0.txt文件,关闭自动换行与语法高亮功能,避免格式错乱导致脚本失效。在文件末尾另起一行添加脚本头部标识,格式为“[@KillDeathMsg]”,作为杀人和被杀显示脚本的入口,后续所有相关命令均需嵌套在该标识下方,不可插入现有脚本段中间。
基础参数初始化:添加“#ACT”命令触发执行动作,依次配置提示信息显示时长、范围及颜色参数。示例配置为“SETMSGCOLOR251”(设置字体颜色为黄色,251为blue引擎通用黄色代码)、“SETMSGTIME5”(提示信息显示5秒)、“SETMSGRANGE0”(全服可见,0为全服范围,1-99为指定地图范围),参数可按需求调整,颜色代码支持1-255区间数值,需提前测试适配性。
二、杀人提示脚本编写与参数设置
杀人提示核心脚本需调用“@Kill”触发事件,当玩家击杀其他玩家时自动执行。脚本结构分为提示信息配置、击杀记录统计两部分,优先完成提示信息设置,确保基础显示功能正常。
杀人提示信息配置:在[@KillDeathMsg]标识下添加“[@Kill]”子标识,后续添加“#SAY”命令定义提示内容,支持调用玩家名称、被击杀者名称、击杀地图等变量。示例配置为“#SAY【击杀公告】%USERNAME于%MAPNAME成功击杀%TARGETNAME,战力碾压!”,其中%USERNAME为击杀者名称变量,%TARGETNAME为被击杀者名称变量,%MAPNAME为击杀地图名称变量,变量需严格使用%包裹,不可遗漏或错写。
击杀记录统计配置:若需记录击杀次数,可添加“INCQ7KillCount1”命令(Q7为自定义变量前缀,KillCount为击杀次数变量名,1为每次击杀递增1),同时添加“SAVEVAR”命令保存变量数据,避免引擎重启后数据丢失,完整配置为“#ACTINCQ7KillCount1SAVEVAR”。如需显示击杀连杀数,可补充“CHECKVARQ7KillStreak>=1”(检测连杀数是否大于等于1)、“INCQ7KillStreak1”(连杀数递增),连杀中断时需添加重置命令,后续在被杀脚本中配置。
特殊击杀提示:若需区分普通击杀与暴击击杀,可添加“CHECKSKILL%USERNAME烈火剑法”(检测击杀者是否使用烈火剑法),搭配“#IF”条件判断命令实现差异化提示。示例为“#IFCHECKSKILL%USERNAME烈火剑法#SAY【暴击击杀】%USERNAME施展烈火剑法,一击秒杀%TARGETNAME!#ELSE#SAY【击杀公告】%USERNAME于%MAPNAME成功击杀%TARGETNAME,战力碾压!”,通过#IF与#ELSE实现条件分支,未使用指定技能则显示普通击杀提示。
三、被杀提示脚本编写与连杀重置
被杀提示脚本对应“@Death”触发事件,当玩家被其他玩家击杀时执行,核心功能为显示被杀公告、重置连杀数,可额外添加掉落提示或复活引导内容,提升玩法关联性。
被杀提示信息配置:添加“[@Death]”子标识,配合#SAY命令编写提示内容,示例为“#SAY【阵亡公告】%USERNAME于%MAPNAME被%KILLERNAME击杀,节哀顺变!”,其中%KILLERNAME为击杀者名称变量,与杀人脚本中的%USERNAME对应,确保名称显示一致。若需添加掉落提示,可补充“#SAY本次阵亡掉落:%DROPITEM”(%DROPITEM为掉落物品变量,需引擎支持该变量调用)。
连杀数重置配置:在被杀脚本中添加“#ACT”命令,执行“SETQ7KillStreak0”(将连杀数变量重置为0)、“SAVEVAR”(保存重置后的数据),确保玩家被杀后连杀记录清零,下次击杀重新计数。若需显示连杀中断提示,可补充“#SAY%KILLERNAME终结了%USERNAME的%Q7.KillStreak连杀!”,通过%Q7.KillStreak调用当前连杀数变量,实现连杀中断公告。
复活引导配置(可选):可在被杀提示后添加复活引导命令,示例为“#SAY点击前往安全区复活:@传送3330330”(3为主地图编号,330330为安全区坐标),通过@传送命令实现快速复活跳转,坐标需与MapInfo.txt中主地图安全区坐标一致,避免传送出错。
四、脚本权限设置与地图差异化配置
脚本权限控制:部分场景需限制提示信息显示范围,如仅在PK地图显示击杀公告,可通过#IF条件判断命令配置地图权限。示例为“#IFMAPNAME沙巴克#SAY【沙巴克激战】%USERNAME击杀%TARGETNAME,沙巴克归属岌岌可危!#ELSEIFMAPNAME赤月峡谷#SAY【赤月PK】%USERNAME于赤月峡谷击杀%TARGETNAME!#ELSE#SAY【击杀公告】%USERNAME击杀%TARGETNAME!”,通过多个ELSEIF实现不同地图差异化提示,未匹配地图则显示默认提示。
玩家等级权限限制:若需限制低等级玩家击杀提示不显示,可添加等级判断条件,示例为“#IFLEVEL%USERNAME>=50#SAY【高阶击杀】%USERNAME(%LEVEL%级)击杀%TARGETNAME(%TARGETLEVEL%级)!#ELSE#ACTSETMSGRANGE1”(低等级玩家击杀提示仅当前地图可见),其中%LEVEL%为击杀者等级变量,%TARGETLEVEL%为被击杀者等级变量,等级阈值可按玩法需求调整。
脚本冲突规避:配置完成后需检查是否存在重复的[@Kill]、[@Death]标识,若其他脚本文件中已存在相同标识,需删除或重命名重复标识,避免脚本冲突导致部分功能失效。建议在脚本头部添加注释,格式为“//杀人和被杀显示脚本开始”,尾部添加“//杀人和被杀显示脚本结束”,便于后续维护与修改。
五、客户端与服务端同步设置
服务端配置收尾:保存QFunction-0.txt文件,关闭文本编辑器,打开服务端引擎配置工具(通常为msever.exe),找到“脚本设置”选项,勾选“启用杀人被杀提示脚本”“加载QFunction-0.txt”,确认脚本优先级设置为“最高”,避免被其他脚本覆盖。
客户端提示显示设置:打开客户端配置文件(通常为mir2.ini或client.ini,路径为客户端根目录),找到“MsgDisplay”相关配置项,设置“ShowKillMsg=1”(启用击杀提示显示,1为启用,0为关闭)、“KillMsgPos=2”(提示信息显示位置,2为屏幕顶部居中,1为左上角,3为右上角),保存文件后关闭。
字体与显示效果调整:若客户端提示字体模糊或显示不全,可修改客户端Fonts文件夹下的字体文件,替换为清晰的宋体或黑体字体,字体大小建议设置为16号,同时调整客户端分辨率,确保提示信息完整显示,无遮挡或错位现象。
六、脚本测试与常见问题排查
基础功能测试:重启blue引擎,使用两个测试账号登录游戏,在指定地图进行PK操作,确认击杀与被杀时均能正常显示提示信息,检查字体颜色、显示时长、范围是否符合配置,变量是否正确调用(无%USERNAME等占位符显示)。
数据统计测试:连续击杀多次,确认连杀数正常递增,被杀后连杀数重置,重启引擎后检查击杀次数数据是否保留,若数据丢失需补充“SAVEVAR”命令,确保每个变量修改后都执行保存操作。
常见问题排查:
1.提示信息不显示:检查QFunction-0.txt文件格式,确认无多余空格或换行,标识[@KillDeathMsg]、[@Kill]、[@Death]是否正确,变量名称是否拼写错误,颜色代码是否在1-255区间。
2.脚本冲突导致功能失效:删除重复的触发标识,将杀人和被杀脚本移至文件末尾,提升脚本优先级,重启引擎后重新测试。
3.变量不生效:确认变量使用%包裹,引擎版本是否支持该变量(部分旧版本不支持%MAPNAME等地图变量),替换为基础变量(如仅保留%USERNAME、%TARGETNAME)后测试。
4.提示范围异常:检查SETMSGRANGE参数,0为全服,1-99为地图编号,若设置为地图编号需确认地图编号与MapInfo.txt中一致,避免编号错误导致范围异常。
七、进阶功能配置(可选)
击杀排行榜同步:添加“INCQ7RankKill1”命令统计总击杀数,配合RankList.txt文件实现排行榜显示,在RankList.txt中添加“击杀榜:%Q7.RankKill(%USERNAME)”,通过@排行榜命令调用显示,需确保RankList.txt与QFunction-0.txt变量前缀一致。
特殊称号触发:设置击杀达到指定次数触发称号,示例为“#IFCHECKVARQ7KillCount>=100#ACTADDTITLE杀戮战神#SAVEVAR”,通过ADDTITLE命令添加称号,称号名称可自定义,需提前在称号配置文件中添加对应称号信息。
跨地图提示差异化:针对高危PK地图设置特殊提示,示例为“#IFMAPNAME猪洞七层#SAY【高危击杀】%USERNAME在猪洞七层击杀%TARGETNAME,斩获稀有掉落!#ACTSETMSGCOLOR255”(255为红色代码),通过地图判断实现颜色与内容差异化,提升玩法氛围。

