传奇“脚本”分两条完全独立的线:一条是 服务端脚本(GOM/GEE/Hero/BLUE引擎的NPC、任务、触发、爆率、机器人逻辑,纯文本指令集,改完重载生效);一条是 客户端辅助脚本(按键精灵、AHK、大漠插件模拟键盘鼠标打怪喝药拾取,靠图色或窗口消息驱动)。架设版本、改玩法走第一条;个人挂机自动化走第二条,后者受各服用户协议限制,涉及内存读写、封包篡改、加速穿墙即越界成外挂 。下面只拆服务端脚本制作完整链路。
一、前置准备
1. 确认引擎:GOM、GEE/GEEM2、Hero(翎风)、BLUE(LegendM2)、V8 等,命令集近似但不完全通用,先拿对应引擎命令手册
2. 必备工具:Notepad++ 或 VS Code(存 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
CheckLevel 30
CheckVar HUMAN Get30 = 0
#ACT
Give 乌木剑 1
Give 金条 1
Set HUMAN Get30 1
SendMsg 5 恭喜领取30级礼包!
BREAK
#ELSEACT
SendMsg 5 等级不足30或已领取过!
CLOSE
规则:#IF 下只写判断命令(CheckLevel / CheckItem / CheckGold / CheckJob),多条件为“同时满足”;#ACT 下写动作(Give / Take / MapMove / Set / SendMsg);BREAK 终止脚本;CLOSE 关对话框;GOTO @标签 跳转
三、NPC 脚本实操(最常用)
1. 在 Envir\MerChant.txt 登记 NPC:
比奇福利官 3 320 330 福利官 0 0 0 0 0 0 0 0 (格式:名称 地图 坐标 X Y 脚本名 朝向 色 头衔…按引擎手册对齐)
2. 在 Market_Def\福利官.txt 写上面的 [@main] 逻辑
3. M2 控制台 → 在线重载 @reloadnpcall 或重启服务端 → 进游戏点 NPC 验证
四、全局触发脚本(QF / QM)
QFunction-0.txt 里写引擎预留标签,不靠 NPC 点击,由事件自动调:
[@PlayLevelUp]
#IF
CheckLevel 35
#ACT
SendMsg 5 恭喜35级,解锁内功经络任务!
[@StdModeFunc100]
; 对应物品 DB 里 AniCount=100,双击触发
#ACT
SendMsg 5 你使用了回城卷轴!
MapMove 3 320 330
[@PlayDie]
#ACT
SendMsg 7 你已倒下,10秒后回城复活
注意:@PlayDie、@StdModeFunc、@TakeOn、@TakeOff、@MagTagFunc 等是引擎内部触发字段,禁止用 NPC 对话 <@PlayDie> 强点,需用 GOTO 中转
QManage.txt 登录触发:
[@Login]
#ACT
SendMsg 0 欢迎回来,当前时间已同步!
OpenAutoPickItem 3 0 3 0 0 0 5000
OpenAutoPickItem 类型 时长 范围 秒捡 捡丢弃 捡爆出 延迟ms → 自动拾取开关
五、Robot 定时脚本
Envir\Robot_def\RobotManage.txt:
; 每3600秒全服公告
#Loop 3600
#Act
SendMsg 0 整点到了,世界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 图3 X Y 可移动 标题 备注
3. QFunction-0.txt 写 [@ButtonClick1] 对应逻辑,点击按钮即调
示例:
[@Login]
#ACT
ADDBUTTON 30 1 480 481 482 645 6 0 -1 会员中心
[@ButtonClick1]
#ACT
#CALL [\自定义按钮\会员.txt] @会员办理
七、变量系统
• 临时:MOV S0 100、CALC S1 S0 + 50(当前脚本周期有效)
• 人物持久:VAR HUMAN 名 + SET HUMAN 名 1 + EXISTVAR HUMAN 名(重启不丢,需开持久化)
- 全局:VAR GLOBAL 名、SET G100 1(全服共享,做首杀标记、全服计数用)
八、调试与排错
• M2Server 控制台看脚本报错行号,常见:命令拼错、标签重名、#IF 与 #ACT 间空行、符号用中文标点、地图号不存在
- 改完优先 @reloadnpcall / 重载 QF / 重载 QM,别每次重启
• 复杂逻辑先临摹版本自带 NPC(如比奇老兵、仓库员),替换物品名/地图号/条件,再自写
九、客户端辅助脚本(按键精灵/AHK/大漠)边界
只模拟人工能做的:F1~F8 放技能、喝药阈值、拾取、跑点、喊话;依赖屏幕血条颜色/OCR/窗口消息循环。凡读取游戏内存、改封包、加速、穿墙、全屏秒怪即属外挂,不在“脚本”范畴,各服协议通常禁止第三方自动化工具,使用前看该服用户协议
服务端脚本本质就是“标签+条件+动作”的文本指令集,先把 Market_Def 里老兵传送脚本抄熟,再扩到 QF 触发、Robot 定时、按钮回调,整套版本逻辑就全捏在手里了。
传奇服务端脚本制作全流程:GOM_GEE_Hero引擎NPC触发语法与编写实操
来源:
作者:
点击:

