X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmutators%2Fevents.qh;h=8700e45b8c09b41a5a1c70b904824895671239a3;hb=926f0330ded4b9886284a680ee3a06f430062902;hp=fb452c3399b9bb4ab39721abb574ec32944ccff4;hpb=0f1ffe9c0565f1f1a0d6f58240760f227aa3ee99;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/mutators/events.qh b/qcsrc/server/mutators/events.qh index fb452c339..8700e45b8 100644 --- a/qcsrc/server/mutators/events.qh +++ b/qcsrc/server/mutators/events.qh @@ -3,6 +3,9 @@ #include // register all possible hooks here + +// to use a hook, first register your mutator using REGISTER_MUTATOR +// then create your function using MUTATOR_HOOKFUNCTION /** called when a player becomes observer, after shared setup */ #define EV_MakePlayerObserver(i, o) \ @@ -679,6 +682,26 @@ constants for resource types. Return true to forbid the change. */ /**/ MUTATOR_HOOKABLE(SetResourceAmount, EV_SetResourceAmount); +/** Called after the amount of resource of an entity has changed. See RESOURCE_* +constants for resource types. Amount wasted is the amount of resource that is +above resource limit so it was not given. */ +#define EV_ResourceAmountChanged(i, o) \ + /** checked entity */ i(entity, MUTATOR_ARGV_0_entity) \ + /** resource type */ i(int, MUTATOR_ARGV_1_int) \ + /** amount */ i(float, MUTATOR_ARGV_2_float) \ + /**/ +MUTATOR_HOOKABLE(ResourceAmountChanged, EV_ResourceAmountChanged); + +/** Called when there was an attempt to set entity resources higher than their +limit. See RESOURCE_* constants for resource types. Amount wasted is the amount +of resource that is above resource limit so it was not given. */ +#define EV_ResourceWasted(i, o) \ + /** checked entity */ i(entity, MUTATOR_ARGV_0_entity) \ + /** resource type */ i(int, MUTATOR_ARGV_1_int) \ + /** amount wasted */ i(float, MUTATOR_ARGV_2_float) \ + /**/ +MUTATOR_HOOKABLE(ResourceWasted, EV_ResourceWasted); + /** Called when entity is being given some resource. See RESOURCE_* constants for resource types. Return true to forbid giving. */ #define EV_GiveResource(i, o) \ @@ -690,6 +713,19 @@ for resource types. Return true to forbid giving. */ /**/ MUTATOR_HOOKABLE(GiveResource, EV_GiveResource); +/** Called when entity is being given some resource with specified limit. See +RESOURCE_* constants for resource types. Return true to forbid giving. */ +#define EV_GiveResourceWithLimit(i, o) \ + /** receiver */ i(entity, MUTATOR_ARGV_0_entity) \ + /** resource type */ i(int, MUTATOR_ARGV_1_int) \ + /**/ o(int, MUTATOR_ARGV_1_int) \ + /** amount */ i(float, MUTATOR_ARGV_2_float) \ + /**/ o(float, MUTATOR_ARGV_2_float) \ + /** limit */ i(float, MUTATOR_ARGV_3_float) \ + /**/ o(float, MUTATOR_ARGV_3_float) \ + /**/ +MUTATOR_HOOKABLE(GiveResourceWithLimit, EV_GiveResourceWithLimit); + /** called at when a player connect */ #define EV_ClientConnect(i, o) \ /** player */ i(entity, MUTATOR_ARGV_0_entity) \ @@ -1065,3 +1101,9 @@ MUTATOR_HOOKABLE(PlayerPhysics_UpdateStats, EV_PlayerPhysics_UpdateStats); /** bot */ i(entity, MUTATOR_ARGV_0_entity) \ /**/ MUTATOR_HOOKABLE(HavocBot_Aim, EV_HavocBot_Aim); + +/** return true to skip respawn time calculations */ +#define EV_CalculateRespawnTime(i, o) \ + /** player */ i(entity, MUTATOR_ARGV_0_entity) \ + /**/ +MUTATOR_HOOKABLE(CalculateRespawnTime, EV_CalculateRespawnTime);