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/pkg/protocol/methods/combat_methods.go
T

34 lines
1.8 KiB
Go

package methods
//
// IGameSceneToClient_SyncPlayerFallingDownState(68467726). isEnter=false is the explicit
// exit from the knocked-out state whose HUD is the "昏迷" bar. Used by the revive endpoint;
// nothing else on this server drives the FallingDown flow.
//
//
// SyncUnitOccur(68870482) — UX.Game.IGameSceneToClient.SyncUnitOccur(UInt64, UInt32, Single,
// UXVector3, Single). Signature read off the native method name in Auto.Client.dll:
// NativeMethodInfoPtr_SyncUnitOccur_Public_Virtual_New_Void_UInt64_UInt32_Single_UXVector3_Single_0
// The reference private server sends this right after SyncRaidBattleUnitAgent; it announces the
// unit "occurring" in the world and carries the spawn transform.
//
//
// SyncBattleAiS(68555063) — the switch that moves a unit's behaviour tree onto the combat tree.
// This is the third of the four engagement packets and the one that was missing. LockTarget
// gives the unit a target and FightEdict gives it the attack token, but neither leaves idle:
// the native side flips BaseUnit.set_IsBattleAiS and that is what selects CombatBehaviorTree
// over the idle/ambient tree. Without it a spawned enemy stands still even though it is
// hostile and locked on.
// Field layout matches the donor build (7k-v0.4 GameRouter.EnemyAi.cs:143): agentId + bool.
//
//
// Scene weapon snapshot used by SyncSpiritWeaponDetail. Unlike the persistent WeaponData stored in
// PlayerInfo, WeaponDetail has five scene-source fields in front of the common weapon payload.
//
//
// Atomic client WeaponManager hydration. The client must receive this before a switch action:
// SyncSpiritSwitchWeaponAction only selects an instance already present in CurrWeaponSlots.
//
// Client -> GameScene AskSwitchWeapon(int index), zero-based.
// Client -> GameScene AskUseSkill / AskClientUseCommonSkill.