一、传奇脚本文件核心定义
传奇脚本文件是控制游戏核心玩法、NPC交互、任务执行、地图规则、技能触发等所有功能的基础文本文件,均以.txt为后缀,可通过记事本直接编辑,无需复杂工具。所有脚本文件均存放在传奇服务端指定文件夹内,按功能分类存放,不同类型脚本文件分工明确,协同运行,确保游戏正常运转。脚本文件的编写遵循固定语法和格式,核心依赖引擎解析,不同引擎支持的脚本命令略有差异,但基础逻辑和存放路径保持一致。
二、传奇脚本文件核心分类及功能(按常用程度排序)
传奇脚本文件按功能可分为6大类,涵盖游戏所有可实现的脚本功能,每类脚本对应固定存放路径和核心作用,新手可通过分类快速找到对应脚本,无需盲目查找。
1. 全局触发类脚本文件
核心作用:控制游戏全局触发事件,包括玩家登录、等级提升、地图进入、死亡复活等全服通用的触发效果,是游戏最基础、最核心的脚本文件,所有全局触发逻辑均在此类脚本中设置。
核心文件及路径:
(1)QManage.txt:存放路径为Mirserver\Mir200\Envir\MapQuest_def,是全局地图触发脚本的核心文件,负责执行角色登录数据、活动任务、计时任务、地图相关触发等功能,例如玩家登录时自动发放新手礼包、进入指定地图触发等级判断等,几乎所有全局触发类脚本都需在此文件中追加或修改。
(2)QFunction-0.txt:存放路径为Mirserver\Mir200\Envir\Market_Def,属于触发类功能脚本,涵盖改变发型颜色、转职变性、会员福利、个人商店创建、人物死亡增加PK值、双击烟花效果等功能,触发场景多样,是补充全局触发脚本的核心文件。
常用场景:玩家登录触发新手装备发放、等级达到指定数值触发称号解锁、进入地图触发安全区光环效果等,均需在上述两个文件中编写对应脚本。
2. NPC类脚本文件
核心作用:控制游戏内所有NPC的交互逻辑,包括NPC对话、功能触发、物品买卖、任务接取与提交、传送服务等,每个NPC对应专属脚本,部分通用NPC可共用脚本文件。
核心文件及路径:
(1)NPC.txt:存放路径为Mirserver\Mir200\Envir,用于添加NPC到游戏中,记录NPC名称、所在地图ID、坐标、外观ID等基础信息,无此文件,NPC无法在游戏内显示,修改此文件需重启服务端才能生效。
(2)Market_Def文件夹:存放路径为Mirserver\Mir200\Envir,是NPC脚本文本默认存放路径,大部分NPC的交互脚本(如商人买卖、传送NPC)均存放在此文件夹内,可新建文本文档编写脚本,命名无严格要求,但需与NPC.txt中设置的关联脚本一致。
(3)QuestDiary文件夹:存放路径为Mirserver\Mir200\Envir,是功能型NPC脚本的默认存放处,当脚本未指定完整关联路径时,程序会自动在此文件夹下寻找对应脚本文件,若未找到则提示脚本不存在,常用于存放任务类、福利类NPC脚本。
常用场景:土城传送员的地图传送功能、商人的物品买卖脚本、任务NPC的对话及任务触发逻辑,均需在对应NPC脚本文件中编写。
3. 任务类脚本文件
核心作用:控制游戏内所有任务的完整流程,包括主线任务、支线任务、日常任务、活动任务等,涵盖任务接取条件、任务目标、任务奖励、任务失败逻辑等,是丰富游戏玩法的核心脚本文件。
核心文件及路径:
(1)QuestDiary文件夹:存放路径为Mirserver\Mir200\Envir,是任务脚本的主要存放目录,可按任务类型新建子文件夹分类存放(如主线任务、日常任务),脚本文件命名可自定义,需通过#CALL命令关联到对应NPC或全局触发脚本中。
(2)QManage.txt:部分简单的计时任务、登录任务,可直接在该文件中编写,无需单独创建任务脚本文件,例如每日登录任务、定时活动任务等,通过全局触发实现任务启动。
常用场景:新手主线任务的接取与提交、日常打怪任务的目标统计与奖励发放、节日活动任务的触发与执行,均需编写对应任务脚本文件。
4. 机器人类脚本文件
核心作用:控制游戏内机器人的自动执行逻辑,包括定时执行任务、自动修理装备、定时发送公告、自动清理指定数据等,无需人工操作,自动完成预设功能,提升游戏运营效率。
核心文件及路径:存放路径为Mirserver\Mir200\Envir\Robot_def,包含两个核心脚本文件,协同运行实现机器人自动功能:
(1)AutoRunRobot.txt:机器人自动执行控制脚本,负责设置机器人执行时间、执行频率和执行内容,支持小时(HOUR)、分钟(MIN)、秒(SEC)、每日固定时间(RUNONDAY)四种时间单位,例如每2分钟自动修理装备、每天7点发送游戏公告。
(2)RobotManage.txt:机器人任务内容脚本,负责编写机器人具体执行的脚本逻辑,所有AutoRunRobot.txt中指定的执行内容,均需在此文件中编写对应脚本,例如自动修理装备的具体命令、公告内容的设置。
常用场景:每2分钟自动修理全服玩家装备、每小时清空天下第一榜单、每天固定时间发送游戏活动公告、每秒触发安全区光环效果等。
5. 地图类脚本文件
核心作用:控制游戏内所有地图的规则,包括地图进入限制、地图内怪物刷新、地图内触发事件、地图复活点设置等,每个地图可单独设置脚本,也可通过全局脚本统一控制。
核心文件及路径:
(1)MapInfo.txt:存放路径为Mirserver\Mir200\Envir,用于设置地图基础信息及规则,包括地图名称、地图ID、地图类型、复活点坐标等,地图进入限制、地图内禁止PK等规则也可在此设置。
(2)MonGen.txt:存放路径为Mirserver\Mir200\Envir,用于设置地图内怪物刷新规则,包括怪物ID、刷新坐标、刷新频率、刷新数量等,修改此文件可调整不同地图的怪物分布和刷新速度。
(3)QManage.txt:地图进入限制、地图内触发事件(如踩特定坐标触发奖励、进入地图触发提示)等脚本,可在该文件中编写,绑定对应地图ID即可生效。
常用场景:限制指定等级玩家进入某地图、设置地图内怪物每10分钟刷新一次、设置地图复活点坐标、进入地图触发欢迎提示等。
6. 辅助类脚本文件
核心作用:辅助游戏正常运行,涵盖装备属性、怪物爆率、GM命令、游戏公告、自定义命令等,不直接参与游戏玩法触发,但影响游戏整体运行和体验。
核心文件及路径:
(1)Command.ini:存放路径为Mirserver\Mir200,是GM命令数据库,用于设置GM可使用的所有命令,包括刷物品、刷怪物、修改玩家等级、传送玩家等,可添加或删除GM命令,修改后需重启M2引擎生效。
(2)MonItems.txt:存放路径为Mirserver\Mir200\Envir,用于设置怪物爆率,记录不同怪物掉落的物品ID、掉落概率等,修改此文件可调整怪物爆率,无需重启服务端,保存后即可生效。
(3)SuiteItemsList.txt:存放路径为Mirserver\Mir200\Envir,用于设置装备特殊属性,包括套装属性、装备附加效果等,修改后需重启服务端才能生效。
(4)Notice文件夹:存放路径为Mirserver\Mir200,用于设置游戏公告,新建文本文档编写公告内容,保存后游戏内会自动滚动显示,无需重启服务端。
(5)UserCmd.txt:存放路径为Mirserver\Mir200\Envir,用于设置自定义命令,玩家可通过输入对应命令触发指定功能,例如输入“@回收”触发物品回收功能,需与对应脚本关联才能生效。
三、传奇脚本文件编写基础(新手必学)
所有传奇脚本文件编写均遵循固定格式和语法,无需专业编程基础,掌握核心格式和常用命令,即可编写基础脚本,核心编写规则如下,适用于所有类型脚本文件。
1. 核心编写格式
传奇脚本的基础编写格式分为3段,所有功能脚本均围绕此格式展开,可根据需求省略部分段落,核心格式如下:
#IF
// 检测段:设置脚本触发条件,如玩家等级、物品数量、是否在指定地图等,可设置多个条件,多个条件同时满足时触发执行段
#ACT
// 执行段:检测条件为真时,执行的具体操作,如发放物品、传送玩家、弹出提示、修改等级等,可编写多个执行命令
#ELSEACT
// 否则段:检测条件为假时,执行的操作,如弹出提示、返回上一界面等,可省略,省略后条件不满足时无任何反应
BREAK
// 终止脚本执行,避免脚本重复触发,每个完整的脚本段末尾需添加,防止出现逻辑错误
补充说明:当检测段(#IF)为空时,可直接省略#IF,直接编写#ACT和BREAK,实现无条件执行脚本,例如无需任何条件,玩家点击NPC即可传送。
2. 常用脚本命令(基础必备)
掌握以下常用命令,可完成80%的基础脚本编写,所有命令严格区分大小写,不可混淆,命令结尾需加英文“;”(部分全局脚本可省略,但NPC脚本、任务脚本必须添加):
(1)等级判断命令:CheckLevel N(判断玩家等级是否≥N)、CheckLevelEx > N(判断玩家等级是否>N),常用于地图进入限制、任务接取条件判断。
(2)物品相关命令:Give 物品ID 数量(发放物品给玩家)、Take 物品ID 数量(扣除玩家物品)、CheckItem 物品ID 数量(判断玩家是否拥有指定数量物品),常用于任务奖励、物品兑换、NPC买卖脚本。
(3)传送命令:MapMove 地图ID 坐标X 坐标Y(传送玩家到指定地图指定坐标)、MapMove 地图名称 坐标X 坐标Y(直接通过地图名称传送,需确保地图名称与服务端一致),常用于NPC传送、地图触发传送。
(4)提示命令:SendMsg 颜色代码 提示内容(在游戏内弹出提示,颜色代码1-255,5为红色、1为白色、255为金色),常用于触发提示、任务提示、错误提示。
(5)变量相关命令:常用私人变量(P0-P99、D0-D99)和全局变量(G0-G499、A0-A499),用于记录玩家状态、任务进度等,例如P0=1表示玩家已接取某任务,常用于任务脚本、会员脚本。
(6)机器人命令:#AutoRun NPC 时间单位 值 执行内容(用于AutoRunRobot.txt中,设置机器人执行频率和内容)、GMEXECUTE 命令(执行GM脚本命令)、ACTREPAIRALL(自动修理所有装备),常用于机器人脚本编写。
3. 编写注意细节
(1)编码格式:所有脚本文件必须设置为ANSI编码,右键点击脚本文件-打开方式-记事本-文件-另存为,编码选择ANSI,保存覆盖原有文件,否则会出现乱码,导致引擎无法解析脚本。
(2)格式规范:每行只能编写一条脚本命令,不可多行合并,命令结尾需加英文“;”,避免使用中文标点(逗号、句号、问号等),否则会触发语法错误。
(3)命令大小写:所有脚本命令(#IF、#ACT、CheckLevel、SendMsg等)必须严格区分大小写,不可写为小写(如#if、#act),否则引擎无法识别命令。
(4)变量规范:自定义变量名称不可以P、D、M、N、S、I、G、A开头,避免与系统自带变量冲突,变量使用时需全部大写,否则会导致脚本执行失败。
(5)路径关联:编写脚本时,若需调用其他脚本文件,需确保关联路径正确,例如#CALL (\游戏功能\实物回收.txt) @实物回收,需确保实物回收.txt存放在QuestDiary文件夹下的游戏功能子文件夹中,否则会提示脚本不存在。
四、传奇脚本文件常见异常及排查解决
脚本文件异常是传奇服务端常见问题,主要表现为脚本无效、服务端报错、功能无法触发、提示不显示等,核心原因集中在路径错误、语法错误、编码错误、引擎不兼容,逐一排查即可解决,无需复杂操作。
1. 脚本无效,功能无法触发
症状:编写脚本后保存,进入游戏触发对应场景(如点击NPC、进入地图),无任何反应,服务端控制台无报错,功能无法实现。
排查解决步骤:
(1)核对脚本路径:确认脚本文件存放在对应文件夹内,例如NPC脚本需放在Market_Def或QuestDiary文件夹,全局触发脚本需放在MapQuest_def文件夹,路径错误会导致引擎无法加载脚本。
(2)检查脚本关联:NPC脚本需在NPC.txt中添加对应NPC信息,确保NPC名称、关联脚本路径一致;任务脚本需通过#CALL命令关联到NPC或全局脚本,否则无法触发。
(3)重启引擎:部分脚本修改后,需重启M2引擎(M2Server.exe)才能生效,关闭M2、DBserver、网关,重新启动后测试,避免因未重启导致脚本无效。
(4)检查引擎设置:启动M2引擎,点击“功能设置-脚本设置”,确保“启用地图触发脚本”“启用QManage.txt脚本”“启用NPC脚本”等选项均已勾选,未勾选会导致对应脚本无法触发。
2. 服务端控制台提示“脚本语法错误”
症状:启动服务端或触发脚本时,控制台持续弹出“脚本语法错误”“未知脚本命令”提示,脚本无法执行,严重时会导致M2引擎闪退。
排查解决步骤:
(1)检查命令拼写:确认所有脚本命令拼写正确,严格区分大小写,例如将CheckLevel误写为checklevelex、SendMsg误写为sendmsg,都会触发语法错误。
(2)检查格式规范:核对脚本格式,确保每行一条命令,命令结尾加英文“;”,无中文标点,无多余空格、空行,格式混乱会导致引擎无法解析。
(3)检查命令兼容性:部分脚本命令仅支持特定引擎(如GOM、Hero),若使用的引擎不支持该命令,会提示“未知脚本命令”,需替换为兼容命令,例如用CheckLevel 36替换CheckLevelEx > 35,适配所有引擎。
(4)清理乱码内容:若脚本复制后出现乱码,删除乱码字符,重新手动输入脚本,或修改脚本编码为ANSI,保存后重新测试。
3. 脚本编码错误,出现乱码
症状:打开脚本文件后,中文内容显示乱码,服务端控制台提示“无法识别的字符”,脚本无法执行,或执行后提示内容乱码。
排查解决步骤:
(1)修改脚本编码:右键点击脚本文件,选择“打开方式-记事本”,点击“文件-另存为”,编码选择ANSI,保存覆盖原有文件,关闭记事本后重新启动服务端。
(2)重新编写脚本:若修改编码后仍有乱码,删除原有脚本,重新手动输入,避免复制粘贴导致的编码错乱,输入完成后保存,确保编码为ANSI。
(3)检查编辑工具:避免使用Word、WPS等办公软件编辑脚本,此类软件会自动修改编码格式,导致乱码,仅使用记事本编辑脚本。
4. 机器人脚本无法自动执行
症状:编写机器人脚本后,机器人未按预设时间执行功能,服务端控制台无报错,AutoRunRobot.txt和RobotManage.txt脚本无明显错误。
排查解决步骤:
(1)核对脚本协同:确认AutoRunRobot.txt中设置的执行内容,已在RobotManage.txt中编写对应脚本,例如AutoRunRobot.txt中设置#AutoRun NPC MIN 2 @秒修装备,RobotManage.txt中需有@秒修装备对应的脚本逻辑。
(2)检查时间格式:确认AutoRunRobot.txt中的时间单位和数值设置正确,例如HOUR(小时)、MIN(分钟)、SEC(秒)不可混淆,数值需为正整数,避免设置错误导致无法触发。
(3)补充全局脚本:部分机器人功能需在QManage.txt中编写辅助脚本,例如自动修理装备脚本,需在QManage.txt中添加@秒修装备1对应的修理命令,确保完整执行流程。
(4)重启引擎:修改机器人脚本后,需重启M2引擎,确保脚本加载生效,重启后观察控制台,确认无报错,等待预设时间测试功能。
5. 脚本命令无效,提示“未知命令”
症状:脚本语法、格式均无错误,但服务端控制台提示“未知脚本命令”,脚本无法执行,多为引擎不支持该命令,常见于老旧引擎或小众引擎。
排查解决步骤:
(1)确认引擎版本:查看M2Server.exe属性,确认引擎类型(GOM、GEE、Hero)及版本,不同引擎支持的命令不同,例如Hero引擎支持Hero.CheckOnline命令,GOM引擎不支持。
(2)替换兼容命令:将不支持的命令替换为基础兼容命令,例如用CheckLevel N替换CheckLevelEx > N,用MapMove 地图ID替换MapMove 地图名称,基础命令适配所有引擎。
(3)升级引擎:若使用的是极低版本引擎,部分基础命令也可能不支持,升级引擎包(推荐1108及以上版本),升级后重启服务端,重新添加脚本测试。
6. 脚本冲突,功能异常
症状:单独执行某一个脚本功能正常,但多个脚本同时执行时出现异常,或新增脚本后,原有脚本功能失效,多为脚本之间存在命令、变量冲突。
排查解决步骤:
(1)定位冲突脚本:关闭所有脚本,逐一启用脚本,重启引擎测试,找到导致冲突的脚本(新增脚本或修改过的脚本)。
(2)排查冲突原因:检查冲突脚本中的命令、变量是否与其他脚本重复,例如两个脚本使用相同变量、相同触发条件,会导致脚本执行冲突。
(3)解决冲突:修改冲突脚本中的变量名称、触发条件,或调整脚本执行顺序,避免重复;若冲突无法解决,替换其中一个脚本为兼容版本,确保脚本之间互不影响。
五、传奇脚本文件备份与恢复方法
脚本文件修改后若出现错误,或误删除、损坏,可通过备份快速恢复,避免重新编写脚本,节省时间,备份与恢复步骤如下,适用于所有脚本文件。
1. 备份方法:找到脚本文件所在文件夹(如Envir、MapQuest_def、Market_Def),右键点击文件夹,选择“复制”,然后粘贴到非系统盘(如D盘、E盘),命名为“脚本备份+日期”,便于区分;也可单独备份修改过的脚本文件,复制一份保存到其他路径,避免覆盖。
2. 恢复方法:若脚本文件损坏、误删除或修改错误,找到对应备份文件夹,复制备份的脚本文件或文件夹,粘贴到服务端对应路径,覆盖原有文件,关闭所有服务端进程,重新启动服务端,即可恢复脚本正常功能。
补充说明:建议每次修改脚本前,都进行备份,尤其是批量修改、修改核心脚本(如QManage.txt、NPC.txt)时,避免修改错误导致服务端无法正常运行。
六、脚本文件常见操作技巧(新手实用)
1. 快速查找脚本:按Win+R,输入脚本文件路径(如Mirserver\Mir200\Envir\MapQuest_def),可快速打开对应文件夹,无需手动逐层查找。
2. 批量修改脚本:若多个脚本需要修改相同内容(如修改提示颜色、替换命令),可打开所有脚本文件,通过记事本的“查找替换”功能,批量修改,提高效率。
3. 脚本测试技巧:编写脚本后,先在测试服测试,创建测试角色,触发对应场景,确认脚本功能正常、无报错后,再应用到正式服务端,避免影响玩家体验。
4. 命令查询工具:下载对应引擎的帮助文档(如GOM引擎帮助文档.chm),可快速查询所有脚本命令的功能、格式和使用场景,遇到未知命令时,可通过帮助文档查询。
5. 脚本分类管理:按功能分类存放脚本文件,例如在QuestDiary文件夹下新建“主线任务”“日常任务”“福利脚本”子文件夹,便于后续查找和修改,避免脚本混乱。
七、补充说明
1. 脚本文件与服务端版本、引擎版本需匹配,更换服务端或引擎后,需重新检查所有脚本,替换不兼容命令,确保脚本正常执行。
2. 禁止修改脚本文件后缀,所有脚本文件均为.txt后缀,不可改为.txt.bak、.doc等后缀,否则引擎无法识别。
3. 若服务端出现PGStartAutoPickItem1等脚本相关报错,需检查MirServer/Mir2/Config目录下的GameGuard.ini文件,确保配置参数正确,同时检查Script文件夹内相关脚本,修复语法或逻辑错误。
4. 脚本文件不可包含特殊字符、中文符号,路径不可带有空格、中文,否则会导致引擎无法读取脚本,建议服务端解压到非系统盘根目录(如D:\Mirserver)。
5. 定期检查脚本文件,清理无用脚本,避免脚本过多导致服务端加载缓慢,同时备份核心脚本文件,防止丢失或损坏。

