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.protoB51RacingGetDataScRsp— มี schema เดิมในStarRail.protoB51RacingMatchInfo— เพิ่ม 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.protoBlindBoxGetDataScRsp— มี schema เดิมในStarRail.protoBlindBoxOpenBoxCsReq— มี schema เดิมในStarRail.protoBlindBoxOpenBoxScRsp— มี schema เดิมในStarRail.protoBlindBoxResetPoolPositionCsReq— เพิ่ม schema แล้วBlindBoxResetPoolPositionScRsp— เพิ่ม schema แล้วBlindBoxTradeChangeScNotify— มี schema เดิมในStarRail.proto
Badge (2 messages)
ข้อมูลและการแจ้งเปลี่ยน Badge.
BadgeInfoScNotify— มี schema เดิมในStarRail.protoGetBadgeInfoScRsp— มี schema เดิมในStarRail.proto
Social Play (15 messages)
ข้อมูลห้อง เจ้าของห้อง ผู้เยี่ยมชม แชต การเคลื่อนไหว และ operation ในห้อง.
SocialPlayGameplayOperationScNotify— มี schema เดิมในStarRail.protoSocialPlayGetDataCsReq— มี schema เดิมในStarRail.protoSocialPlayGetDataScRsp— มี schema เดิมในStarRail.protoSocialPlayGetOnlineRoomDataCsReq— มี schema เดิมในStarRail.protoSocialPlayGetOnlineRoomDataScRsp— มี schema เดิมในStarRail.protoSocialPlayGetOwnerRoomDataCsReq— มี schema เดิมในStarRail.protoSocialPlayGetOwnerRoomDataScRsp— มี schema เดิมในStarRail.protoSocialPlayPreCheckEnterRoomCsReq— เพิ่ม schema แล้วSocialPlayPreCheckEnterRoomScRsp— มี schema เดิมในStarRail.protoSocialPlayQueryRecentVisitorsCsReq— มี schema เดิมในStarRail.protoSocialPlayQueryRecentVisitorsScRsp— มี schema เดิมในStarRail.protoSocialPlayRoomPlayerMoveScNotify— มี schema เดิมในStarRail.protoSocialPlaySettingInfoScNotify— มี schema เดิมในStarRail.protoSocialPlayTalkCsReq— มี schema เดิมในStarRail.protoSocialPlayTalkScRsp— มี schema เดิมในStarRail.proto
Pet Marble (6 messages)
ข้อมูลเกม Pet Marble, trial และเริ่ม/ซิงก์ด่าน.
PetMarbleGetCycleTrialPetsCsReq— มี schema เดิมในStarRail.protoPetMarbleGetCycleTrialPetsScRsp— มี schema เดิมในStarRail.protoPetMarbleGetDataCsReq— มี schema เดิมในStarRail.protoPetMarbleGetDataScRsp— มี schema เดิมในStarRail.protoPetMarbleLevelBeginScRsp— มี schema เดิมในStarRail.protoPetMarbleSyncDataScNotify— มี schema เดิมในStarRail.proto
Pet Park (2 messages)
คำขอปรับแต่ง Pet Park.
PetParkDiyCsReq— มี schema เดิมในStarRail.protoPetParkDiyScRsp— มี schema เดิมในStarRail.proto
Finality Battle (2 messages)
คำขอเริ่มด่านต่อสู้ Finality และผลตอบกลับ.
StartFinalityBattleLevelCsReq— มี schema เดิมในStarRail.protoStartFinalityBattleLevelScRsp— มี schema เดิมในStarRail.proto
Voracity Invasion (3 messages)
อ่านข้อมูลและรับ notification ของ Voracity Invasion.
GetVoracityInvasionDataScRsp— มี schema เดิมในStarRail.protoVoracityInvasionChangeScNotify— มี schema เดิมในStarRail.protoVoracityInvasionGetDataCsReq— เพิ่ม schema แล้ว
Private Order (2 messages)
คำขอประกาศ private order และผลตอบกลับ.
PublishPrivateOrderCsReq— มี schema เดิมในStarRail.protoPublishPrivateOrderRsp— มี 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; ถูกอ้างจาก:FOEPMKFEJMKABGMGHNOONM— 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; ถูกอ้างจาก:BlindBoxOpenBoxCsReqALAMOHABJIP— fields: ILBFMJKABFO:uint32#4, JPPMEKJGJFD:uint32#10, LLNNOPDLLED:uint32#11, GNFDFIIKJHI:uint32#14; ถูกอ้างจาก:HPJONNDENCB,PPFAMGCOOFPAOBDHCFGGBH— 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; ถูกอ้างจาก:PetMarbleGetCycleTrialPetsScRspBHJEBMOOJED— fields: KJPFENPNFBP:ItemList#12; ถูกอ้างจาก:BlindBoxOpenBoxScRspBMJHNDBOPLC— fields: ไม่มี field; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้BNKDEHGIJMH— fields: LLCHGCNFOJJ:JCAHAPMBCOC#15, IKMADODLNJD:PACMGHKKGKN#2, EPLGOGFAHDM:ONJIANLPDBE#9, PPNNPIGCHOL:FJEMMEGKKHE#11; ถูกอ้างจาก:HMLFGDFLIBPBODEMOLDHAA— 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; ถูกอ้างจาก:MIECIEKKIMJCHNMJPLALEC— fields: retcode:uint32#3, MJNENEAAOAE:uint64#5; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้CJIFMPGCOOC— fields: AALLJKILLKM:DLDPJEILCDB#13; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้COPLCPBANMD— fields: FODBOPBEALE:PDFEPMMIKDF#13; ถูกอ้างจาก:PetMarbleGetDataScRsp,PetMarbleSyncDataScNotifyCPCHHBHCGOO— 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; ถูกอ้างจาก:CJIFMPGCOOCDNHFLGJJKHN— fields: order_list:NMEGIPHFFDA#10, IKJOGIDIBPK:uint64#11; ถูกอ้างจาก:OIJOHMLIEIIDPOGMNFCMNN— fields: order_list:NMEGIPHFFDA#5, retcode:uint32#7; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้EBGAMBKHDBO— fields: IAJHCHOJHNN:uint32#14, type:uint32#3, NLIHHAKFEDB:bool#607, GGBGEJIIKFN:BEGIDCPIPBG.MDNMHBPMJFD#155; ถูกอ้างจาก:GetVoracityInvasionDataScRspELNAIJEFGMK— 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; ถูกอ้างจาก:JEGMGPOFHGGFIJJHJADLLM— fields: retcode:uint32#5, DODHMIDBNHC:NPLMMCGAJDF#10; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้FJEMMEGKKHE— fields: KIEBAPFGCCN:uint32#7; ถูกอ้างจาก:BNKDEHGIJMHFJKEGMEPLDI— 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; ถูกอ้างจาก:FMOEINGLFGGFOEPMKFEJMK— fields: LNLDJDODOIL:uint32#5, available_count:uint32#7, CLGMOPPOGGC:uint32#8, OMNDNGDEEGL:AAOAEMOHCEP#11; ถูกอ้างจาก:AFAIGBNOCJB,BPMFHIHNEHH,OMEAEOLPGGMGNBOBLNFEHI— fields: FIEOPKNBHKJ:uint64#9; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้HAHEOGIBNHL— fields: MJNENEAAOAE:uint64#10, retcode:uint32#11; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้HAIFIDAHGJG— fields: JIPPNPILKDJ:HHCNMGNAIBG#14; ถูกอ้างจาก:SocialPlayGetDataScRspHFHGPMCHDGL— fields: BHBJFFMACFD:uint32#1, OLGCOBHGDCD:HIMPJFMPEPA#2; ถูกอ้างจาก:HHCNMGNAIBGHHCNMGNAIBG— fields: DANNIDIPFAL:HFHGPMCHDGL#1; ถูกอ้างจาก:HAIFIDAHGJG,LLKIFBFCMLK,PetParkDiyScRsp,SocialPlayGameplayOperationScNotifyHHJLCGGEHPB— fields: PLPPPCEPBDO:uint32#1, KFACPOBAAGM:int64#7, CILGIDDHODG:PlayerSimpleInfo#14; ถูกอ้างจาก:SocialPlayQueryRecentVisitorsScRspHKHKEMHCHEB— fields: NECCJMBJNEN:uint32#4, HECCOBFBJFI:uint32#5; ถูกอ้างจาก:FJKEGMEPLDIHLJINHODOPP— fields: order_list:NMEGIPHFFDA#3, retcode:uint32#6; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้HMACEHDGGHB— fields: BJPHDKEBOBK:IKAHKMNCFDN#1, HBKEPFKDAMI:uint32#2, CMHKFNFKGOI:int64#3; ถูกอ้างจาก:SocialPlayGameplayOperationScNotifyHMLFGDFLIBP— 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; ถูกอ้างจาก:JBJNJPAOCDAIKBDJLNEPBH— fields: HFLOPHNBKGN:PEEEEGAPCOK#1; ถูกอ้างจาก:SocialPlayGameplayOperationScNotifyILBLJAFMBBK— 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,SocialPlayGetDataScRspJCAHAPMBCOC— fields: EJHKAHEGCDC:uint32#8; ถูกอ้างจาก:BNKDEHGIJMHJCIPKHCJLBM— fields: retcode:uint32#11; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้JDNHIMDLIHH— fields: ไม่มี field; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้JEGMGPOFHGG— fields: CPMCCCODGAB:FGLAJHMCJLL#3; ถูกอ้างจาก:BadgeInfoScNotify,GetBadgeInfoScRspJGAMELLGLGE— 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,MHNNEFBOPIEJPAOIPLDKHB— fields: BJPHDKEBOBK:IKAHKMNCFDN#1, NLJBJMDPBGN:BFAKMCIJFCB#2, DBIKJPDBMOE:int64#3, CMHKFNFKGOI:int64#4, HBKEPFKDAMI:uint32#5, GAEKEFEKCBD:uint32#6; ถูกอ้างจาก:PBMDEBCGNMDJPPCNOGIMFD— fields: DHAKONBPFMC:uint32#7; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้KKACLNNMMAM— fields: EIHOECKBDOH:uint32#7, BPAOGJPLENJ:uint32#14, JMAODNEONPF:bool#15; ถูกอ้างจาก:KPBCIIFIAGIKPBCIIFIAGI— 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; ถูกอ้างจาก:SocialPlayGetDataScRspLLKIFBFCMLK— fields: JIPPNPILKDJ:HHCNMGNAIBG#1; ถูกอ้างจาก:POBLGKIGINELMOILOPJKCB— fields: retcode:uint32#2; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้LNAAACICHPG— fields: pet_id:uint32#1, NDMHOKEGOAP:uint32#11, ONMDDKGCEHK:uint64#13; ถูกอ้างจาก:NMEGIPHFFDALPJFNJAJIGM— 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; ถูกอ้างจาก:BlindBoxGetDataScRspMGFJDLIBABO— fields: JPPKLEIPKAN:BattleEndStatus#6, PLAPNCJJAOP:NPLMMCGAJDF#11, ELHJAMKKKLH:bool#12; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้MHNNEFBOPIE— fields: op_uid:uint32#1, JENKGODEIOM:JOLAHHGIFHA#2; ถูกอ้างจาก:SocialPlayRoomPlayerMoveScNotifyMIECIEKKIMJ— fields: retcode:uint32#2, CAFBDEDFBOL:CEAPCHBBOFN#3; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้MIKGMGBHLEN— fields: message_text:string#1, extra_id:uint32#2; ถูกอ้างจาก:SocialPlayGameplayOperationScNotify,SocialPlayTalkCsReq,SocialPlayTalkScRspMKGODFLGEAM— fields: level:uint32#2, LLKGDLAFODJ:string#5, head_icon:uint32#6, AGABADPIGGK:bool#8, uid:uint32#15; ถูกอ้างจาก:NMEGIPHFFDAMLNNHJKKMNC— fields: ไม่มี field; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้MMBIBKFEFNG— fields: FMHBALCGMFF:bool#3, PODLFMBEKEG:uint32#9; ถูกอ้างจาก:IOPNJIOPAFIMNGADDFICJF— fields: ENPNDBIBPLE:uint32#1, PANMEBACIBF:bool#2, rotation:uint32#3, x:uint32#8, y:uint32#11; ถูกอ้างจาก:JNDBILOGFAF,NPMOBJOCIAF,PGLBKDELHJKMNGELOJBJGC— 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,MNGELOJBJGCNPLMMCGAJDF— fields: DFFPHJJIHFJ:uint32#2, LAPLGJOBGAN:uint32#4, remaining_round:uint32#12, level_id:uint32#14; ถูกอ้างจาก:FIJJHJADLLM,MGFJDLIBABONPMOBJOCIAF— 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,ODHFCEALPFNOELLEKNNEMK— fields: OLGCOBHGDCD:HIMPJFMPEPA#1, CGBJOAJEMKN:uint32#2; ถูกอ้างจาก:IFEEMEAJMEJOIJOHMLIEII— fields: EPHIIBNCCJG:DNHFLGJJKHN#15; ถูกอ้างจาก:BlindBoxTradeChangeScNotifyOKCAJHKCJDE— 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; ถูกอ้างจาก:KPBCIIFIAGIONJIANLPDBE— fields: LEJEBBCKPCI:uint32#9; ถูกอ้างจาก:BNKDEHGIJMHPACMGHKKGKN— fields: IEOAHLNBBBB:uint32#13; ถูกอ้างจาก:BNKDEHGIJMHPBMDEBCGNMD— fields: IKJNIKIGFLF:MNCBEDBDDHL#1, PKHFMJDNKOE:JPAOIPLDKHB#2, KABGCGENKLK:CGLJLBDFNBK#4; ถูกอ้างจาก:POBLGKIGINEPDFEPMMIKDF— fields: KOMOGINENAC:uint32#1, AIJPKJICFDJ:uint32#6, mode:uint32#8; ถูกอ้างจาก:COPLCPBANMDPEEEEGAPCOK— fields: PLPPPCEPBDO:uint32#1, op_uid:uint32#2, OOCPKIGPEHP:uint32#3, CMIEOOODDIA:int64#4, AALDPOAKJBK:string#5; ถูกอ้างจาก:IKBDJLNEPBHPEMMJHDFOLM— fields: ไม่มี field; ถูกอ้างจาก: ไม่มีการอ้างถึงจาก message ในไฟล์นี้PGLBKDELHJK— fields: FLBOPEJIGJF:uint32#1, status:uint32#5, DGONPFLCOMO:uint32#7, FBDIGGDLDCP:MNGADDFICJF#9; ถูกอ้างจาก:FMOEINGLFGGPHIMNIFMBMI— 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,SocialPlayGetOwnerRoomDataScRspPPELMHMMCHP— fields: KLOJONBEJKJ:uint32#1, ONMDDKGCEHK:uint64#4; ถูกอ้างจาก:NLBAOLFBEGBPPFAMGCOOFP— 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 เล่นได้ครบ