X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmutators%2Fevents.qh;h=6e3448066e5d49c7d43aac261bb8cf0a6a2f5148;hb=d79c4230cc705cd8a55129d20ccb131afd036f24;hp=c8879918c3a89acb1a3cbf519ca96b002b5fd4ed;hpb=264c9f48d418d1ebd4b5ef5868b85f92644917dc;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/mutators/events.qh b/qcsrc/server/mutators/events.qh index c8879918c..6e3448066 100644 --- a/qcsrc/server/mutators/events.qh +++ b/qcsrc/server/mutators/events.qh @@ -64,7 +64,7 @@ MUTATOR_HOOKABLE(ClientDisconnect, EV_ClientDisconnect); /** attacker */ i(entity, MUTATOR_ARGV_1_entity) \ /** target */ i(entity, MUTATOR_ARGV_2_entity) \ /** deathtype */ i(float, MUTATOR_ARGV_3_float) \ - /** damage */ i(float, MUTATOR_ARGV_4_float) \ + /** damage */ i(float, MUTATOR_ARGV_4_float) \ /** damage */ o(float, MUTATOR_ARGV_4_float) \ /**/ MUTATOR_HOOKABLE(PlayerDies, EV_PlayerDies); @@ -141,7 +141,7 @@ MUTATOR_HOOKABLE(GetTeamCounts, EV_NO_ARGS); /**/ o(float, MUTATOR_ARGV_2_float) \ /** number of bots in a team */ i(float, MUTATOR_ARGV_3_float) \ /**/ o(float, MUTATOR_ARGV_3_float) \ - /** lowest scoring player in a team */ i(entity, MUTATOR_ARGV_4_entity) \ + /** lowest scoring human in a team */ i(entity, MUTATOR_ARGV_4_entity) \ /**/ o(entity, MUTATOR_ARGV_4_entity) \ /** lowest scoring bot in a team */ i(entity, MUTATOR_ARGV_5_entity) \ /**/ o(entity, MUTATOR_ARGV_5_entity) \ @@ -645,6 +645,45 @@ enum { MUT_ITEMTOUCH_PICKUP // return this flag to have the item "picked up" and taken even after mutator handled it }; +/** called after the item has been touched. */ +#define EV_ItemTouched(i, o) \ + /** item */ i(entity, MUTATOR_ARGV_0_entity) \ + /** toucher */ i(entity, MUTATOR_ARGV_1_entity) \ + /**/ +MUTATOR_HOOKABLE(ItemTouched, EV_ItemTouched); + +/** Called when the amount of entity resources changes. Can be used to override +resource limit. */ +#define EV_GetResourceLimit(i, o) \ + /** checked entity */ i(entity, MUTATOR_ARGV_0_entity) \ + /** resource type */ i(int, MUTATOR_ARGV_1_int) \ + /** limit */ i(float, MUTATOR_ARGV_2_float) \ + /**/ o(float, MUTATOR_ARGV_2_float) \ + /**/ +MUTATOR_HOOKABLE(GetResourceLimit, EV_GetResourceLimit); + +/** Called when the amount of resource of an entity changes. See RESOURCE_* +constants for resource types. Return true to forbid the change. */ +#define EV_SetResourceAmount(i, o) \ + /** checked entity */ 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) \ + /**/ +MUTATOR_HOOKABLE(SetResourceAmount, EV_SetResourceAmount); + +/** Called when entity is being given some resource. See RESOURCE_* constants +for resource types. Return true to forbid giving. */ +#define EV_GiveResource(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) \ + /**/ +MUTATOR_HOOKABLE(GiveResource, EV_GiveResource); + /** called at when a player connect */ #define EV_ClientConnect(i, o) \ /** player */ i(entity, MUTATOR_ARGV_0_entity) \ @@ -832,13 +871,20 @@ MUTATOR_HOOKABLE(CheckRules_World, EV_CheckRules_World); MUTATOR_HOOKABLE(WantWeapon, EV_WantWeapon); #define EV_AddPlayerScore(i, o) \ - /** score field */ i(PlayerScoreField, MUTATOR_ARGV_0_entity) \ + /** score field */ i(entity, MUTATOR_ARGV_0_entity) \ /** score */ i(float, MUTATOR_ARGV_1_float) \ /**/ o(float, MUTATOR_ARGV_1_float) \ /** player */ i(entity, MUTATOR_ARGV_2_entity) \ /**/ MUTATOR_HOOKABLE(AddPlayerScore, EV_AddPlayerScore); +#define EV_AddedPlayerScore(i, o) \ + /** score field */ i(entity, MUTATOR_ARGV_0_entity) \ + /** score */ i(float, MUTATOR_ARGV_1_float) \ + /** player */ i(entity, MUTATOR_ARGV_2_entity) \ + /**/ +MUTATOR_HOOKABLE(AddedPlayerScore, EV_AddPlayerScore); + #define EV_GetPlayerStatus(i, o) \ /** player */ i(entity, MUTATOR_ARGV_0_entity) \ /**/