设为首页收藏本站
  • 官方微信
    lmkj_wx 微信公众号 添加方式:
    1:扫描左侧二维码
  • 手机访问
    lmkj_sj
  •  找回密码
     立即注册

    QQ登录

    只需一步,快速开始

    查看: 19|回复: 0

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

    [复制链接]
    avatar
    • 打卡等级:魔龙套勇士
    • 打卡总天数:130
    • 打卡月天数:23
    • 打卡总奖励:14868
    • 最近打卡:2025-08-23 00:38:01

    7043

    主题

    150

    回帖

    8609

    积分

    管理员

    本站站长

    积分
    8609
    online_admin 发表于 6 天前 | 显示全部楼层 |阅读模式
    在 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 引擎中灵活定义和使用全局变量,实现全服数据共享、状态控制等核心功能。根据具体需求选择临时或持久类型,并注意变量的生命周期和冲突管理即可稳定运行。

    您需要登录后才可以回帖 登录 | 立即注册 qq_login

    本版积分规则

    QQArchiver 手机版 小黑屋 39传奇素材网 ( 蜀ICP备2022016510号-3 )

    快速回复 快速发帖 返回顶部 返回列表