feat: port GaC-hkrpg-ps to Go with SceneCastSkill camera-detach fix

- mihoyo-variant KCP in pure Go (28-byte conv+token header), UDP gateway
  with 0xFF/0x145/0x194 handshake, ms-precision KCP clock + retransmit ticker
- protobuf for 4.6.51 generated from the AstralOS StarRail.proto (4932
  messages) plus CmdID map from // CmdID: comments (2114 ids)
- sdkserver port: query_dispatch/query_gateway (Gateserver pb + base64),
  hotfix fetch, auth endpoints, SRTools freesr-data.json upload
- gameserver handlers: login flow, scene load/spawn with real monster
  entity tracking, lineup, avatar/skin, missions, tutorials (1249+855),
  bag/equip, challenge incl. StartChallenge 1787 layout + Tierce 8973 +
  peak 8948, all raw tierce replies
- SceneCastSkill camera bug fix: only real scene monsters (tracked per
  session) trigger battle; attacking props/NPCs/air replies retcode 0
  without battle_info so the camera stays locked on the character
- end-to-end smoke test simulating a client over real UDP: handshake,
  PlayerGetToken, and both SceneCastSkill paths
- reuses the Rust PS data files unchanged (freesr-data.json, persistent,
  res.json, teleports.json, challenge_data.json, mission_unlocks.json)
This commit is contained in:
CAtlas0784 committed 2026-10-07 00:22:23 +07:00
commit 59ea97b1a6
45 files changed
+1963868

No files matched your search

+1
View File
@@ -0,0 +1 @@
{"20101001":{"1001":{"pos":{"x":42548,"y":3716,"z":-38422},"rot":{"x":0,"y":0,"z":0}},"1006":{"pos":{"x":-530,"y":19066,"z":1940},"rot":{"x":0,"y":0,"z":0}},"2010102":{"pos":{"x":20290,"y":14305,"z":-16630},"rot":{"x":0,"y":0,"z":0}},"2010103":{"pos":{"x":89070,"y":3558,"z":-34210},"rot":{"x":0,"y":0,"z":0}}},"20111001":{"1002":{"pos":{"x":-17550,"y":1876,"z":9728},"rot":{"x":0,"y":0,"z":0}},"1007":{"pos":{"x":110,"y":-2130,"z":-78020},"rot":{"x":0,"y":0,"z":0}},"1107":{"pos":{"x":-54207,"y":-2141,"z":-170330},"rot":{"x":0,"y":0,"z":0}},"2011101":{"pos":{"x":34190,"y":-2167,"z":-8490},"rot":{"x":0,"y":0,"z":0}},"2011102":{"pos":{"x":8460,"y":-2134,"z":-72956},"rot":{"x":0,"y":0,"z":0}},"2011103":{"pos":{"x":-22970,"y":-2034,"z":-170000},"rot":{"x":0,"y":0,"z":0}}},"20121001":{"1003":{"pos":{"x":186692,"y":55115,"z":-170540},"rot":{"x":0,"y":0,"z":0}},"1010":{"pos":{"x":117240,"y":46810,"z":-44877},"rot":{"x":0,"y":0,"z":0}},"1105":{"pos":{"x":187420,"y":28490,"z":-132974},"rot":{"x":0,"y":0,"z":0}},"1112":{"pos":{"x":264660,"y":52546,"z":-158480},"rot":{"x":0,"y":0,"z":0}},"2012101":{"pos":{"x":127850,"y":46588,"z":-27590},"rot":{"x":0,"y":0,"z":0}},"2012102":{"pos":{"x":177855,"y":55671,"z":-185106},"rot":{"x":0,"y":0,"z":0}},"2012103":{"pos":{"x":191750,"y":34645,"z":-153710},"rot":{"x":0,"y":0,"z":0}},"2012105":{"pos":{"x":245860,"y":45265,"z":-70270},"rot":{"x":0,"y":0,"z":0}}},"20122001":{"1008":{"pos":{"x":-32240,"y":-90,"z":48678},"rot":{"x":0,"y":0,"z":0}},"1102":{"pos":{"x":-40310,"y":-2748,"z":109140},"rot":{"x":0,"y":0,"z":0}},"2012201":{"pos":{"x":-34650,"y":-130,"z":35570},"rot":{"x":0,"y":0,"z":0}},"2012202":{"pos":{"x":-70300,"y":1258,"z":118941},"rot":{"x":0,"y":0,"z":0}},"2012203":{"pos":{"x":-34352,"y":9075,"z":157026},"rot":{"x":0,"y":0,"z":0}}},"20123001":{"1009":{"pos":{"x":-77205,"y":11985,"z":-21605},"rot":{"x":0,"y":0,"z":0}},"2012301":{"pos":{"x":-9930,"y":25392,"z":80580},"rot":{"x":0,"y":0,"z":0}},"2012302":{"pos":{"x":-5239,"y":20054,"z":-8640},"rot":{"x":0,"y":0,"z":0}},"2012303":{"pos":{"x":-51990,"y":11968,"z":-15070},"rot":{"x":0,"y":0,"z":0}}},"20211001":{"1011":{"pos":{"x":-28982,"y":3930,"z":-65719},"rot":{"x":0,"y":0,"z":0}},"1108":{"pos":{"x":43390,"y":7006,"z":-105260},"rot":{"x":0,"y":0,"z":0}},"1205":{"pos":{"x":-2680,"y":-1149,"z":-43820},"rot":{"x":0,"y":0,"z":0}},"2021101":{"pos":{"x":39120,"y":9101,"z":164090},"rot":{"x":0,"y":0,"z":0}},"2021102":{"pos":{"x":1950,"y":-1300,"z":1580},"rot":{"x":0,"y":0,"z":0}},"2021103":{"pos":{"x":9710,"y":8520,"z":-108870},"rot":{"x":0,"y":0,"z":0}},"2021104":{"pos":{"x":-8360,"y":2171,"z":58200},"rot":{"x":0,"y":0,"z":0}}},"20221001":{"1012":{"pos":{"x":53250,"y":10913,"z":-115420},"rot":{"x":0,"y":0,"z":0}},"2022101":{"pos":{"x":-29539,"y":4824,"z":-155840},"rot":{"x":0,"y":0,"z":0}},"2022102":{"pos":{"x":400,"y":12790,"z":2110},"rot":{"x":0,"y":0,"z":0}},"2022103":{"pos":{"x":103950,"y":13760,"z":-59120},"rot":{"x":0,"y":0,"z":0}},"2022104":{"pos":{"x":-55590,"y":685,"z":93950},"rot":{"x":0,"y":0,"z":0}}},"20222001":{"1013":{"pos":{"x":81970,"y":60421,"z":37320},"rot":{"x":0,"y":0,"z":0}},"1110":{"pos":{"x":-76740,"y":49950,"z":81070},"rot":{"x":0,"y":0,"z":0}},"2022201":{"pos":{"x":-128310,"y":47886,"z":20620},"rot":{"x":0,"y":0,"z":0}},"2022202":{"pos":{"x":24060,"y":53254,"z":-19800},"rot":{"x":0,"y":0,"z":0}},"2022203":{"pos":{"x":35230,"y":53852,"z":90220},"rot":{"x":0,"y":0,"z":0}},"2022204":{"pos":{"x":-52270,"y":49948,"z":130490},"rot":{"x":0,"y":0,"z":0}}},"20313001":{"1014":{"pos":{"x":32342,"y":192820,"z":434276},"rot":{"x":0,"y":0,"z":0}},"1116":{"pos":{"x":81600,"y":186848,"z":529090},"rot":{"x":0,"y":0,"z":0}},"2031301":{"pos":{"x":120690,"y":182429,"z":732870},"rot":{"x":0,"y":0,"z":0}},"2031302":{"pos":{"x":315236,"y":123700,"z":622869},"rot":{"x":0,"y":0,"z":0}},"2031303":{"pos":{"x":203857,"y":143006,"z":442675},"rot":{"x":0,"y":0,"z":0}},"2031304":{"pos":{"x":36410,"y":180500,"z":529244},"rot":{"x":0,"y":0,"z":0}}},"20312001":{"1015":{"pos":{"x":-123138,"y":11511,"z":-164410},"rot":{"x":0,"y":0,"z":0}},"2031201":{"pos":{"x":-92494,"y":11545,"z":-189950},"rot":{"x":0,"y":0,"z":0}},"2031202":{"pos":{"x":-117360,"y":11511,"z":-133300},"rot":{"x":0,"y":0,"z":0}},"2031203":{"pos":{"x":-117410,"y":11517,"z":-10820},"rot":{"x":0,"y":0,"z":0}}},"20311001":{"1016":{"pos":{"x":118093,"y":32410,"z":-330955},"rot":{"x":0,"y":0,"z":0}},"1019":{"pos":{"x":-67530,"y":22081,"z":-236430},"rot":{"x":0,"y":0,"z":0}},"1115":{"pos":{"x":-184613,"y":22077,"z":-149622},"rot":{"x":0,"y":0,"z":0}},"1209":{"pos":{"x":169880,"y":32410,"z":-318150},"rot":{"x":0,"y":0,"z":0}},"2031101":{"pos":{"x":160361,"y":28084,"z":-130813},"rot":{"x":0,"y":0,"z":0}},"2031102":{"pos":{"x":72413,"y":-16918,"z":-259230},"rot":{"x":0,"y":0,"z":0}},"2031103":{"pos":{"x":-120646,"y":22077,"z":-148724},"rot":{"x":0,"y":0,"z":0}},"2031104":{"pos":{"x":-145525,"y":-4910,"z":-79740},"rot":{"x":0,"y":0,"z":0}},"2031105":{"pos":{"x":-130013,"y":28067,"z":-3320Line truncated