package routers import ( "context" "sync" ) var _ = sync.Mutex{} var _ = context.Background // World entry and client-driven scene loading barriers. func GameRouter_World_GetWorldState(ctx context.Context, rpcCtx *RpcContext) any { // Router implementation for GameRouter_World_GetWorldState var zero any; return zero } func GameRouter_World_ArmWorldEntry4229938(ctx context.Context, state any) any { // Router implementation for GameRouter_World_ArmWorldEntry4229938 var zero any; return zero } func GameRouter_World_SendInitialGameState(ctx context.Context, rpcCtx *RpcContext) any { // Router implementation for GameRouter_World_SendInitialGameState var zero any; return zero } func GameRouter_World_SendEnterSceneIfNeeded(ctx context.Context, rpcCtx *RpcContext) any { // Router implementation for GameRouter_World_SendEnterSceneIfNeeded var zero any; return zero } // // 把存档里的 raid 补成一组能进的 (instance, universe)。 // 2026-09-27:存档现在直接带 instance/universe;旧存档(06-27 之前写的)只有 raid, // 这里按「主城用配置、其余查场景 preset」补齐。查不到 ⇒ false ⇒ 调用方放弃恢复, // 走配置出生点 —— 宁可回出生点,也不要拿一个错误的 instance 进图。 // func GameRouter_World_TryResolveSavedScene(ctx context.Context, raidId uint32, instanceId uint64, universeId uint32, resolvedInstance uint64, resolvedUniverse uint32) bool { // Router implementation for GameRouter_World_TryResolveSavedScene return true } func GameRouter_World_CommitWorldEntryCreateHeroData4229938(ctx context.Context, rpcCtx *RpcContext, generation int32) bool { // Router implementation for GameRouter_World_CommitWorldEntryCreateHeroData4229938 return true } func GameRouter_World_OnLoadSceneCompleted(ctx context.Context, rpcCtx *RpcContext, sceneId uint64, sessionId uint64) any { // Router implementation for GameRouter_World_OnLoadSceneCompleted var zero any; return zero } func GameRouter_World_OnLoadGameResourcesCompleted(ctx context.Context, rpcCtx *RpcContext, sceneId uint64) any { // Router implementation for GameRouter_World_OnLoadGameResourcesCompleted var zero any; return zero } func GameRouter_World_OnLoadingFinished(ctx context.Context, rpcCtx *RpcContext, sceneId uint64, sessionId uint64) any { // Router implementation for GameRouter_World_OnLoadingFinished var zero any; return zero } // // 潜水解锁(gameplay.divingMode == "on")—— 让所有角色能下潜,而不只是水面游泳。 // 只负责门控那一半:通过 SyncRunGmUtils(66042045) 让客户端反射执行 // LX6.Utils.GmUtils 的潜水开关(默认 EnableDive,可配 ForceDive / // SetUnderWaterFilter)。客户端实现是 GameGMToClientImpl.SyncRunGmUtils // (RVA 0x12752F10,真实现),按 methodName 反射解析,执行全程在客户端进程内。 // 服务端没有专用 S2C 能代替它 —— DiveManager.CheckIsEnableDiving() 读的是 // 客户端静态字段 enableInGamePlay。 // 氧气那一半不在这里:由 CharacterCapabilities.GlobalCapabilityBuffIds 挂的 // 52606233「潜水服buff」(不会掉氧气且更快恢复)随角色 buff 快照下发,切角色会自动重发。 // func GameRouter_World_PublishDivingUnlockAsync(ctx context.Context, rpcCtx *RpcContext) any { // Router implementation for GameRouter_World_PublishDivingUnlockAsync var zero any; return zero } // // 官方远程 GM 反射通道的公共推送口 —— SyncRunGmUtils(66042045)。 // 客户端 GameGMToClientImpl(RVA 0x12752F10 真实现)按 methodName 反射调用 // LX6.Utils.GmUtils 的静态方法,执行全程在客户端进程内,服务端只发一次 Notify。 // func GameRouter_World_PublishGmCommandsAsync(ctx context.Context, rpcCtx *RpcContext, tag string, methods []any, args []any) any { // Router implementation for GameRouter_World_PublishGmCommandsAsync var zero any; return zero } // // Re-apply the landing pose for a scene switch into the raid/instance the client was already // running. // When both ends of a switch are the same raid+instance the client reloads the level but keeps // the avatar at its current coordinates — SyncEnterScene's position only seeds a hero spawn, // and no spawn happens because the level is already there. Sending SetPositionType.Teleport // after the entry flow reached ready is what actually moves the player, and doing it here // (rather than next to SyncEnterScene) guarantees the freshly respawned unit already exists. // func GameRouter_World_PublishSceneLandingAsync(ctx context.Context, rpcCtx *RpcContext) any { // Router implementation for GameRouter_World_PublishSceneLandingAsync var zero any; return zero } // // Reveal the whole world map by unlocking fog on every scene the config knows about. // The login payload field PlayerClientInfoAchievement.SceneFogMaps is a dead end: no client // code reads it for fog state (MapSystem_FogMap asks MapFogDataMgr, which is fed exclusively // by the S2C below). Verified in-game — 212 fog entries at login changed nothing. // The S2C's first argument is a **sceneId** (RaidConfig.SceneId, e.g. 20001222), not a raid // id: MapFogDataMgr.IsInFog(sceneId, x, z) is the only lookup the fog view performs. // func GameRouter_World_PublishMapFogUnlockAsync(ctx context.Context, rpcCtx *RpcContext) any { // Router implementation for GameRouter_World_PublishMapFogUnlockAsync var zero any; return zero } func GameRouter_World_OnLoadedInSameScene(ctx context.Context, rpcCtx *RpcContext) any { // Router implementation for GameRouter_World_OnLoadedInSameScene var zero any; return zero }