Enum EventKind

Source
#[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

The agent has entered combat.

Fields

§agent_addr: u64
§subgroup: u64
§

ExitCombat

The agent has left combat.

Fields

§agent_addr: u64
§

ChangeUp

The agent is now alive.

Fields

§agent_addr: u64
§

ChangeDown

The agent is now downed.

Fields

§agent_addr: u64
§

ChangeDead

The agent is now dead.

Fields

§agent_addr: u64
§

Spawn

The agent is now in tracking range.

Fields

§agent_addr: u64
§

Despawn

The agent has left the tracking range.

Fields

§agent_addr: u64
§

HealthUpdate

The agent has reached a health treshold.

Fields

§agent_addr: u64
§health: u16

The new health, as percentage multiplied by 10000.

§

LogStart

The logging has started.

Fields

§server_timestamp: u32
§local_timestamp: u32
§

LogEnd

The logging has finished.

Fields

§server_timestamp: u32
§local_timestamp: u32
§

WeaponSwap

The agent has swapped the weapon set.

Fields

§agent_addr: u64
§

MaxHealthUpdate

The given agent has its max health changed.

Fields

§agent_addr: u64
§max_health: u64
§

PointOfView

The given agent is the point-of-view.

Fields

§agent_addr: u64
§

Language

The given language is the text language.

Fields

§language: Language
§

Build

The log was made with the given game build.

Fields

§build: u64
§

ShardId

The shard id of the server.

Fields

§shard_id: u64
§

Reward

A reward has been awarded.

Fields

§reward_id: u64
§reward_type: i32
§

SkillUse

A skill has been used.

Fields

§source_agent_addr: u64
§skill_id: u32
§activation: Activation
§

ConditionTick

Condition damage tick.

Fields

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

InvulnTick

Condition damage tick that was negated by invulnerability.

Fields

§source_agent_addr: u64
§destination_agent_addr: u64
§condition_id: u32
§

Physical

Physical damage.

Fields

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

BuffApplication

Buff applied.

Fields

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

BuffRemove

Buff removed.

Fields

§source_agent_addr: u64
§destination_agent_addr: u64
§buff_id: u32
§total_duration: i32
§longest_stack: i32
§

BuffInitial

Initial buff

Fields

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

StackActive

Mark the given buff stack as active.

Fields

§agent_addr: u64
§stack_id: u32
§

StackReset

Reset the duration of the given stack.

Fields

§agent_addr: u64
§stack_id: u32
§duration: i32
§

Position

Position of the agent has changed.

Fields

§agent_addr: u64
§

Velocity

Velocity of the agent has changed.

Fields

§agent_addr: u64
§

Facing

The agent is facing in the given direction.

Fields

§agent_addr: u64
§

TeamChange

The given agent changed their team.

Fields

§agent_addr: u64
§team_id: u64
§

AttackTarget

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:

Fields

§agent_addr: u64
§parent_agent_addr: u64
§targetable: bool
§

Targetable

Updates the targetable state for the given agent.

Fields

§agent_addr: u64
§targetable: bool
§

MapId

Information about the map id.

Fields

§map_id: u64
§

Guild

Guild identification

Fields

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

Error

An error was reported by arcdps.

Fields

§text: String
§

Tag

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!

Fields

§agent_addr: u64
§tag_id: i32

Trait Implementations§

Source§

impl Clone for EventKind

Source§

fn clone(&self) -> EventKind

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for EventKind

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for EventKind

Source§

fn eq(&self, other: &EventKind) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for EventKind

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.