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

【框架设计】好友系统:好友上限与亲密度成长

2026-09-23 16:58 作者:996 技术组 996引擎Lua教程传奇脚本

实战应用:用在哪里

好友是留存的暗线:一起打宝的战友、师门的同门、行会的兄弟,好友列表越长 logout 的心理成本越高。好友系统的实现要点是关系的双向账本、亲密度的成长与上限的成长线。

关系的账本

lua

---好友的添加:双向写入与上限
local FRIEND_CAP = 100

function Friend.add(actor, targetName)
    local player = class(actor)
    if not player then return false end
    local cnt = tonumber(getplayvar(actor, 2, "FriendCnt")) or 0
    if cnt >= FRIEND_CAP then
        sendmsg(actor, 1, "好友已达上限 100 人")
        return false
    end
    Friend.addTwoWay(actor, targetName)
    setplayvar(actor, "HUMAN", "FriendCnt", cnt + 1, 1)
    Friend.setIntimacy(actor, targetName, 10)
    return true
end

好友的关系是双向账本:A 的列表有 B,B 的列表必有 A,单删的清理两向同步——账本的不对称是社交数据最常见的不一致。上限 100 人起,VIP 与行会职位的加成把上限买到 300——社交的容量是成长的权益。亲密度的起点 10 分,成长的途径三条:组队打宝每日每好友最多 20 分、互赠礼物一次 5 分、好友副本首通一次 50 分。

亲密度的权益

lua

---亲密度的等级与权益
local INTIMACY_LEVELS = {
    { lv = 1, need = 0,   perk = "无" },
    { lv = 2, need = 100, perk = "好友传送" },
    { lv = 3, need = 500, perk = "组队经验 +5%" },
    { lv = 4, need = 1500, perk = "亲密度称号" },
}

function Friend.levelOf(actor, targetName)
    local player = class(actor)
    if not player then return 1 end
    local v = Friend.getIntimacy(actor, targetName)
    for i = #INTIMACY_LEVELS, 1, -1 do
        if v >= INTIMACY_LEVELS[i].need then
            return i
        end
    end
    return 1
end

亲密度的等级四档:100 分的好友传送(一键到好友身边)、500 分的组队经验加成 5%、1500 分的专属称号——社交的投入兑换实打实的权益,好友的名单从摆设变成资产。亲密度只涨不跌的争议:180 天不互动的亲密度衰减一半,社交的温度需要保温,衰减的规则公示且衰减不出层级。删除好友的冷静期:删除 24 小时内可撤销,亲密度保留;永久删除后重新添加,亲密从半数起步——关系的破裂与修复都有过渡。好友的上线提醒可开关,出生入死的战友上线了第一时间知道,打扰的尺度玩家自定。

验证与监控

好友数的分布与亲密度等级的分布双周报,好友的均值与密度的分布刻画社交的健康度;双向一致性的对账任务,单边的关系记录即数据缺陷。

踩坑记录

双向的写入曾经在网络重试下只成了一半,单边好友的互发私聊失败,两向写的事务化修复。亲密度的组队加分曾经被挂机刷分,组队的有效时长校验(两人在同地图且有交互行为)让挂机蹭分失效。上限的提升曾经不生效,满员的玩家买了 VIP 还是加不了人,上限的读取改实时。

上线要点

好友的权益阶梯进配置,亲密度的获取途径随玩法扩展。好友的推荐(同行会、常同图)降低加人的门槛,社交的冷启动靠系统牵线。删除的冷静期与撤销的入口在列表页直供,关系的操作不冲动。

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

作者履历与出处

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

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

最新技术文章 · 实战干货

LATEST ARTICLES

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

框架设计行会等级经验成长

【框架设计】行会等级:行会经验与等级成长框架

实战应用:用在哪里 行会等级是行会玩法的地基:建筑上限、商店货架、活动资格全部挂在等级上。行会经验与等级成长框架把升级路径做…

2026-09-23 19:15 996 技术组
玩法策划大事记里程碑展示

【玩法策划】行会大事记:里程碑事件的自动记录与展示设计

实战应用:用在哪里 行会走过两年,第一次拿下沙巴克、第一位满级成员、最强的一次攻防战,这些瞬间散落在聊天记录里无人记得。行会…

2026-09-23 19:15 996 技术组
案例复盘合服抢注重名复盘

【案例复盘】合服抢注:重名抢注引发的归属纠纷复盘

实战应用:用在哪里 两服合服时允许玩家自由抢注重名角色,结果原服老玩家“至尊战神”的名字被另一服新号抢先注册,老玩家两年的社…

2026-09-23 19:15 996 技术组
前端接口行会申请审批列表

【前端接口】行会申请列表:入会申请的批量审批界面

实战应用:用在哪里 热门行会一天几十份入会申请,逐条点开看效率极低还容易漏人。行会申请列表把申请铺成可批量操作的清单:每行显…

2026-09-23 19:15 996 技术组
引擎触发炼狱回廊递减增益

【引擎触发】炼狱回廊:逐层递减的增益触发设计

实战应用:用在哪里 炼狱回廊是高端玩家的试炼场:十层回廊逐层深入,每下一层全属性递减百分之五,越往深处怪物越强、自己越弱,奖…

2026-09-23 19:15 996 技术组
玩法策划跨服镖局押运跨服

【玩法策划】跨服镖局:跨服押运的高风险高回报设计

实战应用:用在哪里 本服押镖产出稳定但缺乏刺激,高战玩家押镖像散步。跨服镖局把押运拉到跨服边境:路线穿越两服交界的无主之地,…

2026-09-23 19:15 996 技术组