Event System: Difference between revisions

From Sinfar
(Created page with "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 Ge...")
 
(added code block)
Line 5: Line 5:
Code: Select all
Code: Select all


 
<syntaxhighlight>
int GetEventParamInt(int nParamIndex);
int GetEventParamInt(int nParamIndex);


Line 69: Line 69:


location RunEventLocation(string sScript, object oTarget, array aParams);
location RunEventLocation(string sScript, object oTarget, array aParams);
 
</syntaxhighlight>





Revision as of 16:58, 9 December 2023

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