max / HHCLUB 自动抽奖 · 情绪价值拉满版

Install steps: Install a userscript manager, select Install, then open a website matched by the script.

Userscript Beginners HOWTO Chrome Edge Firefox

Publikováno:

Verze: 1.35.0.1+96b62f4 aktualizováno

Shrnutí: HHCLUB 自动抽奖增强版 · 分奖项中奖次数统计 · 一抽到底 · 实时余额 · 站内信清理

domovská stránka: https://github.com/SAGIRIxr/HH-Automatic-lottery

Podpora: https://github.com/SAGIRIxr/HH-Automatic-lottery/issues

Licence: MIT

Antifunkce: nespecifikováno

Source and freshness

The following figures come from the original source and are separate from activity on this site.

Original script: HHCLUB 自动抽奖 · 情绪价值拉满版

Source version: 1.35.0

Last source check:

Last successful check:

Source daily installs
0
Source total installs
0
OpenUserJS install requests
0

Requests received by this site are not proof that a user completed installation.

Clicking Install records a request on this site; it does not confirm installation. Not working after install? View troubleshooting and issues

HHCLUB 自动抽奖 · 情绪价值拉满版

给 lucky.php 挂一个悬浮 Dashboard,自动抽奖,并且真的告诉你每个奖中了多少次、这一轮到底是赚还是亏。


为什么要再做一版

上游那个「展开详细奖品统计」的容器写死了 display:none,代码里没有任何一处把它改回来 —— 按钮从来没出现过,统计数据一直写进一个你永远看不见的 DOM 里。

抽了几千次,最后只能看到一个总数。情绪价值为零。

这一版把它挖出来了,顺手修了统计口径、抽奖循环和几个会实际影响扣豆的问题,再给大奖加了个像样的排面。


主要功能

🎁 奖项明细

按类别聚合,显示中奖次数 + 占比 + 占比条 + 累计数值,点一下展开到具体档位。下面是一份真实的 500 抽样本:

🎁 奖项明细                          共 500 抽 · 5 种
──────────────────────────────────────────────────
💰 憨豆        427 次  85.4%  ███████████
   累计 2,279,200
   ├ 2,000 憨豆     136 次   27.20%
   ├ 100 憨豆       122 次   24.40%
   ├ 1,000 憨豆     100 次   20.00%
   ├ 5,000 憨豆      67 次   13.40%
   └ 780,000 憨豆     2 次    0.40%
⬆️ 上传量       34 次   6.8%  █
🎫 补签卡       28 次   5.6%  █
🌈 彩虹ID        9 次   1.8%  ▌
📧 邀请          2 次   0.4%  ▏

奖池里这一类的 typeText 写的是「魔力」,但图标用的是 bean_icon、消耗侧也叫憨豆 —— 同一种货币,NexusPHP 的默认叫法没改干净而已,所以归到同一类。

👑 大奖全屏庆祝

中到 VIP 或 780,000 憨豆 时,整屏压暗、金色光芒旋转、奖品名放大登场,外加三束礼花。

👑 已是 VIP 时的憨豆折算

抽奖页角落里写着一条:「当中奖 [VIP] 时,如果用户已经是 VIP 或以上等级,奖励憨豆:1000000」。但接口返回的中奖文案还是「VIP 7 Day(s)」—— 转盘确实停在 VIP 那一格,替换是发奖时才做的。

照文案记账的话,这一注会被记成「VIP 7 天」,一百万憨豆凭空蒸发,盈亏也跟着错。

这一版不去猜你是不是 VIP,让余额说话:中到 VIP 就当场回服务端核一次,余额真比估算多出一大笔,就认定发生了替换。不是 VIP 的用户余额对得上,照常记 VIP 天数。

折算后这一注仍然算一次 VIP 中奖 —— 转盘确实停在 VIP 那格,中奖次数和爆率统计不该少这一笔。变的只是 VIP 大类底下的档位:

⭐ VIP           2 次   0.10%
   累计 7 天
   另折算 1,000,000 憨豆
   ├ 7 天                    1 次
   └ 已转换为憨豆 1,000,000    1 次

累计分两行是因为天数和憨豆不是一个单位 —— 「累计 7 天」只算真拿到的,折算掉的那部分另起一行。VIP 天数不加(没真拿到),憨豆收入照加(盈亏要算对),抽数和消耗都不动。

顶部汇总里 VIP 那张卡显示的是中奖次数不是天数:折算掉的那次天数是 0,按天数显示的话卡片永远空着,次数才是「中了几次」这件事本身。「获得憨豆」卡片下面会注明其中有多少来自折算,免得你拿各档位乘开去对总数、发现差了一百万。

判定折算与否不看余额,看等级。「VIP 或以上等级」是 NexusPHP 的 class,站点可以把等级名改得面目全非,但等级图标还是标准文件名,按图标查 class 排名就是确定答案 —— 抽奖期间别人赠送魔力、做种收益在涨、另一个标签页在花憨豆,都干扰不到。读不到等级时才退回余额差,且要求落在公布金额 ±20,000 的窄带里,超出就明说无法确认、按 VIP 记。

🔥 一抽到底

勾上就忽略「最大抽奖次数」,一直抽到余额跌破你设的保留线为止 —— 想留 50,000 憨豆做别的就填 50,000,默认 0 就是抽干。

这基本是挂机用的,所以脚本会在定期校准时顺带跟进站点的变动(比如单次消耗被调了),只在日志里留一行,不弹窗、不暂停、不自作主张停下来。单次消耗尤其要紧:页面上那个数字不刷新永远不变,不跟进的话停止判断会拿旧成本去算,保留线就守不住了。

📪 站内信清理

站点每抽一次就发一封「幸运大转盘 中奖通知」,挂机一晚收件箱就被埋了 —— 线上实测 1,385 封信里 1,362 封是它。

  • 🗑 立即清空 —— 翻完整个收件箱,弹确认框二选一:只删抽奖通知(其余原样保留)或全部删除(整个收件箱清空)。数字都摆在按钮上,你按了才删
  • 📪 自动删抽奖站内信 —— 挂机时每 25 抽顺手清一次,只读第一页

「只删抽奖通知」认的是主题里带「幸运大转盘」这几个字,手动抽的和脚本抽的一视同仁 —— 站点发的是同一封信,分不出来也没必要分。收件箱里的「种子被删除」这类通知一封不碰。

删完还会补扫一次第一页:扫描到删完的这几秒里可能又中了几次奖,那些新通知不在第一遍的名单里,补一刀收掉。删除走的就是收件箱自己那个批量表单。

收件箱每页显示多少封是站点设置里的 pmnum,默认 100,但也有人设成 10 —— 那样一千多封信要翻一百多页。脚本发现页数太多时会问一句要不要改成每页 100(只问一次,答过就不再打扰)。改的时候整张「网站设定」表单按当前值原样回填,只动这一项,改完还会回头核一遍到底生效没有。

💰 实时憨豆余额

站点抽完只转转盘、弹窗,从不刷新页面上的憨豆数,所以上游版本抽奖期间那个数字一直是进页面时的旧值,「最多可抽」也跟着冻结。

这一版每抽本地结算一次,每 25 抽回服务端拉一次权威值校准漂移,面板上标着「已校准」还是「估算 · N 抽前校准」,也可以随时手动点 🔄。一抽到底真要停之前会先校准再确认,免得因为估算偏差多抽或少抽。

📤 导出 · 备份 · 导入

统计存在 localStorage 里,换台机器就没了,所以有一套备份/导入:

  • JSON 备份 / 导入 —— A 设备导出,B 设备导入,战绩跟着走。导入时三选一:合并(两边抽数相加,换设备用这个)、覆盖、取消
  • CSV 导出 —— 当前视图的分奖项明细,带 BOM,Excel 打开不乱码

⚙️ 其他

  • 间隔、最大次数、视图模式、面板位置、动画开关、一抽到底、保留憨豆、自动删站内信全部持久化
  • 「本次数据 / 历史总计」切换;面板可拖动,兼容触屏;多标签页不互相覆盖统计
  • 中奖动画可关,页面切到后台自动跳过;尊重系统的「减弱动态效果」设置

相比上游修了什么

统计

  • 详细统计容器写死 display:none 且无处改回,展开按钮从未出现过
  • 统计粒度从「完整奖品文案」改成「类别 → 档位」两层聚合,不再碎成几十条
  • 「本次中奖」恒等于抽奖次数、没有信息量,改成奖项种类数

抽奖行为(这几个会实际影响扣豆)

  • 用 setInterval 周期调用 async 抽奖函数,请求一慢过间隔就并发飞出多个,既重复扣豆也触发站点的重复点击风控 —— 改成 await 完成后再排下一次的串行循环
  • 串行化同时消掉了 startLottery() 里 timer 引用被覆盖导致的定时器泄漏(停止后仍在后台抽)
  • setInterval 的周期创建时就固定,被限流撑到 30 秒后即使一直成功也再降不回来
  • 单次消耗用 match(/(\d+)/) 解析,遇到 2,000 只取到 2,可抽次数变成天文数字、成本全错
  • 接口非限流类错误只累加计数器不做任何事,一直 500 就会无限刷请求 —— 现在连续 5 次失败 / 12 次限流自动停止
  • 限流和接口错误分开计数,几次限流叠上一两次网络抖动不再被误判成接口异常提前停机
  • 面板余额和「最多可抽」一路冻结 —— 改为每抽本地结算 + 定期回服务端校准
  • 抽奖间隔严格按设定值执行(不再随机浮动),可精确到小数点后两位;停止按钮可立刻中断等待,不用等满当前间隔
  • 自适应延迟:实测站点的冷却就是上一抽返回的转盘时长(data.duration,随机落在 4~7.7 秒),所以任何固定间隔都躲不掉「不要重复点击」—— 填 5.1 秒时约三成的抽会撞上。现在按上一抽的转盘时长排队(100 抽实测 0 被拒),开着时手填的间隔完全不生效(输入框置灰),面板实时显示「上一抽转盘几秒 · 本次等几秒」。缓冲毫秒数可在面板自定义,允许负值贴边 —— 服务端在请求路上就开始计时;贴边失手被挡回不扣憨豆,300ms 后自动补一枪

数据迁移

存储 key 从 hhanclub_lottery_stats_v3 升到 v4,首次运行自动迁移,历史数据一条不丢,旧 key 保留不删。本仓库早先版本一度把「魔力」误拆成独立分类(导致盈亏少算一大半),那样的数据在读取时会自动合回憨豆。


致谢

本版本站在两位作者的工作上,均为 MIT 协议:

源码与 issue:https://github.com/SAGIRIxr/HH-Automatic-lottery


免责声明

脚本仅调用站点自身的抽奖接口,不做任何数据篡改。请自行控制抽奖频率,因使用本脚本产生的任何后果由使用者自行承担。

Hodnocení: 0