#[non_exhaustive]
pub enum EventKind {
Show 36 variants EnterCombat { agent_addr: u64, subgroup: u64, }, ExitCombat { agent_addr: u64, }, ChangeUp { agent_addr: u64, }, ChangeDown { agent_addr: u64, }, ChangeDead { agent_addr: u64, }, Spawn { agent_addr: u64, }, Despawn { agent_addr: u64, }, HealthUpdate { agent_addr: u64, health: u16, }, LogStart { server_timestamp: u32, local_timestamp: u32, }, LogEnd { server_timestamp: u32, local_timestamp: u32, }, WeaponSwap { agent_addr: u64, set: WeaponSet, }, MaxHealthUpdate { agent_addr: u64, max_health: u64, }, PointOfView { agent_addr: u64, }, Language { language: Language, }, Build { build: u64, }, ShardId { shard_id: u64, }, Reward { reward_id: u64, reward_type: i32, }, SkillUse { source_agent_addr: u64, skill_id: u32, activation: Activation, }, ConditionTick { source_agent_addr: u64, destination_agent_addr: u64, condition_id: u32, damage: i32, }, InvulnTick { source_agent_addr: u64, destination_agent_addr: u64, condition_id: u32, }, Physical { source_agent_addr: u64, destination_agent_addr: u64, skill_id: u32, damage: i32, result: CbtResult, }, BuffApplication { source_agent_addr: u64, destination_agent_addr: u64, buff_id: u32, duration: i32, overstack: u32, stack_id: u32, }, BuffRemove { source_agent_addr: u64, destination_agent_addr: u64, buff_id: u32, total_duration: i32, longest_stack: i32, removal: CbtBuffRemove, }, BuffInitial { source_agent_addr: u64, destination_agent_addr: u64, buff_id: u32, duration: i32, }, StackActive { agent_addr: u64, stack_id: u32, }, StackReset { agent_addr: u64, stack_id: u32, duration: i32, }, Position { agent_addr: u64, x: f32, y: f32, z: f32, }, Velocity { agent_addr: u64, x: f32, y: f32, z: f32, }, Facing { agent_addr: u64, x: f32, y: f32, }, TeamChange { agent_addr: u64, team_id: u64, }, AttackTarget { agent_addr: u64, parent_agent_addr: u64, targetable: bool, }, Targetable { agent_addr: u64, targetable: bool, }, MapId { map_id: u64, }, Guild { source_agent_addr: u64, raw_bytes: [u8; 16], api_guild_id: Option<String>, }, Error { text: String, }, Tag { agent_addr: u64, tag_id: i32, },
}
Expand description

A rusty enum for all possible combat events.

This makes dealing with CbtEvent a bit saner (and safer).

Variants (Non-exhaustive)

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.

EnterCombat

Fields

agent_addr: u64
subgroup: u64

The agent has entered combat.

ExitCombat

Fields

agent_addr: u64

The agent has left combat.

ChangeUp

Fields

agent_addr: u64

The agent is now alive.

ChangeDown

Fields

agent_addr: u64

The agent is now downed.

ChangeDead

Fields

agent_addr: u64

The agent is now dead.

Spawn

Fields

agent_addr: u64

The agent is now in tracking range.

Despawn

Fields

agent_addr: u64

The agent has left the tracking range.

HealthUpdate

Fields

agent_addr: u64
health: u16

The new health, as percentage multiplied by 10000.

The agent has reached a health treshold.

LogStart

Fields

server_timestamp: u32
local_timestamp: u32

The logging has started.

LogEnd

Fields

server_timestamp: u32
local_timestamp: u32

The logging has finished.

WeaponSwap

Fields

agent_addr: u64
set: WeaponSet

The agent has swapped the weapon set.

MaxHealthUpdate

Fields

agent_addr: u64
max_health: u64

The given agent has its max health changed.

PointOfView

Fields

agent_addr: u64

The given agent is the point-of-view.

Language

Fields

language: Language

The given language is the text language.

Build

Fields

build: u64

The log was made with the given game build.

ShardId

Fields

shard_id: u64

The shard id of the server.

Reward

Fields

reward_id: u64
reward_type: i32

A reward has been awarded.

SkillUse

Fields

source_agent_addr: u64
skill_id: u32
activation: Activation

A skill has been used.

ConditionTick

Fields

source_agent_addr: u64
destination_agent_addr: u64
condition_id: u32
damage: i32

Condition damage tick.

InvulnTick

Fields

source_agent_addr: u64
destination_agent_addr: u64
condition_id: u32

Condition damage tick that was negated by invulnerability.

Physical

Fields

source_agent_addr: u64
destination_agent_addr: u64
skill_id: u32
damage: i32
result: CbtResult

Physical damage.

BuffApplication

Fields

source_agent_addr: u64
destination_agent_addr: u64
buff_id: u32
duration: i32
overstack: u32
stack_id: u32

Buff applied.

BuffRemove

Fields

source_agent_addr: u64
destination_agent_addr: u64
buff_id: u32
total_duration: i32
longest_stack: i32
removal: CbtBuffRemove

Buff removed.

BuffInitial

Fields

source_agent_addr: u64
destination_agent_addr: u64
buff_id: u32
duration: i32

Initial buff

StackActive

Fields

agent_addr: u64
stack_id: u32

Mark the given buff stack as active.

StackReset

Fields

agent_addr: u64
stack_id: u32
duration: i32

Reset the duration of the given stack.

Position

Fields

agent_addr: u64
x: f32
y: f32
z: f32

Position of the agent has changed.

Velocity

Fields

agent_addr: u64
x: f32
y: f32
z: f32

Velocity of the agent has changed.

Facing

Fields

agent_addr: u64
x: f32
y: f32

The agent is facing in the given direction.

TeamChange

Fields

agent_addr: u64
team_id: u64

The given agent changed their team.

AttackTarget

Fields

agent_addr: u64
parent_agent_addr: u64
targetable: bool

Establishes an “attack target” relationship between two agents.

Attack targets are somewhat not really documented, but the gist seems to be that some agents act as an “attack target” for other agents. This is mainly for the purpose of some status update events, such as Targetable or MaxHealthUpdate.

Damage events seem to not have attack targets as their target, so if your only goal is to calculate the damage dealt, you should be fine ignoring attack targets.

Further sources:

Targetable

Fields

agent_addr: u64
targetable: bool

Updates the targetable state for the given agent.

MapId

Fields

map_id: u64

Information about the map id.

Guild

Fields

source_agent_addr: u64
raw_bytes: [u8; 16]
api_guild_id: Option<String>

Guild identification

Error

Fields

text: String

An error was reported by arcdps.

Tag

Fields

agent_addr: u64
tag_id: i32

The given agent has the tag.

Note that the tag id is volatile and depends on the game build. Do not rely on the actual value of this!

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.