传奇脚本制作命令大全 GOM/HERO引擎核心命令与实操案例

来源: 作者: 点击:
一、传奇脚本制作命令的核心价值:驱动玩法落地的“语言”

传奇脚本的本质是通过特定命令组合,让游戏角色、NPC、怪物实现预设行为。无论是自动挂机、NPC对话,还是装备鉴定、任务触发,都依赖精准的命令调用。掌握脚本命令,能打破现成脚本的局限,根据服务器玩法需求定制专属功能,比如调整捡取优先级、设定怪物掉落规则等。

不同传奇引擎的命令语法存在差异,其中GOM与HERO引擎应用最广。本文聚焦这两大引擎的高频命令,按“角色控制”“物品操作”“任务管理”“场景交互”四大核心场景分类,每个命令均附语法、说明及实操案例,直接适配实际开发需求。

二、基础认知:脚本命令的通用规则

无论哪种引擎,传奇脚本命令都遵循统一基础规则,避免新手因格式错误导致脚本失效:

- 命令区分大小写:GOM引擎中“CHECKITEM”不可写为“checkitem”,HERO引擎部分命令支持小写,但建议统一大写确保兼容;

- 参数间隔清晰:命令与参数、参数与参数之间用空格分隔,如“PICKUP 金币 1000”,不可遗漏空格;

- 条件与执行分离:用“#IF”引导条件判断,“#ACT”引导执行动作,“#ELSE”“#ELSEIF”处理分支逻辑,结构不可颠倒;

- 变量格式固定:角色变量以“$HUMAN(变量名)”表示,全局变量以“$GLOBAL(变量名)”表示,如“<$HUMAN(Level)>”获取当前角色等级。

掌握这些规则后,即使遇到陌生命令,也能通过语法结构快速理解用法。

三、GOM引擎核心命令:高频场景实操合集

GOM引擎命令丰富且灵活,是定制复杂玩法的首选。以下按开发中最常用的四大场景分类,每个命令均搭配脚本片段,可直接复制使用。

1. 角色状态控制命令:核心是“感知与响应”

这类命令用于获取或修改角色属性,如等级、血量、战力等,是实现“自动吃药”“等级跳转地图”等功能的基础。

命令

语法

说明

实操案例

CHECKVAR

CHECKVAR 变量类型 变量名 条件 数值

判断变量是否满足条件,变量类型常用HUMAN(角色)、GLOBAL(全局)

// 检测角色等级是否≥30级#IFCHECKVAR HUMAN Level >=30#ACTMAPMOVE 祖玛寺庙 200 220

VAR

VAR 变量类型 变量名 =/+=/-= 数值

定义或修改变量值,=为赋值,+=为累加,-=为递减

// 初始化鉴定次数变量并累加#ACTVAR HUMAN IdentifyCount = 0VAR HUMAN IdentifyCount +=1

CHECKHUMANATTR

CHECKHUMANATTR 属性名 条件 数值

检测角色基础属性,如攻击、防御、血量等

// 检测角色血量是否<30%#IFCHECKHUMANATTR HP < 30#ACTUSE 疗伤药 1

MAPMOVE

MAPMOVE 地图名 坐标X 坐标Y

将角色传送至指定地图的指定坐标

// 传送角色至比奇城安全区#ACTMAPMOVE 比奇城 180 200

2. 物品操作命令:脚本开发的“高频刚需”

从捡取装备到检测道具数量,物品操作命令贯穿挂机、任务、交易等所有玩法,是脚本与游戏经济交互的核心。

命令

语法

说明

实操案例

CHECKITEM

CHECKITEM 物品名称 条件 数量

检测背包中指定物品的数量,支持模糊匹配(用*代替部分名称)

// 检测背包鉴定符是否≥1个,适配捡取鉴定脚本#IFCHECKITEM 鉴定符 >=1#ACTUSEITEM 鉴定符 1

PICKUP

PICKUP 物品名称 数量

让角色捡取地面指定物品,数量为0时捡取所有同类物品

// 捡取地面1件未鉴定武器#ACTPICKUP 未鉴定的 * 1

TAKE

TAKE 物品名称 数量

从角色背包中移除指定数量的物品,用于丢弃或消耗

// 丢弃背包中1件垃圾装备#ACTTAKE 布衣 1

STORE

STORE 物品类型/名称 数量

将背包物品存入仓库,支持按类型存入(如“武器”)

// 将1件极品武器存入仓库#ACTSTORE 武器 * 1

3. 任务与对话命令:驱动NPC交互的核心

NPC是传奇玩法的核心载体,任务接取、对话引导、功能触发均依赖这类命令,实现“玩家操作→NPC响应”的闭环。

命令

语法

说明

实操案例

CHECKQUEST

CHECKQUEST 状态 任务名称

检测任务状态,状态包括FINISH(已完成)、ACCEPT(已接取)、NOTACCEPT(未接取)

// 检测新手任务是否完成#IFCHECKQUEST FINISH 新手任务-击杀稻草人#ACTGOTO @SendReward

#SAY

#SAY 对话内容<功能触发/@子脚本>

定义NPC对话内容,可添加点击触发的子脚本链接

// 洗红NPC对话示例#SAY欢迎使用洗红服务!\ \<元宝洗红/@YuanBaoWash><金币洗红/@GoldWash>

ACCEPTQUEST

ACCEPTQUEST 任务名称 任务描述 目标

让玩家接取指定任务,需提前在任务系统配置任务信息

// 让玩家接取挖矿任务#ACTACCEPTQUEST 矿洞挖矿 采集10块铁矿石 挖矿10次

4. 场景与怪物命令:构建动态游戏环境

这类命令用于控制怪物刷新、检测场景状态,是制作“挂机地图”“BOSS挑战”等玩法的基础,让脚本适配动态场景。

命令

语法

说明

实操案例

CHECKMONSTERCOUNT

CHECKMONSTERCOUNT 范围 怪物名称

检测角色周围指定范围内的怪物数量,范围默认单位为格

// 检测5格内是否有怪物,无怪则移动#IFCHECKMONSTERCOUNT 5 ==0#ACTWALK 随机

SPAWNMONSTER

SPAWNMONSTER 怪物名称 数量 坐标X 坐标Y

在指定坐标刷新怪物,用于BOSS定时刷新或任务怪物生成

// 在祖玛寺庙刷新1只祖玛教主#ACTSPAWNMONSTER 祖玛教主 1 200 220

CHECKMAP

CHECKMAP 地图名称

检测角色当前所在地图,用于限制功能使用场景

// 仅允许在安全区使用仓库功能#IFCHECKMAP 比奇城#ACTGOTO @OpenWarehouse

四、HERO引擎核心命令:与GOM引擎的关键差异

HERO引擎命令语法更简洁,适合快速开发基础玩法。多数命令与GOM功能一致,但语法存在差异,核心差异命令如下,避免开发者混淆使用。

// 1. 变量命令差异:GOM用VAR,HERO用SET/ADD
// GOM引擎
#ACT
VAR HUMAN Level = 30
VAR HUMAN Level +=5

// HERO引擎(功能相同,语法不同)
#ACT
SET HUMAN Level 30
ADD HUMAN Level 5

// 2. 物品检测命令差异:HERO支持更简洁的数量判断
// GOM引擎
#IF
CHECKITEM 金币 > 10000

// HERO引擎(直接写数量,默认判断“大于等于”)
#IF
HAVEITEM 金币 10000

// 3. 角色传送命令差异:HERO用MAP命令
// GOM引擎
#ACT
MAPMOVE 蜈蚣洞 150 180

// HERO引擎
#ACT
MAP 蜈蚣洞 150 180

// 4. 任务检测命令差异:HERO用QUEST命令
// GOM引擎
#IF
CHECKQUEST FINISH 新手任务

// HERO引擎
#IF
QUEST 新手任务 完成


核心原则:开发前先确认服务器使用的引擎版本,用对应语法编写。若需适配多引擎,可在脚本开头添加引擎检测逻辑。

五、脚本命令实操技巧:避坑与效率提升

1. 快速排查命令错误的3个方法

脚本运行失效多因命令错误,按以下步骤可快速定位问题:

- 检查命令拼写:用引擎自带的脚本编辑器(如GOM引擎的“脚本助手”),输入命令时会自动联想,避免拼写错误;

- 测试单一命令:将怀疑出错的命令单独编写成简单脚本,如仅用“CHECKITEM 鉴定符 1”测试物品检测,排除其他命令干扰;

- 查看日志文件:引擎会在“Log”文件夹生成脚本错误日志,如“命令不存在”“参数错误”等提示,直接指向问题根源。

2. 命令组合提升脚本效率

单一命令功能有限,合理组合能实现复杂逻辑,以下为高频组合案例:

// 组合1:自动吃药+移动避怪(挂机脚本核心)
#IF
// 条件:血量<20%且周围有高战力怪物
CHECKHUMANATTR HP <20
CHECKMONSTERATTR 攻击 >100
#ACT
// 执行:吃药+随机移动
USE 疗伤药 1
RUNAWAY 随机 5
SENDMSG 6 遭遇高战力怪物,已自动避险!

// 组合2:物品捡取+分类(捡取鉴定脚本核心)
#IF
// 条件:地面有未鉴定装备且背包空格≥1
CHECKGROUNDITEM 未鉴定的 *
CHECKBACKPACKSPACE >=1
#ACT
// 执行:捡取+鉴定
PICKUP 未鉴定的 * 1
USEITEM 鉴定符 1
GOTO @CheckQuality


3. 避免服务器卡顿的命令使用原则

高频调用命令会增加服务器压力,需注意:

- 减少循环命令频率:物品检测、怪物检测等循环脚本,间隔设置为3-5秒,避免2秒内反复调用;

- 避免大范围检测:“CHECKMONSTERCOUNT”命令的检测范围控制在5-10格内,范围过大易导致响应延迟;

- 批量处理物品:用“STORE 武器 * 5”批量存入5件武器,替代5次单独存入命令。

六、常用命令速查表(按场景整理)

为方便开发时快速查询,整理以下高频场景的核心命令组合,直接复制即可套用:

1. 挂机脚本核心命令组合

// 初始化变量
[@Login]
#ACT
VAR HUMAN AutoHang = 1
GOTO @HangLoop

// 挂机循环
[@HangLoop]
#IF
CHECKVAR HUMAN AutoHang =1
#ACT
// 检测血量→吃药
#IF
CHECKHUMANATTR HP <30
#ACT
USE 疗伤药 1
// 检测怪物→攻击
#IF
CHECKMONSTERCOUNT 5 >0
#ACT
ATTACKMONSTER 1
// 无怪→移动
#ELSE
#ACT
WALK 随机
DELAY 3000
GOTO @HangLoop


2. NPC对话与功能触发组合

// 洗红NPC核心脚本
[@Main]
#SAY
欢迎来到洗红使者处!\ \
您当前PK值:<$HUMAN(PKPoint)>\ \
<元宝洗红(扣1000元宝)/@YuanBao><金币洗红(扣100万)/@Gold>

[@YuanBao]
#IF
CHECKITEM 元宝 >=1000
#ACT
TAKE 元宝 1000
CHANGEPKPOINT -1000
SENDMSG 6 洗红成功!当前PK值:<$HUMAN(PKPoint)>

[@Gold]
#IF
CHECKITEM 金币 >=1000000
#ACT
TAKE 金币 1000000
CHANGEPKPOINT -500
SENDMSG 6 洗红成功!当前PK值:<$HUMAN(PKPoint)>


七、总结:命令学习的核心逻辑

传奇脚本命令学习无需死记硬背,核心是“场景对应命令”——先明确要实现的功能(如“自动捡取装备”),再拆解为“检测装备→捡取装备→处理装备”三个步骤,每个步骤对应1-2个核心命令。初期可套用本文案例,熟悉后根据服务器玩法调整参数,逐步实现从“复制使用”到“灵活定制”的进阶。

不同服务器可能对命令有特殊扩展,开发时可参考引擎官方文档,结合本文整理的核心命令与实操技巧,快速完成脚本开发。