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

