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

    QQ登录

    只需一步,快速开始

    查看: 19|回复: 0

    Gee引擎数字转换为图片显示标签的方法和命令示例

    [复制链接]
    avatar
    • 打卡等级:魔龙套勇士
    • 打卡总天数:131
    • 打卡月天数:24
    • 打卡总奖励:14956
    • 最近打卡:2025-08-24 00:16:44

    7084

    主题

    152

    回帖

    8652

    积分

    管理员

    本站站长

    积分
    8652
    online_admin 发表于 2025-7-14 17:51:06 | 显示全部楼层 |阅读模式
    GEE 引擎中实现数字到图片显示的转换主要通过[显示图片]标签结合特定的格式命令完成,适用于装备属性、数值显示等场景。以下是具体方法和命令示例:
    一、基础实现方法
    1. 使用[显示图片]标签
    plaintext
    [显示图片]图片ID,偏移X,偏移Y,显示状态,显示时间

    图片 ID:对应Mir200\Envir\Market_Def\ImgInfo.txt中的图片编号
    偏移 X/Y:显示位置相对于默认坐标的偏移量
    显示状态:0 = 隐藏,1 = 显示
    显示时间:毫秒为单位,0 表示永久显示
    2. 数字转换规则
    通过分割数字的每一位,映射到对应图片资源:

    plaintext
    [显示图片]1000+个位数字,偏移X,偏移Y,1,0
    [显示图片]1010+十位数字,偏移X+20,偏移Y,1,0
    [显示图片]1020+百位数字,偏移X+40,偏移Y,1,0

    假设ImgInfo.txt中已定义:

    1000-1009:个位数字 0-9 的图片
    1010-1019:十位数字 0-9 的图片
    1020-1029:百位数字 0-9 的图片
    二、命令示例
    示例 1:显示固定数值
    plaintext
    [显示图片]1005,100,100,1,0  # 显示数字5(个位)
    [显示图片]1012,120,100,1,0  # 显示数字2(十位)
    [显示图片]1023,140,100,1,0  # 显示数字3(百位)
    # 最终显示结果为: 325
    示例 2:动态数值显示
    lua
    -- 假设数值存储在变量n中
    local n = 567

    -- 计算各位数字
    local a = math.floor(n / 100)     -- 百位=5
    local b = math.floor((n%100)/10)  -- 十位=6
    local c = n % 10                  -- 个位=7

    -- 显示数值
    SendMsg(2, "[显示图片]1000+"..c..",100,100,1,0")
    SendMsg(2, "[显示图片]1010+"..b..",120,100,1,0")
    SendMsg(2, "[显示图片]1020+"..a..",140,100,1,0")
    示例 3:带符号数值显示
    lua
    local n = -345

    -- 显示负号
    SendMsg(2, "[显示图片]1030,100,100,1,0")  -- 假设1030为负号图片

    -- 处理绝对值
    n = math.abs(n)
    local a = math.floor(n / 100)
    local b = math.floor((n%100)/10)
    local c = n % 10

    -- 显示数字部分
    SendMsg(2, "[显示图片]1000+"..c..",120,100,1,0")
    SendMsg(2, "[显示图片]1010+"..b..",140,100,1,0")
    SendMsg(2, "[显示图片]1020+"..a..",160,100,1,0")
    三、高级应用
    1. 颜色区分数值
    lua
    -- 根据数值范围显示不同颜色
    local hp = GetCharacterData("HP")
    local maxHp = GetCharacterData("MaxHP")
    local percent = math.floor(hp/maxHp*100)

    -- 选择颜色图片组
    local colorGroup = 1000  -- 默认绿色
    if percent < 30 then
        colorGroup = 1050    -- 红色
    elseif percent < 60 then
        colorGroup = 1030    -- 黄色
    end

    -- 显示百分比
    local a = math.floor(percent / 10)
    local b = percent % 10
    SendMsg(2, "[显示图片]"..colorGroup.."+"..a..",100,100,1,0")
    SendMsg(2, "[显示图片]"..colorGroup.."+"..b..",120,100,1,0")
    SendMsg(2, "[显示图片]1099,140,100,1,0")  -- 百分号图片
    2. 动态更新数值
    lua
    -- 创建定时器,每1秒更新一次数值显示
    function UpdateNumberDisplay()
        local value = GetCharacterData("Level")  -- 获取等级

        -- 清除之前的显示
        SendMsg(2, "[显示图片]1000,100,100,0,0")
        SendMsg(2, "[显示图片]1010,120,100,0,0")
        SendMsg(2, "[显示图片]1020,140,100,0,0")

        -- 显示新数值
        local a = math.floor(value / 10)
        local b = value % 10
        SendMsg(2, "[显示图片]1000+"..b..",100,100,1,0")
        if a > 0 then  -- 避免显示多余的0
            SendMsg(2, "[显示图片]1010+"..a..",120,100,1,0")
        end

        -- 重新设置定时器
        SetTimer("UpdateNumberDisplay", 1000)
    end

    -- 启动更新
    UpdateNumberDisplay()
    四、注意事项
    图片资源准备
    确保ImgInfo.txt中已正确定义所需图片 ID
    建议图片尺寸统一 (如 20×20 像素),避免显示错位
    性能优化
    频繁更新的数值 (如 HP/MP) 建议使用定时器控制刷新频率
    复杂界面可使用分组管理,通过显示 / 隐藏组控制整体显示
    兼容性处理
    不同版本引擎可能对[显示图片]标签参数顺序有差异
    部分引擎需要使用[显示数字]标签替代,语法为:
    plaintext
    [显示数字]数值,偏移X,偏移Y,颜色ID,显示时间


    通过合理使用[显示图片]标签和数值处理逻辑,可以在 GEE 引擎中实现灵活多样的数字图片显示效果,满足装备属性、伤害数值、状态信息等各类显示需求。

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

    本版积分规则

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

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