传奇脚本语法核心命令格式与参数规则全解析

来源: 作者: 点击:
传奇脚本引擎(以GOM、GEE、HERO、V8主流引擎为例)采用类C语言的条件分支结构,依托#IF、#ACT、#ELSEACT三大关键字组织逻辑,命令由大写字母与下划线构成,参数间严格区分空格与分隔符,以下分类详列常用命令的标准语法格式。

条件判断命令#IF段语法
IF段用于检测条件是否成立,支持单个或多个条件并用AND、OR、NOT连接,条件必须写在#IF与#ACT/#ELSEACT之间,每个条件独占一行。格式:


#IF
CHECKLEVEL > 50
CHECKGOLD 100000
#ACT

常用条件命令格式包括:
• CHECKLEVEL > 数值 / = 数值 / < 数值:检测人物等级

• CHECKGOLD 数值:检测金币是否大于等于指定值

• CHECKITEM 物品名 数量:检测背包指定物品数量

• CHECKBAGSIZE 数值:检测背包空位是否大于等于数值

• CHECKJOB 职业名:检测职业,职业名填Warrior/Wizard/Taoist或Warr/Wizard/Taoist

• CHECKGENDER 性别:性别填MAN或WOMAN

• CHECKSLAVECOUNT 数值:检测当前召唤物数量

• CHECKMAPNAME 地图名:检测当前所在地图

• CHECK [数值] 0/1:检测人物标识位,0为未开启,1为开启

• EQUAL 变量名 值:检测变量是否等于指定值

• LARGE 变量名 值:检测变量大于指定值

• SMALL 变量名 值:检测变量小于指定值

执行命令#ACT段语法
ACT段在#IF条件成立时执行,支持多条命令逐行写入,每条命令占一行。格式:


#ACT
GAMEGOLD + 500
GIVE 裁决之杖 1
SENDMSG 6 恭喜获得奖励!
BREAK

常用执行命令格式包括:
• GAMEGOLD +/-/= 数值:操作元宝数量

• GOLD +/-/= 数值:操作金币数量

• GIVE 物品名 数量 品质:给予物品,品质参数可选

• TAKE 物品名 数量:扣除物品

• MAPMOVE 地图编号 X坐标 Y坐标:传送至指定地图坐标

• ADDSKILL 技能名 等级:学习技能,等级0-3

• DELSKILL 技能名:删除技能

• SET [数值] 0/1:设置人物标识位

• MOV 变量名 值:给变量赋值

• INC 变量名 值:变量增加

• DEC 变量名 值:变量减少

• CLEARMAPMON 地图编号:清除指定地图怪物

• RECALLMOB 怪物名 数量 等级 叛变时间(秒):召唤怪物为宝宝

• SENDMSG 消息类型 消息内容:发送屏幕消息,类型0-7颜色不同

• CLOSE:关闭NPC对话框

条件不成立#ELSEACT段语法
IF条件不成立时执行#ELSEACT段,必须与#IF配对使用,中间不能插入其他段。格式:


#IF
CHECKLEVEL > 40
#ACT
GAMEGOLD + 1000
#ELSEACT
SENDMSG 6 等级不足40级,无法领取!
CLOSE


NPC对话与菜单跳转语法
NPC脚本以[@Main]为主入口标签,[@标签名]定义子菜单,通过goto跳转。格式:

[@Main]
欢迎来到土城药店!\
<购买药品/@BuyDrug>\
<离开/@Exit>

[@BuyDrug]
#IF
CHECKGOLD 5000
#ACT
TAKE 金币 5000
GIVE 太阳水 1
SENDMSG 6 购买成功!
goto @Main
#ELSEACT
SENDMSG 6 金币不足!
goto @Main

常用NPC交互命令包括:
• <显示文字/@跳转标签>:创建可点击按钮

• {显示文字|颜色代码}:彩色文字

• \:换行符

• CLOSE:关闭对话框

• EXIT:退出脚本执行

变量系统与运算语法
变量分为人物变量、全局变量、临时变量,支持数值与字符串操作。格式:
• VAR Integer/String HUMAN/Global 变量名:声明变量

• LOADVAR 变量名 文件名.txt:加载变量值

• SAVEVAR 变量名 文件名.txt:保存变量值

• CALCVAR 变量名 +/-/*// 数值:变量运算

• MOV 变量名 值:赋值

• INC 变量名 值:累加

• DEC 变量名 值:递减

• EQUAL 变量名 值:判断相等

• LARGE 变量名 值:判断大于

• SMALL 变量名 值:判断小于

物品触发与装备镶嵌语法
装备穿戴、取下、使用可触发QFunction-0.txt中对应标签。格式:
• [@TakeOnX]:X为装备物品IDX,穿戴触发

• [@TakeOffX]:取下触发

• [@UseItemX]:使用触发

• [@StdModeFuncX]:X为物品数据库AniCount值,双击触发

定时器与全局事件语法
• SetOnTimer 定时器编号 间隔毫秒:启动定时器

• CloseOnTimer 定时器编号:关闭定时器

• [@OnTimerX]:X为定时器编号,触发执行段

• [@Login]:人物登录触发,写在QManage.txt

• [@PlayDie]:人物死亡触发

• [@KillMonster]:杀死怪物触发

• [@GetExp]:获得经验触发

脚本文件编码与命名规范
所有脚本文件必须存为ANSI(GBK)编码,禁止UTF-8或带BOM格式,换行符为Windows CRLF。文件路径区分大小写,Market_def文件夹内NPC脚本命名规则为NPC名字-地图编号.txt,全局脚本位于Envir根目录,任务脚本位于QuestDiary文件夹。变量名、标签名、物品名、地图名均区分大小写,书写时保持一致。命令与参数之间必须保留一个空格,禁止全角符号、中文标点混入代码,注释用;开头分行书写。