传奇脚本技术学习指南与命令速查手册

来源: 作者: 点击:
一、 脚本入门:从看懂结构开始

传奇脚本本质是文本指令集,核心逻辑是“如果满足条件,就执行动作”。

1. 基础语法骨架

所有NPC脚本都遵循 #IF(条件判断)与 #ACT(执行动作)的结构。
[@GetMoney] ; 标签名,NPC对话选项触发
#IF ; 如果
CHECKLEVEL 35 ; 条件:等级达到35级
CHECKGOLD 50000 ; 条件:拥有5万金币
#ACT ; 那么执行
TAKE 金币 50000 ; 动作:扣除金币
GIVE 屠龙 1 ; 动作:给予屠龙
SENDMSG 0 恭喜你领取了屠龙!
#ELSEACT ; 否则执行
SENDMSG 0 等级不足或金币不够!

关键规则:#IF 下只能写检测命令(如CHECK),#ACT 下只能写执行命令(如GIVE)。

2. 核心文件路径

学习前需熟悉服务端目录结构(以Mir200为例):
- NPC脚本:Mir200\Envir\Market_Def\(每个NPC对应一个.txt文件)
- 全局触发:Mir200\Envir\MapQuest_Def\QManage.txt(玩家登录触发)
- 功能触发:Mir200\Envir\QFunction-0.txt(攻击、死亡、拾取等事件)

二、 高频脚本命令分类速查

1. 物品与货币操作

命令 参数示例 功能说明

GIVE GIVE 金币 1000 给予物品/金币

TAKE TAKE 回城卷 1 扣除物品

CHECKITEM CHECKITEM 金条 1 检测背包是否有物品

CHECKGOLD CHECKGOLD 1000000 检测金币是否足够
2. 人物属性与检测
命令 参数示例 功能说明

CHECKLEVEL CHECKLEVEL 40 检测等级是否≥40

CHANGELEVEL CHANGELEVEL + 1 增加1级

CHECKJOB CHECKJOB Warrior 检测职业(Warrior/Wizard/Taoist)

GAMEGOLD GAMEGOLD + 100 增加元宝(GOM/GEE引擎)
3. 地图传送与刷怪
命令 参数示例 功能说明

MAP MAP 0 传送到土城(随机坐标)

MAPMOVE MAPMOVE 3 330 330 传送到指定地图坐标

MONGEN MONGEN 白野猪 1 10 在当前坐标刷1只白野猪,10秒后刷新

TIMERECALL TIMERECALL 60 设置地图倒计时60分钟
4. 消息提示与界面
命令 参数示例 功能说明

SENDMSG SENDMSG 6 私人提示 发送个人聊天框消息(类型6)

SENDMSG SENDMSG 0 全服公告 发送全服广播(类型0)

SENDCENTERMSG SENDCENTERMSG 0 居中大字 屏幕居中大字体公告

5. 变量操作(进阶)

变量是脚本逻辑的灵魂,用于记录状态。
- 个人字符变量:S10(S1-S99),如 SET S10 已领取
- 全局数字变量:G100(G1-G999),如 SET G100 1
- 临时变量:P0-P9(仅当前脚本有效)
- 显示变量:<$STR(S10)> 在NPC对话中显示变量值

三、 实战案例:编写一个“等级奖励”脚本

在 Market_Def 新建 LevelReward.txt,写入以下内容:
[@Main]
欢迎领取等级奖励!\ \
<领取35级奖励/@Get35> <领取50级奖励/@Get50>\ \
<离开/@Exit>

[@Get35]
#IF
CHECKLEVEL 35
CHECK [100] 0 ; 检测标志变量[100]是否为0(未领取)
#ACT
SET [100] 1 ; 设置标志为已领取
GIVE 圣战戒指 2
GAMEGOLD + 500
SENDMSG 0 玩家【<$USERNAME>】领取了35级奖励!
#ELSEACT
SENDMSG 0 你已经领取过该奖励或等级不足!

此脚本实现了等级检测、防重复领取、物品发放、全服公告全套流程。

四、 学习路径与排错指南

1. 第一步:抄写。找成熟版本(如单职业)的NPC脚本,逐行抄写并理解每个命令的作用。
2. 第二步:修改。尝试修改现成脚本的参数(如把奖励物品“屠龙”改成“开天”),重启服务端测试。
3. 第三步:查错。脚本报错时,优先检查中英文符号(必须全英文逗号)、空格(命令与参数间需有空格)、变量是否初始化。
4. 工具推荐:使用 MSE脚本编辑器 或 VS Code 编辑.txt文件,避免使用记事本(易乱码)。

总结:脚本学习的核心是“模仿→修改→创造”。先从修改奖励NPC开始,逐步过渡到编写自动回收、签到系统等复杂逻辑。