Files
Gacy-Srtool/README.md
T

152 lines
20 KiB
Markdown

# GaC-Srtool 🌌
ใช้งานเว็บได้ที่ [GaCy Srtool บน Vercel](https://gacy-srtool.vercel.app/) เปิดหน้าตั้งค่าเพื่อเชื่อมต่อ SDK ของเซิร์ฟเวอร์ที่ใช้งานอยู่
ในโหมด GaC หน้า **ตั้งค่าตัวละคร / สวิตช์ระบบพิเศษ** เลือก Freecam หรือ FaceCam และตั้งระยะเริ่มต้นของ FaceCam ได้ หลังบันทึกให้กด Tab ในเกมเพื่อเปิดหรือปิดกล้อง; ลูกกลิ้งปรับระยะชั่วคราวและกลับเป็นค่าที่ตั้งไว้เมื่อเปิดใหม่
เว็บแอปพลิเคชันแดชบอร์ด (Web Dashboard & Management Tool) สำหรับจัดการข้อมูลตัวละคร, จัดทีม, ปรับแต่งรีลิกส์/กรวยแสง, วิเคราะห์ดาเมจจากการต่อสู้จริง และจัดการไฟล์เซฟ (`freesr-data.json`, `persistent`) ของเซิร์ฟเวอร์ **GaC-hkrpg-go** (และเซิร์ฟเวอร์มาตรฐาน FreeSR)
ทำงานแบบ Client-side 100% สามารถเปิดใช้งานผ่านเบราว์เซอร์ได้ทันทีโดยไม่ต้องติดตั้งโปรแกรมเพิ่มเติม
---
## ⚡ ฟังก์ชันหลัก (Features)
### 📊 1. แดชบอร์ด & จัดทีม (Live Dashboard & Lineup)
- **สถานะการเชื่อมต่อสด:** ตรวจจับสถานะการเชื่อมต่อกับเซิร์ฟเวอร์แบบ Real-time พร้อมแถบแสดงค่า Ping
- **จัดการทีม 4 ตำแหน่ง:** แสดงสมาชิกในทีมพร้อมระดับ Eidolon, อาวุธประจำตัว, เลเวล และพิกัดในฉาก
- **แสดงผล Git Branch ปัจจุบัน:** ระบุชื่อ Git Branch ที่รันอยู่ (เช่น `main`, `test-gay`) บน Header และ Browser Tab อย่างแม่นยำ
- **สรุปภาพรวมทรัพยากร:** แสดงจำนวนตัวละคร, กรวยแสง และรีลิกส์ทั้งหมดในคลัง
### ⚔️ 2. ระบบวิเคราะห์ดาเมจแบบเรียลไทม์ (Real-time Damage Analyst)
- **ดึงสถิติต่อสู้จากเซิร์ฟเวอร์สด:** ดึงรายงานการต่อสู้ล่าสุด (`/api/battle_report`) แบบเดียวกับ FireflyGo
- **สรุปสถิติดาเมจภาพรวม:** ดาเมจรวมทั้งหมด (Total DMG), ดาเมจเฉลี่ยต่อวินาที (DPS), จำนวนแอ็กชัน (Action Count)
- **จำแนกประเภทความเสียหาย:**
- ดาเมจปกติ (Normal DMG)
- ดาเมจทำลายจุดอ่อน (Break DMG)
- ซูเปอร์เบรก (Super Break DMG)
- ดาเมจต่อเนื่อง (Damage over Time / DoT)
- **วิเคราะห์ประสิทธิภาพการคริติคอล:** คำนวณอัตราคริติคอลจริง (CRIT Rate) และดาเมจคริติคอล (CRIT DMG) แยกรายตัวละคร
- **กราฟเปรียบเทียบสัดส่วน:** กราฟแท่งแสดงสัดส่วนการทำดาเมจของสมาชิกแต่ละคนในทีม
### 🎛️ 3. ปรับแต่งออฟรองรีลิกส์ขั้นสูง (Interactive Relic Substats Customizer)
- **ปรับแต่งออฟรอง 4 แถวอิสระ:** รองรับทั้งชิ้นส่วนหัว, มือ, ลำตัว, รองเท้า, ลูกแก้ว และสายเชื่อมโยง
- **ปุ่มปรับจำนวน Roll สเต็ปเปอร์ `[-] [+]`:** ควบคุมการลงออฟรองได้อย่างแม่นยำ พร้อมนับจำนวนครั้งที่ Roll (จำกัดรวมสูงสุด 5 ครั้งต่อชิ้นตามกลไกเกม HSR)
- **คำนวณค่าสเต็ตจริงอัตโนมัติ:** แสดงค่าสเต็ตที่คำนวณตามสูตรฐานของเกม Honkai: Star Rail
- **ระบบป้องกันออฟซ้ำ:** ล็อคไม่ให้เลือกออฟรองซ้ำกับออฟหลัก (Main Affix) หรือออฟรองแถวอื่น
- **พรีเซ็ตออฟรองสำเร็จรูป 5 สาย:**
- 🎯 **Crit Focus (สายดาเมจคริ):** CRIT Rate, CRIT DMG, ATK%, SPD
- 💥 **Break Focus (สายทำลายจุดอ่อน):** Break Effect, SPD, ATK%, HP%
- ⚡ **SPD Tuner (สายจัดลำดับเทิร์น):** SPD สูงสุด, CRIT Rate, ATK%, Effect RES
- ☠️ **DoT Specialist (สายดาเมจต่อเนื่อง):** ATK%, SPD, Effect Hit Rate, Break Effect
- 🛡️ **Tank / Sustain (สายป้องกันและฟื้นฟู):** DEF%, HP%, Effect RES, SPD
- **จัดการได้ทันที:** แก้ไขรีลิกส์ที่ตัวละครกำลังสวมใส่อยู่ หรือแก้ไขรีลิกส์ในคลังเพื่อนำไปใช้งาน
### 👥 4. ระบบจัดการตัวละคร (Avatars & Character Builder)
- **ข้อมูลครบถ้วน:** ครอบคลุมตัวละครทั้งหมดในเกมตาม Resource มาตรฐานและเนื้อหาล่าสุด
- **คู่มือ Build รายตัว:** เปิดดูกรวยแสง, เซ็ตรีลิกส์/มิติ และออฟหลักที่พบบ่อยจากข้อมูลตัวอย่าง Endgame พร้อมโหมด/จำนวนตัวอย่าง วันที่เก็บข้อมูล และลิงก์คู่มือเต็มของ Prydwen
- **ปรับแต่งสถานะ:** เลเวล (1-80), เลื่อนขั้น (Ascension 0-6), ระดับ Eidolon (E0-E6), และร่องรอยสกิล (Traces 10/10)
- **ปุ่มลัดจัดการด่วน:**
- ⚡ *ปรับ E0S1 ทุกตัว:* ตั้งค่าตัวละครทุกตัวเป็น E0 พร้อมกรวยแสงประจำตัว S1 เลเวล 80
- ⭐ *ปรับ Max E6 ทุกตัว:* ปลดล็อค E6 และร่องรอยสกิลเต็ม 10/10 ให้ตัวละครทุกตัว
- **รูปภาพสแปลชอาร์ตความละเอียดสูง:** ดึงภาพ Splash Art เต็มตัวขนาด 2048x2048 ผ่าน StarRailRes jsDelivr CDN
- **ระบบ Fallback รูปภาพอัจฉริยะ:** แก้ปัญหาภาพไม่แสดงผลหรือหน้าต่างตัวละครจอดำ ด้วยกลไกสำรองภาพหลายระดับ
### 🗡️ 5. กรวยแสง & อุปกรณ์ (Lightcones & Equipment)
- **ปรับแต่งกรวยแสง:** สวมใส่, ปรับเลเวล 1-80, เลื่อนขั้น 0-6 และระดับการขัดเกลา Superimposition (S1-S5)
- **สลับกรวยแสงประจำตัวอัตโนมัติ:** ตรวจจับและสลับใส่ Signature Lightcone ของแต่ละตัวละครได้ในคลิกเดียว
### 🎒 6. คลังไอเทม (Material Inventory)
- ค้นหารายการจาก Item ID ใน catalog ของ Client ที่เซิร์ฟเวอร์กำลังใช้ พร้อมแก้จำนวนได้หลายรายการก่อนบันทึกครั้งเดียว
- ค่าในช่องที่ว่างใช้ค่าที่เซิร์ฟเวอร์สร้างตามปกติ; ล้างค่าที่เคยกำหนดเองเพื่อกลับไปใช้ค่าเริ่มต้นได้
- การบันทึกแก้เฉพาะจำนวนไอเทมใน `freesr-data.json` ไม่เขียนทับตัวละคร, LC, Relic หรือ Battle Config
- รองรับเฉพาะ GaC-hkrpg-go ผ่าน `/api/inventory/materials`; บันทึกลงไฟล์ทันทีและต้องเข้าเกมใหม่เพื่อโหลด session พร้อมจำนวนที่แก้แล้ว
### 👾 6.1 Monster Setting
- แยก Memory of Chaos, Pure Fiction, Apocalyptic Shadow และ Anomaly Arbitration เพื่อดูชื่อด่าน/มอนสเตอร์ รูป, level และ wave จาก metadata Nanoka ที่ตรงกับ `client_version` ของเซิร์ฟเวอร์และ resource `challenge_data.json` / `resources/StageConfig.json` (อ่านอย่างเดียว); เมื่อ Client เปลี่ยนเวอร์ชัน API จะดึง metadata ของเวอร์ชันนั้นให้อัตโนมัติ โดยไม่ใช้ข้อมูลจากเวอร์ชันอื่น
- เปลี่ยนการเลือกกลุ่ม/ด่านเป็นการ์ด และ Custom Enemy ค้นมอนด้วยชื่อหรือ ID พร้อมรูป/ชื่อจาก Nanoka; พิมพ์ ID เองได้ และแสดงรูปตัวอย่างขนาดใหญ่ขึ้น
- Anomaly Arbitration เป็นโหมด Endgame ที่อ่าน stage จาก resource เช่นเดียวกับโหมดอื่น ไม่ใช่ Custom Enemy; Aha's Help มีแท็บแยกจาก AA
- แก้ Custom Enemy ได้เฉพาะ Golden / Crimson Calyx และต้องเชื่อมต่อ GaC-Srtool; การกดใช้ stage จาก Client จะล้าง custom waves เพื่อให้กลับไปใช้ resource
- Weekly Boss, Stagnant Shadow, Cavern of Corrosion, Endgame และ Simulated Universe ไม่รับ custom waves จากหน้านี้
### 💾 7. จัดการไฟล์เซฟ GaC (Persistent & FreeSR Data)
- **ตั้งค่าตัวเอก (ผู้บุกเบิก):** สลับเพศ (Caelus / Stelle) และเปลี่ยนธาตุ (กายภาพ, ไฟ, จินตภาพ, ความจำ)
- **สลับพาธ March 7th:** เลือกระหว่างพาธการอนุรักษ์ (น้ำแข็ง) และพาธล่าสังหาร (จินตภาพ)
- **สวิตช์ระบบพิเศษ Ex-Rank:** จัดการเปิด/ปิดความสามารถพิเศษ Ex-Rank สำหรับตัวละครเฉพาะ (เช่น Jing Yuan, Dan Heng • IL, Acheron)
- **ตัวแก้ไข JSON ดิบ:** ตรวจสอบ แก้ไข จัดรูปแบบ และดาวน์โหลดสำรองไฟล์ `freesr-data.json` และ `persistent`
### 💻 8. คอนโซลคำสั่ง GM (GM & Server Console)
- ส่งคำสั่ง GM ไปยังเซิร์ฟเวอร์ได้โดยตรงผ่านหน้าเว็บ
- ดูผลตอบกลับและตรวจสอบสถานะการทำงานของเซิร์ฟเวอร์แบบ Real-time
### 🌐 9. รองรับ 13 ภาษาทั่วโลก (Multi-Language Support)
- สลับเปลี่ยนภาษาได้ทันทีโดยไม่ต้องรีเฟรชหน้าเว็บ:
- 🇹🇭 ไทย (Thai)
- 🇺🇸 English
- 🇨🇳 简体中文 (Simplified Chinese)
- 🇹🇼 繁體中文 (Traditional Chinese)
- 🇯🇵 日本語 (Japanese)
- 🇰🇷 한국어 (Korean)
- 🇻🇳 Tiếng Việt (Vietnamese)
- 🇮🇩 Bahasa Indonesia
- 🇪🇸 Español (Spanish)
- 🇫🇷 Français (French)
- 🇩🇪 Deutsch (German)
- 🇷🇺 Русский (Russian)
- 🇵🇹 Português (Portuguese)
---
# THERES ONLY DARK MODE IF U ASK FOR LIGHT GO AWAY FROM ME
## 💻 การเปิดใช้งานในเครื่อง (Local Usage)
1. **เปิดผ่านเบราว์เซอร์โดยตรง:** ดับเบิลคลิกเปิดไฟล์ `index.html` ได้ทันที
2. **หรือรันผ่าน Local Server:**
```bash
npx serve .
```
หรือใช้ Python:
```bash
python -m http.server 3000
```
---
## 🔗 การเชื่อมต่อกับเซิร์ฟเวอร์ GaC-hkrpg-go
GaC-Srtool สื่อสารกับเซิร์ฟเวอร์ GaC-hkrpg-go ผ่าน REST API:
| Endpoint | Method | คำอธิบาย |
| --- | --- | --- |
| `/api/status` | GET | ข้อมูลสถานะเซิร์ฟเวอร์, ทีม, ตัวละคร และพิกัด |
| `/api/freesr` | GET, POST | ดึงหรืออัปเดตข้อมูล `freesr-data.json` |
| `/api/inventory/materials` | GET, POST | อ่าน Client item catalog และบันทึกจำนวนไอเทมแบบเจาะจงโดยไม่เขียนทับข้อมูลอื่น |
| `/api/freesr/avatars` | GET, POST | ดึงหรืออัปเดตข้อมูลตัวละครและสถิติ |
| `/api/persistent` | GET, POST | ดึงหรืออัปเดตข้อมูล `persistent` |
| `/api/battle_report` | GET, POST | ดึงสถิติดาเมจและผลการต่อสู้ล่าสุด |
| `/api/battle_report/reset` | POST | รีเซ็ตประวัติการต่อสู้ |
| `/api/exrank/toggle` | POST | เปิด/ปิดสถานะ EX-Rank |
| `/api/avatar/rank` | POST | เปลี่ยนระดับ Eidolon ของตัวละคร |
| `/api/avatar/max_all` | POST | ปรับตัวละครทุกตัวเป็น Max E6 และสกิลเต็ม |
| `/api/command` | POST | ส่งคำสั่ง GM ไปยังเซิร์ฟเวอร์ |
### บันทึกตัวละครและ Traces
การบันทึกจากหน้ารายละเอียดส่งข้อมูลตัวละครทั้งชุดผ่าน `/api/freesr` ในคำขอเดียว รวมถึง `data.skills` และ `data.skills_by_anchor_type` สำหรับ Traces เพื่อไม่ให้ server sync ข้อมูลระดับ/Eidolon ระหว่างทางก่อนข้อมูล Trace จะถูกบันทึก `saveAvatarDetails(closeModal = true)` ยังรองรับการเรียกจากปุ่ม build ที่ไม่ต้องปิดหน้าต่าง ถ้า server ตอบผิดพลาดจะแสดงข้อความบันทึกไม่สำเร็จแทนการแจ้งว่าสำเร็จ
### ข้อมูล Build และแหล่งที่มา
หน้า **รายละเอียดตัวละคร → แนวทางบิลด์** แสดงอุปกรณ์และออฟหลักที่พบบ่อยในตัวอย่าง Endgame จากข้อมูลที่แสดงบน Prydwen โดยใส่โหมด/จำนวนผู้เล่นและวันที่เก็บ snapshot ไว้กำกับ ตัวเลขเป็นสัดส่วนการใช้งานในกลุ่มตัวอย่าง ไม่ใช่คะแนนจัดอันดับหรือคำแนะนำทางการ ตัวละครที่ snapshot ไม่มีตัวอย่างจะแสดงลิงก์ไปคู่มือของ Prydwen แทนการแสดงข้อมูลสำรองที่อาจทำให้เข้าใจผิด
ข้อมูลที่สร้างไว้ใน `js/build-guides-data.js` ใช้ชุดข้อมูล MIT จาก [LvlUrArti/MocDataProcessed](https://huggingface.co/datasets/LvlUrArti/MocDataProcessed) ซึ่งระบุว่าเป็นข้อมูลที่ประมวลผลจากเว็บไซต์ Prydwen โปรดให้เครดิต LvlUrArti เมื่อเผยแพร่หรือวิเคราะห์ข้อมูลต่อ สามารถอัปเดต snapshot ด้วย `npm run sync-build-guides` ได้ โดยสคริปต์จะเลือกเวอร์ชันล่าสุดที่มีใน dataset และจับคู่ตัวละครตาม ID จาก `js/avatars-data.js`.
## ตัวช่วยคำสั่ง GM
ช่อง Console แสดง preview คำสั่งและอธิบาย argument ที่กำลังพิมพ์ รองรับคำสั่ง GM, `/unstuck`, `/faketime` และคำสั่งย่อย `/cw` ทุกแบบใน SDK ปัจจุบัน ใช้ ↑/↓ เลื่อนรายการ, Tab เติมค่าที่เลือกและไปช่องถัดไป, Shift+Tab ย้อนรายการ และ Esc ปิดรายการ คลิกรายการเพื่อเติมค่าได้; Tab ไม่ส่งคำสั่ง ให้กด Enter หรือ Run เพื่อส่ง
พิมพ์ชื่อหรือ ID เพื่อกรองตัวละคร รายการไอเท็ม/Plane/Floor/ของ CW มาจาก `GET /api/command-completions` ของ SDK จึงต้องเชื่อมต่อ SDK ฉบับที่รองรับก่อน รายการดาวของ CW กรองตาม Role ที่เลือก รองรับการแก้ argument กลางบรรทัดโดยเก็บข้อความช่องอื่นไว้
ตรวจตัวช่วยแบบไม่รันคำสั่งเกม: `node --test tools/command-assistant.test.mjs`