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
@@ -205,6 +205,16 @@ internal sealed partial class GameRouter
|
||||
await session.NotifyAsync(MethodId.SyncManagedLogicAgent,
|
||||
UxSerializer.Serialize(WorldCodec.ManagedLogicAgent(id, Profile.PlayerPid, 0)), CancellationToken.None);
|
||||
|
||||
// Gate-opener for NPC interaction: EnableInteract=true is what makes the client
|
||||
// show the F prompt / interaction menu for this NPC (AgentPropertyType 0).
|
||||
await session.NotifyAsync(MethodId.IGameSceneToClient_SyncAgentPropertyChange,
|
||||
UxSerializer.Serialize(new SceneMethods.SyncAgentPropertyBoolChange4229938
|
||||
{
|
||||
AgentId = id,
|
||||
Type = 0, // AgentPropertyType.EnableInteract
|
||||
V = new SceneMethods.AgentPropertyDataBool4229938 { V = true },
|
||||
}), CancellationToken.None);
|
||||
|
||||
if (poi is { UsageId: not 0 })
|
||||
{
|
||||
await session.NotifyAsync(MethodId.SyncAgentBelongings,
|
||||
@@ -244,8 +254,15 @@ internal sealed partial class GameRouter
|
||||
}
|
||||
}
|
||||
|
||||
private const string AetherNpcInitSentKey = "aetherNpcInitSent";
|
||||
|
||||
private static async Task SendAetherInitForNpcAsync(TcpSession session)
|
||||
{
|
||||
// One init per session — re-sending the same AetherAIInitDatas repeatedly right
|
||||
// after world entry is redundant (and noisy).
|
||||
if (session.Items.ContainsKey(AetherNpcInitSentKey))
|
||||
return;
|
||||
session.Items[AetherNpcInitSentKey] = true;
|
||||
var settings = PrivateServerConfigStore.Current.Gameplay.Vehicles;
|
||||
var activeRaidId = GetStateIfExists(session)?.ActiveRaidId ?? Profile.RaidId;
|
||||
var hasZoneGraph = activeRaidId == PrivateServerConfigStore.Current.World.RaidId;
|
||||
@@ -254,9 +271,9 @@ internal sealed partial class GameRouter
|
||||
RaidId = activeRaidId,
|
||||
HasZoneGraph = hasZoneGraph,
|
||||
ZoneStorageDataHandle = hasZoneGraph ? settings.ZoneStorageDataHandle : 0,
|
||||
Intersections = [],
|
||||
Intersections = BuildAetherIntersectionInitList(),
|
||||
}), CancellationToken.None);
|
||||
session.Log.Info($"[AETHER] init sent raid={activeRaidId} zoneGraph={hasZoneGraph} intersections=empty");
|
||||
session.Log.Info($"[AETHER] init sent raid={activeRaidId} zoneGraph={hasZoneGraph} intersections={BuildAetherIntersectionInitList().Count}");
|
||||
}
|
||||
|
||||
internal static GameMethods.NpcAgentSyncClientInfo4229938 CreateStaticNpcSyncInfo(
|
||||
|
||||
Reference in new issue
Block a user