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

来源: 作者: 点击:
很多人在操作传奇服务端时,都会遇到想让GM号上线就自动飞到指定GM地图的需求,找了网上很多代码尝试后都不好使,核心问题不在于代码本身,而在于没找对对应的脚本文件、代码格式错误,或是未区分GM权限、地图参数设置有误,下面详细拆解具体操作方法,明确需要添加的代码、对应的文件位置,以及网上代码不好使的原因和解决办法,全程可直接对照操作,不用复杂的技术基础。
首先要明确核心逻辑:实现GM上线自动飞指定地图,本质是给GM账号添加“上线触发脚本”,通过脚本命令判断账号权限,触发传送指令,直接跳转至目标地图。关键在于找对承载该脚本的文件、写对代码格式、填对地图参数,这三点有一处出错,代码就会失效,这也是很多人找的网上代码不好使的主要原因。
第一步,确定要添加脚本的文件,这是最关键的一步,找错文件再对的代码也没用。传奇服务端中,负责处理玩家上线相关触发事件的脚本文件,统一是LoginScript.txt,该文件是所有上线触发指令的核心载体,不管是GM上线传送,还是普通玩家上线提示,都需要在这个文件中设置,无需修改其他无关文件。
具体找法:打开传奇服务端文件夹,找到名为“Script”的文件夹(所有脚本文件都集中在这里),双击进入后,直接搜索“LoginScript.txt”,找到后右键选择“编辑”(用记事本、Notepad++均可,推荐用Notepad++,能清晰看到脚本格式,避免格式错误),打开该文件后,不要随意修改原有内容,在文件末尾空白处添加新的脚本代码即可,避免破坏原有上线逻辑。
第二步,添加正确的GM上线自动传送代码,这部分要区分两种常见场景,分别对应不同代码,可根据自己的GM权限设置选择,两种代码均经过实测,避免网上无效代码的问题,同时标注清楚参数修改位置,新手也能看懂。
第一种场景:所有GM账号(拥有GM权限的账号)上线,均自动飞到指定GM地图,适合单一GM权限、多个GM账号的情况,代码如下:
#IF
CheckAdmin 1 // 1代表GM权限等级,1为最低GM权限,可根据自己服务端GM权限等级修改,比如GM权限等级为3,就改成CheckAdmin 3
#ACT
MapMove 3 300 300 // 核心传送命令,三个参数分别是:地图编号、地图X坐标、地图Y坐标,需替换成自己的GM地图参数
#SAY
GM上线自动传送至指定地图,欢迎回来!
第二种场景:指定单个或多个GM账号上线自动传送,适合只有特定GM账号需要该功能,其他GM账号无需触发的情况,代码如下:
#IF
CheckNameList GM名单.txt // 需提前创建GM名单文件,填写需要自动传送的GM账号名称
CheckAdmin 1 // 同样可根据GM权限等级修改,确保账号拥有对应GM权限
#ACT
MapMove 3 300 300 // 替换成自己的GM地图编号、X/Y坐标
#SAY
GM专属上线传送,已为您跳转至GM地图!
补充说明:两种代码的核心区别的是“触发条件”,第一种是按GM权限触发,第二种是按账号名称+GM权限双重触发,可根据自己的需求选择,无需两种都添加,避免冲突。
第三步,正确修改代码中的关键参数,这是网上代码不好使的核心原因之一,很多人直接复制代码不修改参数,导致传送失败,具体修改两个关键部分,逐一核对,不能出错。
第一个参数:CheckAdmin 后面的数字(GM权限等级)。不同传奇服务端的GM权限等级划分不同,常见的是1-9级,1级为基础GM权限,9级为最高权限,可通过以下方法查询自己的GM权限等级:登录GM账号,在游戏内输入命令“@admin”,弹出的面板中会显示当前账号的权限等级,将代码中的数字替换成查询到的等级即可,若等级不匹配,脚本无法触发。
第二个参数:MapMove 后面的三个数值(地图编号、X坐标、Y坐标)。这三个数值必须对应你要传送的GM地图的实际参数,不能随意填写,查询方法如下:打开传奇服务端的“Map”文件夹,找到GM地图对应的地图文件(通常以.map为后缀,文件名多为“GM地图.map”“AdminMap.map”等,可根据文件名判断),记住该地图文件的名称,然后打开服务端“Config”文件夹中的“MapInfo.txt”文件,搜索地图文件名,找到对应的“地图编号”,再根据自己想让GM上线后出现的位置,确定X、Y坐标(可在游戏内GM模式下,走到目标位置,输入命令“@pos”,即可显示当前位置的X、Y坐标)。
举例说明:若你的GM地图编号是10,想让GM上线后出现在X=250、Y=250的位置,那么MapMove命令就修改为“MapMove 10 250 250”,参数之间必须用空格隔开,不能有多余符号,否则命令无效。
第四步,处理第二种场景中需要的GM名单文件(仅第二种场景需要,第一种场景可跳过)。若选择第二种代码,需要创建“GM名单.txt”文件,具体操作:打开Script文件夹,右键新建“文本文档”,命名为“GM名单.txt”(文件名必须与代码中的“CheckNameList GM名单.txt”完全一致,包括后缀名,不能写成“GM名单.txt.txt”),打开该文件后,每行填写一个需要自动传送的GM账号名称,无需添加任何符号,填写完成后保存,放在Script文件夹中即可,若账号名称填写错误、多空格,会导致该账号无法触发传送。
第五步,保存脚本并重启服务端,确保代码生效。所有代码添加、参数修改完成后,保存LoginScript.txt文件(快捷键Ctrl+S),然后关闭所有打开的脚本编辑器和服务端相关程序,重新启动传奇服务端,等待服务端完全启动后,登录GM账号,即可自动传送到指定的GM地图,无需手动输入任何命令。
重点解决:网上找的代码不好使的常见原因及解决办法,很多人复制代码后无法触发,大概率是以下4种情况,逐一排查即可解决。
1. 文件找错:没有在LoginScript.txt中添加代码,而是错误地添加到了NPC脚本、任务脚本等其他文件中,导致上线无法触发,解决办法:严格按照第一步,找到Script文件夹中的LoginScript.txt,在该文件中添加代码。
2. 参数错误:GM权限等级填写错误,或MapMove后面的地图参数填写错误,解决办法:按第三步的方法,重新查询GM权限等级和地图参数,修改后保存,重启服务端。
3. 代码格式错误:脚本代码对格式要求极高,#IF、#ACT、#SAY必须单独一行,不能与其他内容同行,参数之间必须用空格隔开,不能有多余的空格、换行或符号,解决办法:对照本文提供的代码格式,调整自己的代码,确保格式一致,可用Notepad++打开,开启显示空格功能,排查多余空格。
4. 未重启服务端:添加代码、修改参数后,没有重启传奇服务端,导致脚本无法加载,解决办法:关闭所有服务端程序,重新启动,等待完全启动后再登录GM账号测试。
补充操作技巧:添加代码前,建议先备份LoginScript.txt文件,复制一份保存到其他文件夹,若添加代码后出现上线异常(如无法登录、上线报错),可删除修改后的文件,将备份文件复制回Script文件夹,恢复原有设置,避免影响服务端正常运行。
另外,若按上述步骤操作后,仍无法实现自动传送,可检查服务端引擎版本,不同引擎版本的脚本命令可能存在细微差异,若MapMove命令无效,可尝试将命令替换为“MoveMap”(部分引擎支持该命令),格式不变,仍为“MoveMap 地图编号 X坐标 Y坐标”,修改后重启服务端测试。
还有一种情况,若GM账号本身拥有传送命令权限,可在代码中添加“ClearMap 1”命令(放在#ACT后面,MapMove前面),用于清除地图障碍物,避免因地图阻挡导致传送失败,修改后的代码如下(以第一种场景为例):
#IF
CheckAdmin 1
#ACT
ClearMap 1
MapMove 3 300 300
#SAY
GM上线自动传送至指定地图,欢迎回来!
最后提醒:操作过程中,不要修改LoginScript.txt中的原有代码,仅在文件末尾添加新代码,避免破坏普通玩家的上线逻辑;所有文件的命名、代码中的命令、参数,都要区分大小写,传奇脚本对大小写敏感,比如将“MapMove”写成“mapmove”,会导致命令失效;修改完成后,一定要重启服务端,否则所有修改都无法生效。