feat: Add metro transit, gadgets, shop, social apps, and traffic models checkpoint
This commit is contained in:
1 parent
caa42b84ed
commit
74e2963a12
79 files changed
+527962
-496
No files matched your search
@@ -3137,6 +3137,8 @@ internal static class MethodId
|
||||
internal const uint SyncGadgetAOIAddAndRemove = 68169646;
|
||||
internal const uint SyncTurnToPosPosition = 68169791;
|
||||
internal const uint SyncAttractPointPosition = 68172618;
|
||||
// PHANTOM ID — not in the 4229938 client's method table (dump + RPCMethodIdToName.lua).
|
||||
// The real Aether NPC remove is SyncAetherAINpcRemove = 68332284. Do not send this.
|
||||
internal const uint SyncAetherAIVehicleNpcRemove = 68173578;
|
||||
internal const uint SyncPlateRemoveList = 68174318;
|
||||
internal const uint SyncFightGamePlayerLeave = 68176524;
|
||||
@@ -3444,6 +3446,9 @@ internal static class MethodId
|
||||
internal const uint SyncDebugPlotBT = 68568004;
|
||||
internal const uint IGameSceneToClient_SyncDiceRoundSettle = 68568673;
|
||||
internal const uint IGameSceneToClient_SyncLoadChefNpcIds = 68570971;
|
||||
// PHANTOM ID — there is NO batch vehicle AddDatas in the 4229938 client (its method table
|
||||
// only has the single SyncAetherAIVehicleAddData = 68916691). Batches sent here were
|
||||
// silently dropped (cars never rendered). Do not send this.
|
||||
internal const uint SyncAetherAIVehicleAddDatas = 68571034;
|
||||
internal const uint IGameSceneToClient_SyncMahjongReadyStart = 68572064;
|
||||
internal const uint SyncRemoveClientGameplayTag = 68572571;
|
||||
@@ -4560,6 +4565,10 @@ internal static class MethodId
|
||||
internal const uint ReportCreationVehicleEnterOrLeaves = 67004409;
|
||||
internal const uint AskControlPowerHoldEnemyFallGround = 67043294;
|
||||
|
||||
// Aether client-driven traffic — intersection period update (the only Aether sync id
|
||||
// missing from the original set; all others already exist above with verified values).
|
||||
internal const uint SyncAetherAIIntersectionUpdateData = 68819947;
|
||||
|
||||
internal static void RegisterKnownNames(RpcRouter router)
|
||||
{
|
||||
foreach (var field in typeof(MethodId).GetFields(BindingFlags.Static | BindingFlags.NonPublic))
|
||||
|
||||
@@ -58,6 +58,20 @@ internal sealed class WorldEntryState
|
||||
internal int WorldEntryControlFinalizingGeneration { get; set; }
|
||||
internal int WorldEntryLogicProjectionPublishedGeneration { get; set; }
|
||||
internal int WorldEntryCurrentMetadataPublishedGeneration { get; set; }
|
||||
|
||||
// Vehicle shop / tuning purchases (GameRouter.Shop): bought parts per vehicle config
|
||||
// merged into spawns and the owned list; suits recorded separately (SuitId base).
|
||||
internal Dictionary<uint, List<(uint Type, uint PartId)>> VehiclePartsByConfig { get; } = [];
|
||||
internal Dictionary<uint, uint> VehicleSuitByConfig { get; } = [];
|
||||
internal HashSet<uint> SessionUnlockedVehicleConfigs { get; } = [];
|
||||
|
||||
// Story/intro chain (GameRouter.StoryFlow): the intro cutscene is driven by the
|
||||
// story root task 60004938 + its NextTasks chain in TaskConfig.
|
||||
internal Dictionary<uint, byte> QuestStates { get; } = [];
|
||||
internal Dictionary<uint, int[]> QuestCounterValues { get; } = [];
|
||||
internal List<uint> StoryChain { get; } = [];
|
||||
internal HashSet<uint> UnlockedQuestIds { get; } = [];
|
||||
internal uint CurrentQuestTaskId { get; set; }
|
||||
internal ulong WorldEntrySceneId4229938 { get; set; }
|
||||
internal ulong WorldEntrySessionId4229938 { get; set; }
|
||||
internal Vec3 WorldEntryCreateHeroPosition { get; set; } = Profile.WorldSpawn;
|
||||
|
||||
Reference in new issue
Block a user