Files

97 lines
7.3 KiB
Markdown
Raw Permalink Normal View History

# Ananta (Project Mugen) CBT 4229938 Private Server & Proxy Engine
เซิร์ฟเวอร์ส่วนตัว (Private Server) และระบบ HTTPS/SNI Proxy สำหรับเกม **Ananta (Project Mugen / 代号:无限大)** ไคลเอนต์เวอร์ชัน **CBT 4229938** พัฒนาด้วยสถาปัตยกรรม Clean Architecture C# .NET 8 (UX-RPC Binary Protocol) ร่วมกับ Node.js Proxy เพื่อจำลองการเชื่อมต่อและเล่นเกมในโหมด Sandbox / Free-Roam ได้อย่างสมบูรณ์ รองรับทั้งการเข้าเล่นผ่าน PC และ Mobile APK
> 📖 **รายการระบบและฟีเจอร์ทั้งหมดของเซิร์ฟเวอร์**: ดูรายละเอียดฟีเจอร์เต็มได้ที่ [docs/FEATURES.md](docs/FEATURES.md)
---
## 🛠️ ความต้องการของระบบ (Prerequisites)
1. **Windows 10 / 11 (64-bit)**
2. **.NET 8.0 SDK**: [ดาวน์โหลดที่นี่](https://dotnet.microsoft.com/download/dotnet/8.0)
3. **Node.js (LTS v18 หรือ v20 ขึ้นไป)**: [ดาวน์โหลดที่นี่](https://nodejs.org/)
4. **Git & Git LFS**: [ดาวน์โหลดที่นี่](https://git-lfs.com/)
5. ตัวเกม **Ananta / Project Mugen (CBT Client build 4229938 หรือ Mobile APK 4063976)**
---
## 🚀 วิธีติดตั้งและเปิดใช้งานเซิร์ฟเวอร์
### 1. Clone Repository (จำเป็นต้องใช้ Git LFS)
```bash
git clone https://gaytea.cod-algieba.ts.net/GaCy/Ananta-ps.git
cd Ananta-ps
git checkout dev
git lfs pull
```
### 2. ติดตั้ง Certificate & Hosts
รันคำสั่งด้วย PowerShell (Administrator) เพื่อชี้โดเมน NetEase เข้าหาเซิร์ฟเวอร์เครื่องคุณ (`127.0.0.1`):
```powershell
powershell -ExecutionPolicy Bypass -File .\Ananta.Proxy\SETUP_PROXY_AS_ADMIN.ps1
```
*(หากต้องการยกเลิกการตั้งค่า Hosts ในภายหลัง สามารถรัน `REMOVE_PROXY_HOSTS_AS_ADMIN.ps1`)*
### 3. เปิดเซิร์ฟเวอร์
ดับเบิลคลิกเปิดใช้งานผ่านไฟล์:
```cmd
START.cmd
```
หรือรันผ่าน PowerShell:
```powershell
powershell -ExecutionPolicy Bypass -File .\Run-All.ps1
```
เมื่อขึ้นข้อความ `[READY]` แสดงว่าระบบพร้อมทำงาน:
* **HTTPS Gateway Proxy** (พอร์ต 443/80 และ Mobile Dispatch พอร์ต 5801)
* **Game Server** (พอร์ต 5200-5202)
* **GM Admin Web Panel** (พอร์ต 17888)
* **Debug WebUI Panel** (พอร์ต 5809)
### 4. เข้าเล่นเกม
* **PC:** เปิดไฟล์ `Ananta.exe` แล้วกดเริ่มเกม ตัวเกมจะทำการบายพาสล็อกอินและนำตัวละครเข้าสู่โลก Sandbox ทันที
* **Mobile (APK):** ชี้เกตเวย์หรือรันผ่าน Wi-Fi Proxy มายัง IP เครื่องเซิร์ฟเวอร์ (พอร์ต 5801/443)
### 5. แผงควบคุมผ่านเว็บเบราว์เซอร์
* **GM Admin Panel**: [http://127.0.0.1:17888/](http://127.0.0.1:17888/) — จัดการไอเทม, กระเป๋า, ผู้เล่น, และอีโคโนมี
* **Debug WebUI Panel**: [http://127.0.0.1:5809/debug](http://127.0.0.1:5809/debug) — วาร์ปพิกัด, ปรับสภาพอากาศ/เวลา, เสกเอนทิตี, และควบคุมทราฟฟิก
---
## 📁 โครงสร้างโปรเจกต์ (Project Structure)
```text
Ananta-ps/
├── Ananta.Proxy/ # Node.js HTTPS Multi-Domain Proxy & Fastpatch Generator
│ ├── proxy/
│ │ ├── certs/ # ใบรับรอง SSL สำหรับดักโดเมน NetEase
│ │ ├── public/ # Static config, version JSON, serverlist, fastpatch.zip
│ │ └── server.js # Proxy Server หลัก
├── Ananta.SDK/ # Core Network Frame, Crypto (ChaCha8), และ UxRpc Serialization
├── Ananta.Server/ # C# .NET 8 UX-RPC Game Server
│ ├── Ananta.App/ # Console Entrypoint, Admin Web Server (17888) & Debug Panel (5809)
│ ├── Ananta.Core/ # Client Data Repositories, Wire Codecs & World State
│ ├── Ananta.Gameplay/ # ระบบ Traversal, City Traffic, Living Crowd & World Engine
│ ├── Ananta.Handlers/ # RPC Handlers (World, Switching, Gm, Vehicles, Minigames, Police)
│ ├── Ananta.Network/ # TCP Listener & Rpc Frame Dispatcher
│ ├── Ananta.RpcTypes/ # DTOs และ Method Contracts ของไคลเอนต์ 4229938
│ └── ClientData/4229938/ # ไฟล์ Database Configs ของเกม (Json, LFS)
├── config/ # private-server.json และตารางพิกัดมินิเกม/การจราจร
├── docs/ # เอกสารเสริม (FEATURES.md, devlog)
├── tools/ # เครื่องมือเสริม (Car Radio, Injector, Launcher, Python)
├── Run-All.ps1 # สคริปต์อัตโนมัติ (Fastpatch -> Build -> Launch)
└── START.cmd # ตัวเปิดเซิร์ฟเวอร์แบบ All-in-One
```
---
## ⚠️ ข้อควรระวังและการแก้ปัญหา (Troubleshooting)
- **เกมค้างหน้า "Initializing Game" หรือ "Initialize Client"**: ตรวจสอบว่า Fastpatch ถูกสร้างและวางไว้ในโฟลเดอร์รันไทม์เรียบร้อยแล้ว
- **พอร์ตชน (Ports already in use)**: หากมี Process ค้างอยู่ สามารถปิดผ่าน PowerShell: `Stop-Process -Name node, Ananta.App -Force`
- **ดาวน์โหลดไม่ผ่าน / ติด LFS Bandwidth**: ตรวจสอบว่า `git lfs pull` ดึงไฟล์โมเดลและ Database ขนาดใหญ่มาครบถ้วน
---
## ⚖️ ข้อกำหนดและเงื่อนไข (Disclaimer)
โปรเจกต์นี้จัดทำขึ้นเพื่อการศึกษาด้าน Reverse Engineering, Network Protocol Emulation และการอนุรักษ์ซอฟต์แวร์ (Software Preservation) เท่านั้น ไม่มีส่วนเกี่ยวข้องกับ NetEase Games หรือ Naked Rain แต่อย่างใด ห้ามนำไปใช้ในเชิงพาณิชย์