《传奇》服务端变量命令核心用于角色数据读取、数值运算、条件判断、自定义参数存储等场景,按功能可分为系统变量调用命令、变量赋值与运算命令、条件判断变量命令、自定义变量管理命令四大类。不同命令适配不同脚本场景(如NPC对话脚本、任务脚本、地图事件脚本),且需遵循“变量名区分大小写、参数格式匹配引擎要求”的基础规则。以下是各类变量运用命令的完整梳理,含命令格式、功能说明及实操示例。
一、系统变量调用命令:读取核心数据的基础命令
系统变量调用命令无需手动定义,直接调用服务端预设的核心数据变量,覆盖角色信息、游戏状态、地图参数等维度,命令格式统一为“<$变量名>”,常用于脚本输出显示或作为其他命令的参数。
1. 角色信息类变量命令
- <$USERNAME>:调用当前角色名称。示例:在NPC对话脚本中添加“#Say 欢迎您,<$USERNAME>!”,玩家与NPC对话时将显示自身角色名。
- <$LEVEL>:调用当前角色等级。示例:任务脚本中用于判断角色等级,或在奖励提示中显示“您当前等级<$LEVEL>,可领取等级奖励”。
- <$EXP>:调用当前角色当前经验值;<$MAXEXP>:调用当前角色升级所需总经验值。示例:组合使用“#Say 当前经验:<$EXP>/<$MAXEXP>”,向玩家展示升级进度。
- <$PKPOINT>:调用当前角色PK点数。示例:用于设置PK惩罚脚本,如“#IF CheckPKPoint > 10 #Say 您的PK点数过高,无法进入安全区”。
- <$CREDITPOINT>:调用当前角色声望值。示例:声望兑换脚本中使用“#Say 您当前声望:<$CREDITPOINT>点,可兑换声望装备”。
- <$GAMEPOINT>:调用当前角色游戏点数(泡点、任务奖励点数等)。示例:点数兑换经验脚本中显示“您当前拥有<$GAMEPOINT>游戏点,100点可兑换100万经验”。
2. 游戏状态类变量命令
- <$LOGINTIME>:调用当前角色本次登录时间。示例:登录欢迎脚本中添加“#Say 您本次登录时间:<$LOGINTIME>”。
- <$LOGINLONG>:调用当前角色本次登录时长(单位:秒)。示例:在线奖励脚本中判断“#IF CheckLoginLong > 3600 #Act GamePoint + 10 #Say 在线1小时奖励10游戏点”。
- <$GAMEGOLDNAME>:调用服务端设置的货币名称(如元宝、金币)。示例:通用交易脚本中使用“#Say 本次交易需消耗<$GAMEGOLDNAME>100”,适配不同货币设置的服务端。
3. 地图与坐标类变量命令
- <$MAPNAME>:调用当前角色所在地图名称;<$X>、<$Y>:调用当前角色所在地图的X、Y坐标。示例:定位提示脚本“#Say 您当前位置:<$MAPNAME>(<$X>,<$Y>)”。
二、变量赋值与运算命令:修改变量数值的核心命令
此类命令用于对系统变量或自定义变量进行数值修改、运算,需配合“#ACT”命令块使用,核心分为直接赋值、增减运算、数学运算三类。
1. 直接赋值命令:SetVar 变量名 数值
功能:将指定数值直接赋值给变量,支持自定义变量和部分系统变量。格式:#ACT SetVar 变量名 数值。示例1(自定义变量):“#ACT SetVar TaskCount 1”,定义“TaskCount”(任务计数)变量并赋值为1;示例2(系统变量):“#ACT SetGamePoint 0”,将角色游戏点数清零。
2. 增减运算命令:变量名 +/- 数值
功能:对变量数值进行增减操作,无需重新赋值,直接在原有数值基础上修改,常用系统变量均支持。
- 游戏点数增减:GamePoint + 数值 / GamePoint - 数值。示例:“#ACT GamePoint - 100 ChangeExp + 1000000”,扣除100游戏点并增加100万经验。
- 声望增减:CreditPoint + 数值 / CreditPoint - 数值。示例:“#ACT CreditPoint + 5”,完成任务奖励5点声望。
- 自定义变量增减:SetVar 变量名 <$变量名>+数值。示例:“#ACT SetVar TaskCount <$TaskCount>+1”,将任务计数变量加1。
3. 数学运算命令:支持加减乘除、取余等运算,格式为“SetVar 变量名 $((表达式))”
功能:对变量进行复杂数学运算,结果赋值给目标变量。示例1(加法运算):“#ACT SetVar TotalExp $((<$EXP>+100000))”,将当前经验加10万后赋值给TotalExp变量;示例2(乘法运算):“#ACT SetVar RewardExp $((<$LEVEL>*10000))”,根据角色等级乘以10000计算奖励经验;示例3(取余运算):“#ACT SetVar Remain $((<$GAMEPOINT>%100))”,计算游戏点数除以100的余数。
三、条件判断变量命令:基于变量触发脚本的关键命令
此类命令用于判断变量数值是否满足预设条件,需配合“#IF”命令块使用,条件成立则执行后续“#ACT”“#Say”等命令,是脚本逻辑控制的核心。
1. 数值比较判断命令:Check变量名 比较符 数值
- CheckLevel 比较符 数值:判断角色等级。示例:“#IF CheckLevel > 40 #ACT ChangeExp + 500000 #Say 等级40以上奖励50万经验”。
- CheckGamePoint 比较符 数值:判断游戏点数。示例:“#IF CheckGamePoint >= 100 #ACT GamePoint - 100 ChangeExp + 1000000 #Say 兑换成功!获得100万经验”。
- CheckPKPoint 比较符 数值:判断PK点数。示例:“#IF CheckPKPoint = 0 #Say 您当前无PK记录,可领取良民奖励”。
- CheckVar 变量名 比较符 数值:判断自定义变量。示例:“#IF CheckVar TaskCount = 5 #ACT CreditPoint + 10 #Say 完成5次任务奖励10声望”。
2. 变量存在性判断命令:CheckVarExist 变量名
功能:判断自定义变量是否已定义,避免脚本执行时因变量缺失报错。格式:#IF CheckVarExist 变量名 #ACT ... 示例:“#IF CheckVarExist TaskCount #Say 您当前任务进度:<$TaskCount>/5 #ElseAct SetVar TaskCount 0 #Say 已为您初始化任务进度”。
3. 多变量组合判断命令:支持多个变量条件同时判断,使用“&&”(且)、“||”(或)连接
格式:#IF CheckLevel > 30 && CheckGamePoint > 50 #ACT ... 示例:“#IF CheckLevel > 30 && CheckCreditPoint > 5 #Act SendItem 裁决之杖 1 #Say 等级30+声望5+可领取裁决之杖”。
四、自定义变量管理命令:灵活扩展脚本功能的命令
自定义变量需先定义再使用,支持全局变量(全服生效)、局部变量(仅当前脚本/角色生效),核心命令包括变量定义、变量清除、变量读取。
1. 自定义变量命名规则
变量名由字母、数字、下划线组成,仅能以字母开头,长度不超过32个字符,区分大小写(如TaskCount与taskcount为两个不同变量)。全局变量需在变量名前加“Global”修饰(如GlobalServerActivity),局部变量直接命名(如TaskStep)。
2. 核心管理命令
- 变量定义与赋值:SetVar 变量名 数值(局部变量);SetVar Global变量名 数值(全局变量)。示例1(局部变量):“#ACT SetVar TaskStep 1”,定义角色专属的任务步骤变量;示例2(全局变量):“#ACT SetVar GlobalServerActivity 1”,定义全服活动开启状态变量(1为开启,0为关闭)。
- 变量清除:DelVar 变量名(局部变量);DelVar Global变量名(全局变量)。功能:删除已定义的变量,释放资源。示例:“#ACT DelVar TaskCount”,任务完成后清除任务计数变量。
- 变量读取:<$变量名>(局部变量);<$Global变量名>(全局变量)。示例:“#Say 全服活动状态:<$GlobalServerActivity>(1=开启,0=关闭)”;“#Say 您当前任务步骤:<$TaskStep>”。
- 变量批量操作:SaveVar 变量名(保存局部变量至数据库,角色下线不丢失);LoadVar 变量名(从数据库加载保存的变量)。示例:“#ACT SaveVar TaskCount”,保存任务进度,避免玩家下线后进度重置。
五、特殊变量命令:适配复杂脚本场景的扩展命令
1. 坐标变量命令:CheckMonster 地图名 怪物名 坐标变量1 坐标变量2
功能:检测指定地图是否存在目标怪物,若存在则将怪物坐标赋值给指定变量。格式:#IF CheckMonster 比奇省 沃玛教主 XVar YVar #ACT #Say 沃玛教主位置:<$XVar>,<$YVar>。示例中XVar、YVar为自定义坐标变量,用于存储怪物位置。
2. 数值范围变量命令:RandomVar 变量名 最小值 最大值
功能:生成指定范围内的随机数并赋值给变量。示例:“#ACT RandomVar RewardExp 50000 100000 #Say 随机奖励经验:<$RewardExp>”,生成5-10万随机经验值。
3. 变量替换命令:ReplaceVar 变量名 旧数值 新数值
功能:替换变量中的指定数值,适用于批量修改变量参数。示例:“#ACT ReplaceVar TaskCount 5 0”,将任务计数变量从5(完成状态)重置为0(初始状态)。
六、变量命令使用注意事项
1. 命令格式规范:所有变量命令需在脚本正确区块内执行(条件判断用#IF,执行操作用#ACT,输出用#Say),避免格式错误导致脚本失效。
2. 数值范围限制:不同变量有默认数值范围(如BYTE类型变量0-255,INT类型变量-2147483647~2147483647),赋值时需避免超出范围,否则会出现数值异常。
3. 全局变量慎用:全局变量会占用服务端资源,过多全局变量可能影响运行效率,建议仅用于全服性参数控制。
4. 变量加载验证:修改变量相关脚本后,需通过引擎“加载脚本”功能刷新配置(右键引擎图标→加载设置→加载脚本),确保命令生效;若涉及数据库保存的变量,需重启服务端使配置生效。
总结:《传奇》服务端变量运用命令围绕“读取-运算-判断-管理”四大核心功能展开,系统变量命令适配基础数据展示,赋值运算命令实现数值修改,条件判断命令控制脚本逻辑,自定义变量命令扩展功能场景。使用时需遵循命名规范和格式要求,结合具体脚本需求选择对应命令,同时注意数值范围和资源占用问题,确保脚本稳定运行。不同引擎版本的变量命令可能存在细微差异,若某命令失效,可参考服务端自带的脚本示例文件调整格式。

