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

179 lines
8.1 KiB
Go
Raw Permalink Normal View History

package routers
import (
"context"
"sync"
)
var _ = sync.Mutex{}
var _ = context.Background
//
// Batch implementation of top unhandled methods from unknown-methods.log:
// camera telemetry (silent no-ops), vehicle driving/radio/horn/top-speed/nitro set,
// indoor/building/safe-area transitions, and a second neutral UI/economy batch.
//
// --- Camera telemetry: pure client-side state, zero server value. Silent accept. ---
func GameRouter_UnhandledBatch_CamMove(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_CamMove
var zero any; return zero
}
func GameRouter_UnhandledBatch_CamRot(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_CamRot
var zero any; return zero
}
func GameRouter_UnhandledBatch_CamFov(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_CamFov
var zero any; return zero
}
func GameRouter_UnhandledBatch_CamAspect(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_CamAspect
var zero any; return zero
}
// --- Vehicle driving telemetry ---
func GameRouter_UnhandledBatch_ReportDrivingVehicle(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_ReportDrivingVehicle
var zero any; return zero
}
func GameRouter_UnhandledBatch_AskVehicleNitroValue(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_AskVehicleNitroValue
var zero any; return zero
}
func GameRouter_UnhandledBatch_AskVehicleNitro(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_AskVehicleNitro
var zero any; return zero
}
func GameRouter_UnhandledBatch_AskModifyVehicleTopSpeed(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_AskModifyVehicleTopSpeed
var zero any; return zero
}
func GameRouter_UnhandledBatch_AskVehicleHorn(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_AskVehicleHorn
var zero any; return zero
}
func GameRouter_UnhandledBatch_AskVehicleContactDamage(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_AskVehicleContactDamage
var zero any; return zero
}
func GameRouter_UnhandledBatch_AskVehicleInteractConfig(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_AskVehicleInteractConfig
var zero any; return zero
}
func GameRouter_UnhandledBatch_AskUpdateVehicleDestructibleParts(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_AskUpdateVehicleDestructibleParts
var zero any; return zero
}
// AskGetVehicleRadioContent (67725622) 与 AskSwitchVehicleRadio (67959772) 以前在这里占位
// (只打日志 + 回全零 typed-default)。2026-09-27 搬到 GameRouter.VehicleRadio.cs:
// 现在会真的按 RadioContentCatalog 下发 DJ 口播 / 广告 / 新闻的 id。
// ⛑ 不要在别处再挂同名 handler —— 同一 methodId 两个 invoke handler 会
// "Duplicate invoke handler at startup"。
// --- Indoor / building / safe-area transitions (logged accepts; sector control later) ---
func GameRouter_UnhandledBatch_SyncChangeSafeArea(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_SyncChangeSafeArea
var zero any; return zero
}
func GameRouter_UnhandledBatch_SyncChangeBuilding(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_SyncChangeBuilding
var zero any; return zero
}
func GameRouter_UnhandledBatch_SyncChangeIndoor(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_SyncChangeIndoor
var zero any; return zero
}
// --- Neutral UI/economy batch 2: exact typed-default replies, info-level logging ---
// AskGetAllMetroInfos used to be answered here with the generic empty list. It now has a real
// scheduler in GameRouter.Metro.cs (round 54/55): keep the attribute off so the router does not see
// two invoke handlers for the same method id (Duplicate invoke handler at startup).
func GameRouter_UnhandledBatch_KnownNeutralInvokeBatch2(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_KnownNeutralInvokeBatch2
var zero any; return zero
}
// --- Skill/combat accepts: logged, protocol-correct empty replies (authoritative later) ---
func GameRouter_UnhandledBatch_SkillNeutralAccepts(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_SkillNeutralAccepts
var zero any; return zero
}
// -----------------------------------------------------------------------------------------
// ⛑⛑ 2026-09-29 修正:这两条**不是 void**。
// 客户端 `midToReturnMessageReader` 里两者都是 `reader.ReadUInt64(reader)`(裸 u64,无 presence),
// 而原来挂在 SkillNeutralAccepts 上走 `ReturnEmptyOkAsync` —— 那个是 **0 字节载荷**
// (`Connection.cs:30` `ReturnEmptyAsync(..., Array.Empty<byte>())`)⇒ 客户端 reader 读空 buffer。
// 实测触发频率:**[COMBAT] 三个会话共 29 次**,是本轮回归检查里最高频的一条。
// 修法照抄同类已有实现 `AskItemDestructibleCreate`(GameRouter.MiscAcks.cs:200)——
// 用硬规则 104 的落盘号段发型实例 id(只回号不建实体,目的是让客户端 await 落地 + 拿得到 uid)。
// ⛑ 回滚:把这两行属性挪回上面的 SkillNeutralAccepts 即可(handler 不注册走 typed-default)。
// -----------------------------------------------------------------------------------------
func GameRouter_UnhandledBatch_AskSkillDestructibleCreate(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_AskSkillDestructibleCreate
var zero any; return zero
}
// --- Destructibles / weapon red dots / discards / hangup (fresh log batch) ---
func GameRouter_UnhandledBatch_AskNotifyDestructibleHits(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_AskNotifyDestructibleHits
var zero any; return zero
}
func GameRouter_UnhandledBatch_AskOperateDestructibleObject(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_AskOperateDestructibleObject
var zero any; return zero
}
func GameRouter_UnhandledBatch_AskMoveDestructibleObjects(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_AskMoveDestructibleObjects
var zero any; return zero
}
func GameRouter_UnhandledBatch_AskBreakDestructibleObjects(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_AskBreakDestructibleObjects
var zero any; return zero
}
func GameRouter_UnhandledBatch_AskReadWeaponRedDots(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_AskReadWeaponRedDots
var zero any; return zero
}
func GameRouter_UnhandledBatch_AskDiscardWeaponByInstanceId(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_AskDiscardWeaponByInstanceId
var zero any; return zero
}
func GameRouter_UnhandledBatch_AskDiscardWeapon(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_AskDiscardWeapon
var zero any; return zero
}
func GameRouter_UnhandledBatch_RequestPlayerStartHangup(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_RequestPlayerStartHangup
var zero any; return zero
}
func GameRouter_UnhandledBatch_RequestPlayerStopHangup(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_RequestPlayerStopHangup
var zero any; return zero
}
func GameRouter_UnhandledBatch_AskBreakSkillTimeCurve(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_UnhandledBatch_AskBreakSkillTimeCurve
var zero any; return zero
}