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

44 lines
2.2 KiB
Go
Raw Permalink 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
//
// 里希(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"`
}