39传奇素材网 发表于 6 天前

如何在GEE引擎中定义全局变量

在 GEE 引擎中,全局变量(全服共享的变量)的定义和使用需遵循其特有的变量体系,主要通过固定前缀的变量名结合脚本命令实现。以下是详细的定义方法、类型区分及操作示例:
一、全局变量的类型与存储特性
GEE 引擎的全局变量分为临时全局变量和持久全局变量,核心区别在于是否支持服务器重启后保留数据:

变量类型        前缀        数据类型        存储位置        生命周期        适用场景
临时全局变量        I        数字型        内存(不写入文件)        服务器运行期间有效,重启归零        临时状态标记(如当前在线人数)
持久全局变量        G        数字型        Mir200/GlobalVal.ini        服务器重启后保留        全服配置(如 BOSS 刷新时间、活动开关)
持久全局变量        A        字符型        Mir200/GlobalVal.ini        服务器重启后保留        文本存储(如全服公告、规则说明)
二、定义与赋值方法
全局变量无需提前声明,直接通过脚本命令赋值即可 “定义”,核心命令为 MOV(赋值),语法格式统一为:
MOV <变量名> <值>
1. 临时全局变量(I 变量)
范围:I0 至 I999(共 1000 个可用),仅支持整数。
示例:
ini
; 定义I0为当前活动参与人数(初始值0)
MOV I0 0

; 玩家参与活动时,I0自增1
INC I0 1

2. 持久全局变量(G 变量,数字型)
范围:G0 至 G999(共 1000 个可用),支持整数和大数(如金币总量)。
示例:
ini
; 定义G1为全服BOSS刷新倒计时(3600秒)
MOV G1 3600

; 每秒钟减少1(需配合定时器脚本)
DEC G1 1

3. 持久全局变量(A 变量,字符型)
范围:A0 至 A999(共 1000 个可用),支持字符串(最长约 2000 字符)。
示例:
ini
; 定义A0为全服公告内容
MOV A0 "今晚20:00开启双倍经验活动,请玩家做好准备!"

; 存储键值对数据(如玩家贡献榜:"玩家A=100#玩家B=200")
MOV A1 "战神=5000#法神=3000#道神=4000"

三、全局变量的操作命令
除了基础赋值,GEE 引擎提供丰富的命令用于全局变量的运算和判断:

命令用途        示例命令        说明
自增 / 自减        INC G1 10 或 DEC I0 5        G1 增加 10,I0 减少 5
条件判断        #IF LARGE G1 0        检测 G1 是否大于 0(满足则执行后续逻辑)
数值比较        #IF EQUAL A1 "活动开启"        检测 A1 是否等于指定字符串
读取变量值        <$G1> 或 <$A0>        在文本中插入变量值(如 NPC 对话)
键值对解析        <$GETSTRVALUE(A1, 战神)>        从 A1 中提取 “战神” 对应的值(5000)
四、实际应用场景示例
1. 控制全服活动开关
ini
; 脚本文件(如QuestDiary/活动.txt)
#ACT
; 开启活动:设置G0=1(1=开启,0=关闭)
MOV G0 1
; 记录活动开始时间(A1存储文本)
MOV A1 "双倍经验活动开启于2025-08-17 20:00"

#IF
; 检测活动是否开启(G0=1)
EQUAL G0 1
#SAY
当前活动状态:开启中<br>
活动说明:<$A1>
2. 统计全服怪物击杀数
ini
; 怪物死亡触发脚本(如MonDie.txt)
#ACT
; 每击杀一只怪物,I5(临时计数)自增1
INC I5 1
; 每累计1000只,G5(总击杀数)同步一次
#IF
MOD I5 1000 0
#ACT
ADD G5 1000
MOV I5 0

五、注意事项
存储路径:持久变量(G/A)实际保存在 Mir200/GlobalVal.ini 中,可手动打开文件查看或修改(需重启服务器生效)。
变量冲突:避免不同脚本重复使用同一变量(如 G1 被多个功能同时修改),建议提前规划变量用途(如 G0-G99 用于活动,G100-G199 用于经济)。
性能优化:临时变量(I)读写效率高于持久变量(G/A),高频操作(如每秒计数)优先使用 I 变量,定期同步到 G 变量即可。
跨脚本访问:所有 NPC 脚本、地图事件、怪物脚本均可直接访问全局变量,无需额外声明。

通过上述方法,可在 GEE 引擎中灵活定义和使用全局变量,实现全服数据共享、状态控制等核心功能。根据具体需求选择临时或持久类型,并注意变量的生命周期和冲突管理即可稳定运行。

页: [1]
查看完整版本: 如何在GEE引擎中定义全局变量