th-bingo-tools

command module
v0.0.0-...-2ce940b Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2026 License: MIT Imports: 19 Imported by: 0

README

th-bingo-tools

请配合 th-bingo服务端th-bingo客户端 食用

目前只有Windows版本

支持的作品

作品 状态 备注
th06 红魔乡 无符卡练习模式,支持日文版(東方紅魔郷.exe)
th07 妖妖梦 支持符卡练习
th08 永夜抄 支持符卡练习,12种机体
th09 花映塚 对战游戏,无符卡
th10 风神录
th11 地灵殿
th12 星莲船
th13 神灵庙
th14 辉针城
th15 绀珠传
th16 天空璋
th17 鬼形兽
th18 虹龙洞

所有支持的作品均同时支持日文原版和中文版(包括通过 thcrap 启动的版本)。

编译

go build -o th-bingo-tools.exe

运行

运行后监听 9760 端口,访问 ws://127.0.0.1:9760/ws 即可获取选卡、收卡的回调。

th-bingo-tools.exe -h 可以查看更多命令行参数的用法

回调就是一个json,如下所示:

{
  "game": 18,
  "id": 1,
  "event": 1,
  "mode": 1,
  "role": "Reimu",
  "rank": "L",
  "score": 123450
}

各字段含义如下:

字段 类型 含义
game int 作品号(6、7、8、10-18)
id int 符卡id,游戏里可以看到 No.xx
name str 符卡名,不一定有的字段,也不一定是中文,不建议使用
event int 事件,0-进入符卡,1-收取符卡
mode int 0-游戏模式或Practice Start
1-Spell Practice
role str 角色的英文名(见下方表格)
rank str 难度(E、N、H、L、EX、PH)
score int 符卡最高分数,一般只有Spell Practice才有,没有分数则没有此字段

角色的英文名:(对于有不同子机的作品,在英文名后加字母表示,例如:ReimuA、SakuyaB。特别地,天空璋不区分子机,鬼形兽用WOE三个字母表示三个支援。)

英文名 含义 备注
Reimu 灵梦
Marisa 魔理沙
Sakuya 咲夜
Sanae 早苗
Youmu 妖梦
Reisen 铃仙 仅在绀珠传中有
Cirno 琪露诺 仅在天空璋中有
Aya 射命丸文 仅在天空璋中有
Yukari 仅在永夜抄中有
Alice 爱丽丝 仅在永夜抄中有
Remilia 蕾米莉亚 仅在永夜抄中有
Yuyuko 幽幽子 仅在永夜抄中有
ReimuYukari 结界组 仅在永夜抄中有
MarisaAlice 咏唱组 仅在永夜抄中有
SakuyaRemilia 红魔组 仅在永夜抄中有
YoumuYuyuko 幽冥组 仅在永夜抄中有

开发相关

总体思路就是用CE找一下存放符卡history数据的内存,然后找到规律。也可以参考 thprac 仓库中的内存结构体定义。

th06/th07 的内存布局与 th10+ 不同:符卡数据是全局数组而非按角色分组,使用 uint16 计数。th06 的 GameManager 位于绝对地址 0x69BCA0,th07 的位于 0x626270。详见 thprac 的 thprac_th06.hthprac_th07.h

th10+ 的例子:

https://github.com/CuteReimu/th-bingo-tools/blob/5725a77cd77025b3ad1f8a8d956b382be9a4db58/listener_th10.go#L4-L15

上述代码的意思是:从进程的基址开始,往后0x7783C个字节的位置,存放了指向角色数据结构体的指针,我们利用这个指针找到这个结构体后,再向后移动20个字节的位置,就是第一个角色(灵梦A)的id;而往后0x5A4个字节的位置,就是第一个角色的符卡数据的结构体的起始地址。每个角色的数据距离上一个角色的数据0x437C个字节的距离。用CE找到这些地址之后,我们把内容读出来即可。

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL