Files
GaCy-GO/docs/ungrouped-proto-guide.md
T
2026-10-28 18:54:43 +07:00

33 KiB

Ungrouped.proto — คู่มือจัดกลุ่ม message

อ่านไฟล์นี้อย่างไร

นี่คือ schema ของ Protobuf ที่ใช้กำหนดรูปแบบข้อมูลระหว่าง Client กับ Server ไม่ใช่ไฟล์ config และไม่ได้บอกวิธีทำงานของ handler เอง

  • CsReq คือคำขอจาก Client, ScRsp คือคำตอบจาก Server, ScNotify คือข้อความแจ้งจาก Server; Rsp คือ response เช่นกัน
  • เลขหลัง = คือ Protobuf field tag; คอมเมนต์ offset: เป็น metadata จาก dump ไม่ใช่ CmdID
  • Ungrouped.proto ไม่มี CmdID และไม่มีป้าย protocol revision จึงห้ามใช้ไฟล์นี้เดาเลข route/handler

ผลเทียบกับ GaC

  • ไฟล์ต้นทางมี 203 top-level messages และ 5 enums
  • ชื่อ message 141 รายการมีอยู่แล้วใน StarRail.proto; เพิ่ม schema ที่ขาด 62 รายการกับ enum ที่ขาด 1 รายการไว้ใน protocol/proto/ungrouped.proto
  • เพิ่ม KVP (uint32 value (tag 3), uint32 key (tag 9)) ซึ่งไฟล์ต้นทางอ้างผ่าน Common.proto แต่ dependency นั้นไม่ได้แนบมา
  • schema ที่เพิ่มไม่มี CmdID comment และยังไม่ได้ผูก packet handler; การเทียบกับ source อื่นพบว่า body/field tags ใช้ตรวจโครงสร้างได้ แต่ CmdID ต่างกันได้

ตรวจ signature ของ 203 message กับ AstralOS/crates/morax/src/StarRail.proto ที่ checkout revision abf2fd8fc07711432bac878d44f151f041311f24 แล้ว field types/tags ตรงกันทั้งหมด อย่างไรก็ตาม revision ของไฟล์ต้นทางที่แนบมาไม่ระบุ จึงใช้ reference นี้ยืนยันรูปร่าง schema เท่านั้น ไม่ใช้ย้าย CmdID

ตัวอย่างความต่างของ CmdID: B51RacingGetDataCsReq ในตาราง GaC ปัจจุบันเป็น 9995 แต่ source AstralOS revision ข้างต้นระบุ 9990 จึงไม่คัดลอก ID ข้ามตาราง

กลุ่มที่อ่านความหมายได้จากชื่อ

B51 Racing (37 messages)

ชุดข้อมูลและคำสั่งของกิจกรรมแข่งรถ: รถ/ลายรถ/คนขับ/ชิ้นส่วน/การพัฒนา/รอบแข่ง.

  • B51RacingAgendaInfo — เพิ่ม schema แล้ว
  • B51RacingCarDisplay — เพิ่ม schema แล้ว
  • B51RacingCarLivery — เพิ่ม schema แล้ว
  • B51RacingCarLiveryCsReq — เพิ่ม schema แล้ว
  • B51RacingCarLiveryScRsp — เพิ่ม schema แล้ว
  • B51RacingChallengeCarData — เพิ่ม schema แล้ว
  • B51RacingChallengeData — เพิ่ม schema แล้ว
  • B51RacingChallengeEndMatchCsReq — เพิ่ม schema แล้ว
  • B51RacingChallengeEndMatchScRsp — เพิ่ม schema แล้ว
  • B51RacingChallengeStartMatchCsReq — เพิ่ม schema แล้ว
  • B51RacingChallengeStartMatchScRsp — เพิ่ม schema แล้ว
  • B51RacingChallengeUpdateCarCsReq — เพิ่ม schema แล้ว
  • B51RacingChallengeUpdateCarScRsp — เพิ่ม schema แล้ว
  • B51RacingCycleData — เพิ่ม schema แล้ว
  • B51RacingDevelopmentInfo — เพิ่ม schema แล้ว
  • B51RacingDriverUnlockScNotify — เพิ่ม schema แล้ว
  • B51RacingEndMatchCsReq — เพิ่ม schema แล้ว
  • B51RacingEndMatchScRsp — เพิ่ม schema แล้ว
  • B51RacingGetDataCsReq — มี schema เดิมใน StarRail.proto
  • B51RacingGetDataScRsp — มี schema เดิมใน StarRail.proto
  • B51RacingMatchInfo — เพิ่ม schema แล้ว
  • B51RacingMatchStats — เพิ่ม schema แล้ว
  • B51RacingMissionChangeAgendaScNotify — เพิ่ม schema แล้ว
  • B51RacingPartInfo — เพิ่ม schema แล้ว
  • B51RacingPreMatchTrackInfo — เพิ่ม schema แล้ว
  • B51RacingReplacePartScRsp — เพิ่ม schema แล้ว
  • B51RacingSelectDevelopActionCsReq — เพิ่ม schema แล้ว
  • B51RacingSelectDevelopActionScRsp — เพิ่ม schema แล้ว
  • B51RacingSelectDevelopPartCsReq — เพิ่ม schema แล้ว
  • B51RacingSelectDevelopPartScRsp — เพิ่ม schema แล้ว
  • B51RacingSetDriverCsReq — เพิ่ม schema แล้ว
  • B51RacingSetDriverScRsp — เพิ่ม schema แล้ว
  • B51RacingStartCycleCsReq — เพิ่ม schema แล้ว
  • B51RacingStartCycleScRsp — เพิ่ม schema แล้ว
  • B51RacingStartMatchCsReq — เพิ่ม schema แล้ว
  • B51RacingStartMatchScRsp — เพิ่ม schema แล้ว
  • B51RacingStatInfo — เพิ่ม schema แล้ว

Expedition Battle (16 messages)

ข้อมูลแผนที่ เส้นทาง ทีม เริ่มต่อสู้ และสรุปผลของ Expedition Battle.

  • ExpeditionBattleAvatarDamage — เพิ่ม schema แล้ว
  • ExpeditionBattleAvatarInfo — เพิ่ม schema แล้ว
  • ExpeditionBattleEndScNotify — เพิ่ม schema แล้ว
  • ExpeditionBattleFunRecord — เพิ่ม schema แล้ว
  • ExpeditionBattleLevelRecord — เพิ่ม schema แล้ว
  • ExpeditionBattleLineup — เพิ่ม schema แล้ว
  • ExpeditionBattleMapData — เพิ่ม schema แล้ว
  • ExpeditionBattleRouteRecord — เพิ่ม schema แล้ว
  • ExpeditionBattleRouteSettleInfo — เพิ่ม schema แล้ว
  • ExpeditionBattleSetLineupCsReq — เพิ่ม schema แล้ว
  • ExpeditionBattleSetLineupScRsp — เพิ่ม schema แล้ว
  • ExpeditionBattleSettleScNotify — เพิ่ม schema แล้ว
  • ExpeditionBattleStartCsReq — เพิ่ม schema แล้ว
  • ExpeditionBattleStartScRsp — เพิ่ม schema แล้ว
  • GetExpeditionBattleDataCsReq — เพิ่ม schema แล้ว
  • GetExpeditionBattleDataScRsp — เพิ่ม schema แล้ว

Blind Box (7 messages)

อ่าน/เปิด/รีเซ็ตตำแหน่งกล่อง และการแจ้งการแลกเปลี่ยน.

  • BlindBoxGetDataCsReq — มี schema เดิมใน StarRail.proto
  • BlindBoxGetDataScRsp — มี schema เดิมใน StarRail.proto
  • BlindBoxOpenBoxCsReq — มี schema เดิมใน StarRail.proto
  • BlindBoxOpenBoxScRsp — มี schema เดิมใน StarRail.proto
  • BlindBoxResetPoolPositionCsReq — เพิ่ม schema แล้ว
  • BlindBoxResetPoolPositionScRsp — เพิ่ม schema แล้ว
  • BlindBoxTradeChangeScNotify — มี schema เดิมใน StarRail.proto

Badge (2 messages)

ข้อมูลและการแจ้งเปลี่ยน Badge.

  • BadgeInfoScNotify — มี schema เดิมใน StarRail.proto
  • GetBadgeInfoScRsp — มี schema เดิมใน StarRail.proto

Social Play (15 messages)

ข้อมูลห้อง เจ้าของห้อง ผู้เยี่ยมชม แชต การเคลื่อนไหว และ operation ในห้อง.

  • SocialPlayGameplayOperationScNotify — มี schema เดิมใน StarRail.proto
  • SocialPlayGetDataCsReq — มี schema เดิมใน StarRail.proto
  • SocialPlayGetDataScRsp — มี schema เดิมใน StarRail.proto
  • SocialPlayGetOnlineRoomDataCsReq — มี schema เดิมใน StarRail.proto
  • SocialPlayGetOnlineRoomDataScRsp — มี schema เดิมใน StarRail.proto
  • SocialPlayGetOwnerRoomDataCsReq — มี schema เดิมใน StarRail.proto
  • SocialPlayGetOwnerRoomDataScRsp — มี schema เดิมใน StarRail.proto
  • SocialPlayPreCheckEnterRoomCsReq — เพิ่ม schema แล้ว
  • SocialPlayPreCheckEnterRoomScRsp — มี schema เดิมใน StarRail.proto
  • SocialPlayQueryRecentVisitorsCsReq — มี schema เดิมใน StarRail.proto
  • SocialPlayQueryRecentVisitorsScRsp — มี schema เดิมใน StarRail.proto
  • SocialPlayRoomPlayerMoveScNotify — มี schema เดิมใน StarRail.proto
  • SocialPlaySettingInfoScNotify — มี schema เดิมใน StarRail.proto
  • SocialPlayTalkCsReq — มี schema เดิมใน StarRail.proto
  • SocialPlayTalkScRsp — มี schema เดิมใน StarRail.proto

Pet Marble (6 messages)

ข้อมูลเกม Pet Marble, trial และเริ่ม/ซิงก์ด่าน.

  • PetMarbleGetCycleTrialPetsCsReq — มี schema เดิมใน StarRail.proto
  • PetMarbleGetCycleTrialPetsScRsp — มี schema เดิมใน StarRail.proto
  • PetMarbleGetDataCsReq — มี schema เดิมใน StarRail.proto
  • PetMarbleGetDataScRsp — มี schema เดิมใน StarRail.proto
  • PetMarbleLevelBeginScRsp — มี schema เดิมใน StarRail.proto
  • PetMarbleSyncDataScNotify — มี schema เดิมใน StarRail.proto

Pet Park (2 messages)

คำขอปรับแต่ง Pet Park.

  • PetParkDiyCsReq — มี schema เดิมใน StarRail.proto
  • PetParkDiyScRsp — มี schema เดิมใน StarRail.proto

Finality Battle (2 messages)

คำขอเริ่มด่านต่อสู้ Finality และผลตอบกลับ.

  • StartFinalityBattleLevelCsReq — มี schema เดิมใน StarRail.proto
  • StartFinalityBattleLevelScRsp — มี schema เดิมใน StarRail.proto

Voracity Invasion (3 messages)

อ่านข้อมูลและรับ notification ของ Voracity Invasion.

  • GetVoracityInvasionDataScRsp — มี schema เดิมใน StarRail.proto
  • VoracityInvasionChangeScNotify — มี schema เดิมใน StarRail.proto
  • VoracityInvasionGetDataCsReq — เพิ่ม schema แล้ว

Private Order (2 messages)

คำขอประกาศ private order และผลตอบกลับ.

  • PublishPrivateOrderCsReq — มี schema เดิมใน StarRail.proto
  • PublishPrivateOrderRsp — มี schema เดิมใน StarRail.proto

Enum ที่เพิ่ม

  • GGLMGBPOCOP: ค่า GGLMGBPOCOP_BMKFIMEJPOM=0, GGLMGBPOCOP_MLOGJAKGHHD=1, GGLMGBPOCOP_ILMKHLENPNI=2; ชื่อสมาชิกยัง obfuscated จึงยังบอกความหมายเชิงเกมไม่ได้

ข้อความที่ยัง obfuscated

เหลือ 111 message ที่ชื่อเป็นรหัส ไม่มีชื่อ feature ที่ยืนยันได้ใน schema จึงไม่ตั้งชื่อความหมายเอง รายการด้านล่างบอกเฉพาะโครงสร้างและชนิดที่ message อื่นอ้างถึง:

  • AAOAEMOHCEP — fields: OHMBEPHEBDJ:uint32#2, progress:uint32#8; ถูกอ้างจาก: FOEPMKFEJMK
  • ABGMGHNOONM — fields: ไม่มี field; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • ADDMKOIFOEF — fields: ไม่มี field; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • AFAIGBNOCJB — fields: info:FOEPMKFEJMK#12; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • AFKFJCPELEM — fields: NGPBPFKGNLI:uint32#4, retcode:uint32#11; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • AHBLKPAJDPI — fields: CHILKFNAINA:uint32#13, LBMGKCMHKLN:uint32#14, HEMOHFJJMJG:uint32#15; ถูกอ้างจาก: BlindBoxOpenBoxCsReq
  • ALAMOHABJIP — fields: ILBFMJKABFO:uint32#4, JPPMEKJGJFD:uint32#10, LLNNOPDLLED:uint32#11, GNFDFIIKJHI:uint32#14; ถูกอ้างจาก: HPJONNDENCB, PPFAMGCOOFP
  • AOBDHCFGGBH — fields: design_level:uint32#3, DLDELBKOMDK:uint32#4, retcode:uint32#7, AFMDPIAFPNF:uint32#8, EIFICNFGGHI:uint32#9, LAOPAGMAAHD:uint32#11, OOIMHIJFHDI:uint32#12, PDNHGNDAHBA:uint32#14, FDGKBOIEHBD:uint32#15; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • BACPIBIJPPH — fields: retcode:uint32#13; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • BDOBLDOOICE — fields: EPENKGKBOAP:uint32#7, end_time:int64#8; ถูกอ้างจาก: PetMarbleGetCycleTrialPetsScRsp
  • BHJEBMOOJED — fields: KJPFENPNFBP:ItemList#12; ถูกอ้างจาก: BlindBoxOpenBoxScRsp
  • BMJHNDBOPLC — fields: ไม่มี field; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • BNKDEHGIJMH — fields: LLCHGCNFOJJ:JCAHAPMBCOC#15, IKMADODLNJD:PACMGHKKGKN#2, EPLGOGFAHDM:ONJIANLPDBE#9, PPNNPIGCHOL:FJEMMEGKKHE#11; ถูกอ้างจาก: HMLFGDFLIBP
  • BODEMOLDHAA — fields: teleport_id:uint32#10; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • BPMFHIHNEHH — fields: ENGHMIAMPLG:ItemList#9, retcode:uint32#12, info:FOEPMKFEJMK#13; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • CCLIGKFAHJI — fields: ไม่มี field; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • CDLFFHOHAIH — fields: FIEOPKNBHKJ:uint64#15; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • CEAPCHBBOFN — fields: MBIAIMKHNDB:bool#2, uid:uint32#11; ถูกอ้างจาก: MIECIEKKIMJ
  • CHNMJPLALEC — fields: retcode:uint32#3, MJNENEAAOAE:uint64#5; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • CJIFMPGCOOC — fields: AALLJKILLKM:DLDPJEILCDB#13; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • COPLCPBANMD — fields: FODBOPBEALE:PDFEPMMIKDF#13; ถูกอ้างจาก: PetMarbleGetDataScRsp, PetMarbleSyncDataScNotify
  • CPCHHBHCGOO — fields: ไม่มี field; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • DCNIDBKPPCK — fields: IKJOGIDIBPK:uint64#1, retcode:uint32#6, order_list:NMEGIPHFFDA#9; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • DJIHNCHDFED — fields: retcode:uint32#5; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • DLDPJEILCDB — fields: HJAMPKPCKEB:string#1, KMGONPNDONA:string#2, DHPIFLNBLNM:string#3, ACLHGDDNNLK:string#4, CAGPHEEGOAC:string#5, DNDHBFOKAEA:string#6, ACMLHNNMBBN:string#7, FFCDKLBFKJM:string#8, DALMLLPIFNP:string#9, EFGMHCEIJGO:string#10, PFDNBIDFDMH:string#11, BLBAIBEBIAL:string#12, KNAKEKLCFDH:string#13, GECJPIMLHIM:string#14, JHKJKKGLAHE:string#15, GOOLPABLPBF:string#1297, LOKOLODKAAM:string#1369; ถูกอ้างจาก: CJIFMPGCOOC
  • DNHFLGJJKHN — fields: order_list:NMEGIPHFFDA#10, IKJOGIDIBPK:uint64#11; ถูกอ้างจาก: OIJOHMLIEII
  • DPOGMNFCMNN — fields: order_list:NMEGIPHFFDA#5, retcode:uint32#7; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • EBGAMBKHDBO — fields: IAJHCHOJHNN:uint32#14, type:uint32#3, NLIHHAKFEDB:bool#607, GGBGEJIIKFN:BEGIDCPIPBG.MDNMHBPMJFD#155; ถูกอ้างจาก: GetVoracityInvasionDataScRsp
  • ELNAIJEFGMK — fields: NMELIDCDKAK:uint32#5; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • FAKNKCAOHON — fields: FIEOPKNBHKJ:uint64#14; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • FDCJIIKHHHB — fields: retcode:uint32#10; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • FGLAJHMCJLL — fields: expire_time:int64#10, EIKLMFPMJJD:uint32#12; ถูกอ้างจาก: JEGMGPOFHGG
  • FIJJHJADLLM — fields: retcode:uint32#5, DODHMIDBNHC:NPLMMCGAJDF#10; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • FJEMMEGKKHE — fields: KIEBAPFGCCN:uint32#7; ถูกอ้างจาก: BNKDEHGIJMH
  • FJKEGMEPLDI — fields: CPPBNJLABGE:HKHKEMHCHEB#8; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • FKPKLHICPFO — fields: LENMCGCGBOA:uint32#7, retcode:uint32#14; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • FMOEINGLFGG — fields: FLKIEILIBJA:PGLBKDELHJK#4, OGOCOFPHIIK:FODAGGODIJM#1; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • FODAGGODIJM — fields: FLBOPEJIGJF:uint32#5, DGONPFLCOMO:uint32#7; ถูกอ้างจาก: FMOEINGLFGG
  • FOEPMKFEJMK — fields: LNLDJDODOIL:uint32#5, available_count:uint32#7, CLGMOPPOGGC:uint32#8, OMNDNGDEEGL:AAOAEMOHCEP#11; ถูกอ้างจาก: AFAIGBNOCJB, BPMFHIHNEHH, OMEAEOLPGGM
  • GNBOBLNFEHI — fields: FIEOPKNBHKJ:uint64#9; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • HAHEOGIBNHL — fields: MJNENEAAOAE:uint64#10, retcode:uint32#11; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • HAIFIDAHGJG — fields: JIPPNPILKDJ:HHCNMGNAIBG#14; ถูกอ้างจาก: SocialPlayGetDataScRsp
  • HFHGPMCHDGL — fields: BHBJFFMACFD:uint32#1, OLGCOBHGDCD:HIMPJFMPEPA#2; ถูกอ้างจาก: HHCNMGNAIBG
  • HHCNMGNAIBG — fields: DANNIDIPFAL:HFHGPMCHDGL#1; ถูกอ้างจาก: HAIFIDAHGJG, LLKIFBFCMLK, PetParkDiyScRsp, SocialPlayGameplayOperationScNotify
  • HHJLCGGEHPB — fields: PLPPPCEPBDO:uint32#1, KFACPOBAAGM:int64#7, CILGIDDHODG:PlayerSimpleInfo#14; ถูกอ้างจาก: SocialPlayQueryRecentVisitorsScRsp
  • HKHKEMHCHEB — fields: NECCJMBJNEN:uint32#4, HECCOBFBJFI:uint32#5; ถูกอ้างจาก: FJKEGMEPLDI
  • HLJINHODOPP — fields: order_list:NMEGIPHFFDA#3, retcode:uint32#6; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • HMACEHDGGHB — fields: BJPHDKEBOBK:IKAHKMNCFDN#1, HBKEPFKDAMI:uint32#2, CMHKFNFKGOI:int64#3; ถูกอ้างจาก: SocialPlayGameplayOperationScNotify
  • HMLFGDFLIBP — fields: DGNGMJMPFGK:BNKDEHGIJMH#8; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • HPJONNDENCB — fields: EEFLBHGIAAN:ALAMOHABJIP#4, OFNDFACDNOC:uint32#11; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • IAKKHBENIOL — fields: retcode:uint32#9; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • IFEEMEAJMEJ — fields: ODNGMIJLKKA:uint32#1, ENGJIMIHCHJ:PFNJCDINMLA#2, EGECDHIHFHF:OELLEKNNEMK#3; ถูกอ้างจาก: JBJNJPAOCDA
  • IKBDJLNEPBH — fields: HFLOPHNBKGN:PEEEEGAPCOK#1; ถูกอ้างจาก: SocialPlayGameplayOperationScNotify
  • ILBLJAFMBBK — fields: FIEOPKNBHKJ:uint64#6; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • IMDEBPDKCAJ — fields: MJNENEAAOAE:uint64#5, retcode:uint32#8; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • IOPNJIOPAFI — fields: filter:MMBIBKFEFNG#13, ADPEKIOPFKG:GGLMGBPOCOP#15; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • JBJNJPAOCDA — fields: uid:uint32#1, OJPDDAOJJKC:bool#2, NJDCPMENIFG:JOLAHHGIFHA#3, AIMNJIMDIKM:int64#4, AJIPBLCIONL:PlayerSimpleInfo#5, DCFKJCMODKJ:IFEEMEAJMEJ#6, LHLKJIDFLIN:CBPDACMBHGL#7; ถูกอ้างจาก: POBLGKIGINE, SocialPlayGameplayOperationScNotify, SocialPlayGetDataScRsp
  • JCAHAPMBCOC — fields: EJHKAHEGCDC:uint32#8; ถูกอ้างจาก: BNKDEHGIJMH
  • JCIPKHCJLBM — fields: retcode:uint32#11; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • JDNHIMDLIHH — fields: ไม่มี field; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • JEGMGPOFHGG — fields: CPMCCCODGAB:FGLAJHMCJLL#3; ถูกอ้างจาก: BadgeInfoScNotify, GetBadgeInfoScRsp
  • JGAMELLGLGE — fields: NJDCPMENIFG:JOLAHHGIFHA#7; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • JKILAALMFIB — fields: retcode:uint32#7; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • JLMKPMCDOKC — fields: CLGMOPPOGGC:uint32#13; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • JNDBILOGFAF — fields: FBDIGGDLDCP:MNGADDFICJF#1, FLBOPEJIGJF:uint32#10; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • JOLAHHGIFHA — fields: pos:Vector#1, rot:Vector#2, ICNANKMDJIC:float#3, GHMKFMBDKNE:Vector#4, GHEMGLKGKLC:float#5, FPHBEHJJBIA:uint32#6, MGIOLDGHPMA:bool#7, time_stamp:int64#8; ถูกอ้างจาก: JBJNJPAOCDA, JGAMELLGLGE, MHNNEFBOPIE
  • JPAOIPLDKHB — fields: BJPHDKEBOBK:IKAHKMNCFDN#1, NLJBJMDPBGN:BFAKMCIJFCB#2, DBIKJPDBMOE:int64#3, CMHKFNFKGOI:int64#4, HBKEPFKDAMI:uint32#5, GAEKEFEKCBD:uint32#6; ถูกอ้างจาก: PBMDEBCGNMD
  • JPPCNOGIMFD — fields: DHAKONBPFMC:uint32#7; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • KKACLNNMMAM — fields: EIHOECKBDOH:uint32#7, BPAOGJPLENJ:uint32#14, JMAODNEONPF:bool#15; ถูกอ้างจาก: KPBCIIFIAGI
  • KPBCIIFIAGI — fields: CMHKFNFKGOI:int64#1, KABGCGENKLK:CGLJLBDFNBK#2, NIELDCLPOLA:JOFHMCJPBCE#4, BJPHDKEBOBK:IKAHKMNCFDN#5, NLJBJMDPBGN:BFAKMCIJFCB#6, CEMFBJPOLNP:PJFIMFJPMCN#7, NAIFOMCLGLN:ONAADAJBLEB#8, JIELLGELABA:KKACLNNMMAM#9, KBEGMPBAJIL:uint32#11; ถูกอ้างจาก: SocialPlayGetDataScRsp
  • LLKIFBFCMLK — fields: JIPPNPILKDJ:HHCNMGNAIBG#1; ถูกอ้างจาก: POBLGKIGINE
  • LMOILOPJKCB — fields: retcode:uint32#2; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • LNAAACICHPG — fields: pet_id:uint32#1, NDMHOKEGOAP:uint32#11, ONMDDKGCEHK:uint64#13; ถูกอ้างจาก: NMEGIPHFFDA
  • LPJFNJAJIGM — fields: FIEOPKNBHKJ:uint64#13, ONMDDKGCEHK:uint64#15; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • MENCBJMOEML — fields: FIEOPKNBHKJ:uint64#12; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • MFCCCIMGMFL — fields: pool_id:uint32#1, POONFMJAFDH:uint32#3, end_time:int64#7, GOJBGCEEEHK:string#11, JPLIJJFCAOO:int64#14; ถูกอ้างจาก: BlindBoxGetDataScRsp
  • MGFJDLIBABO — fields: JPPKLEIPKAN:BattleEndStatus#6, PLAPNCJJAOP:NPLMMCGAJDF#11, ELHJAMKKKLH:bool#12; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • MHNNEFBOPIE — fields: op_uid:uint32#1, JENKGODEIOM:JOLAHHGIFHA#2; ถูกอ้างจาก: SocialPlayRoomPlayerMoveScNotify
  • MIECIEKKIMJ — fields: retcode:uint32#2, CAFBDEDFBOL:CEAPCHBBOFN#3; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • MIKGMGBHLEN — fields: message_text:string#1, extra_id:uint32#2; ถูกอ้างจาก: SocialPlayGameplayOperationScNotify, SocialPlayTalkCsReq, SocialPlayTalkScRsp
  • MKGODFLGEAM — fields: level:uint32#2, LLKGDLAFODJ:string#5, head_icon:uint32#6, AGABADPIGGK:bool#8, uid:uint32#15; ถูกอ้างจาก: NMEGIPHFFDA
  • MLNNHJKKMNC — fields: ไม่มี field; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • MMBIBKFEFNG — fields: FMHBALCGMFF:bool#3, PODLFMBEKEG:uint32#9; ถูกอ้างจาก: IOPNJIOPAFI
  • MNGADDFICJF — fields: ENPNDBIBPLE:uint32#1, PANMEBACIBF:bool#2, rotation:uint32#3, x:uint32#8, y:uint32#11; ถูกอ้างจาก: JNDBILOGFAF, NPMOBJOCIAF, PGLBKDELHJK
  • MNGELOJBJGC — fields: retcode:uint32#7, FMACGJBHLPF:uint32#10, order_list:NMEGIPHFFDA#15; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • MNLLCNFNKKP — fields: IMGDMDDKHDL:uint32#1, LALKFADHJJL:uint32#5, FMCCHBBIJKF:ODLEEMAALIP#6, GBJEALNCMJC:uint32#7, HCMKEFPFEDH:bool#8, IIIAGPNGPJM:ODLEEMAALIP#9, mode:uint32#12, OFNINJLHHDE:ODLEEMAALIP#15; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • NLBAOLFBEGB — fields: retcode:uint32#3, LLLOIIKOCEN:PPELMHMMCHP#8; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • NMEGIPHFFDA — fields: AMGLECMANAH:LNAAACICHPG#1, LFOIKMFLNKJ:PEHEBABHPBH#2, EFKJFADLLIA:MKGODFLGEAM#6, FIEOPKNBHKJ:uint64#7, expire_time:uint64#8, NDHBAFMMFBC:OHAPBJANBDE#10, KDBMGCMEOFL:uint64#11, DCKKGALHFNO:uint64#12, DAMCKNHKDOA:LNAAACICHPG#13, DFAACJDIFBL:MKGODFLGEAM#15; ถูกอ้างจาก: DCNIDBKPPCK, DNHFLGJJKHN, DPOGMNFCMNN, HLJINHODOPP, MNGELOJBJGC
  • NPLMMCGAJDF — fields: DFFPHJJIHFJ:uint32#2, LAPLGJOBGAN:uint32#4, remaining_round:uint32#12, level_id:uint32#14; ถูกอ้างจาก: FIJJHJADLLM, MGFJDLIBABO
  • NPMOBJOCIAF — fields: DGONPFLCOMO:uint32#11, FBDIGGDLDCP:MNGADDFICJF#15; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • OAOONIMHKLA — fields: retcode:uint32#1; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • ODHFCEALPFN — fields: IIIAGPNGPJM:ODLEEMAALIP#1, JJPLIMAENEB:uint32#3, JNBIALMKFCL:uint32#5, FMCCHBBIJKF:ODLEEMAALIP#7, OFNINJLHHDE:ODLEEMAALIP#9, LLMLOGNFFCD:bool#10, mode:uint32#13; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • ODLEEMAALIP — fields: AOLIEDBCNBN:uint32#1, hp:sint32#4, KNDIIBJEIDG:uint32#6, NDMHOKEGOAP:uint32#7, OLANKLPCBEG:uint32#9, atk:uint32#10, AGKNBANFLIB:KVP#11, MDKFLGDEJCN:uint32#12; ถูกอ้างจาก: MNLLCNFNKKP, ODHFCEALPFN
  • OELLEKNNEMK — fields: OLGCOBHGDCD:HIMPJFMPEPA#1, CGBJOAJEMKN:uint32#2; ถูกอ้างจาก: IFEEMEAJMEJ
  • OIJOHMLIEII — fields: EPHIIBNCCJG:DNHFLGJJKHN#15; ถูกอ้างจาก: BlindBoxTradeChangeScNotify
  • OKCAJHKCJDE — fields: JDFJJOKDIKC:uint32#2, OBLOEMJOFEE:uint32#4, AFFLDMFBGEH:uint64#13; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • OMEAEOLPGGM — fields: HNFFFDEGOEB:FOEPMKFEJMK#8, retcode:uint32#13; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • ONAADAJBLEB — fields: DBIKJPDBMOE:int64#11, ONOHPMDGNNH:uint32#14; ถูกอ้างจาก: KPBCIIFIAGI
  • ONJIANLPDBE — fields: LEJEBBCKPCI:uint32#9; ถูกอ้างจาก: BNKDEHGIJMH
  • PACMGHKKGKN — fields: IEOAHLNBBBB:uint32#13; ถูกอ้างจาก: BNKDEHGIJMH
  • PBMDEBCGNMD — fields: IKJNIKIGFLF:MNCBEDBDDHL#1, PKHFMJDNKOE:JPAOIPLDKHB#2, KABGCGENKLK:CGLJLBDFNBK#4; ถูกอ้างจาก: POBLGKIGINE
  • PDFEPMMIKDF — fields: KOMOGINENAC:uint32#1, AIJPKJICFDJ:uint32#6, mode:uint32#8; ถูกอ้างจาก: COPLCPBANMD
  • PEEEEGAPCOK — fields: PLPPPCEPBDO:uint32#1, op_uid:uint32#2, OOCPKIGPEHP:uint32#3, CMIEOOODDIA:int64#4, AALDPOAKJBK:string#5; ถูกอ้างจาก: IKBDJLNEPBH
  • PEMMJHDFOLM — fields: ไม่มี field; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • PGLBKDELHJK — fields: FLBOPEJIGJF:uint32#1, status:uint32#5, DGONPFLCOMO:uint32#7, FBDIGGDLDCP:MNGADDFICJF#9; ถูกอ้างจาก: FMOEINGLFGG
  • PHIMNIFMBMI — fields: MJNENEAAOAE:uint64#2, retcode:uint32#14; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • PMBMFHMKBNC — fields: retcode:uint32#4; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • POBLGKIGINE — fields: room_owner_uid:uint32#1, player_info:JBJNJPAOCDA#2, DLKOEIANIMK:uint32#3, LNMGOFCOMED:PBMDEBCGNMD#100, MAGDHGMLLKG:LLKIFBFCMLK#101; ถูกอ้างจาก: SocialPlayGameplayOperationScNotify, SocialPlayGetOnlineRoomDataScRsp, SocialPlayGetOwnerRoomDataScRsp
  • PPELMHMMCHP — fields: KLOJONBEJKJ:uint32#1, ONMDDKGCEHK:uint64#4; ถูกอ้างจาก: NLBAOLFBEGB
  • PPFAMGCOOFP — fields: GALBOLNODBB:uint32#1, LENMCGCGBOA:uint32#2, EEFLBHGIAAN:ALAMOHABJIP#3, NGPBPFKGNLI:uint32#4, IEOAHLNBBBB:uint32#5, EJHKAHEGCDC:uint32#6, LEJEBBCKPCI:uint32#8, design_level:uint32#9, OOIMHIJFHDI:uint32#10, DEJOLCEPDCF:uint32#11, retcode:uint32#12, OFNDFACDNOC:uint32#13, KIEBAPFGCCN:uint32#14, LAOPAGMAAHD:uint32#15; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้
  • PPOPABLIHNI — fields: count:uint32#10, offset:uint32#14; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้

ข้อจำกัดก่อนใช้ทำ handler

  • การมี Go message type ไม่ได้แปลว่ามี CmdID, request/response pairing หรือ handler แล้ว
  • ใช้ protocol/proto/cmdid.go/ตารางที่อ้าง revision ตรงกันเท่านั้น; ถ้าชื่อยัง obfuscated ให้บันทึกความไม่แน่นอนแทนการเดา
  • schema ที่เพิ่มครั้งนี้เป็นการเติม definitions ที่ไม่มีใน StarRail.proto เท่านั้น ไม่ได้ยืนยันว่า Client รุ่นใดส่ง message เหล่านี้หรือว่า feature เล่นได้ครบ