传奇服务端脚本命令大全:核心指令与实战用法详解

来源: 作者: 点击:
传奇服务端通过文本脚本控制角色行为、地图事件、物品交互及战斗逻辑。主流引擎(Hero、GOM等)使用 QFunction-0.txt、QManage.txt、UserCmd.txt 等文件,依赖一套固定命令语法实现功能。以下按类别列出常用脚本命令,附带参数说明与使用示例。

角色属性与状态命令

CheckLevel N
判断角色等级是否 ≥ N。
示例:#IF CheckLevel 25

CheckHumLevel N
判断目标玩家等级是否 ≥ N(用于PK或组队判断)。

CheckGold N
判断背包金币是否 ≥ N。
配合 DelGold N 扣除金币。

CheckMana N / CheckHP N
判断当前MP/HP是否 ≥ N。

ChangeMode N
切换攻击模式:0=和平,1=全体,2=行会,3=编组,4=师徒。

SetHumanName 新名字
修改角色名称(慎用,部分版本不支持)。

RecallHero
召唤英雄(需已开启英雄系统)。

物品操作命令

CheckItem 物品名 数量
判断背包是否存在指定数量的物品。
示例:#IF CheckItem 裁决之杖 1

GiveItem 物品名 数量
给予物品到背包。若背包满,物品掉落地面。
支持特殊属性:GiveItem 裁决之杖 1 50 0 0 0 0(依次为持久、攻击下限、上限、魔法、道术、防御)

DelItem 物品名 数量
从背包扣除物品,不足则不执行。

MakeItem 物品名 X Y
在指定坐标生成物品(用于地图宝箱或任务奖励)。
示例:MakeItem 金创药 10 20

CheckBagSize N
判断背包空位是否 ≥ N。

地图与传送命令

InMap 地图编号或名称
判断当前是否在指定地图。
示例:#IF InMap 3000

ChangeMap 地图名 X Y
将角色传送到目标地图坐标。
示例:ChangeMap D5000 100 100

MapMove 地图名 X Y
同 ChangeMap,部分引擎别名。

CheckMapMob 地图名 怪物名 数量
判断某地图是否存在指定数量怪物(用于副本清怪检测)。

消息与交互命令

SendMsg 颜色代码 "内容"
向玩家发送消息。颜色代码:0=白,1=红,2=绿,3=蓝,4=黄,5=紫。
示例:SendMsg 2 "任务完成!"

SendHintMsg "内容"
在屏幕中央显示提示(类似系统公告)。

SendAsk "问题文本 "
弹出对话框供玩家选择。
示例:SendAsk "选择职业? "

Close
关闭NPC对话窗口。

变量与流程控制命令

Set [变量名] 值
设置自定义变量。推荐命名格式:HUMAN(任务1)=1。
示例:Set [HUMAN(已接任务)] 1

Check [变量名]
判断变量是否存在且非零。
示例:#IF !Check [HUMAN(已交任务)]

Goto @标签名
跳转至同一文件内指定标签。
示例:Goto @Reward

DelayGoto @标签名 毫秒
延迟指定毫秒后跳转。常用于定时任务或冷却。

Random N
N% 概率返回真。
示例:#IF Random 30 表示30%几率触发。

怪物与战斗命令

RecallMob 怪物名 数量 持续时间
召唤怪物,持续时间单位为毫秒。
示例:RecallMob 狂暴野猪 5 60000

KillMonExp N
给予相当于击杀N级怪物的经验。

GiveExp N
直接增加经验。

StrikeMonExp
清除当前地图所有怪物并给予经验(用于副本结算)。

系统与管理命令

IsAdmin
判断是否为管理员账号。

UserCmd 命令名
绑定自定义命令,如 @giveitem,需在 UserCmd.txt 中定义。

ReloadGuildFile
重新加载行会数据(用于脚本修改后同步)。

ClearRobot
清除所有机器人(适用于测试环境)。

实战组合示例:装备鉴定脚本

[@Main]
ACT
SendAsk "放入装备后点击鉴定 "

[@DoIdentify]
IF
CheckItem 未知的武器 1
CheckGold 10000
ACT
DelItem 未知的武器 1
DelGold 10000
GiveItem 修罗战斧 1 50 30 40 0 0 0
SendMsg 2 "鉴定成功!获得修罗战斧。"
ELSEACT
SendMsg 1 "缺少未知武器或金币不足。"

该脚本要求玩家拥有“未知的武器”和1万金币,满足则扣除并给予鉴定结果。

注意事项

所有命令区分大小写,建议统一小写;
物品名必须与 StdItems.db 或 ItemName.txt 中完全一致;
脚本文件编码应为 ANSI 或 UTF-8 无BOM,避免乱码;
修改后需重启 M2Server 主程序生效;
高频事件(如 [@Move])中避免复杂命令,防止卡顿。

掌握上述命令及其组合方式,可构建任务、商城、副本、活动等完整游戏系统。脚本逻辑本质是条件驱动的动作序列,重点在于准确匹配事件与合理调用指令。