- 打卡等级:魔龙套勇士
- 打卡总天数:130
- 打卡月天数:23
- 打卡总奖励:14868
- 最近打卡:2025-08-23 00:38:01
管理员
本站站长
- 积分
- 8609
|
在 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 引擎中灵活定义和使用全局变量,实现全服数据共享、状态控制等核心功能。根据具体需求选择临时或持久类型,并注意变量的生命周期和冲突管理即可稳定运行。
|
|