Event System

From Sinfar
Revision as of 17:00, 9 December 2023 by Fiery Imp (talk | contribs)

The way to get an event parameter has been standardized... now instead of calling functions from inc_x_events or getting local variable, parameters are stored in an array:

They can be obtained all at once with the GetEventParams() function or one by one, here are all functions to deal with the new events system:

Code: Select all

int GetEventParamInt(int nParamIndex);

object GetEventParamObject(int nParamIndex);

string GetEventParamString(int nParamIndex);

float GetEventParamFloat(int nParamIndex);

effect GetEventParamEffect(int nParamIndex);

array GetEventParamArray(int nParamIndex);

dictionary GetEventParamDictionary(int nParamIndex);

location GetEventParamLocation(int nParamIndex);

vector GetEventParamVector(int nParamIndex);

array GetEventParams();

int GetEventParamType(int nParam);

int GetEventParamCount();

void BypassEvent();

void SetEventResultInt(int nResult);

void SetEventResultObject(object oResult);

void SetEventResultString(string sResult);

void SetEventResultFloat(float fResult);

void SetEventResultEffect(effect eResult);

void SetEventResultArray(array aResult);

void SetEventResultDictionary(dictionary dResult);

void SetEventResultVector(vector vResult);

void SetEventResultLocation(location lResult);

void RunEvent(string sScript, object oTarget, array aParams);

int RunEventInt(string sScript, object oTarget, array aParams);

object RunEventObject(string sScript, object oTarget, array aParams);

string RunEventString(string sScript, object oTarget, array aParams);

float RunEventFloat(string sScript, object oTarget, array aParams);

effect RunEventEffect(string sScript, object oTarget, array aParams);

array RunEventArray(string sScript, object oTarget, array aParams);

dictionary RunEventDictionary(string sScript, object oTarget, array aParams);

vector RunEventVector(string sScript, object oTarget, array aParams);

location RunEventLocation(string sScript, object oTarget, array aParams);


And the reference for most existing events:

pc_ev_useitem -> item:EVENT_USE
self : user
p0: item
p1: target object
p2: target position
p3: sub type

pc_ev_examine -> player:EVENT_EXAMINE

self: player p0: target object

pc_ev_attack -> attacker:EVENT_ATTACK self: attacker p0: target object p1: attack type

pc_ev_trap -> target:EVENT_TRAP self: trapper p0: type p1: target object p2: target position

pc_ev_firetrap -> target:EVENT_FIRETRAP self: trigger p0: type p1: target

pc_ev_useskill -> user:EVENT_USESKILL, user:EVENT_USESKILL_%skill% self: user p0: skill p1: target p2: target position p3: item

pc_ev_usefeat -> user:EVENT_USEFEAT, user:EVENT_USEFEAT_%feat% self: user p0: feat p1: target p2: target position

pc_ev_togglemode -> user:EVENT_TOGGLEMODE, user:EVENT_TOGGLEMODE_%mode% self: user p0: mode

pc_ev_castspell -> caster:EVENT_CASTING, caster:EVENT_CASTING_%spell% self: caster p0: target p1: target position p2: spell p3: meta magic p4: class p5: is instant

ilr_canequip -> item:EVENT_CAN_EQUIP self: equip by p0: item

pc_ev_setlike setter:EVENT_SETLIKE self: setter p0: type p1: target

pc_ev_party self: setter p0: type p1: target

pc_ev_pickpocket self: attacker p0: target object