31 lines
1.6 KiB
Go
31 lines
1.6 KiB
Go
package methods
|
|
|
|
// ========================================================================
|
|
// Hostile-AI engagement contracts (build 4229938).
|
|
//
|
|
// These four packets flip a server-spawned agent out of the client's idle
|
|
// behaviour-tree state so it locks, fights and reacts to the player instead of
|
|
// standing still. Without them an agent spawned through SyncRaidBattleUnitAgent
|
|
// exists as a battle unit but never engages, which is what makes it look inert
|
|
// even though every combat field on the spawn itself is already correct.
|
|
//
|
|
// Field ORDER is the wire. All four shapes are copied verbatim from the
|
|
// LY-3.3 reference server, which states they were checked against the 4229938
|
|
// client Lua readers; they are also the only shapes that reference server ever
|
|
// shipped in a build where the enemy actually fought back.
|
|
//
|
|
// SyncUnitLockTarget 68009754 entityId u64, targetId u64
|
|
// SyncEnemyFightEdict 68882858 uid u64, isGive bool
|
|
// SyncEnemyDisarmState 68202623 id u64, isDisarmed bool (false = keep weapon)
|
|
// (SyncEnemyDetect 68738976 see Methods/Game/EnemyEngageMethods.cs)
|
|
//
|
|
// All four are Inline: the client reads them as flat argument lists, so no
|
|
// complex-object header is written.
|
|
// ========================================================================
|
|
// SyncUnitLockTarget(68009754) — makes the enemy target the player unit.
|
|
// SyncEnemyFightEdict(68882858) — gives the enemy the fight edict (enter combat).
|
|
//
|
|
// SyncEnemyDisarmState(68202623) — isDisarmed=false keeps the enemy's weapon visible
|
|
// and its attack behaviour available.
|
|
//
|