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

43 lines
2.2 KiB
Go
Raw Permalink Normal View History

package routers
import (
"context"
"sync"
)
var _ = sync.Mutex{}
var _ = context.Background
//
// 里希(Garm) 之外的另一条「可控非角色原型」:科斯机甲(2026-09-26,移植捐赠端 7k-v0.5
// GameRouter.Kesi.cs)。
// 根因(客户端配置侧,已在本服 ClientData 上复核):
// - FightSpiritConfig 15022030 = "特摄战原型-科斯",IsPublish=false / CanJoin=false /
// Invisible=true ⇒ 它永远不在 Characters() 花名册里,roster 上点了也不会出现。
// - SceneitemConfig 80003500 = "科斯冲锋枪",WeaponBelong=15022030、
// FixedFightSkill=39010048,且没有 WheelIcon ⇒ 常规军械库过滤器会把它判掉,
// 所以它连「随便塞把枪」都做不到,必须走 CombatCatalogRepository 里那份孤立装配。
// - 客户端 CheckIsKesi 拿 cardId 15022030 认机甲(捐赠端注释)。
// 供给链三条,缺一不可:
// 1. SyncPlayerAddNewSpirit(64691088) 增量补 SpiritViewData —— 登录包里没有它,
// 客户端 SpiritManager.Id_to_Tid 查不到 tid,后面所有和它相关的包都会被静默丢掉;
// 2. CombatCatalogRepository 里那份科斯 loadout(slot0 科斯冲锋枪 80003500 + 风格 39010048);
// 3. 走本服已在用的 OnSwitchSpirit 做身份移交 —— 不另发明一套切人。
// ⛑ 这是需实机验证的实验入口:捐赠端自己也标注"尚需游戏内验证"。
// 能确认的只有服务端协议侧齐了;模型加载、镜头、机甲技能面板和按键都得进游戏看。
//
func GameRouter_Kesi_ControlKesi4229938(ctx context.Context, session *GameSession, enter bool) any {
// Router implementation for GameRouter_Kesi_ControlKesi4229938
var zero any; return zero
}
type KesiControlRuntime4229938 struct {
// 与普通角色切换共用一把锁:GM 切机甲和游戏内主动切人不能互相打断,
// 否则两份 PlayerInfo/SpiritViewData 会交错下发,客户端 roster 直接错位。
Gate *sync.Mutex `json:"gate"`
// 进入机甲前的角色 template;return 时切回它。
ReturnTemplate uint32 `json:"returnTemplate"`
// 只有走过 ControlKesi 才允许 OnSwitchSpirit 接受 Kesi 作为目标。
Unlocked bool `json:"unlocked"`
}