传奇“脚本”分两条完全独立的线:一条是服务端脚本(GOM/GEE/Hero/BLUE引擎的NPC、任务、触发、爆率、机器人逻辑,纯文本指令集,改完重载生效);一条是客户端辅助脚本(按键精灵、AHK、大漠插件模拟键盘鼠标打怪喝药拾取,靠图色或窗口消息驱动)。架设版本、改玩法走第一条;个人挂机自动化走第二条,后者受各服用户协议限制,涉及内存读写、封包篡改、加速穿墙即越界成外挂。下面只拆服务端脚本制作完整链路。
一、前置准备
1.确认引擎:GOM、GEE/GEEM2、Hero(翎风)、BLUE(LegendM2)、V8等,命令集近似但不完全通用,先拿对应引擎命令手册
2.必备工具:Notepad++或VSCode(存UTF-8/GBK看服务端设定)、M2Server控制台、WIL/WZL资源编辑器、登录器生成器
3.备份MirServer\Mir200\Envir整个目录,改崩可回滚
4.核心脚本目录(Hero/GOM通用):
•Envir\Market_Def\→NPC对话脚本(每个NPC一个.txt,文件名对齐MerChant.txt登记名)
-Envir\Market_Def\QFunction-0.txt→全局事件(用物品、升级、杀人、死亡、穿脱装备触发)
•Envir\MapQuest_def\QManage.txt→登录/上线触发
-Envir\QuestDiary\→任务剧本与分支逻辑
•Envir\Robot_def\RobotManage.txt→定时机器人脚本(整点刷怪、全服公告)
-Envir\MonItems\→怪物爆率脚本
二、脚本基础语法(所有引擎通用骨架)
结构=[@标签]+#IF(条件)+#ACT(执行)+#SAY/#ELSESAY/#ELSEACT(反馈),标签以@开头,\换行,<文字/@标签>可做点击跳转按钮
最小可用模板:
[@main]
#ACT
SAY欢迎来到比奇福利官!\
1.领取30级礼包<领取/@get30>\
2.离开<close>
[@get30]
#IF
CheckLevel30
CheckVarHUMANGet30=0
#ACT
Give乌木剑1
Give金条1
SetHUMANGet301
SendMsg5恭喜领取30级礼包!
BREAK
#ELSEACT
SendMsg5等级不足30或已领取过!
CLOSE
规则:#IF下只写判断命令(CheckLevel/CheckItem/CheckGold/CheckJob),多条件为“同时满足”;#ACT下写动作(Give/Take/MapMove/Set/SendMsg);BREAK终止脚本;CLOSE关对话框;GOTO@标签跳转
三、NPC脚本实操(最常用)
1.在Envir\MerChant.txt登记NPC:
比奇福利官3320330福利官00000000(格式:名称地图坐标XY脚本名朝向色头衔…按引擎手册对齐)
2.在Market_Def\福利官.txt写上面的[@main]逻辑
3.M2控制台→在线重载@reloadnpcall或重启服务端→进游戏点NPC验证
四、全局触发脚本(QF/QM)
QFunction-0.txt里写引擎预留标签,不靠NPC点击,由事件自动调:
[@PlayLevelUp]
#IF
CheckLevel35
#ACT
SendMsg5恭喜35级,解锁内功经络任务!
[@StdModeFunc100]
;对应物品DB里AniCount=100,双击触发
#ACT
SendMsg5你使用了回城卷轴!
MapMove3320330
[@PlayDie]
#ACT
SendMsg7你已倒下,10秒后回城复活
注意:@PlayDie、@StdModeFunc、@TakeOn、@TakeOff、@MagTagFunc等是引擎内部触发字段,禁止用NPC对话<@PlayDie>强点,需用GOTO中转
QManage.txt登录触发:
[@Login]
#ACT
SendMsg0欢迎回来,当前时间已同步!
OpenAutoPickItem3030005000
OpenAutoPickItem类型时长范围秒捡捡丢弃捡爆出延迟ms→自动拾取开关
五、Robot定时脚本
Envir\Robot_def\RobotManage.txt:
;每3600秒全服公告
#Loop3600
#Act
SendMsg0整点到了,世界BOSS将在5分钟后刷新!
配合Envir\Robot_def\Robot.txt写具体执行段,M2勾选“启用机器人”
六、自定义界面按钮触发(GOM/GEE)
1.UI配置文件(GOM在Config\UIConfig,GEE在Data\UI)加按钮组件,记录按钮ID
2.QManage.txt登录时ADDBUTTON补丁号触发序号图1图2图3XY可移动标题备注
3.QFunction-0.txt写[@ButtonClick1]对应逻辑,点击按钮即调
示例:
[@Login]
#ACT
ADDBUTTON30148048148264560-1会员中心
[@ButtonClick1]
#ACT
#CALL[\自定义按钮\会员.txt]@会员办理
七、变量系统
•临时:MOVS0100、CALCS1S0+50(当前脚本周期有效)
•人物持久:VARHUMAN名+SETHUMAN名1+EXISTVARHUMAN名(重启不丢,需开持久化)
-全局:VARGLOBAL名、SETG1001(全服共享,做首杀标记、全服计数用)
八、调试与排错
•M2Server控制台看脚本报错行号,常见:命令拼错、标签重名、#IF与#ACT间空行、符号用中文标点、地图号不存在
-改完优先@reloadnpcall/重载QF/重载QM,别每次重启
•复杂逻辑先临摹版本自带NPC(如比奇老兵、仓库员),替换物品名/地图号/条件,再自写
九、客户端辅助脚本(按键精灵/AHK/大漠)边界
只模拟人工能做的:F1~F8放技能、喝药阈值、拾取、跑点、喊话;依赖屏幕血条颜色/OCR/窗口消息循环。凡读取游戏内存、改封包、加速、穿墙、全屏秒怪即属外挂,不在“脚本”范畴,各服协议通常禁止第三方自动化工具,使用前看该服用户协议
服务端脚本本质就是“标签+条件+动作”的文本指令集,先把Market_Def里老兵传送脚本抄熟,再扩到QF触发、Robot定时、按钮回调,整套版本逻辑就全捏在手里了。
一、前置准备
1.确认引擎:GOM、GEE/GEEM2、Hero(翎风)、BLUE(LegendM2)、V8等,命令集近似但不完全通用,先拿对应引擎命令手册
2.必备工具:Notepad++或VSCode(存UTF-8/GBK看服务端设定)、M2Server控制台、WIL/WZL资源编辑器、登录器生成器
3.备份MirServer\Mir200\Envir整个目录,改崩可回滚
4.核心脚本目录(Hero/GOM通用):
•Envir\Market_Def\→NPC对话脚本(每个NPC一个.txt,文件名对齐MerChant.txt登记名)
-Envir\Market_Def\QFunction-0.txt→全局事件(用物品、升级、杀人、死亡、穿脱装备触发)
•Envir\MapQuest_def\QManage.txt→登录/上线触发
-Envir\QuestDiary\→任务剧本与分支逻辑
•Envir\Robot_def\RobotManage.txt→定时机器人脚本(整点刷怪、全服公告)
-Envir\MonItems\→怪物爆率脚本
二、脚本基础语法(所有引擎通用骨架)
结构=[@标签]+#IF(条件)+#ACT(执行)+#SAY/#ELSESAY/#ELSEACT(反馈),标签以@开头,\换行,<文字/@标签>可做点击跳转按钮
最小可用模板:
[@main]
#ACT
SAY欢迎来到比奇福利官!\
1.领取30级礼包<领取/@get30>\
2.离开<close>
[@get30]
#IF
CheckLevel30
CheckVarHUMANGet30=0
#ACT
Give乌木剑1
Give金条1
SetHUMANGet301
SendMsg5恭喜领取30级礼包!
BREAK
#ELSEACT
SendMsg5等级不足30或已领取过!
CLOSE
规则:#IF下只写判断命令(CheckLevel/CheckItem/CheckGold/CheckJob),多条件为“同时满足”;#ACT下写动作(Give/Take/MapMove/Set/SendMsg);BREAK终止脚本;CLOSE关对话框;GOTO@标签跳转
三、NPC脚本实操(最常用)
1.在Envir\MerChant.txt登记NPC:
比奇福利官3320330福利官00000000(格式:名称地图坐标XY脚本名朝向色头衔…按引擎手册对齐)
2.在Market_Def\福利官.txt写上面的[@main]逻辑
3.M2控制台→在线重载@reloadnpcall或重启服务端→进游戏点NPC验证
四、全局触发脚本(QF/QM)
QFunction-0.txt里写引擎预留标签,不靠NPC点击,由事件自动调:
[@PlayLevelUp]
#IF
CheckLevel35
#ACT
SendMsg5恭喜35级,解锁内功经络任务!
[@StdModeFunc100]
;对应物品DB里AniCount=100,双击触发
#ACT
SendMsg5你使用了回城卷轴!
MapMove3320330
[@PlayDie]
#ACT
SendMsg7你已倒下,10秒后回城复活
注意:@PlayDie、@StdModeFunc、@TakeOn、@TakeOff、@MagTagFunc等是引擎内部触发字段,禁止用NPC对话<@PlayDie>强点,需用GOTO中转
QManage.txt登录触发:
[@Login]
#ACT
SendMsg0欢迎回来,当前时间已同步!
OpenAutoPickItem3030005000
OpenAutoPickItem类型时长范围秒捡捡丢弃捡爆出延迟ms→自动拾取开关
五、Robot定时脚本
Envir\Robot_def\RobotManage.txt:
;每3600秒全服公告
#Loop3600
#Act
SendMsg0整点到了,世界BOSS将在5分钟后刷新!
配合Envir\Robot_def\Robot.txt写具体执行段,M2勾选“启用机器人”
六、自定义界面按钮触发(GOM/GEE)
1.UI配置文件(GOM在Config\UIConfig,GEE在Data\UI)加按钮组件,记录按钮ID
2.QManage.txt登录时ADDBUTTON补丁号触发序号图1图2图3XY可移动标题备注
3.QFunction-0.txt写[@ButtonClick1]对应逻辑,点击按钮即调
示例:
[@Login]
#ACT
ADDBUTTON30148048148264560-1会员中心
[@ButtonClick1]
#ACT
#CALL[\自定义按钮\会员.txt]@会员办理
七、变量系统
•临时:MOVS0100、CALCS1S0+50(当前脚本周期有效)
•人物持久:VARHUMAN名+SETHUMAN名1+EXISTVARHUMAN名(重启不丢,需开持久化)
-全局:VARGLOBAL名、SETG1001(全服共享,做首杀标记、全服计数用)
八、调试与排错
•M2Server控制台看脚本报错行号,常见:命令拼错、标签重名、#IF与#ACT间空行、符号用中文标点、地图号不存在
-改完优先@reloadnpcall/重载QF/重载QM,别每次重启
•复杂逻辑先临摹版本自带NPC(如比奇老兵、仓库员),替换物品名/地图号/条件,再自写
九、客户端辅助脚本(按键精灵/AHK/大漠)边界
只模拟人工能做的:F1~F8放技能、喝药阈值、拾取、跑点、喊话;依赖屏幕血条颜色/OCR/窗口消息循环。凡读取游戏内存、改封包、加速、穿墙、全屏秒怪即属外挂,不在“脚本”范畴,各服协议通常禁止第三方自动化工具,使用前看该服用户协议
服务端脚本本质就是“标签+条件+动作”的文本指令集,先把Market_Def里老兵传送脚本抄熟,再扩到QF触发、Robot定时、按钮回调,整套版本逻辑就全捏在手里了。

