传奇引擎自定义变量全套教程 私人全局行会变量清理与脚本运用
在传奇版本制作、脚本编写、功能定制过程中,自定义变量是突破原生固定变量限制、实现个性化玩法的核心核心功能。本文全面解析传奇引擎自定义变量分类、清理指令、申明方法、脚本运用、排序取值功能,覆盖私人变量、全局变量、行会变量全场景用法,帮助版本制作者快速掌握变量开发技巧,规避合区数据异常、脚本报错等常见问…
在传奇版本制作、脚本编写、功能定制过程中,自定义变量是突破原生固定变量限制、实现个性化玩法的核心核心功能。本文全面解析传奇引擎自定义变量分类、清理指令、申明方法、脚本运用、排序取值功能,覆盖私人变量、全局变量、行会变量全场景用法,帮助版本制作者快速掌握变量开发技巧,规避合区数据异常、脚本报错等常见问题。
一、传奇自定义变量核心概述
传奇引擎自定义变量功能,打破了传统版本仅能使用系统固定变量的限制,支持开发者自主创建、编辑、运算各类变量,适配押镖计数、行会等级统计、玩家行为记录、玩法次数限制等多元化场景。
核心特性:所有自定义变量包含整数型、字符型两种数据类型,数据可自动合并,合区时无需手动批量修改文本文件,大幅降低版本运维工作量。变量使用前必须提前申明对应类型,否则会出现脚本不生效、数据读取异常问题。
二、三大类自定义变量清理指令详解
版本调试、数据重置、玩法重置时,需通过专属指令清理冗余变量数据,下文区分私人、全局、行会三种变量清理格式,标注参数规则与使用限制。
2.1 自定义私人变量清理
适用场景:重置单个玩家或全服所有玩家的个人专属变量数据
标准格式:ClearHumCustVar 参数1 参数2
参数说明:
参数1:支持单个变量名或多个变量名(竖线|分割),指定需要清理的私人变量
参数2:赋值0或为空时清理全服玩家该变量数据;赋值1时仅清理执行指令玩家自身变量数据
2.2 自定义全局变量清理
适用场景:重置全服通用的公共变量数据,全服玩家共享该类变量数值
标准格式:ClearGlobalCustVar 参数1
参数说明:
参数1:赋值*代表清理全部全局变量;支持多个变量名组合(竖线|分割),精准清理指定全局变量
2.3 自定义行会变量清理
适用场景:重置指定行会或所有行会的专属变量数据,仅作用于行会绑定数据
标准格式:ClearGuildCustVar 参数1 参数2
参数说明:
参数1:必填项,填写具体行会名称,赋值*代表匹配所有行会;多行会用竖线|分割
参数2:必填项,填写具体行会变量名,赋值*代表清理该行会全部变量;多变量用竖线|分割
重点注意:该指令两个参数均不能为空,缺失参数会直接导致脚本执行报错
三、三大自定义变量申明与脚本运用方法
自定义变量分为个人(HUMAN)、全局(GLOBAL)、行会(GUILD)三类,每类均包含整数型、字符型,下文统一规范申明、检测、运算、保存全套脚本语法。
3.1 自定义私人变量(HUMAN)运用
数据归属:单个玩家独立数据,玩家之间数据互不干扰
3.1.1 整数型私人变量
// 申明变量
VAR Integer HUMAN 变量名
// 数值检测
CHECKVAR HUMAN 变量名 ? 大于等于
CHECKVAR HUMAN 变量名 = 等于
CHECKVAR HUMAN 变量名 > 大于
CHECKVAR HUMAN 变量名 < 小于
// 数值运算(支持加减乘除赋值)
CALCVAR HUMAN 变量名 + - = * /
// 数据保存
SAVEVAR HUMAN 变量名
3.1.2 字符型私人变量
// 申明变量
VAR String HUMAN 变量名
// 内容检测(仅支持等于匹配)
CHECKVAR HUMAN 变量名 = 等于
// 内容赋值运算
CALCVAR HUMAN 变量名 =
// 数据保存
SAVEVAR HUMAN 变量名
3.2 自定义全局变量(GLOBAL)运用
数据归属:全服共享数据,所有玩家读取、修改为同一数值,适合全服活动计数、公共状态标记
3.2.1 整数型全局变量
// 申明变量
VAR Integer GLOBAL 变量名
// 数值检测
CHECKVAR GLOBAL 变量名 ? 大于等于
CHECKVAR GLOBAL 变量名 = 等于
CHECKVAR GLOBAL 变量名 > 大于
CHECKVAR GLOBAL 变量名 < 小于
// 数值运算
CALCVAR GLOBAL 变量名 + - = * /
// 数据保存
SAVEVAR GLOBAL 变量名
3.2.2 字符型全局变量
// 申明变量
VAR String GLOBAL 变量名
// 内容检测
CHECKVAR GLOBAL 变量名 = 等于
// 内容赋值
CALCVAR GLOBAL 变量名 =
// 数据保存
SAVEVAR GLOBAL 变量名
3.3 自定义行会变量(GUILD)运用
数据归属:行会专属数据,仅该行会成员可读取生效,适合行会等级、行会积分、行会BOSS击杀记录等场景
3.3.1 基础申明语法
// 申明字符型行会变量
VAR String GUILD 变量名
// 申明整数型行会变量
VAR Integer GUILD 变量名
3.3.2 变量修改与保存
// 修改指定行会变量(支持加减乘除赋值)
REVGuildVAR 行会名字 行会变量名 + - = * /
// 保存指定行会变量数据
SAVEGuildVAR 行会名字 行会变量名
四、自定义变量查看与初始化脚本案例
4.1 变量快速查看标签
在NPC脚本、公告文本、玩家面板中,可通过以下标签直接调取变量数据:
查看私人变量:<$HUMAN(XXXX)>(XXXX替换为自定义变量名)
查看全局变量:<$GLOBAL(XXXX)>
查看行会变量:<$GUILD(XXXX)>
4.2 常用场景变量初始化案例
变量初始化需放置在对应配置文件中,引擎启动、玩家登录、行会加载时自动申明生效
; 全局变量初始化(引擎启动生效)
[@Startup]
#IF
#ACT
VAR Integer GLOBAL 奔跑次数
; 行会变量初始化(QM文件,行会加载生效)
[@LoadGuild]
#IF
#ACT
VAR Integer GUILD 行会等级
; 个人变量初始化(QManage.txt,玩家登录生效)
[@Login]
#If
CHECKLEVELEX > 0
#Act
VAR Integer HUMAN 押镖次数
五、自定义变量排序与位置取值功能
针对玩家数值排名、行会数据排行、变量位次查询等进阶需求,引擎提供专属排序指令,支持全服/在线/行会数据筛选。
5.1 变量排序指令SortHumVar
功能说明:对自定义数字变量进行排序,将结果写入字符型、数字型变量,用于排行榜展示
标准格式:SortHumVar 参数1 参数2 参数3 参数4 参数5 参数6
参数详解:
参数1:需要排序的自定义数字变量名
参数2:接收排序结果的字符型变量
参数3:接收排序结果的数字型变量
参数4:数据范围,0=所有玩家,1=在线玩家,2=行会变量
参数5:排序方式,0=升序,1=降序
参数6:取值数量,为空或0时取全部数值,填写数字则取前N名
实战案例(生成前十变量排行榜):
[@排序变量N]
#IF
#act
SortHumVar 变量数字 S$变量排序 N$变量排序 0 1 10
SENDMSG 0 -<$str(S$变量排序1)>:<$STR(N$变量排序1)>
SENDMSG 0 -<$str(S$变量排序2)>:<$STR(N$变量排序2)>
SENDMSG 0 -<$str(S$变量排序3)>:<$STR(N$变量排序3)>
5.2 变量位置取值指令HumVarRank
功能说明:查询指定数字变量在数据列表中的排名位置
标准格式:HumVarRank 参数1 参数2 参数3 参数4
参数详解:
参数1:待查询位置的自定义数字变量名
参数2:接收排名结果的变量名
参数3:数据范围,0=所有玩家,1=在线玩家,2=行会变量
参数4:排序基准,0=升序,1=降序
实战案例(获取玩家变量排名):
[@获取变量位置N]
#if
#ACT
HumVarRank 变量数字 N$变量位置 0 1
SENDMSG 0 -<$STR(N$变量位置)>
六、版本开发变量使用注意事项
1. 所有自定义变量必须先申明后使用,未申明的变量无法执行检测、运算、保存操作。
2. 行会变量清理指令双参数必填,编写脚本时禁止省略任意参数,避免运行报错。
3. 合区时自定义变量数据自动合并,无需手动导出导入文本,减少版本迁移工作量。
4. 字符型变量仅支持等于检测,无法进行大小对比,数值对比场景优先使用整数型变量。
5. 全局变量全服共享,频繁修改会同步覆盖所有玩家读取数据,公共玩法场景慎用。


