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

    QQ登录

    只需一步,快速开始

    查看: 20|回复: 0

    预览GEE引擎Npc对话框动态进度条功能教程

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

    7084

    主题

    150

    回帖

    8650

    积分

    管理员

    本站站长

    积分
    8650
    online_admin 发表于 2025-7-14 17:53:21 | 显示全部楼层 |阅读模式
    以下是 GEE 引擎 Npc 对话框动态进度条功能的核心实现方法和操作指南,结合最新引擎特性与实战案例进行解析:
    一、功能实现原理
    GEE 引擎通过[ProgressBar]标签与SetCustomItemProgressbarValue命令实现动态进度条显示,支持以下核心功能:

    双进度条系统:每个 Npc 对话框最多支持 2 个独立进度条,分别对应不同资源组:
    进度条 1:背景图片 620,进度图片 621-629(静态)/630-639(动态)
    进度条 2:背景图片 640,进度图片 641-649(静态)/650-659(动态)
    动态更新机制:通过脚本实时修改当前值属性,触发进度条视觉刷新。支持以下更新方式:
    事件触发:如玩家完成任务、点击按钮
    定时更新:通过SetTimer命令周期性刷新进度
    数值关联:绑定角色属性(如等级、经验值)自动变化
    二、资源准备与配置
    1. 图片资源配置
    素材导入:将进度条图片(如 620-639)导入NewopUI.pak文件,确保图片尺寸统一(建议 200×20 像素)
    坐标校准:使用引擎内置内观调整工具批量修正图片偏移,避免显示错位
    2. Npc 对话框配置
    在Market_Def目录的 Npc 脚本中添加以下代码:

    ini
    [对话内容]
    <$STR(S_ProgressBar)>  # 插入进度条显示占位符
    <按钮/@触发事件>
    三、核心命令与参数
    1. 进度条初始化标签
    ini
    <ProgressBar:X:Y:F:B:P:C:T:X2:Y2:N:X:V:D:L:X3:Y3:显示文字:备注信息>

    关键参数说明:
    X,Y:进度条在对话框中的坐标(以对话框左上角为原点)
    B:背景图片编号(如 620)
    P:进度图片起始编号(如 630)
    C:动态进度图片张数(1-10 张)
    D:进度方向(0 = 左→右,1 = 右→左,2 = 上→下,3 = 下→上)
    显示文字:支持%p当前值、%m最大值、%r百分比占位符
    2. 动态数值控制命令
    lua
    -- 设置进度条当前值(示例:进度条1当前值+10)
    SetCustomItemProgressbarValue 1 0 0 += 10

    -- 获取进度条当前值
    local current = GetCustomItemProgressbarValue(1, 0, 0)
    四、实战案例:任务进度显示
    1. 脚本逻辑设计
    lua
    -- 初始化进度条
    function InitQuestProgress()
        -- 设置最大值为100
        SetCustomItemProgressbarValue 1 0 0 = 100
        -- 显示进度条
        SendMsg(2, "[显示图片]620,100,100,1,0")  -- 背景图片
        SendMsg(2, "[显示图片]630,100,100,1,0")  -- 初始进度图片
    end

    -- 任务完成时更新进度
    function UpdateQuestProgress(value)
        -- 安全检查
        if value < 0 or value > 100 then
            return
        end

        -- 计算显示图片编号
        local imgId = math.floor(value / 10) + 630
        if imgId > 639 then
            imgId = 639
        end

        -- 更新数值与图片
        SetCustomItemProgressbarValue 1 0 0 = value
        SendMsg(2, "[显示图片]630,100,100,0,0")  -- 隐藏旧进度
        SendMsg(2, "[显示图片]"..imgId..",100,100,1,0")  -- 显示新进度
    end

    -- 注册任务完成事件
    RegisterEvent("OnQuestComplete", UpdateQuestProgress)
    2. Npc 对话框调用
    ini
    [对话内容]
    <ProgressBar:100:100:0:620:630:10:100:0:0:0:0:0:255:0:0:%p/%m:任务进度>
    <完成任务/@CompleteQuest>
    五、高级技巧与优化
    1. 多进度条协同显示
    ini
    [对话内容]
    <ProgressBar:100:100:0:620:630:10:100:0:0:0:0:0:255:0:0:经验值:%p/%m>
    <ProgressBar:100:130:0:640:650:10:100:0:0:0:0:0:255:0:0:金币:%p/%m>
    2. 动态方向切换
    lua
    -- 点击按钮切换进度方向
    function ToggleProgressDirection()
        local currentDir = GetCustomItemProgressbar(1, 0, 5)  -- 获取当前方向
        currentDir = (currentDir + 1) % 4
        SetCustomItemProgressbar(1, 0, 5, currentDir)  -- 更新方向
    end
    3. 分辨率适配方案
    lua
    -- 自动适配屏幕分辨率
    function AutoAdjustResolution()
        local screenWidth = GetClientScreenWidth()
        local scale = screenWidth / 1280  -- 假设设计分辨率为1280
        SendMsg(2, "[调整坐标]100*scale,100*scale")  -- 动态计算坐标
    end
    六、注意事项与排错
    图片资源冲突:若进度条显示异常,检查ImgInfo.txt中图片编号是否被其他功能占用
    数值溢出处理:在设置进度值时添加边界检查,避免超出最大值
    性能优化:
    动态进度条建议使用 10 张以内的图片循环播放
    非实时更新场景(如任务进度)可设置 1 秒刷新间隔
    版本兼容性:确保引擎版本在 2023.01 以上,旧版本可能缺少SetCustomItemProgressbar命令
    七、扩展应用场景
    限时活动倒计时:结合SetTimer实现动态倒计时进度条
    技能冷却显示:绑定技能冷却时间实时更新进度
    资源采集进度:模拟挖矿、伐木等采集过程的可视化反馈

    通过合理组合[ProgressBar]标签与脚本控制,GEE 引擎可在 Npc 对话框中实现高度定制化的动态进度条效果,显著提升玩家交互体验。开发时建议优先使用内置资源库,并通过微端更新工具同步素材至客户端。

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

    本版积分规则

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

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