一、传奇脚本基础认知
1.1 脚本本质与应用场景
传奇脚本是控制游戏内功能、活动、NPC交互等行为的指令集合,以.txt文本格式存储,通过游戏引擎解析执行。其应用覆盖自动打怪、定时活动、NPC功能、任务触发、人物特效等场景,是实现游戏玩法自定义的核心工具。
1.2 核心准备工具
入门需准备两类核心工具:一是文本编辑器,推荐Visual Studio Code、Sublime Text,支持语法高亮与自动补全,提升编写效率;二是引擎帮助文档(如GOM引擎帮助文档.chm),用于查询命令功能、格式及变量说明,是脚本编写的核心参考。
1.3 关键脚本路径与文件
传奇脚本核心文件集中在服务端Mir200/Envir文件夹下,各子文件夹对应不同功能脚本,核心路径与文件如下:
- MapQuest_Def:存放任务型脚本,核心文件为QManage.txt,负责角色登录数据、活动任务、计时任务、地图属性调整等逻辑执行。
- Market_Def:默认存放NPC脚本文本,包含触发类脚本QFunction-0.txt,可实现发型颜色修改、转职变性、会员福利、双击道具效果等功能。
- QuestDiary:功能脚本默认存放目录,未指定完整路径时,程序会自动在此文件夹下查找对应脚本文件,缺失则提示不存在。
- Robot_def:包含机器人控制脚本,AutoRunRobot.txt负责控制脚本执行时间,RobotManage.txt存放机器人任务内容,二者协同实现定时功能。
二、传奇脚本核心语法与变量
2.1 基础语法格式
传奇脚本核心格式由检测段、执行段、否则段构成,所有功能均基于此框架实现,格式如下:
#IF
; 检测段:设置判断条件、定义变量,条件成立则执行#ACT段
#ACT
; 执行段:条件为真时执行的指令集合
#ELSEACT
; 否则段:条件为假时执行的指令集合
BREAK
; BREAK:标记一个完整脚本段结束
注意:检测段与执行段、否则段内容不可混淆放置,否则会导致脚本报错,可能引发游戏黑屏、无法登录等问题,编写后需重新加载脚本,通过M2查看错误提示。若无需检测条件,可省略#IF,直接编写#ACT与BREAK。
2.2 常用变量分类与应用
变量是脚本中存储数据的核心,分为私人变量与全局变量,各有不同存储特性与应用场景,核心变量如下:
2.2.1 私人变量(仅玩家自身可见)
- P0-P99(数字型):关闭对话框后重置为0,适用于临时交互数据存储。
- D0-D99(数字型):下线不保存,常用于摇骰子等临时随机场景。
- M0-M99(数字型):下线不保存,切换地图后清空,适用于地图内临时任务数据。
- N0-N99(数字型):下线不保存,小退後归0,可用于短期挂机数据记录。
- S0-S99(字符型):下线不保存,小退後归0,用于存储临时字符串信息。
- U0-U49(数字型):可保存,存储于人物数据库Mir.db,适用于冲级奖励领取标记、捐献记录等长期数据。
- T0-T49(字符型):可保存,存储于人物数据库Mir.db,用于记录玩家称号、自定义标识等字符串数据。
2.2.2 全局变量(所有玩家可见)
- I0-I99(数字型):下线不保存,小退後归0,适用于临时全服数据统计。
- G0-G499(数字型):可保存,存储于Mir200/GlobalVal.ini,常用于全服奖励名额、总捐献额度等全局数据。
- A0-A499(字符型):可保存,存储于Mir200/GlobalVal.ini,适用于全服公告内容、活动状态等字符串数据。
变量应用需注意:自定义变量名称不可以P、D、M、N、S、I、G、A开头,避免与系统变量冲突。
三、核心脚本命令与实操案例
3.1 基础命令解析
入门需掌握以下核心命令,结合引擎帮助文档可拓展更多功能:
- checklevel(等级检测):格式为checklevel 数值,用于判断玩家等级是否满足条件。
- checkmonster(怪物检测):格式为checkmonster 地图, 怪物名称, X, Y,检测指定地图指定坐标是否存在目标怪物。
- attack(攻击命令):格式为attack -1,触发角色自动攻击目标。
- goto(跳转命令):格式为goto @标签,跳转至脚本中指定标签段落。
- break(结束命令):用于终止当前脚本段执行,标记脚本结束。
- GMEXECUTE(GM命令执行):格式为GMEXECUTE 命令,执行指定GM脚本命令。
- ACTREPAIRALL(装备修理):执行角色全身装备修理操作。
- MonGen(怪物生成):格式为MonGen 怪物名称 数量 刷新模式,在指定坐标生成目标怪物。
- SENDMSG(消息发送):格式为SENDMSG 频道 内容,向指定频道发送游戏消息。
- ShowEffect(特效展示):格式为ShowEffect 特效ID,触发角色特效(如召唤英雄、升级效果等)。
3.2 自动打怪脚本案例
以下为等级触发式自动打怪脚本,适用于指定等级区间自动打怪,核心逻辑为等级检测-怪物检测-自动攻击-等级终止:
(@mn)
#IF checklevel (30)
#OTO 已达到30级,开始自动打怪
#ACT
goto @start
(@start)
#IF checkmonster (月岛, 狼, X, Y)
#OTO 发现狼,准备攻击
#ACT
attack -1
goto @start
#IF checklevel (50)
#OTO 已达到50级,结束自动打怪
#ACT
break
脚本解析:玩家触发@mn标签后,先检测等级是否达到30级,达标则跳转至@start标签;持续检测月岛指定坐标是否有狼,存在则自动攻击并循环检测;当玩家等级达到50级时,触发结束命令,终止自动打怪。
3.3 定时刷怪活动脚本案例
通过机器人脚本实现每日定时刷怪与全服公告,需配合Robot_def文件夹下两个核心文件编写:
3.3.1 定时控制脚本(AutoRunRobot.txt)
#AutoRun NPC RUNONDAY 15:00:00 @祖玛教主
; 每天15:00触发@祖玛教主标签脚本,时间单位支持SEC(秒)、MIN(分)、HOUR(小时)、RUNONWEEK(星期)等
3.3.2 刷怪执行脚本(RobotManage.txt)
(@祖玛教主)
#IF
#ACT
Param1 3 405 328
Param2 405
Param3 328
MonGen 祖玛教主 1 0
SENDMSG 1 怪物:(祖玛教主)出现在土城书店,想要装备、元宝的可别错过机会~!
SENDMSG 1 怪物:(祖玛教主)出现在土城书店,想要装备、元宝的可别错过机会~!
脚本解析:每日15:00系统自动执行@祖玛教主脚本,在土城书店指定坐标生成1只祖玛教主,并通过全服1频道发送红字公告,吸引玩家参与挑战。
3.4 自动修装脚本案例
实现每2分钟自动修理装备功能,需联动AutoRunRobot.txt、RobotManage.txt、QManage.txt三个文件,流程为定时触发-命令执行-修装操作:
3.4.1 定时触发(AutoRunRobot.txt)
#AutoRun NPC MIN 2 @秒修装备
; 每2分钟触发一次@秒修装备脚本
3.4.2 命令中转(RobotManage.txt)
(@秒修装备)
#IF
#ACT
GMEXECUTE 开始提问 @秒修装备1
3.4.3 修装执行(QManage.txt)
(@秒修装备1)
#IF
#ACT
ACTREPAIRALL
脚本解析:每2分钟由AutoRunRobot.txt触发@秒修装备,通过RobotManage.txt执行GM命令,调用QManage.txt中的@秒修装备1标签,执行全身装备修理操作,实现自动修装循环。
3.5 沙城捐献脚本案例
实现最低20额度捐献触发奖励功能,支持首次与再次捐献区分,核心运用变量判断与数值运算:
(@InPutInteger22)
#IF
equal U15 0
LARGE N22 19
CHECKGAMEPOINT > <$STR(N22)>
CHECKBAGSIZE 2
#ACT
give 群体放毒术 1
GAMEPOINT - <$STR(N22)>
INC U13 <$STR(N22)>
INC G13 <$STR(N22)>
MOV U15 1
#OTO 捐献成功,获得群体放毒术,当前捐献额度已累计
#ELSEACT
#OTO 捐献失败,需捐献20及以上额度,或背包空间不足
脚本解析:玩家输入捐献额度后触发@InPutInteger22标签,检测私人变量U15是否为0(首次捐献)、额度是否大于19(最低20)、游戏货币是否充足、背包是否有2个空位;达标则发放奖励,扣除对应货币,累计捐献额度,将U15设为1(标记为已捐献);不达标则提示失败原因。
四、脚本编写与调试技巧
4.1 编写核心要点
1. 标签命名规范:标签以@开头,名称简洁易懂(如@自动打怪、@定时刷怪),避免重复,便于后续查找与修改。
2. 注释清晰明了:使用;添加注释,说明脚本功能、条件逻辑、变量含义,便于他人理解与后期维护。
3. 命令格式准确:严格按照引擎文档中的命令格式编写,避免参数缺失、符号错误,否则会导致脚本无法执行。
4. 变量合理运用:根据数据存储需求选择对应变量,可保存变量用于长期数据记录,临时变量用于短期交互,避免资源浪费。
4.2 调试排查方法
1. 逐段测试:编写完成后,分段加载脚本测试,优先验证核心逻辑,再排查细节功能,减少整体调试难度。
2. 错误提示查看:脚本报错后,打开M2引擎查看错误提示,定位报错行与原因,重点排查语法错误、变量冲突、路径缺失等问题。
3. 变量检测:通过输出变量值(如#OTO <$U15>),验证变量赋值、运算是否符合预期,排查变量相关逻辑错误。
4. 备份原始脚本:修改脚本前备份原始文件,调试失败时可快速恢复,避免影响游戏正常运行。
五、入门进阶方向
1. 复杂任务脚本:学习多变量联动、多条件嵌套脚本,实现主线任务、支线任务、循环任务等复杂玩法。
2. 人物特效拓展:运用ShowEffect命令与GMEXECUTE,实现召唤英雄、放烟花、升级发光等多种人物特效。
3. 全服活动开发:结合定时脚本与全局变量,开发全服答题、BOSS攻城、冲级排行等互动活动。
4. 资源获取与交流:通过官方文档、开发者社区获取进阶知识,与其他开发者交流经验,解决开发难题,积累实战案例。
传奇脚本入门核心在于掌握基础语法、变量运用与核心命令,通过实操案例积累经验,逐步拓展复杂功能。编写过程中需注重格式规范与调试细节,避免脚本报错影响游戏体验,持续实践与学习可快速提升脚本编写能力。
传奇脚本入门教程 核心语法与实操案例全解析
来源:
作者:
点击:

