电脑传奇脚本编程 从零开始掌握基础变量命令与格式

来源: 作者: 点击:
一、脚本文件存储位置与创建

传奇脚本文件位于服务端 MirServer\Mir200\Envir 目录下,具体分为三类:
• NPC对话脚本:放在 MirServer\Mir200\Envir\Market_Def 目录下,每个NPC对应一个 .txt 文件,文件名为你在 Merchant.txt 中配置的脚本名。

• 地图触发脚本:地图入口、踩点触发等事件写在 MirServer\Mir200\Envir\MapQuest.txt 中。

• 机器人脚本:定时执行的功能(如发全服公告)写在 MirServer\Mir200\Envir\Robot.txt 中。

二、脚本基本结构与命令语法

一个NPC脚本必须包含 [@主标签] 和对话文字。命令通常以 #if、#act、#say 开头,参数用空格分隔。

[@Main] // 主入口标签
#SAY // 表示后面是对话文本
你好,我是NPC。\\ // “\\”是换行符
<点击领取/@领取> 元宝\\ // “<” 和 “>” 中间是超链接,@后面是跳转的标签名

[@领取] // 上一个超链接指向的标签
#if // 条件判断开始
CHECKGOLD 1000000 // 检查人物金币是否大于等于100万
#ACT // 条件满足,执行以下动作
GAMEGOLD + 100 // 增加100元宝
TAKE 金币 1000000 // 扣除100万金币
#SAY // 条件满足后的对话
领取成功!\\

#ELSEACT // 条件不满足,执行以下动作
#SAY // 条件不满足后的对话
金币不足,无法领取。\\


三、核心命令分类与使用示例

• 变量操作:脚本逻辑基于变量。MOV 命令用于赋值,INC 用于增加,DEC 用于减少,SMALL、LARGE 用于比较。

[@计算]
#ACT
MOV P1 10 // 将变量P1赋值为10
INC P1 5 // 将变量P1的值增加5,变为15
SMALL P1 20 // 判断P1是否小于20,是则执行下一步
#SAY
变量P1的值是 <$STR(P1)>。 // 显示变量值


• 人物属性检测与修改:检查等级、金币、元宝、性别,并给予物品、经验、权限。

[@检测]
#if
CHECKLEVELEX > 50 // 检查等级大于50
CHECKGAMEGOLD > 1000 // 检查元宝大于1000
#ACT
GAMEGOLD - 1000 // 扣除1000元宝
GIVE 屠龙 1 // 给予一把屠龙
KILLMONEXPRATE 150 60 // 增加1.5倍经验,持续60分钟
#SAY
奖励已发放。\\


• 地图传送与计时:将玩家移动到指定坐标,并设置延迟或定时任务。

[@传送]
#ACT
MAPMOVE 3 330 330 // 将玩家传送到土城(地图3)的坐标330,330
MAP 0150 // 将玩家地图编号改为150
TimeRecall 30 // 设置30秒后自动召回
#SAY
你已被传送,30秒后返回。\\


• 界面调用:打开仓库、装备升级、行会创建等游戏内置窗口。

[@功能]
#ACT
OpenStorage // 打开仓库
OpenUpgradeDialog // 打开装备升级对话框
OpenWebSite http://xxx.com // 打开外部网站
#SAY
功能已打开。\\


四、条件分支与循环逻辑

复杂的脚本需要 #if、#act、#elseact、#elsesay 进行分支判断,用 GOTO 实现循环或跳转。

[@判断性别]
#if
CHECKJOB Warrior // 检查职业是否为战士
#ACT
MOV P2 战士
#ELSEACT
MOV P2 其他职业
#SAY
你的职业是:<$STR(P2)>。\\

[@循环]
#ACT
MOV P3 1 // 初始化计数器P3=1
[@循环开始] // 跳转标签
#if
LARGE P3 5 // 判断P3是否大于5
#ACT
BREAK // 大于5则跳出循环
#SAY
循环结束。\\
#ELSEACT
#SAY
当前计数:<$STR(P3)>\\ // 显示当前计数
INC P3 1 // 计数加1
DELAYGOTO 1000 @循环开始 // 延迟1000毫秒后跳转到“@循环开始”标签


五、配置文件关联与生效

写完的脚本需要在 MirServer\Mir200\Envir\Merchant.txt 中注册NPC才能生效。

NPC名 地图名 X坐标 Y坐标 NPC外观代码(0-65535) 是否移动(0/1) 是否可攻击(0/1) 脚本文件(无需后缀)
盟重老兵 3 330 330 5 0 0 盟重老兵

修改脚本后无需重启服务端,在M2Server的“管理”菜单点击“重新加载 → 重读QF/QM脚本”或“重读商人脚本”即可生效。