传奇服务端GM上线自动飞指定地图 脚本配置教程

来源: 作者: 点击:
一、核心认知与前期准备

GM上线自动飞指定地图,核心是通过服务端登录脚本添加触发指令,检测到GM账号登录时,自动执行地图传送逻辑,无需手动操作。适配主流Hero、GOM、BLUE引擎,仅需修改对应脚本文件,无需改动数据库核心结构。

1. 前期准备:关闭服务端所有核心组件(M2Server、DBServer等),备份服务端根目录/Mir200/Envir/QuestDiary文件夹(脚本核心存放目录),避免脚本写错导致服务端启动失败或登录异常。

2. 工具准备:仅需文本编辑器(如记事本、Notepad++),用于修改脚本文件;部分引擎需用到服务端自带的引擎控制器(用于加载脚本、刷新配置)。

3. 核心信息确认:

(1)指定地图参数:需确认目标地图的地图ID、坐标(如土城地图ID=3,安全区坐标X=330,Y=330),可在Mir200/Envir/Maps/MapInfo.txt中查询所有地图的ID与对应坐标。

(2)GM账号标识:明确GM账号的权限等级(如10级为最高权限,对应脚本中AdminLevel=10)或指定GM账号名称(如“GM01”),确保脚本仅对GM生效,不影响普通玩家。

4. 核心文件定位(全引擎通用目录):

(1)登录触发脚本:Mir200/Envir/QuestDiary/Login.txt(全引擎通用登录脚本,玩家登录时触发);

(2)GM权限配置文件:Hero引擎为Mir200/Envir/AdminList.txt,GOM/BLUE引擎为Mir200/Envir/GMList.txt(记录GM账号与权限等级);

(3)地图信息文件:Mir200/Envir/Maps/MapInfo.txt(查询目标地图ID、坐标,确认地图是否可正常传送)。

二、分引擎脚本配置步骤(主流引擎全覆盖)

(一)Hero引擎(最通用版本)

Hero引擎通过Login.txt脚本添加GM登录触发逻辑,步骤如下:

1. 打开登录脚本文件:定位到Mir200/Envir/QuestDiary/Login.txt,该文件为玩家登录时自动执行的脚本,在文件末尾新增GM专属触发代码(避免修改原有脚本内容,防止影响普通玩家登录)。

2. 编写GM上线传送脚本:新增代码格式如下,需替换对应参数(地图ID、坐标、GM权限等级):

//GM上线自动传送至指定地图(土城示例)

if AdminLevel >= 10 then //10为GM权限等级,可根据实际调整

begin

MapMove 3,330,330; //3为地图ID,330,330为目标坐标,中间用逗号分隔

SendMsg 6,"GM上线已自动传送至土城安全区"; //登录提示,可自定义内容,6为提示文字颜色

end

3. 单独指定GM账号(可选):若仅需特定GM账号触发,而非所有GM,脚本修改为:

//指定GM账号上线传送(账号GM01示例)

if UserName = "GM01" then //GM01为目标GM账号名称,需与AdminList.txt中一致

begin

MapMove 3,330,330;

SendMsg 6,"GM01上线已自动传送至土城安全区";

end

4. 保存文件:脚本编写完成后,保存Login.txt,关闭文本编辑器。

(二)GOM引擎

GOM引擎需通过专属登录脚本与引擎配置联动,步骤如下:

1. 打开GM登录脚本:定位到Mir200/Envir/QuestDiary/GMLogin.txt(GOM引擎专属GM登录脚本,无则新建该文件),若新建文件,需确保文件编码为ANSI(避免中文乱码导致脚本失效)。

2. 编写传送脚本:在GMLogin.txt中写入以下代码,替换对应参数:

//GOM引擎GM上线自动传送(沙巴克示例,地图ID=6,坐标X=200,Y=200)

procedure OnLogin(); //登录触发函数

begin

if GMLevel >= 8 then //8为GM权限等级,GOM引擎默认GM等级为1-10级

begin

ChangeMap(6,200,200); //GOM引擎传送指令为ChangeMap,参数依次为地图ID、X坐标、Y坐标

NoticeMsg(0,255,"【GM提示】已自动传送至沙巴克指定位置"); //全服提示,0为范围,255为颜色

end

end

3. 引擎配置加载:启动GOM引擎控制器,点击“脚本配置”-“登录脚本”,选择GMLogin.txt,点击“加载脚本”,确认脚本状态为“已加载”,保存引擎配置。

4. 普通登录脚本适配(备选):若无需专属GM脚本,可直接修改Login.txt,脚本格式与Hero引擎一致,仅将传送指令改为ChangeMap即可。

(三)BLUE引擎

BLUE引擎脚本语法简洁,直接在登录脚本中添加触发指令即可,步骤如下:

1. 打开登录脚本:定位到Mir200/Envir/QuestDiary/Login.txt,在文件末尾新增脚本代码,无需修改原有内容。

2. 编写GM传送脚本:代码格式如下,支持权限等级或账号指定:

//BLUE引擎GM上线自动传送(猪洞七层示例,地图ID=23,坐标X=80,Y=80)

if AdminLevel >= 9 then //9为GM权限等级,可按需调整

begin

MoveMap(23,80,80); //BLUE引擎传送指令为MoveMap,参数为地图ID、X坐标、Y坐标

SendUserMsg(UserIndex,6,"已自动传送至猪洞七层指定地图"); //仅GM本人可见提示

end

3. 多GM账号批量配置(可选):若需多个GM账号触发,可使用or连接账号名称:

if UserName = "GM01" or UserName = "GM02" or UserName = "GM03" then

begin

MoveMap(23,80,80);

SendUserMsg(UserIndex,6,"已自动传送至猪洞七层指定地图");

end

(四)复古版本(无引擎区分)

复古版本(如经典1.76、1.80)脚本结构简洁,修改Login.txt即可实现,步骤如下:

1. 打开登录脚本:定位到Mir200/Envir/Login.txt(复古版本登录脚本多直接存放在Envir目录下,而非QuestDiary文件夹)。

2. 编写传送脚本:在文件末尾新增以下代码,适配复古版本语法:

//复古版本GM上线自动传送(盟重省示例,地图ID=3,坐标X=335,Y=335)

if AdminLevel >= 7 then

begin

MapMove 3,335,335;

SendMsg 6,"GM上线自动传送至盟重安全区";

end

3. 保存文件:确保脚本无语法错误(如括号配对、逗号分隔等),保存后关闭文本编辑器。

三、脚本核心参数说明与自定义调整

1. 传送指令区分(各引擎通用指令汇总):

(1)Hero/复古版本:MapMove 地图ID,X坐标,Y坐标; (示例:MapMove 3,330,330;)

(2)GOM引擎:ChangeMap(地图ID,X坐标,Y坐标); (示例:ChangeMap(6,200,200);)

(3)BLUE引擎:MoveMap(地图ID,X坐标,Y坐标); (示例:MoveMap(23,80,80);)

2. GM权限等级调整:脚本中AdminLevel/GMLevel数值,需与GMList.txt/AdminList.txt中一致,如:

(1)AdminList.txt中GM账号格式:GM01 10 (GM01为账号,10为权限等级);

(2)若脚本中设置AdminLevel >= 10,则仅权限等级10的GM可触发传送,低于10级的GM不生效。

3. 提示信息自定义:SendMsg/NoticeMsg等提示指令,可修改文字内容与颜色,如:

(1)SendMsg 6,"自定义提示文字"; (6为黄色,2为红色,1为蓝色,可按需调整颜色代码);

(2)无需提示信息可直接删除提示语句,仅保留传送指令即可。

4. 地图参数查询方法:打开Mir200/Envir/Maps/MapInfo.txt,文件中每行为一个地图信息,格式为“地图名称 地图ID 进入等级 地图类型 坐标范围”,如“土城 3 0 安全区 300-360,300-360”,可直接提取地图ID与坐标范围。

四、配置后校验与常见问题排查

(一)校验步骤

1. 服务端启动:重启服务端所有核心组件,查看启动日志,无“脚本语法错误”“文件找不到”等提示即为正常。

2. 登录测试:

(1)使用GM账号登录游戏,观察是否自动传送至指定地图,无手动操作即可完成传送为生效;

(2)使用普通玩家账号登录,确认不会触发传送,仅GM账号生效,避免影响普通玩家体验;

(3)测试不同权限等级的GM账号,确认脚本中设置的权限等级阈值生效(如设置AdminLevel>=10,则9级GM不传送,10级GM传送)。

(二)常见问题排查

1. GM登录未传送:

(1)脚本语法错误:检查脚本中括号是否配对、逗号是否为英文逗号、指令是否正确(如GOM引擎误用MapMove指令),修正后保存重新启动服务端;

(2)权限等级不匹配:确认GM账号权限等级是否达到脚本中设置的阈值,如脚本设置AdminLevel>=10,而GM账号等级为8,则需修改脚本等级或提升GM账号权限;

(3)地图参数错误:检查地图ID与坐标是否正确,可在MapInfo.txt中重新查询,确保无参数错误(如将地图ID=3误写为33)。

2. 普通玩家登录也触发传送:脚本中未添加GM权限/账号判断条件,需补充if AdminLevel>=X或if UserName="GM账号"判断语句,确保仅GM生效。

3. 服务端启动失败,提示脚本错误:

(1)文件编码错误:将脚本文件编码改为ANSI(文本编辑器中选择“另存为”,编码选择ANSI),避免中文乱码导致脚本失效;

(2)误删原有脚本内容:恢复备份的Login.txt文件,重新在文件末尾新增GM传送脚本,不修改原有内容。

4. 传送后卡在地图加载界面:目标地图文件缺失或损坏,检查Mir200/Maps目录下是否存在对应地图文件(如地图ID=3对应3.map),缺失则补充地图文件,损坏则替换为正常地图文件。

五、核心注意事项

1. 脚本备份:修改任何脚本文件前,务必备份原文件,若修改后出现异常,可直接恢复备份,快速恢复服务端正常运行。

2. 权限控制:严格设置GM权限等级阈值,避免低权限GM账号也能触发传送,防止权限滥用。

3. 地图适配:确保目标地图为可进入状态(无进入等级限制或特殊进入条件),避免传送至无法进入的地图导致GM登录异常。

4. 版本适配:部分定制化版本可能存在专属登录脚本(如Login_New.txt),需在Envir/QuestDiary文件夹中排查,找到实际触发的登录脚本后再进行修改。

综上,GM上线自动飞指定地图的核心是“在登录脚本中添加GM专属传送触发逻辑”,按对应引擎脚本语法编写,确保参数正确、语法无误,即可实现自动传送。配置后需严格校验,避免影响普通玩家登录,同时做好脚本备份,应对突发异常。