【游戏】
一、业务场景
交易行里有人收了定金就消失,买家吃闷亏还没处查底细。信用分规则上线:每笔成交双方互评,好评加 2 分,差评扣 5 分,起步 60 分;90 分以上挂金牌标,低于 20 分禁止挂售。
二、实现方案
错误写法:
setplayvar(p, "credit", (getplayvar(p, "credit") or 60) + 2)
-- 不看互评结果、不拦自买自卖,刷分无成本
正确写法:
local function settle(dealId)
local d = dealPool[dealId]
local seller = getplayerbyname(d.seller)
local buyer = getplayerbyname(d.buyer)
if seller == buyer or d.rated then return end
setplayvar(seller, "credit",
(getplayvar(seller, "credit") or 60) + d.rate)
setplayvar(buyer, "credit",
(getplayvar(buyer, "credit") or 60) + d.rate)
d.rated = true
sendmsg(seller, 1, "信用分更新,当前 " ..
getplayvar(seller, "credit"))
end
rate 由互评结果给出,好评 2、差评 -5,rated 标记保证同一笔只评一次。
三、边界处理
自己卖给自己下单的刷分路径在结账时拦截;60 秒内密集差评进入人工复核队列;信用分低于 20 的角色挂售请求直接退回。
四、引擎验证
模拟 15 笔全好评成交,信用从 60 涨到 90,自动点亮金牌标;一笔差评后回落 5;同一订单第二次互评被拒。
五、FAQ
问:信用分能花钱恢复吗?
答:不能,只能靠后续好评慢慢回涨,防止付费洗白。
问:金牌标有什么用?
答:在交易行列表置顶展示,并在搜索结果里加金色边框。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
【游戏】 一、业务场景 帮会人少时打不死召唤的目标,人多时又抢不到,时机全靠会长手点,纠纷不断。改为每日一次的定时召唤加伤害…
【游戏】 一、业务场景 30 人团本开荒,伤害按个人目标结算,近战几秒就把目标打空,后排毫无参与感。改为全团共享血池:目标总…
【语法】 一、隐蔽陷阱 账目表频繁单点改值又要频繁查前 n 项合计:朴素写法改值一步、查询要扫 n 个元素,查询一多整体就慢…
【游戏】 一、业务场景 想拉动日活,登录礼包要跟着连登天数走:第 1 天小奖,第 7 天大奖。发放核心就一行:按连登天数查阶…
【语法】 一、隐蔽陷阱 大数加法用字符串竖式解决了失真,两笔大数相乘怎么办?tonumber 相乘在 9 位乘 9 位时结果…
【语法】 一、隐蔽陷阱 两批任务分别每 6 分钟与每 8 分钟刷新一次,想知道它们同帧刷新的间隔,从 1 开始逐个试除到 4…