传奇脚本教程入门 基础语法与常用命令详解

来源: 作者: 点击:
编写传奇脚本不需要具备编程基础,它本质上是一种结构化的配置文件,通过固定的命令格式和参数来定义游戏内各种功能。掌握这套规则后,你就可以自己修改NPC对话、添加新地图传送,甚至设计一套完整的活动玩法。

**一、脚本文件的存放位置**

所有脚本文件都放在服务端的Mir200\Envir目录下,不同类型的脚本存放位置不同。NPC脚本存放在Market_Def文件夹中,文件名格式为“NPC名字-地图代码.txt”,例如“盟重传送员-3.txt”表示盟重省地图上的传送员NPC。登录脚本QManage.txt和功能脚本QFunction-0.txt直接放在Envir根目录下,这两个文件控制角色登录触发和各类事件响应。地图配置文件MapInfo.txt、怪物爆率文件MonItems文件夹也都在Envir目录下,修改前最好先备份原文件。

**二、脚本的基本结构**

一段完整的脚本由头部和功能段两部分组成。头部用方括号括起来,表示一个功能段的入口标签。最常见的头部是[@main],这是NPC默认执行的主段。下面看一个最简单的NPC对话脚本:

```
[@main]
你好,欢迎来到迷失大陆。\
我可以帮你进行转生操作。\
<开始转生/@zhuan>
<查看条件/@tiaojian>

[@zhuan]
#IF
CHECKLEVELEX > 199
#ACT
RENEWLEVEL 1
SENDMSG 6 恭喜你完成转生!
#ELSESAY
你的等级不足200级,无法转生。\
```

方括号里的[@main]、[@zhuan]是段标签,井号开头的#IF、#ACT、#ELSESAY是执行流程控制命令,尖括号括起来的内容是玩家可点击的按钮。

**三、核心命令分类**

脚本命令按功能可以分为几类:

判断命令(#IF段使用):
- CHECKLEVELEX 数值:检测等级是否大于等于指定值
- CHECKGAMEGOLD 数值:检测元宝数量
- CHECKITEM 物品名 数量:检测背包中是否有指定物品
- CHECKBAGSIZE 数量:检测背包空格数

执行命令(#ACT段使用):
- GIVE 物品名 数量:给予物品
- TAKE 物品名 数量:回收物品
- GAMEGOLD + 数值:增加元宝
- MAP 地图代码:传送玩家到指定地图
- SENDMSG 颜色编号 文字内容:发送系统广播
- RENEWLEVEL 次数:执行转生

流程控制命令:
- BREAK:结束当前执行,不再向下继续
- CLOSE:关闭NPC对话窗口
- GOTO @标签:跳转到指定段继续执行

**四、变量系统的使用**

变量是脚本中用来存储和传递数据的工具,分为不同作用范围:
- G变量(全局数字变量):0-999,所有玩家共享,适合记录全区活动状态
- M变量(个人数字变量):0-999,每个玩家独立,适合记录个人任务进度
- S变量(个人字符变量):0-999,存储文字内容,适合保存玩家名字或输入信息

变量的赋值和比较方式:
```
#IF
CHECK [100] 0 检测个人标记100是否为0(未完成)
#ACT
SET [100] 1 将个人标记100设为1(已完成)
INC G10 1 将全局变量G10增加1
MOV M5 100 将个人变量M5设为100
```

**五、条件判断的写法**

#IF段可以同时放置多个条件,每个条件单独占一行,多个条件之间是“与”的关系,所有条件必须同时满足才会执行#ACT段:
```
#IF
CHECKLEVELEX > 100
CHECKGAMEGOLD > 10000
CHECKITEM 转生石 5
#ACT
TAKE 转生石 5
GAMEGOLD - 10000
RENEWLEVEL 1
SENDMSG 6 转生成功!
#ELSESAY
条件不满足,请检查等级、元宝和材料。\
```

**六、NPC对话中的排版技巧**

对话框里的文字排版直接影响玩家阅读体验。换行用“\”表示,每个“\”后面的内容会另起一行。按钮文本用尖括号包起来,竖线隔开显示文本和跳转标签,中间不留空格:
```
<前往挑战/@go_dz> 按钮显示“前往挑战”,点击跳转到@go_dz段
<关闭/@exit> 点击后关闭对话框
```
颜色代码可以给文字着色,格式为{文字内容=颜色代码},颜色代码用0-255的数字表示,常见的有红色249、绿色250、蓝色251、黄色252。

**七、完整的脚本编写流程**

第一步:在Market_Def目录下新建一个文本文件,命名格式为“NPC名字-地图代码.txt”。
第二步:在MerChant.txt文件中注册这个NPC,格式为“NPC名字 地图代码 X坐标 Y坐标 NPC外观代码 操作标记”。
第三步:打开新建的脚本文件,从[@main]开始编写对话内容和功能逻辑。
第四步:保存文件,在M2Server上点击“控制→重新加载→重新加载NPC脚本”,即可在游戏中测试新NPC的功能。

**八、常见错误与规避**

脚本报错绝大多数来源于三种情况:命令拼写错误、括号引号使用了全角符号、跳转标签不存在。养成一个习惯:每次写完一段脚本,先用M2的加载功能测试,不要一次性写几百行后再调试。变量值溢出的问题也要留个心眼,G变量和M变量的范围是0-999,超出会报错或产生异常数据。