传奇脚本常用命令全解析 附用法及实战示例

来源: 作者: 点击:
传奇脚本命令是控制游戏逻辑、NPC交互、任务触发、挂机行为的核心,不同命令对应不同功能,需遵循语法规则适配引擎。以下按功能分类,详解高频命令的含义、用法、参数及实战示例,覆盖基础交互、条件判断、物品操作等核心场景。

一、基础交互命令(NPC对话、窗口控制)

此类命令用于搭建NPC对话界面、控制窗口开关,是脚本基础组成部分,适配所有传奇引擎版本。

1. [@main] 命令

核心作用:定义脚本主入口,玩家点击NPC时默认触发此标签下的内容,所有交互脚本必须包含该命令。

用法:独立作为标签存在,后续紧跟对话内容、功能选项及跳转指令,无额外参数。

示例:
[@main]
#SAY
欢迎来到传奇大陆!
领取新手奖励
离开

2. #SAY 命令

核心作用:在NPC对话窗口显示文字内容,支持换行、功能链接,是脚本交互的核心展示命令。

用法:紧跟#IF或直接在标签下使用,文字内容可搭配<br/>换行,<a href="@标签名">文字</a>设置功能链接。

示例:
#SAY
您当前等级:%level%<br/>可选择以下服务:<br/>装备修理<br/>物品寄存

3. CLOSE 命令

核心作用:关闭当前NPC对话窗口,结束脚本交互,通常用于“取消”“离开”等功能选项。

用法:放在#ACT标签下,无参数,执行后直接关闭窗口,可搭配break终止后续脚本。

示例:
[@quit]
#ACT
CLOSE
break

二、条件判断命令(逻辑触发核心)

通过判断玩家状态、物品持有、等级等条件,触发对应操作,是脚本逻辑控制的关键,常用#IF、#ELSEIF、#ELSE组合使用。

1. #IF 命令

核心作用:设定判断条件,若条件满足则执行后续#ACT标签下的内容,不满足则跳过。

用法:单独使用或与#ELSEIF、#ELSE搭配,条件需为引擎支持的判定语句(如等级、物品、金币等)。

示例:
#IF
LEVEL > 30
#ACT
SENDMSG 7 您已达到30级,解锁高级地图权限!

2. #ELSEIF 命令

核心作用:当前置#IF条件不满足时,触发二次判断,可多次叠加,实现多条件分支逻辑。

用法:紧跟#IF或上一个#ELSEIF,条件格式与#IF一致,满足则执行对应#ACT,不满足则继续向下判断。

示例:
#IF
LEVEL > 50
#ACT
SENDMSG 7 您已达到高阶等级!
#ELSEIF
LEVEL > 30
#ACT
SENDMSG 7 您已达到中级等级!
#ELSE
SENDMSG 7 您等级不足,需提升等级!

3. CHECKITEM 命令

核心作用:判断玩家背包是否持有指定物品及数量,是物品相关条件判断的核心命令。

用法:放在#IF标签下,参数为“物品名称 数量”,物品名称需与数据库完全一致。

示例:
#IF
CHECKITEM 沃玛头盔 1
#ACT
SENDMSG 7 您持有沃玛头盔!

4. CHECKGAMEGOLD 命令

核心作用:判断玩家持有金币数量,支持大于、小于、等于等逻辑判定,适配元宝、金币等货币。

用法:放在#IF标签下,参数为数值,搭配>、<、=使用,如CHECKGAMEGOLD > 9999。

示例:
#IF
CHECKGAMEGOLD > 49999
#ACT
GAMEGOLD - 50000
SENDMSG 7 消耗5万金币,兑换道具成功!

三、物品与货币操作命令(道具发放、回收)

用于发放、回收玩家背包内的物品、货币,是任务奖励、装备回收、道具兑换脚本的核心命令。

1. give 命令

核心作用:向玩家背包发放指定物品及数量,发放失败则无提示,需确保物品存在且背包有空间。

用法:放在#ACT标签下,参数为“物品名称 数量”,物品名称需与Item.DB数据库一致。

示例:
#ACT
give 新手武器 1
give 新手铠甲 1
SENDMSG 7 领取新手装备成功!

2. TAKE 命令

核心作用:从玩家背包回收指定物品及数量,需配合CHECKITEM命令先判断,避免回收失败。

用法:放在#ACT标签下,参数为“物品名称 数量”,仅能回收背包内非绑定物品。

示例:
#IF
CHECKITEM 祖玛头像 1
#ACT
TAKE 祖玛头像 1
SENDMSG 7 回收祖玛头像1件!

3. GAMEGOLD 命令

核心作用:增加或减少玩家金币(元宝)数量,+为发放,-为扣除,需配合CHECKGAMEGOLD判断扣除条件。

用法:放在#ACT标签下,参数为数值,如GAMEGOLD + 100(发放100金币)、GAMEGOLD - 50(扣除50金币)。

示例:
#IF
CHECKITEM 沃玛项链 1
#ACT
TAKE 沃玛项链 1
GAMEGOLD + 60
SENDMSG 7 回收沃玛项链,获得60元宝!

四、提示与通知命令(信息反馈)

用于向玩家发送文字提示,包括个人提示、全服公告,便于反馈脚本执行结果,提升交互体验。

1. SENDMSG 命令

核心作用:向玩家发送个人提示信息,支持不同颜色代码,仅触发脚本的玩家可见。

用法:放在#ACT标签下,参数为“颜色代码 文字内容”,常用颜色代码:5(红色)、7(白色)、1(黄色)。

示例:
#ACT
SENDMSG 5 操作失败,条件不满足!
SENDMSG 7 请检查物品或等级是否达标。

2. 全服公告命令

核心作用:发送全服可见公告,所有在线玩家均可收到,常用于攻城申请、重大事件通知。

用法:放在#ACT标签下,参数为“文字内容 颜色1 颜色2”,颜色代码控制公告字体颜色。

示例:
#ACT
SENDMSG 1 【全服公告】%s行会申请攻城成功! 255 241

五、挂机与动作命令(自动行为控制)

用于控制玩家自动打怪、移动、技能释放等挂机行为,适配挂机脚本,需引擎支持自动功能。

1. ATTACKMONSTER 命令

核心作用:控制玩家自动攻击范围内怪物,支持设置攻击优先级,是挂机脚本核心命令。

用法:放在#ACT标签下,参数为优先级(0=无优先级,1=血量最低,2=等级最高)。

示例:
#ACT
ATTACKMONSTER 0
DELAY 3000
GOTO @AutoFight

2. MOVEMAP 命令

核心作用:将玩家传送至指定地图及坐标,用于挂机地图切换、刷新点传送等场景。

用法:放在#ACT标签下,参数为“地图名称 X坐标 Y坐标”,地图名称需与数据库一致。

示例:
#ACT
MOVEMAP 蜈蚣洞 320 330
SENDMSG 7 已传送至怪物刷新点!

3. DELAY 命令

核心作用:设置脚本执行间隔,避免操作过快导致卡顿,单位为毫秒(1秒=1000毫秒)。

用法:放在#ACT标签下,参数为数值,常用于挂机循环、技能释放间隔设置。

示例:
#ACT
ATTACKMONSTER 0
DELAY 2000
CASTSKILL 火球术 1

六、脚本编写注意事项

1. 命令语法规范:所有命令需区分大小写(传奇脚本通常为大写),标签名(如[@main])需用中括号包裹,#IF、#ACT等指令需单独成行,避免语法错误。

2. 物品名称一致:give、TAKE、CHECKITEM等命令中的物品名称,需与Item.DB数据库完全匹配,包括符号、后缀,否则功能失效。

3. 循环逻辑控制:使用GOTO命令跳转标签实现循环时,需添加break或STOPALL,避免脚本无限循环导致卡顿。

4. 引擎适配性:不同传奇引擎支持的命令可能存在差异,编写前需确认引擎版本,避免使用不兼容命令。

5. 测试优化:脚本编写完成后,先在测试服调试,检查条件判断、物品操作、提示信息是否正常,逐步优化逻辑。