14 KiB
ชุดข้อมูล Client Beta สำหรับ GLM
อัปเดต 24 ตุลาคม 2026 (Asia/Bangkok)
เริ่มอ่านตรงนี้
ผู้ใช้ขอให้ช่วยหา event ของ Beta ที่ใช้จริง และส่งข้อมูลที่มีพร้อมวิธีเพิ่มตู้กาชาให้ GLM งานนี้จึงจัดทำ ดัชนีและชุดส่งต่อข้อมูล ไม่ได้เปิด event เพิ่ม เปลี่ยน backend หรือรีสตาร์ตเซิร์ฟเวอร์
ไฟล์ชุดส่งต่อ
- โฟลเดอร์: glm-beta-handoff-20261024
- ZIP: glm-beta-handoff-20261024.zip
- manifest.json: รายการทุกไฟล์ในชุด พร้อม SHA-256 ขนาด ที่มา และขอบเขตการยืนยัน
- event-index.json / CSV
- preview-schedules.json
- gacha-index.json
.runtime/ ถูก ignore ถ้า GLM อยู่คนละเครื่องต้องส่ง ZIP ให้ด้วย การส่งเฉพาะ Git diff จะไม่มีชุดข้อมูลและ evidence เหล่านี้
1. รุ่นและขอบเขต
ตรวจโปรเซสที่รันจริงและ hash GameAssembly.dll ซ้ำในรอบนี้แล้ว Client ปัจจุบันเป็น Beta .54:
4aa08a0706f27d2cf9951b61920c179140ece9ea94f7e34422c18e46922939b6
ข้อมูล CW เดิมหลายชุดมาจาก Beta .53:
c5e02e6e984f7e5577c78b995a8efeee2d06ee22e67d484ad5e859c8bf21e144
ชุดนี้รวมข้อมูลที่มีอยู่ในโปรเจกต์และ capture ที่ระบุที่มาได้ ไม่ใช่การ dump ทุกตาราง/ทุก asset/ทุก script จาก Beta ทั้งเกมครบแล้ว ไฟล์ที่ไม่มี provenance ไม่ถูกเปลี่ยนชื่อหรือรับรองเป็น .54 เนื่องจากวางอยู่ในโปรเจกต์เดียวกัน
ข้อมูลดิบถูกคัดลอกเป็น bytes เดิม Python ใช้ integer ที่ไม่เสียความละเอียดในการสร้างดัชนี จึงเก็บ hash64 ได้ตรง ห้าม parse/re-serialize TextID hash64 ผ่าน JavaScript Number โดยไม่ใช้วิธีรักษาเลข 64-bit
2. ข้อมูลที่ตรงกับ capture ของ Client .54
| ชุด | จำนวน/ขอบเขต | ไฟล์ต้นทาง |
|---|---|---|
| ActivityPanelRow | 181 หน้า รวม condition, prefab, icon, TextID และ display items | resources/PreviewGameplayCatalog.json → tables.panels |
| ActivityConfigRow | 361 รายการ รวม module/resident/panel/early-access mapping | ไฟล์เดียวกัน → tables.activities |
| GachaBasicInfoConfigRow | 6 แถวของตารางปัจจุบัน | ไฟล์เดียวกัน → tables.gacha |
| ParkourLevelConfigRow | 13 แถว; ไม่ใช่ Stella Jump ด้านข้าง | ไฟล์เดียวกัน → tables.parkour |
| ChenLingGameBoyCaseRow | 16 cases | resources/StellaJumpConfig.json |
| CW role flat config | 140 rows; ไม่ใช่ทุกตารางของ CW | resources/CurrencyWarsCurrentRoles.json |
| Event asset observations | 290 prefab/icon paths; 146/181 panels มีทั้งสอง path | resources/PreviewAssetAvailability.json |
| GachaGroupDataRow | ดึง flat GetAll จบครบ 0 แถว ในรอบนี้ | battle_diagnostics/glm-gacha-groups-current.json |
| Group presentation asset observations | 3 path จาก Lua จริง ตรวจแล้วไม่มีทั้ง 3 | battle_diagnostics/glm-gacha-group-assets.json |
CW role compatibility .53→.54 แยกอยู่ใน resources/CurrencyWarsRoleCompatibility.json เป็น overlay หนึ่ง family/สาม star variants ไม่ใช่การ recapture CW ทั้งหมด
ระวัง ActivityConfig ชื่อคล้ายกัน
resources/ActivityConfig.json เดิมมี 360 รายการและไม่มี provenance .54 ของตัวเอง ส่วน PreviewGameplayCatalog.json.tables.activities มี 361 รายการที่ capture ตรงรุ่น
เปรียบเทียบ key ได้ว่าใน capture ปัจจุบันมี ActivityID 10196, 50157 เพิ่ม และไม่มี 50136 ที่อยู่ในไฟล์เดิม ใน ID ร่วมกัน main/resident module lists ตรงกันจากการเทียบครั้งนี้ แต่ไม่ได้ทำให้ไฟล์เก่ากลายเป็น current native dump
ให้เริ่มหา event ใหม่จาก PreviewGameplayCatalog อย่ายึดเฉพาะ ActivityConfig เดิมหรือค้น type ที่เดาชื่อแล้วสรุปว่าไม่มีข้อมูล
3. Event ที่หาเจอแล้ว
ตัวอย่างด้านล่างใช้ ชื่อเทคนิคจาก prefab ยังไม่ใช่ localized title ที่ถอดแล้ว และไม่ได้พิสูจน์ว่าเป็น official active schedule ของวันนี้
| Panel | ระบบ/Prefab | Main modules | Resident modules | Prefab + icon |
|---|---|---|---|---|
| 50132 | QuestMechCraftPanel | 5013201 | 5013202 | มี |
| 50142 | QuestComicDessertPanel | 5014201 | 5014202 | มี |
| 50143 | QuestRealityShowPanel | 5014301–5014305 | 5014311–5014315 | มี |
| 50125 | QuestFinalityBattlePanel | 5012501–5012505 | — | มี |
| 50114 | QuestTeamTowerPanel | 5011401 | 5011402 | มี |
| 50112 | QuestPixAirPanel | 5011201 | 5011202 | มี |
| 50111 | QuestB51RacingPanel | 5011101 | 5011102 | มี |
| 50107 | QuestChenLingFesPanel | 5010701 | — | มี |
| 50092 | QuestChenLingBattlePanel | 5009201 | 5009202 | มี |
| 50134 | QuestBlindBoxPanel | ดู raw mapping | ดู raw mapping | prefab ไม่มี |
Source ปัจจุบันเปิดเพียง policy-selected families และตัดหน้าที่มี dependencies/handler ยังไม่ครบ จึงต่างจาก “Beta ไม่มี event” รายละเอียดและแนวทางต่อ callback อยู่ใน GLM-BETA-EVENTS.md
จุดเชื่อมสำคัญ: ใน wire ActivityScheduleData.ActivityId ใช้ moduleID ส่วน PanelId ใช้ panelID ห้ามนำ ActivityConfig.ActivityID ใส่แทน moduleID โดยไม่ตรวจ
4. ข้อมูลเก่าและข้อมูลที่ยังไม่ยืนยัน revision
ชุด ZIP รวม resources ทั้งหมดที่มีและไฟล์ข้อมูล root ที่เกี่ยวข้อง โดยแยก provenance ไว้ใน manifest:
- CW .53/reference: divisions/routes/role defaults/variants/camps/levels/equipment/spotlights/monster recipes/rewards/craft/initial runs/node transitions/trials
- .53-identified scene, navigation, cosmetics, technique/world-battle resources
- External data: Eidolon/Inventory จาก Dimbreath, BattleRules/Profile จาก PearlSR, ทีม Prydwen, AhaHelp จากภาพที่ผู้ใช้ให้ ไม่ใช่ native .54 dump
- Unversioned/server data: Avatar/SkillTree/Quest/MainMission/Stage/Map/Tutorial ฯลฯ ซึ่งห้ามรับรองว่าทุก ID ใช้ได้กับ .54
- Root
res.jsonกับresources/res.jsonเป็นคนละ schema และคนละชุด ห้ามทับหรือย้ายแทนกันเพราะชื่อเหมือนกัน mission_unlocks.jsonเป็นรายการที่ server เปิดให้ ไม่ใช่หลักฐานว่า Client มี config ทุก ID; ดู MissionCompatibility และ missing-config evidence ประกอบ
5. Protocol และเครื่องมือ
รวม .proto, named command maps/pairs และ source revision ไว้ใน bundle โดยไม่รวม .pb.go ซ้ำทั้งชุด
Command source revision ที่ใช้อยู่:
005d2c12db4781071f4b5b68e8f364587886a710
นี่ไม่ใช่ full native protocol dump ของ .54 ทุก packet บางคำสั่งถูกตรวจซ้ำกับ Client แล้ว แต่ส่วนที่ยัง obfuscated/ไม่ตรวจต้องเก็บข้อจำกัดไว้ ใช้ name resolver ของ repository อย่าฝัง CmdID หรือส่งหลาย aliases เพื่อเดา callback
เครื่องมือที่รวมเป็น source สำหรับอ่านต่อ ไม่ได้ถูกรันโดย packaging helper:
preview_flat_tables.js: สี่ named flat tables; ตรวจ prologue/ขอบเขต; 16 rows ต่อ managed markerpreview_gameboy_tables.js: ChenLing GameBoy flat tableglm_beta_gacha_groups.js: named gacha group GetAll; 8 rows ต่อ marker; เก็บกรณีตารางว่างอย่างชัดเจน- named metadata probes และ bounded trigger ที่พักเมื่ออยู่ Battle
inspect_luau_v4.pyและ GachaMainPage bytecode/parsed prototypes- static PE range/call-reference readers และ protocol tooling ที่เกี่ยวข้อง
ก่อนใช้ native tools ต้องตรวจ process path/hash ใหม่ เพราะ PID, MethodHandle และ base address เปลี่ยนหลัง restart การอ่าน metadata ครั้งนี้พบว่า RPG.Client.TextID อยู่ใน assembly RPG.GameCore.Foundation ไม่ใช่ Assembly-CSharp; lookup ใน assembly ผิดแล้วได้ nil ไม่ได้แปลว่า type หาย
6. ส่งต่อให้ GLM ทำต่อ
ข้อความพร้อมใช้:
อ่าน
docs/GLM-BETA-DATA.md,docs/GLM-BETA-EVENTS.mdและdocs/GLM-GACHA-GUIDE.mdก่อน ข้อมูล event ของ Beta มีแล้ว 181 panels/361 activities ใน PreviewGameplayCatalog ไม่ใช่ไม่มี event ให้ใช้ event-index เชื่อม panel/module/conditions/assets และต่อ named data handlers ตามแต่ละระบบ กาชามีตารางจริง 6 แถว แต่ limited 4 prefab และ generic group 3 prefab ไม่มีใน manifest; flat GachaGroupDataRow ดึงครบได้ 0 แถว จึงยังไม่มี GroupIDs ให้ใช้ อย่าเดาตัวเลขหรือเปิด path ที่ไม่มีเพื่อกลบอาการ ต้องสร้าง compatible custom presentation จาก asset ที่มีจริงและให้ผลสุ่มตรงภาพตู้ รักษาเซฟ/rank/EX/Traces และอย่ารบกวน Battle ที่กำลังเล่น อ่าน manifest เพื่อแยก .54, .53/reference, external policy และ unversioned ห้ามอ้างว่าชุดนี้เป็น dump ทุกอย่างของ Beta ครบแล้ว
สิ่งที่ยังต้องหาเพิ่ม: localized title text, config/asset dependencies และ data/proxy callbacks ของ event ใหม่, ตารางอื่นของ Client ที่ยังไม่ได้ capture, gacha presentation/binding และ semantics ของ grouping fields ที่ยัง obfuscated
7. ขอบเขตการทำงานรอบนี้
- อ่าน source/resource และวิเคราะห์ config/capture เพื่อส่งต่อ
- ตรวจ hash ของ module จริง และอ่าน named gacha group table/metadata กับ asset existence เฉพาะ path ที่มีหลักฐานจาก Lua
- ถอด probe ที่เพิ่มในรอบนี้แล้ว และปิด Frida sessions ของรอบนี้
- ไม่แตะ probes ของ GLM ที่มีอยู่ ไม่แก้ gameplay backend ไม่เปลี่ยนเซฟ ไม่ build/deploy/restart และไม่รัน tests
- ชุดข้อมูลไม่รวม
persistent,freesr-data.json,server.local.json, บัญชี/token logs หรือ game binaries ของผู้ใช้ - Snapshot เป็นการอ่านไฟล์ทีละไฟล์ขณะที่มีงานอื่นทำอยู่ ไม่ใช่ atomic snapshot ของ repository ทุกไฟล์ ณ nanosecond เดียว ค่า SHA ใน manifest อ้างอิง bytes ที่คัดลอกเข้าชุดจริง