传奇脚本是整套游戏逻辑的文本指令集合,游戏内NPC对话、怪物掉落、传送跳转、任务流程、奖励发放、功能开关全部依靠脚本文件驱动,很多接触版本修改的玩家初次接触脚本,不清楚脚本文件存放位置、文件格式、基础语法、加载调用方式以及常见报错处理,搞懂脚本的本质与使用流程,才能够自主修改游戏内各类功能,实现自定义的游戏效果。
脚本文件以文本格式存在,不同引擎对应的脚本后缀存在区别,常见的脚本后缀包含QFunction‑0.txt、NPC脚本后缀为.txt,部分引擎使用sel后缀脚本文件,所有脚本都可以用记事本工具打开查看编辑,不建议使用格式复杂的文档工具编辑,文档格式会带入多余符号,直接造成脚本运行报错。脚本内部由命令、参数、条件判断、跳转标签组成,每一行代表一条执行指令,游戏引擎读取脚本文本,从上往下逐行解析执行对应的逻辑,写错符号、缺少空格、换行错乱,都会直接导致脚本失效,部分错误脚本还会造成引擎卡顿,功能无法正常触发。
不同类型脚本存放在服务端不同文件夹路径下,找对文件目录才可以正常编辑修改。NPC对话脚本存放路径为Mir200\Envir\Npc_def文件夹,游戏中每一个NPC都会对应独立的脚本文本文件,NPC的对话内容、点击选项、传送、领取奖励逻辑全部写在对应脚本当中。功能触发脚本QFunction‑0.txt位于Mir200\Envir文件夹,这是全局触发脚本,角色上线、死亡、升级、拾取物品、击杀怪物,各类事件都会调用这个脚本,绝大多数自定义触发逻辑都写在此文件内。怪物脚本存放在Mir200\Envir\MonGen.txt为怪物刷怪配置文件,怪物自身行为脚本部分引擎放在MonUseItems文件夹。地图脚本、传送脚本、任务脚本也分散在Envir下属各个子目录,修改脚本之前做好源文件备份,复制一份原始文件留存,修改出错可以直接还原,避免原有游戏功能彻底损坏。
脚本的基础使用分为查看编辑、保存、重载生效三个步骤,修改脚本完成之后,不是直接进游戏就可以看到效果,需要引擎重新读取脚本文件,改动才会生效。第一种重载方式,在游戏引擎M2程序面板当中,找到控制选项,点击重新加载NPC脚本、重新加载全局脚本命令,执行重载,不需要关闭引擎,修改内容直接生效,日常调试脚本优先使用这种方式。第二种方式,关闭整套游戏引擎,保存脚本文件之后,重新启动引擎服务,全部脚本文件会完成一次完整读取,适合改动量很大,或者修改基础配置类脚本的时候使用。编辑脚本保存的时候注意编码格式,保存编码选择ANSI格式,如果保存为UTF‑8编码,中文内容会出现乱码,NPC对话会显示一堆问号,脚本逻辑也会出现异常。
NPC脚本是接触最多的脚本类型,简单脚本结构包含[@main]主标签,这是打开NPC对话优先执行的代码块,下方书写对话文字,再添加[@选项]跳转标签,玩家点击对应选项,脚本跳转到对应标签执行后续逻辑,可以实现传送地图、扣除物品、发放装备、检测角色等级等各类功能。每一个跳转标签必须写@符号开头,标签名称不能重复,重复标签会造成脚本逻辑错乱。条件判断是脚本高频使用部分,可以检测角色等级、背包物品数量、金币数量、身上装备,满足条件执行对应操作,不满足条件就弹出提示文字,终止后续流程。书写条件语句的时候参数空格不能省略,参数顺序不能颠倒,一个符号错误,整条判断逻辑直接失效。
全局脚本QFunction‑0.txt的使用逻辑和NPC脚本不一样,它依靠事件标签触发,例如[@OnTimer]角色定时器、[@OnKillMonster]击杀怪物触发、[@OnPickUpItem]拾取物品触发,角色达成对应事件条件,引擎自动运行对应标签下面的脚本代码。利用全局脚本可以实现击杀怪物自动发放奖励,定时给角色发放道具,角色升级赠送物品等自定义效果,写全局脚本不要随意改动原有内置标签代码,只需要在文件末尾追加自己编写的脚本内容,改动原有系统代码容易破坏游戏原生功能。
脚本调试过程会频繁遇见各类问题,脚本写完不生效,需要按照顺序排查问题。首先确认脚本文件保存路径正确,文件名没有写错,后缀没有多出隐藏.txt后缀,windows系统默认隐藏已知后缀,保存之后文件变成xxx.txt.txt,引擎识别不到脚本文件,功能完全不会触发。其次检查编码格式,确认是ANSI保存,中文乱码基本都是编码错误导致。完成修改之后确认执行脚本重载操作,没有重载引擎依旧运行旧版本脚本,游戏内看不到任何改动。查看M2引擎日志窗口,脚本出现语法错误的时候,日志面板会打印报错信息,会提示错误行数,根据报错行数定位脚本出错位置,排查括号、符号、空格、标签是否书写错误。脚本当中分号代表注释,分号后面的内容引擎不会读取执行,用来给自己写备注说明,不要把有效代码写在分号后面。
脚本除了手动编写之外,也可以参考现成脚本片段学习使用,复制现成脚本片段的时候,不要直接大段粘贴,粘贴完成仔细核对标签、符号、参数,网上获取的脚本片段有可能适配别的引擎,直接复制过来会出现命令不兼容,部分命令只支持特定引擎,别的引擎无法识别,命令不兼容只能更换等价命令重写逻辑。调试脚本建议分步测试,不要一次性写完整套复杂逻辑,写一形就重载测试一次,确认这部分可以正常运行,再继续往下补充代码,出现问题可以快速定位出错位置。
熟练掌握脚本的查找、编辑、重载调试整套流程,就可以自主实现大量自定义游戏功能,不用依赖现成文件,按照自己想法调整NPC交互、奖励机制、事件触发逻辑。
脚本文件以文本格式存在,不同引擎对应的脚本后缀存在区别,常见的脚本后缀包含QFunction‑0.txt、NPC脚本后缀为.txt,部分引擎使用sel后缀脚本文件,所有脚本都可以用记事本工具打开查看编辑,不建议使用格式复杂的文档工具编辑,文档格式会带入多余符号,直接造成脚本运行报错。脚本内部由命令、参数、条件判断、跳转标签组成,每一行代表一条执行指令,游戏引擎读取脚本文本,从上往下逐行解析执行对应的逻辑,写错符号、缺少空格、换行错乱,都会直接导致脚本失效,部分错误脚本还会造成引擎卡顿,功能无法正常触发。
不同类型脚本存放在服务端不同文件夹路径下,找对文件目录才可以正常编辑修改。NPC对话脚本存放路径为Mir200\Envir\Npc_def文件夹,游戏中每一个NPC都会对应独立的脚本文本文件,NPC的对话内容、点击选项、传送、领取奖励逻辑全部写在对应脚本当中。功能触发脚本QFunction‑0.txt位于Mir200\Envir文件夹,这是全局触发脚本,角色上线、死亡、升级、拾取物品、击杀怪物,各类事件都会调用这个脚本,绝大多数自定义触发逻辑都写在此文件内。怪物脚本存放在Mir200\Envir\MonGen.txt为怪物刷怪配置文件,怪物自身行为脚本部分引擎放在MonUseItems文件夹。地图脚本、传送脚本、任务脚本也分散在Envir下属各个子目录,修改脚本之前做好源文件备份,复制一份原始文件留存,修改出错可以直接还原,避免原有游戏功能彻底损坏。
脚本的基础使用分为查看编辑、保存、重载生效三个步骤,修改脚本完成之后,不是直接进游戏就可以看到效果,需要引擎重新读取脚本文件,改动才会生效。第一种重载方式,在游戏引擎M2程序面板当中,找到控制选项,点击重新加载NPC脚本、重新加载全局脚本命令,执行重载,不需要关闭引擎,修改内容直接生效,日常调试脚本优先使用这种方式。第二种方式,关闭整套游戏引擎,保存脚本文件之后,重新启动引擎服务,全部脚本文件会完成一次完整读取,适合改动量很大,或者修改基础配置类脚本的时候使用。编辑脚本保存的时候注意编码格式,保存编码选择ANSI格式,如果保存为UTF‑8编码,中文内容会出现乱码,NPC对话会显示一堆问号,脚本逻辑也会出现异常。
NPC脚本是接触最多的脚本类型,简单脚本结构包含[@main]主标签,这是打开NPC对话优先执行的代码块,下方书写对话文字,再添加[@选项]跳转标签,玩家点击对应选项,脚本跳转到对应标签执行后续逻辑,可以实现传送地图、扣除物品、发放装备、检测角色等级等各类功能。每一个跳转标签必须写@符号开头,标签名称不能重复,重复标签会造成脚本逻辑错乱。条件判断是脚本高频使用部分,可以检测角色等级、背包物品数量、金币数量、身上装备,满足条件执行对应操作,不满足条件就弹出提示文字,终止后续流程。书写条件语句的时候参数空格不能省略,参数顺序不能颠倒,一个符号错误,整条判断逻辑直接失效。
全局脚本QFunction‑0.txt的使用逻辑和NPC脚本不一样,它依靠事件标签触发,例如[@OnTimer]角色定时器、[@OnKillMonster]击杀怪物触发、[@OnPickUpItem]拾取物品触发,角色达成对应事件条件,引擎自动运行对应标签下面的脚本代码。利用全局脚本可以实现击杀怪物自动发放奖励,定时给角色发放道具,角色升级赠送物品等自定义效果,写全局脚本不要随意改动原有内置标签代码,只需要在文件末尾追加自己编写的脚本内容,改动原有系统代码容易破坏游戏原生功能。
脚本调试过程会频繁遇见各类问题,脚本写完不生效,需要按照顺序排查问题。首先确认脚本文件保存路径正确,文件名没有写错,后缀没有多出隐藏.txt后缀,windows系统默认隐藏已知后缀,保存之后文件变成xxx.txt.txt,引擎识别不到脚本文件,功能完全不会触发。其次检查编码格式,确认是ANSI保存,中文乱码基本都是编码错误导致。完成修改之后确认执行脚本重载操作,没有重载引擎依旧运行旧版本脚本,游戏内看不到任何改动。查看M2引擎日志窗口,脚本出现语法错误的时候,日志面板会打印报错信息,会提示错误行数,根据报错行数定位脚本出错位置,排查括号、符号、空格、标签是否书写错误。脚本当中分号代表注释,分号后面的内容引擎不会读取执行,用来给自己写备注说明,不要把有效代码写在分号后面。
脚本除了手动编写之外,也可以参考现成脚本片段学习使用,复制现成脚本片段的时候,不要直接大段粘贴,粘贴完成仔细核对标签、符号、参数,网上获取的脚本片段有可能适配别的引擎,直接复制过来会出现命令不兼容,部分命令只支持特定引擎,别的引擎无法识别,命令不兼容只能更换等价命令重写逻辑。调试脚本建议分步测试,不要一次性写完整套复杂逻辑,写一形就重载测试一次,确认这部分可以正常运行,再继续往下补充代码,出现问题可以快速定位出错位置。
熟练掌握脚本的查找、编辑、重载调试整套流程,就可以自主实现大量自定义游戏功能,不用依赖现成文件,按照自己想法调整NPC交互、奖励机制、事件触发逻辑。

