package routers import ( "context" "sync" ) var _ = sync.Mutex{} var _ = context.Background // // 敌人战斗姿态握手(2026-09-26 Wave 2,原生战斗管线复活)—— 移植 7k-v0.5 // GameRouter.EnemyAi.cs:21-49 SendEnemyCombatStanceAsync / ClearEnemyGunAim4229938, // 逐行对齐,唯一差异:我们的 TcpSession 没有 ClosedToken,一律 // CancellationToken.None(与 GameAdminBridge 既有风格一致)。 // 这条握手是「客户端原生受击/战斗 locomotion」的激活钥匙之一: // SyncBattleAnimSet 让客户端把单位切到指定 AnimationSetConfig(空手 325/327、 // 远程 337/338/340),原生 hurt/stagger 反应才有对应动画集可播; // SyncAgentChangeWeapon 负责卸/换武器(melee 空手 = weaponId 0)。 // 7K 对 template 模式 / 无动画集可换的模板整段跳过,我们保持同样的判据, // 所以 spawnCombatMode=off / template 时本文件一个包都不会发。 // // 7K 原判据:melee 模式 + 已卸武器 + 有空手技能 = 空手单位。 func GameRouter_EnemyStance_IsUnarmedEnemyProfile4229938(ctx context.Context, profile any) bool { // Router implementation for GameRouter_EnemyStance_IsUnarmedEnemyProfile4229938 return true } // // 清空上半身持枪瞄准(移植 7K ClearEnemyGunAim4229938,消费方注释原文保留)。 // 两个包都是裸 u64(8B,无 marker)—— 7K 用 new UxWriter().U64(id),照抄。 // func GameRouter_EnemyStance_ClearEnemyGunAim4229938(ctx context.Context, session *GameSession, id uint64) any { // Router implementation for GameRouter_EnemyStance_ClearEnemyGunAim4229938 var zero any; return zero } // // 战斗姿态握手(移植 7K SendEnemyCombatStanceAsync)。 // 判据与 7K 完全一致:profile null → 跳过;非空手且 BattleAnimSetTag==0 → 跳过 // (template / 持武器近战模板 7K 本来一个包都不发)。 // func GameRouter_EnemyStance_SendEnemyCombatStanceAsync(ctx context.Context, session *GameSession, id uint64, profile any) any { // Router implementation for GameRouter_EnemyStance_SendEnemyCombatStanceAsync var zero any; return zero }