Skip to content

Commit 54a2c1b

Browse files
committed
📝 docs: README
1 parent 5e257da commit 54a2c1b

2 files changed

Lines changed: 90 additions & 25 deletions

File tree

README.en-US.md

Lines changed: 49 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,20 @@ This tool is completely free and open-source. If you paid for it, you've been sc
3131

3232
## 📢 Before You Start
3333

34-
Note: Unlocking characters is only effective locally; others will still see your original character and emojis.
34+
Note: Unlocking characters is only effective locally; others will still see your original character and emojis. For example, sending the 3rd emoji of the new character still appears as the 3rd emoji of your original character to everyone else.
3535

3636
> [!CAUTION]
37-
> Mod at your own risk — safety comes first.
37+
> Mod responsibly—safety always comes first.
3838
>
39-
> This project is for learning and research only; delete it within 24 hours of download and do not use it for commercial purposes.
39+
> Improper use or careless configuration may get your account banned.
4040
>
41-
> The official Mahjong Soul service may detect this and ban your account.
41+
> This project is for learning, research, and communication only; delete it within 24 hours of download and never use it for commercial purposes, otherwise you bear all consequences.
4242
>
43-
> Any consequences are solely your responsibility; using this project means you accept these terms.
43+
> Mahjong Soul's official servers may detect this project and ban your account; the authors assume no liability for any result.
44+
>
45+
> Using this project means you acknowledge and agree to all of the above.
46+
47+
![Deal-in meme](https://memeprod.ap-south-1.linodeobjects.com/user-gif-post/1647655593730.gif)
4448

4549
## ✈️ Telegram Channel & Group
4650

@@ -52,7 +56,7 @@ You can click the images to join or scan the QR codes.
5256

5357
## 🥰 Current Features
5458

55-
The program consists of two parts: `mod` and `helper`, which are a combination of [Mahjong Soul mod_plus](https://github.com/Avenshy/mahjong_mod_plus) and [mahjong-helper-mahjong-mitmproxy](https://github.com/Avenshy/mahjong-helper-mahjong-mitmproxy).
59+
The program consists of two parts: `mod` and `helper`, combining [Majsoul mod_plus](https://github.com/Avenshy/majsoul_mod_plus) and [mahjong-helper-majsoul-mitmproxy](https://github.com/Avenshy/mahjong-helper-majsoul-mitmproxy).
5660

5761
The default configuration enables `helper` and disables `mod`. To customize, modify the `mod_switch` and `helper_switch` in `./liqi_config/settings.json`.
5862

@@ -82,10 +86,12 @@ The default configuration enables `helper` and disables `mod`. To customize, mod
8286
- In `liqi_config/settings.json`, set the universal settings including toggles for Helper and Mod—`modSwitch` and `helperSwitch`, `false` is off, `true` is on.
8387
- In `liqi_config/settings.mod.json`, set the Mod-specific settings.
8488
2. Start the program by running the executable file.
85-
3. Start the game, either the web version or the client/Steam version. Make sure Mahjong Soul traffic goes through the local `majsoul_max_rs` HTTP proxy (listening on `127.0.0.1:23410`). It is recommended to use a rule-based proxy client such as `Clash` or `Surge` (with configuration overrides) — see the “Proxy & Routing” section below for examples.
89+
3. Start the game (web or client/Steam) and make sure all Mahjong Soul traffic goes through the local `majsoul_max_rs` HTTP proxy (it listens on `127.0.0.1:23410` by default). A rule-based proxy client such as `Clash` or `Surge` (with configuration overrides) makes this easy—see “Proxy & Routing” for concrete examples.
90+
- Web version: usually you only need the browser to honor the system proxy or apply the domain rules, without enabling `TUN` / enhanced mode.
91+
- Client / Steam: likewise split the game process traffic to `majsoul_max_rs` via `Clash` / `Surge`, but you **must** enable `TUN` / enhanced mode in the proxy client or the local process traffic will not be hijacked.
8692
4. Log in to the game and enjoy.
8793

88-
Instructions for macOS and Linux are similar.
94+
macOS or Linux users can follow the same flow; only the proxy setup in step 3 differs slightly.
8995

9096
For the Android version, assuming you are technically proficient, only key terms are provided here: `Termux`, `NekoBox`, effective only on game route 1.
9197

@@ -96,11 +102,11 @@ For the Android version, assuming you are technically proficient, only key terms
96102
Before routing traffic through it, import and trust the `hudsucker.cer` root certificate in your operating system (you can download it from the [hudsucker](https://github.com/omjadas/hudsucker/blob/main/examples/ca/hudsucker.cer)); otherwise HTTPS handshakes may fail due to certificate verification.
97103

98104
> [!CAUTION]
99-
> For native clients / Steam, enable `TUN` / enhanced mode in your proxy client so that the game process traffic actually passes through `majsoul_max_rs`.
105+
> For native clients / Steam, enable `TUN` / enhanced mode in your proxy client so the game process traffic actually passes through `majsoul_max_rs`, and make sure traffic leaving `majsoul_max_rs` is not routed back to itself (avoiding loopback proxies).
100106
>
101107
> For the web version in a browser, enhanced mode is usually unnecessary as long as the browser follows the system proxy or correct domain rules.
102108
103-
### Clash example (local Rust version)
109+
### Using Clash for Routing
104110

105111
```yml
106112
proxies:
@@ -118,13 +124,25 @@ proxy-groups:
118124
- DIRECT
119125

120126
rules:
121-
# Client / Steam (recommended)
127+
# Required to avoid loopback routing
128+
- PROCESS-NAME,majsoul_max_rs,DIRECT
129+
- PROCESS-NAME,majsoul_max_rs.exe,DIRECT
130+
# Choose the section below that matches your platform
131+
# Client / Steam
122132
- PROCESS-NAME,雀魂麻將,🀄 Majsoul
123133
- PROCESS-NAME,jantama_mahjongsoul.exe,🀄 Majsoul
124134
- PROCESS-NAME,Jantama_MahjongSoul.exe,🀄 Majsoul
135+
# Web (browser)
136+
- DOMAIN-KEYWORD,majsoul,🀄 Majsoul
137+
- DOMAIN-KEYWORD,maj-soul,🀄 Majsoul
138+
- DOMAIN-KEYWORD,catmjstudio,🀄 Majsoul
139+
- DOMAIN-KEYWORD,catmajsoul,🀄 Majsoul
140+
- IP-CIDR,146.66.155.0/24,🀄 Majsoul
141+
- IP-CIDR,185.25.182.18/32,🀄 Majsoul
142+
- IP-CIDR,203.107.63.200/32,🀄 Majsoul
125143
```
126144
127-
### Surge example (local Rust version)
145+
### Using Surge for Routing
128146
129147
```text
130148
[Proxy]
@@ -134,14 +152,26 @@ MajsoulMax-rs = http, 127.0.0.1, 23410
134152
🀄 Majsoul = select, MajsoulMax-rs, DIRECT
135153

136154
[Rule]
155+
# Required to avoid loopback routing
156+
PROCESS-NAME,majsoul_max_rs,DIRECT
157+
# Choose the section below that matches your platform
158+
# Client / Steam
137159
PROCESS-NAME,雀魂麻將,🀄 Majsoul
138160
PROCESS-NAME,jantama_mahjongsoul.exe,🀄 Majsoul
139161
PROCESS-NAME,Jantama_MahjongSoul.exe,🀄 Majsoul
162+
# Web (browser)
163+
DOMAIN-KEYWORD,majsoul,🀄 Majsoul
164+
DOMAIN-KEYWORD,maj-soul,🀄 Majsoul
165+
DOMAIN-KEYWORD,catmjstudio,🀄 Majsoul
166+
DOMAIN-KEYWORD,catmajsoul,🀄 Majsoul
167+
IP-CIDR,146.66.155.0/24,🀄 Majsoul
168+
IP-CIDR,185.25.182.18/32,🀄 Majsoul
169+
IP-CIDR,203.107.63.200/32,🀄 Majsoul
140170
```
141171

142-
### Web / platforms without PROCESS-NAME rules
172+
### Web / Platforms Without PROCESS-NAME Rules
143173

144-
If you play in a browser or on platforms that ignore `PROCESS-NAME` (e.g. iOS / iPadOS), use domain/IP rules instead (Clash example):
174+
If you play in a browser or on platforms that cannot use `PROCESS-NAME` rules (e.g. iOS / iPadOS), mimic the domain/IP rules used for the web version (Clash example below). In this scenario you must deploy `majsoul_max_rs` on a different machine (for example via [MajsoulMax-rs-docker](https://github.com/zhuozhiyongde/MajsoulMax-rs-docker) on a VPS), otherwise routing Mahjong Soul traffic to a local `majsoul_max_rs` node will create a loopback proxy.
145175

146176
```yml
147177
rules:
@@ -172,7 +202,11 @@ Override example:
172202
- MajsoulMax-rs
173203
- DIRECT
174204
+rules:
175-
# Client / Steam (recommended)
205+
# Required to avoid loopback routing
206+
- PROCESS-NAME,majsoul_max_rs,DIRECT
207+
- PROCESS-NAME,majsoul_max_rs.exe,DIRECT
208+
# Choose the section below that matches your platform
209+
# Client / Steam
176210
- PROCESS-NAME,雀魂麻將,🀄 Majsoul
177211
- PROCESS-NAME,jantama_mahjongsoul.exe,🀄 Majsoul
178212
- PROCESS-NAME,Jantama_MahjongSoul.exe,🀄 Majsoul

README.md

Lines changed: 41 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -103,11 +103,12 @@ macOS 或 Linux 用户,可以参考 Windows 的步骤,步骤 3 有所不同
103103
在配置分流规则前,请先在系统中导入并信任 `hudsucker.cer` 根证书(可从 [omjadas/hudsucker](https://github.com/omjadas/hudsucker/blob/main/examples/ca/hudsucker.cer) 下载),否则 HTTPS 流量可能会因为证书校验失败而无法正常工作。
104104

105105
> [!CAUTION]
106-
> 本地客户端 / Steam 端等进程需要在代理软件中开启 `TUN` / 增强模式,才能保证进程流量经过 `majsoul_max_rs`
106+
>
107+
> 本地客户端 / Steam 端等进程需要在代理软件中开启 `TUN` / 增强模式,才能保证进程流量经过 `majsoul_max_rs`;但请务必注意避免回环代理,即你要保证从 `majsoul_max_rs` 发出的流量不会被分流回自身。
107108
>
108109
> 网页版(浏览器)一般只要正确配置系统代理或域名规则即可,通常不需要开启增强模式。
109110
110-
### 使用 Clash 分流(本地 Rust 版本)
111+
### 使用 Clash 分流
111112

112113
```yml
113114
proxies:
@@ -125,13 +126,25 @@ proxy-groups:
125126
- DIRECT
126127

127128
rules:
128-
# 客户端 / Steam(推荐)
129+
# 必须有这两条,否则会导致回环代理
130+
- PROCESS-NAME,majsoul_max_rs,DIRECT
131+
- PROCESS-NAME,majsoul_max_rs.exe,DIRECT
132+
# 下面两部分可选,根据你的游戏平台选择其一即可
133+
# 客户端 / Steam
129134
- PROCESS-NAME,雀魂麻將,🀄 雀魂麻将
130135
- PROCESS-NAME,jantama_mahjongsoul.exe,🀄 雀魂麻将
131136
- PROCESS-NAME,Jantama_MahjongSoul.exe,🀄 雀魂麻将
137+
# 网页版(浏览器)
138+
- DOMAIN-KEYWORD,majsoul,🀄 雀魂麻将
139+
- DOMAIN-KEYWORD,maj-soul,🀄 雀魂麻将
140+
- DOMAIN-KEYWORD,catmjstudio,🀄 雀魂麻将
141+
- DOMAIN-KEYWORD,catmajsoul,🀄 雀魂麻将
142+
- IP-CIDR,146.66.155.0/24,🀄 雀魂麻将
143+
- IP-CIDR,185.25.182.18/32,🀄 雀魂麻将
144+
- IP-CIDR,203.107.63.200/32,🀄 雀魂麻将
132145
```
133146
134-
### 使用 Surge 分流(本地 Rust 版本)
147+
### 使用 Surge 分流
135148
136149
```text
137150
[Proxy]
@@ -141,14 +154,24 @@ MajsoulMax-rs = http, 127.0.0.1, 23410
141154
🀄 雀魂麻将 = select, MajsoulMax-rs, DIRECT
142155

143156
[Rule]
157+
# 必须有这条,否则会导致回环代理
158+
PROCESS-NAME,majsoul_max_rs,DIRECT
159+
# 下面两部分可选,根据你的游戏平台选择其一即可
160+
# 客户端 / Steam
144161
PROCESS-NAME,雀魂麻將,🀄 雀魂麻将
145-
PROCESS-NAME,jantama_mahjongsoul.exe,🀄 雀魂麻将
146-
PROCESS-NAME,Jantama_MahjongSoul.exe,🀄 雀魂麻将
162+
# 网页版(浏览器)
163+
DOMAIN-KEYWORD,majsoul,🀄 雀魂麻将
164+
DOMAIN-KEYWORD,maj-soul,🀄 雀魂麻将
165+
DOMAIN-KEYWORD,catmjstudio,🀄 雀魂麻将
166+
DOMAIN-KEYWORD,catmajsoul,🀄 雀魂麻将
167+
IP-CIDR,146.66.155.0/24,🀄 雀魂麻将
168+
IP-CIDR,185.25.182.18/32,🀄 雀魂麻将
169+
IP-CIDR,203.107.63.200/32,🀄 雀魂麻将
147170
```
148171

149-
### 网页版 / 无法使用进程名规则的场景
172+
### 无法使用进程名规则的场景
150173

151-
如果你是网页版、iOS / iPadOS 等无法使用 `PROCESS-NAME` 规则的平台,可以改用域名关键字或 IP 分流(Clash 示例)
174+
如果你是 iOS / iPadOS 等无法使用 `PROCESS-NAME` 规则的平台,可以仿照网页版使用域名关键字或 IP 分流(Clash 示例),但此时需要分离部署 `majsoul_max_rs`,也即其不能和你的主机在同一机子上,否则会导致回环代理,分离部署可以考虑将代理节点部署在 VPS 上,参见 [MajsoulMax-rs-docker](https://github.com/zhuozhiyongde/MajsoulMax-rs-docker)
152175

153176
```yml
154177
rules:
@@ -161,6 +184,8 @@ rules:
161184
- IP-CIDR,203.107.63.200/32,🀄 雀魂麻将
162185
```
163186
187+
### 覆写配置示例
188+
164189
如果你使用的是支持覆写的代理客户端(如 `Clash Verge`、`Mihomo Party` 或支持覆写配置的 `Surge`),建议将上述节点与规则写在单独的覆写文件中,需要玩雀魂时再一键启用。
165190

166191
覆写示例:
@@ -179,11 +204,17 @@ rules:
179204
- MajsoulMax-rs
180205
- DIRECT
181206
+rules:
182-
# 客户端 / Steam(推荐)
207+
# 必须有这两条,否则会导致回环代理
208+
- PROCESS-NAME,majsoul_max_rs,DIRECT
209+
- PROCESS-NAME,majsoul_max_rs.exe,DIRECT
210+
# 下面两部分可选,根据你的游戏平台选择其一即可
211+
# 客户端 / Steam
212+
- PROCESS-NAME,majsoul_max_rs,DIRECT
213+
- PROCESS-NAME,majsoul_max_rs.exe,DIRECT
183214
- PROCESS-NAME,雀魂麻將,🀄 雀魂麻将
184215
- PROCESS-NAME,jantama_mahjongsoul.exe,🀄 雀魂麻将
185216
- PROCESS-NAME,Jantama_MahjongSoul.exe,🀄 雀魂麻将
186-
# 网页版(浏览器 / iOS / iPadOS
217+
# 网页版(浏览器)
187218
- DOMAIN-KEYWORD,majsoul,🀄 雀魂麻将
188219
- DOMAIN-KEYWORD,maj-soul,🀄 雀魂麻将
189220
- DOMAIN-KEYWORD,catmjstudio,🀄 雀魂麻将

0 commit comments

Comments
 (0)