This repository has been archived on 2026-10-31. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Ananta-ps/internal/gameserver/routers/game_router_world.go
T

121 lines
5.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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
}