CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
前端接口好友浮窗

【前端接口】好友申请浮窗:申请消息的浮窗提醒实现

2026-09-23 03:30 作者:996 技术组 1 阅读 996引擎Lua教程传奇脚本前端接口好友浮窗

实战应用:用在哪里

好友申请藏在好友面板的角标里,玩家半天不看一眼,申请积压让社交转化掉了一半。好友申请浮窗把新申请推到屏幕角落:显示申请人与等级,附同意与拒绝按钮,多条申请排队依次展示,战斗中自动隐藏不打扰。

浮窗的搭建与申请队列

浮窗由申请人文本加两个按钮组成,申请先入队列再逐条展示,队列上限 20 条,超出丢弃最旧的申请。

lua
local queue, showing = {}, false
local reqName = GUI:Text_Create(panel, "ReqName", 12, 10, 13, "#FFFFFF", "")
local function nextRequest()
    if showing or #queue == 0 then return end
    local req = table.remove(queue, 1)
    showing = true
    GUI:Win_Open("ui/friend_req")
    GUI:setText(reqName, req.name .. " Lv." .. req.lv .. " 请求加好友")
end

同意拒绝与队列推进

同意与拒绝按钮各自上行处理结果并推进队列,两条申请之间强制 200 毫秒间隔,防止误触连点把整队全拒。

lua
local okBtn = GUI:Button_Create(panel, "OkBtn", 12, 40, "ui/btn_ok")
local noBtn = GUI:Button_Create(panel, "NoBtn", 100, 40, "ui/btn_no")
local lastOp = 0
local function respond(result)
    local now = os.clock()
    if now - lastOp < 0.2 then return end
    lastOp = now
    SL:SendNetMsg(7351, result, 0)
    showing = false
    nextRequest()
end
GUI:addOnClickEvent(okBtn, function() respond(1) end)
GUI:addOnClickEvent(noBtn, function() respond(2) end)

验证与监控

十条申请排队逐条展示,同意与拒绝的上行结果与服务端好友列表一致;战斗中浮窗自动隐藏、脱战恢复;同一申请人重复申请只展示一次。浮窗展示期间主界面操作不受影响,浮窗不抢键盘焦点,按钮位置固定避免误触队伍技能。队列丢弃最旧申请时同步给服务端发拒绝回执,被丢弃的申请人不再无限等待。浮窗的展示时长上限 15 秒,超时未处理自动折叠,红点计数继续累加不丢失。监控浮窗展示到操作的转化时长,超过 30 秒未处理的申请自动折叠进好友面板红点。

踩坑记录

浮窗在战斗中弹出遮挡了技能栏,团战关键时刻被好友申请打断,战斗状态检测加入后浮窗延后到脱战展示。同意按钮的上行消息没带申请编号,两条申请先后到达时同意了后一条、服务端通过的是前一条,消息必须携带申请唯一号。队列丢弃最旧申请没有提示,被丢弃的申请人长时间无响应,丢弃时同步给服务端发拒绝回执让对方知情。申请人改名后浮窗显示旧名字,展示以服务端下发时的最新名字为准。

作者履历与出处

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

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

最新技术文章 · 实战干货

LATEST ARTICLES

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

案例复盘副本掉线

【案例复盘】副本掉线:无法重连的异常复盘

实战应用:用在哪里 周五晚高峰副本掉线事故:三百支队伍的成员在副本里掉线后无法重连,只能等副本超时踢出,客服工单一夜积压九百…

2026-09-23 04:33 996 技术组 · 0 阅读
玩法策划行会运镖

【玩法策划】行会运镖:全会协作运镖的玩法设计

实战应用:用在哪里 行会活动集中在晚上八点的攻城战,白天在线的成员没有参与感。行会运镖做成轻协作玩法:行会每周两趟集体运镖,…

2026-09-23 04:33 996 技术组 · 0 阅读
玩法策划施政政策

【玩法策划】城主施政:政策牌与城内加成的玩法设计

实战应用:用在哪里 沙巴克城主每周可以打出两张政策牌影响全服:双倍经验日让全场经验翻倍、怪物狂暴日让野怪攻击提升三成、和平协…

2026-09-23 04:33 996 技术组 · 0 阅读
运维发布演练题库

【运维发布】演练题库:季度故障演练的案例库建设

实战应用:用在哪里 故障演练总演同一套拔线流程,队伍熟练了但新故障类型没覆盖。演练题库把历史故障转化成十个演练场景,每季度随…

2026-09-23 04:33 996 技术组 · 0 阅读
界面UI生命周期钩子

【界面UI】界面生命周期:打开、刷新与销毁钩子

实战应用:用在哪里 排行榜界面打开时开启定时刷新、关闭时忘了停,玩家关了界面推送还在后台跑。界面生命周期把打开、刷新、销毁三…

2026-09-23 04:33 996 技术组 · 0 阅读
引擎触发沃玛教主重生

【引擎触发】沃玛教主重生:复活与宝物刷新的触发设计

实战应用:用在哪里 沃玛教主被击杀后四小时原地重生,重生前一分钟全服预告,教主重生点位在窝点周围五格内随机偏移,蹲点守尸的策…

2026-09-23 04:33 996 技术组 · 0 阅读