CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
界面UI角色面板

【界面UI】属性加点界面:自由属性点的分配与预览

2026-09-21 22:40 作者:996 技术组 996引擎Lua教程传奇脚本界面UI角色面板

实战应用:用在哪里

每升 5 级发 1 点自由属性点,加攻击还是加防御——加点界面是玩家 build 决策的操作台。加点的要点是剩余点数的呈现、分配的即时预览与提交的批量打包,决策的工具越顺手,build 的尝试越积极。

分配的界面

lua
---属性加点:三项属性的加减
AttrUI.points = { atk = 0, def = 0, vit = 0 }

function AttrUI.bind(win, free)
    AttrUI.free = free
    for i, key in ipairs({ "atk", "def", "vit" }) do
        local add = GUI:Button_Create(win, "add_" .. key,
            200, 40 + (i - 1) * 40)
        GUI:Button_setTitleText(add, "+")
        GUI:addOnClickEvent(add, function()
            AttrUI.addOne(key)
        end)
    end
    AttrUI.refresh()
end

---加一点:剩余点数的守恒
function AttrUI.addOne(key)
    local used = AttrUI.points.atk + AttrUI.points.def
        + AttrUI.points.vit
    if used >= AttrUI.free then
        SL:ShowSystemTips("自由属性点已用完")
        return
    end
    AttrUI.points[key] = AttrUI.points[key] + 1
    AttrUI.refresh()
end

分配的界面三行三键:攻击、防御、体力各一行,加号按钮逐点分配——剩余点数的守恒校验在客户端先行(用满即提示),提交前的预览让玩家看得到每加一点带来的面板变化(加 1 点攻击等于面板攻击加 2)。重置的按钮把本批的分配清零重来,确认前的犹豫有出口,提交后的重置走洗点的付费通道。

提交的打包

lua
---提交:本批分配一次性发送
function AttrUI.submit()
    local used = AttrUI.points.atk + AttrUI.points.def
        + AttrUI.points.vit
    if used == 0 then return end
    SL:SendNetMsg(MSGID.ADD_POINT,
        AttrUI.points.atk, AttrUI.points.def,
        AttrUI.points.vit)
    SL:ShowSystemTips("属性点分配已提交")
end

---服务器回包的刷新
SL:RegisterLuaNetMsg("ATTR_SYNC", function(data)
    local d = SL:JsonDecode(data)
    if not d then return end
    AttrUI.free = d.free
    AttrUI.points = { atk = 0, def = 0, vit = 0 }
    AttrUI.refresh()
    GUI:Text_setString(AttrUI.atkLabel,
        "攻击 " .. d.atk)
end)

提交的打包把本批的分配一次性发送:三项的增量打包进一条消息,服务器的剩余点数守恒校验是终审——客户端的预演与服务器的一致性由回包刷新保证。加点的即时反馈三路:面板数字的变化、剩余点数的扣减、分配行的清零,三路同步让每次点击都有回应。加点的撤销不支持:提交即生效的规则写明,防反悔的反复横跳刷洗点的差价。属性的上限校验在服务器:单项属性不超过等级的 3 倍,极端的堆叠被上限压住。

验证与监控

加点提交的客户端预演与服务器裁决的一致性测试,点数的守恒断言逐批验证;洗点的付费转化与加点分布的统计,职业倾向的数据反哺平衡调整。

踩坑记录

剩余点数的计算曾经不含未提交的本批,连点到超发被服务器拒绝,本地守恒的口径修正。提交的打包曾经逐点发送,10 点发 10 条消息刷屏,批量的打包替代。回包的刷新曾经覆盖玩家的本批未提交分配,回包只更新 free 与面板,分配行的状态不动。

上线要点

属性的效果系数(1 点攻击等于多少面板)进配置,加点的收益透明。加点确认弹窗列出本批的分配明细,批量操作有知情确认。洗点的价格与次数限制公示,反悔的成本固定。

作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

最新技术文章 · 实战干货

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

案例复盘公告舆情

【案例复盘】遗漏公告:版本更新漏发的舆情复盘

实战应用:用在哪里 版本更新上线后突然下架了某件热销商品,但更新公告里没有提到这件事。玩家发现后截图传播,两小时内贴吧帖子超…

2026-09-23 06:51 996 技术组
前端接口技能升级

【前端接口】技能升级反馈:升级成功的光效与音效实现

实战应用:用在哪里 技能升级后缺少视觉与听觉反馈,玩家不确定升级是否成功。技能升级反馈在升级成功的瞬间展示金色光效、播放升级…

2026-09-23 06:51 996 技术组
界面UI双击检测

【界面UI】双击检测:攻击与查看的双重响应实现

实战应用:用在哪里 点击其他玩家的角色时默认弹出查看面板,但在战斗中玩家希望点击即攻击。双击检测在单击查看的基础上增加双击攻…

2026-09-23 06:51 996 技术组
玩法策划灵宠派遣

【玩法策划】灵宠派遣:灵宠探索与寻宝奖励的玩法设计

实战应用:用在哪里 灵宠在战斗中作用有限,玩家养了宠物但缺少日常互动。灵宠派遣让宠物成为玩家的探索伙伴:派遣灵宠外出探索获取…

2026-09-23 06:51 996 技术组
玩法策划宠物竞技对战

【玩法策划】宠物竞技:宠物对战与排位的玩法设计

实战应用:用在哪里 宠物养成线只有喂食和升级,缺少宠物之间的对抗玩法。宠物竞技让两只宠物在专属竞技场进行自动对战,玩家通过调…

2026-09-23 06:51 996 技术组
数据存储测试脱敏

【数据存储】测试数据:脱敏后的测试库搭建

实战应用:用在哪里 测试环境直接复制生产库会把真实玩家数据暴露给开发和测试人员,存在隐私泄露风险。脱敏测试库的搭建分三步:从…

2026-09-23 06:51 996 技术组