传奇脚本制作入门指南:从工具选择到功能编写全流程

来源: 作者: 点击:
传奇脚本指控制游戏内怪物刷新、物品掉落、NPC对话、任务触发等逻辑的文本指令集,不同引擎(GOM、GEE、LEG、HERO等)语法有差异,本文以最通用的GOM引擎为例展开讲解。

一、必备工具与环境搭建

1. 服务端源码文件夹
你需要一个完整的传奇服务端,里面包含Mir200\Envir目录,所有脚本文件都存放在此路径下。没有现成服务端的去各大传奇技术论坛下载"GOM引擎基础服务端"作为学习底板。

2. 文本编辑器
推荐Notepad++或Sublime Text,不要用Windows自带记事本,容易因编码格式导致脚本乱码报错。将编辑器默认编码设为ANSI(GOM引擎强制要求)。

3. 引擎测试器
下载对应引擎的控制器程序(如GameCenter.exe),每次修改脚本后点击"重新加载"即可在游戏中看到效果,无需重启服务器。

二、核心脚本文件结构

Envir目录下关键文件及作用:

• QManage.txt(登陆脚本):角色上线瞬间执行的命令集合,用于绑定称号、检测等级送装备等。

• QFunction-0.txt(功能脚本):通过物品触发、计时器触发、杀怪触发等事件调用具体功能段。

• Market_Def\ 文件夹:存放所有NPC脚本,每个NPC对应一个.txt文件,文件名必须与NPC名称一致。

• MapQuest_def\ 文件夹:地图事件脚本,比如进入某张地图自动扣元宝、定时刷怪等。

• MonGen.txt(刷怪配置文件):决定每张地图刷哪些怪物、坐标范围、刷新间隔、数量上限。

• MerChant.txt(商人配置文件):定义商店NPC出售的物品列表及价格。

三、编写第一个NPC脚本

步骤1:在Market_Def文件夹新建一个名为"测试使者.txt"的文件。

步骤2:写入以下基础框架:

[@main]
#IF
#ACT
#SAY
欢迎来到我的测试脚本,请选择功能:\
<领取新手装备/@新手装备>\
<查看怪物坐标/@怪物坐标>\


解释:[@main]是NPC对话默认入口,#IF下方留空表示无条件执行,#ACT下方可写执行动作(此处为空),#SAY后面跟显示给玩家的文本内容,\<按钮文字/@跳转标签\>实现点击跳转。

步骤3:在同一个文件里追加功能段:

[@新手装备]
#IF
CHECKLEVELEX > 0
#ACT
GIVE 木剑 1
GIVE 布衣 1
MESSAGEBOX 已发放新手套装
break


CHECKLEVELEX > 0 意思是检测玩家等级大于0,满足条件则执行GIVE命令给予物品,最后用break结束当前段防止继续向下执行。

步骤4:保存文件,在游戏里找到该NPC(需先在MerChant.txt或NPC配置表里注册坐标),点击对话即可看到效果。

四、常用脚本命令速查

• GIVE 物品名 数量:给玩家指定道具

• TAKE 物品名 数量:扣除玩家道具

• CHANGELEVEL +/- N:调整等级

• MAPMOVE 地图编号 X Y:传送玩家到指定坐标

• SENDMSG 消息类型 文字内容:屏幕中央或聊天框发提示

• MONSTERGEN 地图编号 怪物名 数量 坐标范围:即时刷怪

• RANDOM 数字:产生1到该数字之间的随机数,配合条件判断做抽奖

• ADDGAMEGOLD +/- N:增加或减少元宝

• ADDBONUSPOINT + N:增加属性点

五、刷怪脚本实战

打开MonGen.txt,每行格式如下:

地图编号 怪物名 刷新间隔(秒) 坐标X 坐标Y 范围半径 最大数量 归属模式

举例:
3 白野猪 60 150 330 5 10 0

意思是在比奇省(地图3)的(150,330)为中心半径5格范围内,每60秒刷最多10只白野猪,归属模式0表示谁打归谁。

如果想做成定点定时刷BOSS,在MapQuest_def里写地图事件脚本:

[@进入地图]
#IF
ISONMAP 3
#ACT
PARAM1 3
PARAM2 120
PARAM3 300
MONSTERGEN 祖玛教主 1 200 300


这段脚本让玩家进入地图3时触发,在(200,300)处立即刷一只祖玛教主。

六、变量与逻辑控制

传奇脚本用P0-P99(个人临时变量)、D0-D99(全局动态变量)、A0-A99(字符串变量)存储数据。

示例——写一个每日签到脚本:

[@每日签到]
#IF
EQUAL A0 已签到
#ACT
MESSAGEBOX 你今天已经签到了
break
#IF
#ACT
MOV A0 已签到
GIVE 金币袋 1
ADDBONUSPOINT + 1
SENDMSG 0 玩家<%s>完成了每日签到!
break


用A0变量记录签到状态,当天第一次点击执行发奖并赋值"已签到",再次点击被第一个条件拦截。

七、调试技巧

1. 脚本报错看M2Server程序窗口的红字提示,会精确指出哪个文件第几行出错。
2. 无法触发的功能段检查跳转标签名称是否完全一致(包括大小写)。
3. 物品名、地图名、怪物名必须与数据库(Database里的StdItems.DB、Monster.DB)完全匹配,多一个空格都不行。
4. 修改完脚本一定要点M2Server上的"重新加载"按钮,否则游戏里还是旧脚本。

八、进阶方向

掌握上述基础后可以研究:自定义技能触发脚本(写在QFunction-0.txt的[@MagSelfFunc]段)、摆摊交易脚本、行会战积分系统、跨服副本传送阵逻辑。每个引擎都有自己独家的扩展命令,去对应引擎官网下载说明书对照查阅即可。