一把裁决之杖的主人把账号交给代练托管,每天 4 小时的游玩变成 14 小时挂机,装备在寄售行被悄悄挂单。时段画像用 30 天在线跨度做基线,当日跨度超基线两倍记疑点,连中 3 天锁寄售转人工复核。画像只看在线时长分布,不读操作内容,隐私面比地点画像进一步收窄,复核材料只有一条跨度曲线。识别目标盯的是托管倒卖这类高危行为,登录地点隔日往返的差旅玩家不属于嫌疑面。
登录时记时间戳,每小时心跳核对一次当日在线跨度,超过基线两倍且不少于 10 小时记一次疑点,疑点滚动累计。
function onLogin(actor)
setplayvar(actor, "HUMAN", "LOGIN_TS", os.time(), 1)
setplayvar(actor, "HUMAN", "TODAY_SPAN", 0, 1)
setontimer(actor, 141, 3600)
end
function ontimer141(actor)
local ts = tonumber(getplayvar(actor, "HUMAN", "LOGIN_TS") or "0")
if ts <= 0 then return end
local spanH = math.floor((os.time() - ts) / 3600)
setplayvar(actor, "HUMAN", "TODAY_SPAN", spanH, 1)
local base = tonumber(getplayvar(actor, "HUMAN", "BASE_SPAN") or "4")
if spanH > base * 2 and spanH >= 10 then
local hit = tonumber(getplayvar(actor, "HUMAN", "TRUST_HIT") or "0") + 1
setplayvar(actor, "HUMAN", "TRUST_HIT", hit, 1)
if hit >= 3 then
setplayvar(actor, "HUMAN", "AUCTION_LOCK", 1, 1)
sendmsg(actor, 0, "账号时段异常,寄售功能临时限制")
end
end
end
跨天触发把昨日并入基线,基线保留 30 天窗口,均值逐日平滑,玩家作息自然变化不会误报。
function onSetDay(actor)
local span = tonumber(getplayvar(actor, "HUMAN", "TODAY_SPAN") or "0")
if span <= 0 then return end
local sum = tonumber(getplayvar(actor, "HUMAN", "BASE_SUM") or "0")
local days = tonumber(getplayvar(actor, "HUMAN", "BASE_DAYS") or "0")
if days >= 30 then days = 29 end
sum = sum + span
days = days + 1
setplayvar(actor, "HUMAN", "BASE_SUM", sum, 1)
setplayvar(actor, "HUMAN", "BASE_DAYS", days, 1)
setplayvar(actor, "HUMAN", "BASE_SPAN", math.floor(sum / days), 1)
end
三组样本各 40 个账号:代练托管组、夜猫玩家组、正常组,核对命中率与误报率;锁寄售后核对挂单与撤单全被拦截;复核解除后疑点清零。监控每日疑点数与复核通过率,通过率低于七成收紧倍数阈值。跨天在线的样本单独构造:23 点上线次日 8 点下线,跨度按自然日切分归到主日,核对不误报。
掉线重连会切断时间戳,两段在线被算成一天一夜,跨度和直接翻倍误报,重连时保留原时间戳才修正。小时心跳的首轮在登录后第 60 分钟才触发,开小差下线半小时的玩家跨度只少不算多,方向性安全。新号没有基线,前 7 天观察期只记不判,否则新手玩家正常爆肝也会命中。BASE_SUM 只加不减,30 天前的旧值没有移出窗口,基线越滚越大识别逐渐失灵,改成满 30 天先减最旧一天再入新值。锁寄售的文案与盗号锁撞车,两类工单混在一起处理,文案里补了原因编码区分。AUCTION_LOCK 初版只拦寄售不拦摆摊,同一批货转摆摊照卖,两类交易通道一并纳入拦截口径。
全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →
实战应用:用在哪里 装备回收商 NPC 每天按评分收购玩家的装备,裁决之杖、骨玉权杖按攻击、持久加权打分,榜上只要前五名。数…
实战应用:用在哪里 沙巴克攻城是全服行会战的最高舞台:攻方砸开城门、抢占皇宫,守方依托城墙与复活点反打。规则设计的关键是节奏…
实战应用:用在哪里 影分身玩法给法师职业补上生存短板:危急时刻召唤四个影分身分担仇恨,敌人需要在六格范围内分辨真身,猜错就浪…
实战应用:用在哪里 组队邀请、行会宣战这类关键信令丢了没有兜底,玩家只能反复手点,高峰期体验很差。重试机制给信令加确认回执:…
实战应用:用在哪里 新资料片上线首日预约量常是日常十倍,一口气全开会让数据库与登录网关同时过载。滚动开区把开区动作排成队列:…
实战应用:用在哪里 百人同屏的沙巴克外围战场,每个玩家每秒跑动会触发数次位置更新,全部即时下发时广播量随人数平方增长,网关先…