推广返利是拉新的发动机:老玩家分享邀请码,新玩家注册填码绑定,老玩家按新玩家的充值获得推广积分。返利的结算链路要经得起对账——积分是能换真东西的,账目差一分都是事故。
---填码绑定:新玩家绑定邀请人
function Zebra.bind(actor, inviteCode)
local player = class(actor)
if not player then return end
local inviter = Zebra.findByCode(inviteCode)
if not inviter then
sendmsg(actor, 1, "邀请码无效")
return false
end
if (player.zy:getzy() or 0) > 0 then
sendmsg(actor, 1, "已绑定过邀请人")
return false
end
Zebra.relate(inviter, actor)
sendmsg(actor, 1, "绑定成功,邀请人将获得返利")
return true
end
---推广积分的余额查询
function Zebra.balance(actor)
local player = class(actor)
if not player then return 0 end
return player.zy:getzy()
end
绑定的三重校验:邀请码存在、被邀请人未绑定过(getzy 的余额判断绑定态)、邀请人与被邀请人非同一账号。player.zy 的 getzy 返回当前的推广积分余额,积分的读写全走框架的推广积分核心,账目的一致性由框架的存储层保证。
---充值触发:按充值额度给邀请人返积分
function Zebra.onCharge(actor, amount)
local player = class(actor)
if not player then return end
local inviter = Zebra.inviterOf(actor)
if not inviter then return end
-- 返利比例 10%,封顶 10000 积分
local back = math.min(math.floor(amount * 0.1), 10000)
if back <= 0 then return end
local inviterPlayer = class(inviter)
if not inviterPlayer then return end
inviterPlayer.zy:getcommission(back)
sendmsg(inviter, 1, "推广返利 +" .. back .. " 积分")
end
---积分的扣减:兑换商品时核销
function Zebra.exchange(actor, cost)
local player = class(actor)
if not player then return false end
local balance = player.zy:getzy()
if balance < cost then
sendmsg(actor, 1, "积分不足")
return false
end
player.zy:deductPoints(cost)
return true
end
返利在充值的发货链路里挂钩:被邀请人每充一笔,邀请人按 10% 的比例获得推广积分,单笔封顶 10000 分。getcommission 是返利的入账口,deductPoints 是兑换的核销口——入账与核销走同一套核心,余额的账目自洽。兑换的校验先查余额再扣减,框架的扣减接口自带不足拦截,双层校验让负余额无从产生。积分的兑换商城上架限时称号与稀有坐骑,返利的价值锚定在稀缺的商品上。
返利的发放流水与充值流水的比例监控,返利率的异常抬升提示刷积分的漏洞;自邀(自己邀自己)的设备指纹交叉检测,异常绑定的账号群进风控。
绑定的关系曾经可重复填写,新号反复绑不同邀请人刷首充返利,绑定态的一次性校验修复。返利的计算曾经用浮点,0.1 倍的精度噪声让积分出现小数,整数化的万分比换算替代。被邀请人的判定曾经只看等级,一个 IP 批量注册的小号集体过检,设备的关联检测补位。
返利的比例与封顶进配置,拉新旺季可限时加倍。邀请码的分享带一键复制,分享的动线缩到一次点击。积分兑换的商品按月轮换,返利的吸引力靠货架的持续新鲜。
本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 付费玩家的付费点集中在商城,成长线里缺一个长期投入的钩子。成长基金让玩家在低等级时一次性买入,随等级提升…
实战应用:用在哪里 行会联赛打得不热闹,观战人数不到参赛人数的一半。联赛竞猜给观战者一张入场券:用竞猜币押注胜负,赔率随投注…
实战应用:用在哪里 七夕限时活动原计划七天,上线第二天下午整点活动面板突然关闭,奖励领了一半,玩家以为被砍了福利,两小时内工…
实战应用:用在哪里 HTTPS 证书过期一次,全服登录白屏了半个多小时,值班才发现证书没人管。证书续期机制把到期日写进系统变…
实战应用:用在哪里 从行会面板点进成员列表再点开个人名片,连按返回键直接退回了主城,中间两层界面全部跳过。界面堆栈管理用一张…
实战应用:用在哪里 限时商城的稀缺商品上架即被抢,玩家错过窗口感觉被区别对待。商城橱窗把每件限时商品的下架时间做成可视化倒计…