pre cw with probe and a bunch script to read game behavior
This commit is contained in:
1 parent
5120219ae2
commit
da8a32f60d
310 files changed
+219693
-872
No files matched your search
@@ -1,5 +1,40 @@
|
||||
# ตรวจ teleport และ Endgame — 17 ต.ค. 2026
|
||||
|
||||
## ห้องรถไฟค้างโหลด — 19 ต.ค. 2026
|
||||
|
||||
- ผู้ใช้รายงาน AA และห้องรถไฟเข้าไม่ได้ โดย log ที่ส่งระบุ Entry `100000352`, Floor `10000003` และยังมี heartbeat หลังส่ง EnterScene response/notify แล้ว จึงไม่ถือว่าเข้า Client สำเร็จ
|
||||
- Client log รอบ 00:03 พบ AsyncLoad MapProp ล้มเหลวใน `_EnterStep2` ขณะโหลด `DesignerBackup/Test_Prop_Teleport.bytes`, `Test_Prop_PTBathSalt.bytes`, `Test_Prop_PTWeaponRack.bytes` และ `Test_Prop_PTLightOff.bytes` ที่ไม่มีใน bundle index หลักฐานก่อนแก้เก็บใน ignored `battle_diagnostics/train-loading-20261019/`
|
||||
- พบว่า no-teleport adventure entrance เลือก checkpoint แรกของ Floor แม้ MapEntrance/Anchor ระบุจุดเริ่มเฉพาะห้อง แก้ให้ใช้ StartAnchorID ของ Entry บน Floor ที่ตรงกันก่อน checkpoint โดยไม่เปลี่ยน challenge loader หรือ checkpoint teleport ที่ระบุมาโดยตรง การไม่มี Anchor ยังใช้เส้นทางเดิม
|
||||
- Capture ก่อนหน้าไม่จบแม้แต่ Floor แรก จึงยังไม่ใช้ข้อมูลบางส่วนทับ metadata ปัจจุบัน เปลี่ยน capture เป็นเฉพาะ Floor ที่ล้มเหลวก่อน อ่านเฉพาะ RuntimeFloor/RuntimeGroup สูงสุด 4 กลุ่มต่อ heartbeat และเก็บ SavedValues ของ dimension เพื่อเทียบสถานะ debug กับ Client โดยไม่โหลดหรือรัน level graph
|
||||
- Unit test ของ entrance anchor ผ่านและ build game server ได้ การทดสอบ common ผ่าน แต่ integration `TestGatewayHandshakeAndLogin` ติด fixture monster event `30124011` ที่ไม่มี Client stage mapping ใน resource ปัจจุบัน จึงยังไม่ถือว่า suite ทั้งหมดผ่าน
|
||||
- AA ยังต้องเก็บ request/Client log ของการกดเข้าจริงแยกต่างหาก ไม่สรุปว่ามีสาเหตุเดียวกับห้องรถไฟ และยังรอยืนยันโหลดฉากหลังแก้จาก Client
|
||||
|
||||
Capture รอบใหม่ครบ Floor `10000003`: กลุ่มไม่ซ้ำ 202 กลุ่ม, Server ที่ยังไม่ลบ 19 กลุ่ม และ SavedValues 34 ชื่อ พบ Client-managed groups 2/25/28/79 อ้างถึง DesignerBackup graph ทั้งสี่ชื่อที่ล้มเหลว โดยมีเงื่อนไข `Utility_IsDebug == 1` (CompareType Equal=4 จาก enum ที่ capture ไว้) ขณะที่ native DefaultValue ของ flag นี้เป็น 0 ชุด MaxValue เดิมจึงเปิดกลุ่ม debug ที่ asset ไม่ได้ถูกแพ็กมา ใช้ native defaults ที่ capture สำหรับ Floor นี้และเก็บ min/max/default เป็น rules ไม่แก้แบบลบ PropID 100 ทั้งเกม
|
||||
|
||||
ไม่ได้ส่ง floor-wide start anchor ของรถไฟทับทุก Entry เพราะแต่ละห้องมี StartGroup/StartAnchor ของตัวเอง ใช้ `--omit-start-anchor` ใน exporter แล้วให้ no-teleport adventure path resolve Anchor ตาม Entry ข้อมูล Floor เดิมอีก 36 Floor เปรียบเทียบแล้วไม่เปลี่ยน และเก็บ source policy ของข้อมูลเดิมไว้ การ capture condition เป็นการอ่าน RuntimeGroup และ path ไม่ได้รัน graph ของ debug props หลัง capture นำ probe ของงานนี้ออกจาก `scripts/` แล้ว
|
||||
|
||||
คำสั่งตรวจ exporter ครอบคลุม incomplete/missing/invalid SavedValues โดยยืนยันว่าไม่เขียนทับ output เดิม, การเก็บ provenance เมื่อ merge และการคง defaults แทน MaxValue ผ่านแล้ว ส่วน Client หลังแก้และ AA ยังรอทดสอบจริง
|
||||
|
||||
### ผลทดสอบรอบแรกและการกรอง Dimension
|
||||
|
||||
ผู้ใช้ยืนยันว่ากดวาร์ปแล้วไม่มีอะไรเกิดขึ้นทั้งห้องและ AA หลังเปลี่ยน defaults รอบแรก Client ไม่แจ้ง DesignerBackup graph error เดิม แต่เกิด `MapDef.InitServerGroups` NRE เพราะ Group 251 ไม่มีใน MapDef นี่เป็นผลจากการเพิ่ม Server group ตาม RuntimeFloor ทั้งชุดโดยยังไม่กรอง Dimension ไม่ใช่หลักฐานว่าแค่ default ของ Floor แก้ครบแล้ว
|
||||
|
||||
การอ่าน RuntimeDimension ระบุว่า Dimension 0 มี GroupIndexList ของตัวเอง (199 GroupID ไม่ซ้ำจาก Floor รวม 202 กลุ่ม) และไม่มี 251 ขณะที่ Dimension อื่นมีข้อมูลกลุ่มนี้ เพิ่ม `dimension_groups` จาก GroupIndexList/GroupInstanceList ของ Client แล้วกรองทั้งกลุ่มเดิมและเส้นทางเพิ่ม prop จาก metadata ให้ตรง Dimension จริง ไม่ลบหมายเลขกลุ่มแบบเฉพาะ ID Unit test ตรวจว่ากลุ่มจาก Dimension อื่นไม่ถูกใส่กลับผ่าน props พร้อมรักษากลุ่มที่ถูกต้อง ผ่านแล้ว ผลวาร์ปหลังตัวกรองรอบนี้ยังรอ Client ยืนยัน
|
||||
|
||||
การตรวจต่อเพิ่ม `TestTrainRoomScenePacketMatchesCapturedDimension`: สร้าง SceneInfo ของ Entry ที่ผู้ใช้รายงานผ่าน `loadScene` ด้วย resource ปัจจุบัน แล้วตรวจ membership ของ EntityGroupList, DimensionID, SavedValues, XYZ/rotation ของ entrance และการคงจุดลงเมื่อระบุ checkpoint โดยตรง ผ่านแล้ว การทดสอบนี้สร้างข้อมูลใน session จำลองและไม่ส่งเข้า Client จึงไม่ใช่หลักฐานว่าภาพฉากโหลดได้ ส่วนการเฝ้า Game server และ Client process ที่ยังทำงานอยู่หลัง deploy ไม่พบคำขอ EnterScene ใหม่ในช่วงที่เฝ้า ยังต้องลองวาร์ปจาก Client หลังชุดกรอง Dimension ล่าสุด
|
||||
|
||||
### ผลยืนยัน AA และจุดลง Party Car
|
||||
|
||||
ผู้ใช้ยืนยันหลังชุดกรอง Dimension ว่าวาร์ปเข้าหน้า AA และกดเข้าได้แล้ว แต่ยังไม่ได้ลองเล่น จึงยืนยันเฉพาะเส้นทางเข้า ไม่รวมการต่อสู้หรือ settlement ส่วนการวาร์ปห้องอีกจุดลงห้องนอน MC: log แยกได้ว่า Entry 1000003 (Party Car) ถูกกดก่อน 100000352 (ChallengePeakBattleEntry/AA) โดย 1000003 ไม่มี StartAnchorID และไม่มี Anchor เฉพาะ Entry จึงยังตกไปใช้ checkpoint แรก
|
||||
|
||||
เก็บ `floor_default_anchor` แยกจาก `start_anchor` ที่ทับทางเข้าทั้ง Floor และใช้เฉพาะ MapEntrance ที่ไม่ระบุ StartAnchorID เท่านั้น Native default ของ Floor นี้ที่ capture ไว้คือ XYZ (-5449,-15289,-12), RotY 180000 ส่วนทางเข้า AA เก็บ anchor เฉพาะเดิม เพิ่ม regression test ทั้ง default Town entrance และ explicit checkpoint ผ่านแล้ว ยังรอผู้ใช้ยืนยันจุดลง Party Car หลังแก้รอบนี้ และรอชื่อห้องเป้าหมายเพื่อยืนยันว่าตรงรายการที่ผู้ใช้ตั้งใจ
|
||||
|
||||
### ยืนยันผลและปิดงาน — 19 ต.ค. 2026
|
||||
|
||||
ผู้ใช้ระบุชัดว่าข้อ 1 คือ Party Car และยืนยันว่า “ตอนนี้ถูกแล้ว” หลังใช้ floor default anchor ส่วน AA ผู้ใช้ยืนยันก่อนหน้านี้ว่าวาร์ปไปหน้า AA และกดเข้าได้แล้ว Log รอบล่าสุดของ Party Car เป็น Entry 1000003, Floor 10000003, XYZ (-5449,-15289,-12) และการเข้า Entry 100000304 สลับกลับ Party Car ใช้ anchor คนละจุดตาม resource โดยไม่ถูกทับเป็นจุดเดียวกัน จึงยืนยันการแก้อาการค้างโหลดและจุดลงผิดสำหรับ Party Car/ทางเข้า AA ที่รายงานได้ครบตามขอบเขตงานนี้
|
||||
|
||||
หลักฐานแยกกัน: Client ยืนยันการวาร์ปและเข้าฉากจากผู้ใช้; regression tests ตรวจ Dimension membership, SavedValues, anchor เฉพาะทางเข้า, floor default และ explicit checkpoint พร้อม build ผ่าน การเล่นต่อสู้และ settlement ของ AA ยังไม่ได้ทดสอบ และ integration suite ทั้งหมดยังไม่ถือว่าผ่านเพราะ fixture stage mapping ของ smoke test ที่บันทึกไว้ข้างต้น งานนี้ไม่ได้เปลี่ยนเส้นทาง Battle เพื่ออ้างผลจากการเข้าฉาก
|
||||
|
||||
## หลักฐานจาก Client
|
||||
|
||||
- `Player.log` แจ้ง `[HoyoGroupManager] 尝试激活的Group不存在, FloorID=20571001 FloorName=Starfroster GroupID=216` ก่อน `MapDef.InitServerGroups` เกิด NullReferenceException
|
||||
|
||||
Reference in new issue
Block a user