一、传奇脚本变量核心定义
传奇脚本变量是一键端中用于存储、传递数据的核心载体,可理解为脚本的“数据容器”,支持数字、字符等数据类型,通过变量赋值、运算、判断等操作,实现脚本逻辑的灵活执行,是搭建游戏玩法、NPC交互、任务系统的基础。
数字变量是脚本变量的核心分类,仅存储数值数据,支持加减乘除、随机取值等运算,广泛用于计数(杀怪数量、任务次数)、条件判断(等级达标、道具数量)等场景,是传奇一键端中最常用的变量类型。
二、传奇脚本变量分类及核心属性(一键端通用)
脚本变量按“作用范围+保存特性”可分为私人变量、全局变量两大类,包含数字型与字符型,不同变量的存储路径、生效范围存在差异,具体分类及属性如下:
2.1 私人变量(绑定单个角色,仅对本人生效)
私人变量仅归属单个角色,其他玩家无法影响其值,按保存特性可分为可保存与不可保存两类,核心类型如下:
1. 不可保存私人变量(下线/场景切换重置):
- P0-P999(数字型):仅在当前NPC对话中生效,关闭对话框后自动重置为0,适合临时运算、对话内循环判断,可配合跳转命令实现仿循环效果。
- D0-D999(数字型):人物不下线时全局NPC通用,下线后数据清空,适合临时记录摇骰子结果、临时任务进度等场景。
- M0-M999(数字型):切换地图后数据自动清空,下线不保存,适合地图内临时计数(如单地图杀怪数)。
- N0-N999(数字型):小退(退出游戏再登录)后数据归0,下线不保存,可作为临时数字容器,支持各类运算。
- S0-S999(字符型):与N变量特性一致,仅存储字符数据(如临时输入的文字),小退归0,下线不保存。
2. 可保存私人变量(下线后数据留存):
- U0-U254(数字型):数据存储在人物数据库Mir.db中,下线后不丢失,数值范围支持正负21亿,适合记录永久任务进度、累计杀怪数等核心数据。
- T0-T254(字符型):同样存储在Mir.db中,支持存储汉字(1汉字=2字符)和字母,字符长度限制100以内,适合记录角色专属标识、自定义备注等。
- J0-J254(数字型):存储在Mir.db中,每晚0点自动重置数据,合区或关停服务器需避开0点,适合每日任务次数、每日奖励领取记录等场景。
2.2 全局变量(全服通用,对所有玩家生效)
全局变量不属于单个角色,全服所有玩家均可触发其运算与判断,数据生效范围覆盖整个服务器,核心类型如下:
- I0-I999(数字型):不可保存,服务器重启后自动重置为0,适合临时记录全服活动进度、实时统计数据等场景。
- G0-G999(数字型):可保存,数据存储在Mir200/GlobalVal.ini文件中,服务器重启后数据留存,适合记录全服活动开启状态、全服累计达成目标等。
- A0-A999(字符型):与G变量存储路径一致,支持保存字符数据,全服通用且可留存,适合记录全服公告、活动规则等固定文本信息。
2.3 自定义变量(扩展型变量,按需创建)
一键端支持自定义变量,可突破固定变量的限制,按用途分为私人、全局、行会三类,需先声明再使用,核心规则如下:
1. 声明格式:需指定变量类型(整数型/字符型)、作用范围(私人HUMAN/全局GLOBAL/行会GUILD),例如“VAR Integer HUMAN 押镖次数”(声明私人整数型变量“押镖次数”)。
2. 存储位置:自定义私人/行会变量默认存于数据库,合区时自动合并;全局变量存于服务器配置文件,可通过LOADVAR命令读取文本文件中的变量值。
3. 注意事项:自定义变量名称不可以P、D、M、N、S、I、G、A开头,避免与系统固定变量冲突。
三、数字变量核心运算命令(一键端实操常用)
数字变量支持赋值、加减乘除、随机取值等运算,是实现脚本逻辑的核心,常用命令及用法如下:
1. 赋值命令(MOV):给变量设置固定数值,格式“MOV 变量 数值”,示例“MOV N0 1”(将N0变量赋值为1),适合初始化变量或固定变量值。
2. 加法命令(INC):给变量叠加指定数值,格式“INC 变量 数值”,示例“INC U0 1”(将U0变量值加1),适合杀怪计数、任务次数累计等场景。
3. 减法命令(DEC):给变量减去指定数值,格式“DEC 变量 数值”,示例“DEC N0 1”(将N0变量值减1),适合扣除次数、消耗计数等操作。
4. 乘法命令(MUL):变量与指定数值相乘,格式“MUL 变量 数值”,示例“MUL N0 2”(将N0变量值乘以2),仅支持数字型变量,不支持字符型变量。
5. 除法命令(DIV):变量与指定数值整除,格式“DIV 变量 数值”,示例“DIV N0 2”(将N0变量值除以2),同样仅支持数字型变量。
6. 求和命令(SUM):需先初始化求和变量为0,再依次累加目标变量,示例“MOV X 0”“SUM A B”“SUM C”(实现X=A+B+C),单独使用SUM命令无意义,需配合赋值命令。
7. 随机取值命令(MOVR):给变量赋0至指定数值间的随机数,格式“MOVR 变量 数值”,示例“MOVR N0 10”(N0变量值随机为0-10中的任意整数),适合摇骰子、随机奖励发放等场景。
四、脚本变量条件判断与显示方法
变量需配合判断命令实现逻辑触发,通过显示命令可在游戏内展示变量值,核心用法如下:
4.1 条件判断命令(常用3类)
1. 等于判断(EQUAL):判断变量值是否等于指定数值,格式“EQUAL 变量 数值”,示例“EQUAL U0 10”(判断U0变量值是否为10),满足条件则执行后续脚本。
2. 大于判断(LARGE):判断变量值是否大于指定数值,格式“LARGE 变量 数值”,示例“LARGE U0 5”(判断U0变量值是否大于5)。
3. 小于判断(SMALL):判断变量值是否小于指定数值,格式“SMALL 变量 数值”,示例“SMALL U0 3”(判断U0变量值是否小于3),不满足条件则跳过后续脚本。
4.2 变量显示方法
通过“<$STR(变量)>”命令可在游戏内显示变量值,通常配合#SAY(NPC对话)、SENDMSG(系统提示)命令使用,示例如下:
1. NPC对话显示:#SAY 当前押镖次数:<$STR(U0)>(对话框中显示U0变量对应的押镖次数)。
2. 系统提示显示:SENDMSG 6 今日杀怪总数:<$STR(N$我的杀怪总数)>(发送第6频道提示,显示自定义杀怪计数变量值)。
3. 自定义变量显示:查看私人自定义变量用“<$HUMAN(变量名)>”,全局自定义变量用“<$GLOBAL(变量名)>”,示例“<$HUMAN(押镖次数)>”(显示私人押镖次数变量值)。
五、脚本变量实操示例(一键端常用场景)
5.1 私人变量:每日押镖次数限制
脚本逻辑:角色每日押镖上限3次,通过J0变量记录次数,0点自动重置,核心脚本如下:
(@押镖触发)
#IF
SMALL J0 3 (判断J0变量值小于3,即押镖次数未满3次)
#ACT
INC J0 1 (押镖次数加1)
SENDMSG 6 押镖成功,今日剩余押镖次数:<$STR(3-$J0)> 次
#ELSEACT
SENDMSG 6 今日押镖次数已耗尽,明日0点重置
5.2 全局变量:全服活动开启判断
脚本逻辑:通过G0变量控制全服双倍经验活动,G0=1时开启,G0=0时关闭,核心脚本如下:
(@开启双倍活动)
#ACT
MOV G0 1 (设置G0变量为1,开启活动)
SENDMSG 0 全服双倍经验活动已开启,持续2小时!(全服广播)
(@关闭双倍活动)
#ACT
MOV G0 0 (设置G0变量为0,关闭活动)
SENDMSG 0 全服双倍经验活动已结束,感谢参与!
5.3 自定义变量:角色杀怪排行榜
脚本逻辑:自定义私人变量“杀怪总数”,记录角色累计杀怪数,通过排序命令生成排行榜,核心脚本如下:
(@登录声明变量)
#IF
CHECKLEVELEX > 0
#ACT
VAR Integer HUMAN 杀怪总数 (声明私人整数型变量)
(@杀怪计数)
#ACT
CALCVAR HUMAN 杀怪总数 + 1 (杀怪数加1)
SAVEVAR HUMAN 杀怪总数 (保存变量值)
(@查看排行榜)
#ACT
SortHumVar 杀怪总数 S$排序结果 N$排序数值 0 1 10 (按杀怪数降序取前10名)
SENDMSG 0 全服杀怪排行榜TOP3:
SENDMSG 0 1. <$STR(S$排序结果1)> :<$STR(N$排序数值1)> 只
SENDMSG 0 2. <$STR(S$排序结果2)> :<$STR(N$排序数值2)> 只
SENDMSG 0 3. <$STR(S$排序结果3)> :<$STR(N$排序数值3)> 只
六、变量使用常见问题排查
6.1 变量值不保存/重置异常
1. 变量类型错误:误使用不可保存变量(如N、D变量)记录永久数据,需更换可保存变量(U、T、G等)。
2. 存储路径异常:检查GlobalVal.ini(全局变量)、Mir.db(私人变量)是否存在,缺失则从备份文件恢复。
3. 自定义变量未保存:自定义变量需执行SAVEVAR命令,否则数据不会留存,示例“Savevar HUMAN 杀怪总数”。
6.2 变量运算报错/逻辑不生效
1. 变量格式错误:字符型变量(如S、A变量)不可执行乘法、除法运算,需更换数字型变量。
2. 条件判断写法错误:判断命令(EQUAL/LARGE/SMALL)后需空格分隔变量与数值,不可遗漏参数。
3. 自定义变量未声明:未执行VAR声明命令直接使用自定义变量,会导致脚本报错,需在登录或服务器启动时声明。
6.3 变量值显示乱码/不显示
1. 显示命令错误:未使用“<$STR(变量)>”格式,直接输入变量名无法显示,需补充完整显示命令。
2. 字符型变量编码异常:字符型变量存储中文时,需确保脚本编码为GBK,避免乱码。
3. 变量超出取值范围:U、J变量数值超出正负21亿,会导致显示异常,需控制变量运算范围。
七、核心使用要点总结
1. 变量选型:临时场景用不可保存变量(P、N、D等),永久数据用可保存变量(U、T、G等),全服场景用全局变量(G、A等)。
2. 自定义变量:需先声明再使用,明确类型与作用范围,避免与系统变量重名(禁用P、D、G等开头名称)。
3. 数据留存:可保存变量需确保存储文件(Mir.db、GlobalVal.ini)可写入,避免权限不足导致数据丢失。
4. 运算规范:仅数字型变量支持加减乘除运算,字符型变量仅可赋值与显示,不可参与数值运算。

