传奇服务端脚本命令详解与实战速查手册

来源: 作者: 点击:
一、 脚本基础结构:IF-ACT 逻辑骨架

服务端脚本(NPC对话、任务、触发)均基于“条件判断→执行动作”的流程。核心语法如下:
[@Main] ; 段落标签,NPC对话入口
#IF ; 条件判断开始
CHECKLEVEL 35 ; 检测等级是否≥35
CHECKITEM 金条 1 ; 检测是否拥有1个金条
#ACT ; 条件满足时执行
TAKE 金条 1 ; 扣除物品
GIVE 裁决之杖 1 ; 给予物品
SENDMSG 0 兑换成功! ; 发送公告
#ELSEACT ; 条件不满足时执行
SENDMSG 0 等级不足或缺少金条!

关键规则:
• #IF 下只能放置检测类命令(CHECK系列),#ACT 下只能放置执行类命令(GIVE/TAKE等)。

• 命令与参数之间必须用空格分隔,严禁使用中文标点。

二、 高频命令分类速查表

1. 人物属性与检测命令

命令 参数示例 功能说明

CHECKLEVEL CHECKLEVEL 50 检测等级是否≥50

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

CHECKGOLD CHECKGOLD 1000000 检测金币是否≥100万

CHECKITEM CHECKITEM 回城卷 1 检测背包物品数量

CHECKBAGGAGE CHECKBAGGAGE 检测背包是否已满
2. 物品与货币操作命令
命令 参数示例 功能说明

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

TAKE TAKE 屠龙 1 扣除物品

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

MAP MAP 0 传送到0号地图随机坐标

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

TIMERECALL TIMERECALL 60 设置地图倒计时(60分钟)
4. 怪物刷怪与管理
命令 参数示例 功能说明

MONGEN MONGEN 白野猪 1 10 刷怪(名称 数量 刷新时间)

MONCLEAR MONCLEAR 0 清空指定地图所有怪物
5. 消息提示与界面
命令 参数示例 功能说明

SENDMSG SENDMSG 6 私人提示 发送个人提示(类型6)

SENDMSG SENDMSG 0 全服公告 全服滚动公告(类型0)

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

三、 变量操作:脚本逻辑的灵魂

变量用于记录玩家状态(如是否领取奖励),是编写复杂功能的基础。

1. 变量类型与赋值

• 个人数字变量:P0-P9(临时,仅当前脚本有效)

• 个人字符变量:S0-S99(永久保存),如 SET S10 已领取

• 全局数字变量:G0-G999(全服通用),如 SET G100 1

• 变量运算:INC P0 1(P0增加1),DEC P1 1(P1减少1)

2. 变量检测与显示

• 检测变量:CHECKVAR S10 = 已领取 或 SMALL G100 10(检测G100是否小于10)

• 显示变量:在NPC对话中使用 <$STR(S10)> 显示变量值

四、 实战案例:编写“每日签到”脚本

在 Market_Def 目录下创建 SignIn.txt,写入以下逻辑:
[@Main]
欢迎使用每日签到系统!\ \
<签到/@Sign> <离开/@Exit>

[@Sign]
#IF
CHECK [100] 0 ; 检测标志变量[100]是否为0(未签到)
#ACT
SET [100] 1 ; 设置已签到标志
GIVE 金币 500000
GAMEGOLD + 50
SENDMSG 0 玩家【<$USERNAME>】完成了每日签到!
#ELSEACT
SENDMSG 0 你今天已经签到过了!

此脚本利用 [100] 逻辑变量实现了防重复签到功能。

五、 脚本存放路径与重载

• NPC脚本:Mir200\Envir\Market_Def\(每个NPC一个.txt文件)

• 全局触发:Mir200\Envir\QFunction-0.txt(攻击、死亡、拾取事件)

• 重载方法:修改后需在M2Server点击“控制”→“重新加载”→“重读NPC脚本”,无需重启服务端。

六、 常见报错与排查

1. NPC对话空白:检查文件编码(需ANSI),确认 [@Main] 标签存在。
2. 条件不生效:确认 #IF 下的检测命令拼写正确(如 CHECKLEVEL 非 CHECKLEV)。
3. 变量混乱:不同NPC间尽量使用不同的变量编号(如S10、S11),避免冲突。

总结:掌握 #IF-#ACT 结构是脚本编写的基础,结合变量操作可实现复杂的游戏逻辑。建议先从修改现成脚本的参数开始练习,逐步过渡到独立编写功能。