evtc

Enum StateChange

Source
#[repr(u8)]
pub enum StateChange {
Show 57 variants None = 0, EnterCombat = 1, ExitCombat = 2, ChangeUp = 3, ChangeDead = 4, ChangeDown = 5, Spawn = 6, Despawn = 7, HealthUpdate = 8, SquadCombatStart = 9, SquadCombatEnd = 10, WeaponSwap = 11, MaxHealthUpdate = 12, PointOfView = 13, Language = 14, GWBuild = 15, ShardId = 16, Reward = 17, BuffInitial = 18, Position = 19, Velocity = 20, Facing = 21, TeamChange = 22, AttackTarget = 23, Targetable = 24, MapId = 25, ReplInfo = 26, StackActive = 27, StackReset = 28, Guild = 29, BuffInfo = 30, BuffFormula = 31, SkillInfo = 32, SkillTiming = 33, BreakbarState = 34, BreakbarPercent = 35, Integrity = 36, Marker = 37, BarrierUpdate = 38, StatReset = 39, Extension = 40, ApiDelayed = 41, InstanceStart = 42, RateHealth = 43, Last90BeforeDown = 44, EffectOld = 45, IdToGUID = 46, LogNPCUpdate = 47, IdleEvent = 48, ExtensionCombat = 49, FractalScale = 50, Effect = 51, Ruleset = 52, SquadMarker = 53, ArcBuild = 54, Glider = 55, Unknown(u8),
}
Expand description

Combat state change kinds.

Variants§

§

None = 0

Not used, different kind of event.

§

EnterCombat = 1

Agent entered combat.

src_agent entered combat. dst_agent contains the subgroup. value contains the Profession id. buff_dmg contains the Elite Specialization id.

EVTC: yes, limited to agent table outside instances.

Realtime: yes, limited to squad.

§

ExitCombat = 2

Agent left combat.

src_agent left combat.

EVTC: yes, limited to agent table outside instances.

Realtime: yes, limited to squad.

§

ChangeUp = 3

Agent is now alive.

src_agent is alive.

EVTC: yes, limited to agent table outside instances.

Realtime: yes, limited to squad.

§

ChangeDead = 4

Agent is now dead.

src_agent is dead.

EVTC: yes, limited to agent table outside instances.

Realtime: yes, limited to squad.

§

ChangeDown = 5

Agent is now downed.

src_agent is down.

EVTC: yes, limited to agent table outside instances.

Realtime: yes, limited to squad.

§

Spawn = 6

Agent is now in game tracking range.

src_agent is now tracked.

EVTC: yes, limited to agent table outside instances.

Realtime: no

§

Despawn = 7

Source agent is no longer being tracked or out of game tracking range.

src_agent is no longer tracked.

EVTC: yes, limited to agent table outside instances.

Realtime: no

§

HealthUpdate = 8

Agent health change.

src_agent health changed. dst_agent contains percentage as percent * 10000. For example 99.5% will be 9950.

EVTC: yes, limited to agent table outside instances.

Realtime: no

§

SquadCombatStart = 9

Squad combat start, first player entered combat. Logging has started.

value contains the server Unix timestamp as u32. buff_dmg contains the local Unix timestamp.

src_agent is 0x637261 (ArcDPS id) if log EVTC and species id if realtime API.

EVTC: yes

Realtime: yes

§

SquadCombatEnd = 10

Squad combat end, last player has left combat. Logging has ended.

value contains the server Unix timestamp as u32. buff_dmg contains the local Unix timestamp.

src_agent is 0x637261 (ArcDPS id) if log EVTC and species id if realtime API.

EVTC: yes

Realtime: yes

§

WeaponSwap = 11

Agent swapped weapon set.

src_agent swapped weapons. dst_agent contains the new weapon set id. value contains the previous weapon set id.

0/1 for underwater weapon sets and 4/5 for land weapon sets. 2 is bundle/kit weapon set and 3 transform weapon set.

EVTC: yes

Realtime: yes

§

MaxHealthUpdate = 12

Agent maximum health change.

src_agent changed max health. dst_agent contains the new maximum health.

EVTC: yes, limited to non-players.

Realtime: no

§

PointOfView = 13

Player recording the log.

src_agent is point of view

EVTC: yes

Realtime: no

§

Language = 14

Game text language.

src_agent contains the text language id.

EVTC: yes

Realtime: no

§

GWBuild = 15

Game build.

src_agent contains the game build.

EVTC: yes

Realtime: no

§

ShardId = 16

Sever shard id.

src_agent contains the shard id.

EVTC: yes

Realtime: no

§

Reward = 17

Source agent got a reward chest.

src_agent is always self. dst_agent contains the reward id. value contains the reward type.

EVTC: yes

Realtime: yes

§

BuffInitial = 18

Initially present buffs.

Identical to buff application event. Appears once per buff per agent on logging start.

EVTC: yes, limited to squad outside instances.

Realtime: yes, limited to squad.

§

Position = 19

Agent position change.

src_agent changed position. dst_agent contains XYZ coordinates as [f32; 3].

EVTC: yes, limited to agent table outside instances.

Realtime: no

§

Velocity = 20

Agent velocity change.

src_agent changed position. dst_agent contains XYZ velocity as [f32; 3].

EVTC: yes, limited to agent table outside instances.

Realtime: no

§

Facing = 21

Agent facing change.

src_agent changed position. dst_agent contains XY direction as [f32; 2].

EVTC: yes, limited to agent table outside instances.

Realtime: no

§

TeamChange = 22

Agent team change.

src_agent changed team. dst_agent contains the new team id. value contains the previous team id.

EVTC: yes, limited to agent table outside instances.

Realtime: yes, limited to squad.

§

AttackTarget = 23

Agent is an attack target of parent gadget.

src_agent is the attack target. dst_agent is the parent gadget. value contains the current targetable state.

EVTC: yes, limited to agent table outside instances.

Realtime: no

§

Targetable = 24

Agent changed targetable state.

src_agent changed targetable state. dst_agent contains the new targetable state. 0 for no, 1 for yes. Default is yes.

EVTC: yes, limited to agent table outside instances.

Realtime: no

§

MapId = 25

Map id.

src_agent contains the map id.

EVTC: yes

Realtime: no

§

ReplInfo = 26

Used internally by ArcDPS. Should not appear anywhere.

§

StackActive = 27

Buff stack is now active.

src_agent has the buff. dst_agent contains the buff stack id marked active. value contains the current buff duration.

EVTC: yes, limited to squad outside instances.

Realtime: yes, limited to squad.

§

StackReset = 28

Buff stack duration changed.

src_agent has the buff. value contains the new duration to reset to (also marks inactive). pad61-64 contains the stack id.

EVTC: yes, limited to squad outside instances.

Realtime: yes, limited to squad.

§

Guild = 29

Agent is in guild.

src_agent is in guild. dst_agent contains the guild guid as [u8; 16].

Given in client form, needs minor rearrange for API form.

EVTC: yes, limited to squad outside instances.

Realtime: yes, limited to squad.

§

BuffInfo = 30

Buff information.

skill_id is skilldef id of buff. is_offcycle contains the category. pad61 contains the stacking type. src_master_instance_id contains the max stacks. overstack_value contains the duration cap.

If is_flanking probably invulnerability-like. If is_shields probably invert-like. If pad62 probably resistance-like.

One event per buff.

EVTC: yes

Realtime: no

§

BuffFormula = 31

Buff formula.

skill_id is skilldef id of buff. time contains type, attr1, attr2, param1, param2, param3, trait_condition_src and trait_condition_self, content_reference as [f32; 9]. src_instance_id contains buff_condition_src and buff_condition_self as [f32; 2].

If is_flanking not NPC. If is_shields not player. If is_offcycle break.

overstack_value is value of type determined by pad61.

One event per buff formula.

EVTC: yes

Realtime: no

§

SkillInfo = 32

Skill information.

skill_id is skilldef id of ability. time contains recharge, range0, range1 and tooltiptime as [f32; 4].

One event per ability.

EVTC: yes

Realtime: no

§

SkillTiming = 33

Skill action.

skill_id is skilldef id of ability. src_agent contains the action type. dst_agent contains the time since activation in milliseconds.

One event per ability timing.

EVTC: yes

Realtime: no

§

BreakbarState = 34

Agent breakbar state change.

src_agent changed breakbar state. value contains the new breakbar state as u16 (game enum: active, recover, immune, none).

EVTC: yes, limited to agent table outside instances.

Realtime: no

§

BreakbarPercent = 35

Breakbar percentage.

src_agent has breakbar percentage. value contains percentage as f32.

EVTC: yes, limited to agent table outside instances.

Realtime: no

§

Integrity = 36

Message with log integrity information.

time contains the message as a null-terminated C string.

EVTC: yes

Realtime: no

§

Marker = 37

Agent has a marker.

src_agent has the marker. value contains the markerdef id (volatile, depends on game build). If buff, marker is a commander tag.

A marker id of 0 indicates a remove.

EVTC: yes, limited to agent table outside instances.

Realtime: no

§

BarrierUpdate = 38

Agent barrier change.

src_agent has barrier percentage. dst_agent contains percentage as percent * 10000. For example 99.5% will be 9950.

EVTC: yes, limited to agent table outside instances.

Realtime: no

§

StatReset = 39

Arc UI stats reset.

src_agent contains the species id of the agent triggering the reset, for example boss species id.

EVTC: yes

Realtime: yes

§

Extension = 40

A custom event created by an extension (addon/plugin).

§

ApiDelayed = 41

Delayed combat event.

Event deemed “unsafe” for realtime that was held back until after squad left combat.

EVTC: no

Realtime: yes

§

InstanceStart = 42

Map instance start timestamp.

src_agent contains the time in milliseconds since the instance was started.

EVTC: yes

Realtime: yes

§

RateHealth = 43

Tick rate health.

src_agent is 25 - tickrate when tickrate < 21. Every 500ms.

EVTC: yes

Realtime: no

§

Last90BeforeDown = 44

Retired since 230716.

Previously: Last 90% before down.

src_agent is enemy agent that went down, dst_agent is time in ms since last 90%. For downs contribution.

§

EffectOld = 45

Retired since 230716.

Previously: Effect created or ended.

skill_id contains the effect id. src_agent is the effect owner. dst_agent if effect located at agent. Otherwise value contains XYZ position as [f32; 3], affinity contains XY orientation as [f32; 2], pad61 contains Z orientation as f32. is_shields contains duration as u16. If is_flanking, duration is a tracking id. If effect id is 0, effect ended and is_shields contains tracking id.

§

IdToGUID = 46

Content id to GUID.

skill_id is the content id. src_agent contains the persistent content guid as [u8; 16]. overstack_value contains a variant of ContentLocal.

Not used in realtime API.

§

LogNPCUpdate = 47

Log boss agent changed.

src_agent contains the species id of the agent. dst_agent is the boss agent. value contains the server Unix timestamp as u32. buff_dmg contains the local Unix timestamp.

EVTC: yes

Realtime: yes

§

IdleEvent = 48

Used internally by ArcDPS. Should not appear anywhere.

§

ExtensionCombat = 49

A custom combat event created by an extension (addon/plugin).

skill_id is treated as skill id and will be added to the EVTC skill table.

§

FractalScale = 50

Fractal scale.

src_agent contains the scale.

EVTC: yes

Realtime: no

§

Effect = 51

Visual effect created or ended.

skill_id contains the effect id. src_agent is the effect owner (if any). dst_agent if effect located at agent. Otherwise value contains XYZ location as [f32; 3]. affinity contains duration as u32. is_buffremove contains trackable id as u32. is_shields contains orientation as [i16; 3]. Orientation values are original * 1000 or i16::MIN/i16::MAX if out of bounds.

EVTC: yes, limited to agent table outside instances

Realtime: no

§

Ruleset = 52

Combat ruleset.

src_agent has bit 0 set if PvE rules, bit 1 if WvW rules and bit 2 if PvP rules.

EVTC: yes

Realtime: no

§

SquadMarker = 53

Squad ground marker placed or removed.

src_agent contains XYZ location as [f32; 3] or f32::INFINITY if removed. skill_id contains the index of the squad marker, for example 0 for Arrow marker.

EVTC: yes

Realtime: no

§

ArcBuild = 54

ArcDPS build information.

src_agent contains ArcDPS build as null-terminated C string.

EVTC: yes

Realtime: no

§

Glider = 55

Agent gliding state change.

src_agent changed gliding state. value contains 1 if deployed and 0 if stowed.

EVTC: yes, limited to agent table outside instances.

Realtime: no

§

Unknown(u8)

Unknown or invalid.

Implementations§

Source§

impl StateChange

Source

pub fn has_time(&self) -> bool

Checks whether the statechange has an associated timestamp.

Trait Implementations§

Source§

impl Clone for StateChange

Source§

fn clone(&self) -> StateChange

Returns a copy 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 StateChange

Source§

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

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

impl<'de> Deserialize<'de> for StateChange

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl From<StateChange> for u8

Source§

fn from(enum_value: StateChange) -> Self

Converts to this type from the input type.
Source§

impl From<u8> for StateChange

Source§

fn from(number: u8) -> Self

Converts to this type from the input type.
Source§

impl FromPrimitive for StateChange

Source§

type Primitive = u8

Source§

fn from_primitive(number: Self::Primitive) -> Self

Source§

impl Hash for StateChange

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for StateChange

Source§

fn cmp(&self, other: &StateChange) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for StateChange

Source§

fn eq(&self, other: &StateChange) -> 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 PartialOrd for StateChange

Source§

fn partial_cmp(&self, other: &StateChange) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Serialize for StateChange

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Copy for StateChange

Source§

impl Eq for StateChange

Source§

impl StructuralPartialEq for StateChange

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, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,