34 lines
2.6 KiB
Markdown
34 lines
2.6 KiB
Markdown
# Currency Wars (GridFight) — source export
|
|
|
|
ส่วน Currency Wars ของ PearlSR แยกออกมา เวอร์ชันโปรโตคอล beta 4.6.53
|
|
ฐาน: PearlSR `06aa2d2` รวมงานที่ยังไม่ได้ commit ใน working tree (วันที่ 2026-10-30)
|
|
|
|
## โครงสร้าง
|
|
- `gameserver/src/services/grid_fight.zig` ตัวหลัก: state ของรอบ, ร้าน, กระดาน, การต่อสู้, settlement, archive
|
|
- `grid_fight_traits.zig` / `grid_fight_bonds.zig` trait และ bond
|
|
- `grid_fight_strategy.zig` strategy/augment
|
|
- `grid_fight_rewards.zig` รางวัลในรอบ (Elite/Summon) และ cycle score
|
|
- `grid_fight_talent.zig` talent ถาวร/ซีซัน
|
|
- `resources/grid_fight/` ข้อมูลที่ server อ่าน (*.json) กับไฟล์ `*.raw.json`/`*-provenance.json` ที่ extractor สร้าง
|
|
- `tools/gridfight-extract-node/` extractor (Node.js) ดึงข้อมูลจากตาราง client: `node run_tests.mjs`
|
|
- `integration/hooks.txt` จุดที่ server เรียก CW (handlers, control, mission, elation) พร้อมเลขบรรทัด
|
|
- `integration/elation.zig` ไฟล์เต็มของจุดเข้า scene
|
|
|
|
## ต้องมีจาก PearlSR ถึงจะ build ได้
|
|
`grid_fight*.zig` import: `protocol` (protocol.pb.zig ของ 4.6.53, มี cmd ที่ชื่อถูก obfuscate เช่น CmdIKMOCJBMGOJ = GetOrb, CmdMOIONLDJGJI = UseConsumable),
|
|
`../Session.zig`, `../Packet.zig`, `../manager/{scene_mgr,lineup_mgr,config_mgr,battle_mgr}.zig`, `../data/game_config.zig`, `../control.zig`, `scene.zig`, `battle.zig`, `events.zig`
|
|
วางไฟล์ใน `gameserver/src/services/` แล้วใส่ hook ตาม `integration/hooks.txt`
|
|
|
|
## หมายเหตุ
|
|
- extractor เวอร์ชัน Python เดิมไม่ได้ใส่มา ใช้ตัว Node แทน
|
|
- ไม่รวมไฟล์ `*.bak*`
|
|
- export นี้ยังไม่ได้ build แยกเดี่ยว ต้องอยู่ใน tree ของ PearlSR
|
|
|
|
## เครดิต
|
|
Currency Wars server สำหรับ PearlSR / AhaSR โดย xaodev
|
|
|
|
## License
|
|
AGPL-3.0-only (ดู LICENSE) — ใครนำไปแก้หรือรันเป็น server ให้คนอื่นใช้ ต้องเปิด source ของส่วนที่แก้ด้วย
|
|
|
|
Copyright (C) 2026 xaodev
|