117 lines
10 KiB
Markdown
117 lines
10 KiB
Markdown
# Escape Penacony Standalone 📱✨
|
|
## ppSR All-in-One Server & Map Teleporter - Native Android Application
|
|
|
|
**Escape Penacony Standalone** เป็นแอปพลิเคชัน Android แบบ All-in-One ที่รวมทั้ง **ตัวรันเซิร์ฟเวอร์จำลอง ppSR (Embedded Python 3.14)**, **ตัวอัปเดตเซิร์ฟเวอร์ตรงจากต้นทาง AFN**, **ระบบวาร์ปแผนที่ 85 ฉาก**, และ **เครื่องมือปรับแต่งเซิร์ฟเวอร์** ไว้ในแอปเดียวจบ **โดยไม่ต้องใช้สิทธิ์ Root, ไม่ต้องใช้ Shizuku และไม่ต้องติดตั้งแอป com.afn.ppSR แยกต่างหาก**
|
|
|
|
- **Application ID / Package**: `com.catlas.escapepenacony`
|
|
- **เวอร์ชันล่าสุด (Current Version)**: `v1.1.1`
|
|
- **สถาปัตยกรรม (Architecture)**: Native Android (Kotlin + Jetpack Compose + Material Design 3 + Embedded Chaquopy Python 3.14)
|
|
- **Target ABI**: `arm64-v8a` (Android 8.0+ / API 26+)
|
|
|
|
---
|
|
|
|
## 🌟 ฟีเจอร์หลัก (Key Features)
|
|
|
|
### 1. 🚀 Embedded Python 3.14 Server Runtime (รันเซิร์ฟเวอร์ในตัวเอง 100%)
|
|
- **ไม่ต้องลงแอป ppSR เพิ่ม:** ฝัง Chaquopy Python 3.14 Native Runtime ในตัวแอป พร้อมไลบรารี CPython `libpython3.14.so` และ `libchaquopy_java.so`
|
|
- **📦 Pre-bundled Python Dependencies (100% Offline):** บรรจุแพ็กเกจ Python ทั้ง 19 ตัว (`requests`, `werkzeug`, `flask`, `marshmallow`, `dataclasses-json`, `protobuf`, `urllib3`, `certifi`, `idna`, `charset-normalizer`, `jinja2`, `click`, `blinker`, ฯลฯ) ฝังไว้ในแอปตั้งแต่ติดตั้ง หมดปัญหา `No module named 'requests'` หรือ `werkzeug` โดยไม่ต้องต่อเน็ตดาวน์โหลด wheel จาก PyPI
|
|
- **Foreground Service:** รันเป็นบริการเบื้องหลังพร้อมแจ้งเตือนสถานะ (`specialUse` Service) ไม่ถูก Android ฆ่าโปรเซสเมื่อสลับไปเปิดแอปเกม
|
|
- **Network Ports:**
|
|
- Dispatch Server (HTTP / Flask): `127.0.0.1:21000`
|
|
- Gameserver Forward (KCP Packet): `127.0.0.1:23301`
|
|
- **Live Terminal Console:** หน้าจอแสดงผล Log การทำงานของเซิร์ฟเวอร์แบบเรียลไทม์ พร้อมปุ่มคัดลอก (Copy) และล้างหน้าจอ (Clear)
|
|
|
|
### 2. 🛠️ เครื่องมือปรับแต่งและปุ่มต่างๆ ของเซิร์ฟเวอร์ (Server Tools)
|
|
- **🔑 Set Password / Key:** มีหน้าต่างกำหนดรหัสผ่านเซิร์ฟเวอร์ (`key`) ใน `persistent.json`
|
|
- **👤 Edit Trailblazer:** ปรับแต่งเพศตัวเอก (หญิง Stelle / ชาย Caelus) และ Path (ทำลายล้าง, อนุรักษ์, ประสาน, ลบล้าง, ปิติสุข) รวมถึง March 7th ได้ทันที
|
|
- **⚡ Send Hotfix (Online / Offline Toggle):** สลับโหมด `send_hotfix` ในคลิกเดียว:
|
|
- *เปิด (True):* สำหรับต่อเน็ตดึง Assets จาก Hoyoverse
|
|
- *ปิด (False):* สำหรับเล่นแบบออฟไลน์ 100% (ช่วยแก้ปัญหาเปิดเกมแล้วจอดำ)
|
|
- **📁 Misc Files Explorer & Editor:** ตัวจัดการไฟล์ในโฟลเดอร์ `misc/` ในตัว สามารถเปิดดูและแก้ไขไฟล์คอนฟิกต่างๆ เช่น `config.json`, `hotfix.json`, `freesr-data.json`, `persistent.json` ได้สดๆ ภายในแอป
|
|
|
|
### 3. 🔄 ระบบอัปเดตคู่ (Dual Update System)
|
|
- **📱 App Updater (อัปเดตตัวแอป APK):**
|
|
- ตรวจสอบเวอร์ชันล่าสุดของแอปผ่าน GitHub Releases อัตโนมัติในพื้นหลังเมื่อเปิดแอป
|
|
- มีปุ่ม **"Check App Update"** ให้กดตรวจหาและดาวน์โหลดติดตั้ง APK เวอร์ชันใหม่ได้ทันทีจากในแอป
|
|
- **⚙️ ppSR Server Core Updater (อัปเดตไฟล์เซิร์ฟเวอร์):**
|
|
- ซิงค์ตรงกับ File Garden (`VERSIONS` & `build.zip`)
|
|
- ตรวจสอบเวอร์ชันที่ติดตั้งเทียบกับเวอร์ชันล่าสุดอย่างแม่นยำ (แสดงสถานะ "You are using the latest version" เมื่อเวอร์ชันตรงกัน)
|
|
- ระบบติดตั้งแบบ Staging ป้องกัน Zip Slip และสำรองไฟล์คอนฟิกผู้ใช้ (`persistent.json`, `config.json`) ให้อัตโนมัติ เซฟไม่หาย 100%
|
|
- เมนู **Select Version Archive** เลือกติดตั้งเวอร์ชันเก่าหรือใหม่ย้อนหลังได้อิสระ
|
|
|
|
### 4. 🗺️ ตัวเลือกโลกและวาร์ปแผนที่ (Escape Penacony Teleporter)
|
|
- ครอบคลุม **8 ดวงดาว 85 ฉาก/แผนที่** จาก `scenes.json` (Astral Express, Space Station, Jarilo-VI, Xianzhou Luofu, Penacony ฯลฯ)
|
|
- **ระบบค้นหาและฟิลเตอร์:** ค้นหาชื่อฉากหรือ Plane ID และแยกแท็กชัดเจน:
|
|
- ⚔️ **Combat Ready**: มีเสา Calyx สำหรับต่อสู้
|
|
- 🗺️ **Safe Explore**: เสา Calyx ซ่อนที่ความลึก Y=-999999 ปลอดภัยจากการแครช
|
|
- 🧪 **Beta Exclusive**: ฉากพิเศษสำหรับไคลเอนต์เบต้า
|
|
- **Custom Coordinates:** กรอก Plane ID, X, Y, Z และ Map Layer ที่กำหนดเองได้อิสระ
|
|
- **Smart Teleport Flow:** หากเซิร์ฟเวอร์กำลังทำงาน ระบบจะหยุดชั่วคราว $\rightarrow$ เขียนไฟล์ `persistent.json` (UTF-8 No BOM) $\rightarrow$ รีสตาร์ตเซิร์ฟเวอร์ให้ใหม่อัตโนมัติ
|
|
- **รองรับ 3 ภาษา:** สลับระหว่าง **ภาษาไทย (TH)**, **English (EN)**, และ **简体中文 (ZH)** ได้ทันที
|
|
|
|
---
|
|
|
|
## 🏗️ โครงสร้างโปรเจกต์ (Project Structure)
|
|
|
|
```text
|
|
Escape-penacony-standalone/
|
|
├── app/
|
|
│ ├── build.gradle.kts
|
|
│ ├── libs/
|
|
│ │ └── chaquopy_java.jar # Chaquopy Java API Runtime
|
|
│ └── src/
|
|
│ ├── main/
|
|
│ │ ├── AndroidManifest.xml # Foreground Service & Permissions
|
|
│ │ ├── assets/
|
|
│ │ │ ├── scenes.json # ฐานข้อมูลแผนที่ 8 โลก 85 แมพ
|
|
│ │ │ └── chaquopy/ # Chaquopy stdlib, bootstrap & app.imy
|
|
│ │ ├── jniLibs/arm64-v8a/ # Native libraries (libpython3.14.so ฯลฯ)
|
|
│ │ ├── python/ # Python scripts (run_ppsr.py, loader.py)
|
|
│ │ └── java/com/catlas/escapepenacony/
|
|
│ │ ├── MainActivity.kt # Main Activity & Permission requests
|
|
│ │ ├── service/
|
|
│ │ │ └── ServerService.kt # Foreground Service จัดการ Python lifecycle
|
|
│ │ ├── data/
|
|
│ │ │ ├── PersistentRepository.kt # จัดการ persistent.json & misc files
|
|
│ │ │ ├── UpdateRepository.kt # ดาวน์โหลดและติดตั้ง build.zip จาก AFN
|
|
│ │ │ └── SceneRepository.kt # โหลดและแปลงพิกัดฉากจาก scenes.json
|
|
│ │ ├── model/
|
|
│ │ │ ├── SceneModels.kt # โมเดลข้อมูล Planet & Scene
|
|
│ │ │ └── PersistentConfig.kt # โครงสร้าง Config พิกัด
|
|
│ │ └── ui/
|
|
│ │ ├── MainScreen.kt # Compose UI หน้าจอหลัก 3 แท็บ
|
|
│ │ ├── Components.kt # Reusable UI widgets
|
|
│ │ └── theme/ # Cyberpunk Dark Theme
|
|
│ └── test/java/com/catlas/escapepenacony/
|
|
│ └── UpdateAndSceneTest.kt # Automated Unit Tests
|
|
├── gradle/
|
|
│ └── libs.versions.toml
|
|
├── build.gradle.kts
|
|
└── settings.gradle.kts
|
|
```
|
|
|
|
---
|
|
|
|
## 🛠️ วิธีการบิลด์ (How to Build)
|
|
|
|
### คอมไพล์ผ่าน Command Line:
|
|
```bash
|
|
# ทดสอบ Unit Tests ทั้งหมด
|
|
./gradlew test
|
|
|
|
# สร้างไฟล์ Debug APK
|
|
./gradlew assembleDebug
|
|
|
|
# สร้างไฟล์ Release APK
|
|
./gradlew assembleRelease
|
|
```
|
|
|
|
ไฟล์ APK ที่บิลด์เสร็จแล้วจะอยู่ที่:
|
|
- `app/build/outputs/apk/release/app-release.apk`
|
|
- หรือตัวสำเนาที่ root โฟลเดอร์: `Escape-penacony-standalone-v1.1.0.apk`
|
|
|
|
---
|
|
|
|
## 📄 License
|
|
This tool is for educational, research, and offline testing purposes only. All game data rights belong to their respective creators and owners.
|