# 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