X-Git-Url: https://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fmutators%2Fevents.qh;h=c4521e824f3a7a9d57ce58df35494fcf3dbb8fa2;hp=58e9ca127dabb4fb3183616f7815885fcfafa861;hb=4e21f418ad9e6287efb942c1fa2861a51981110a;hpb=55a4614bcbabe7335c9a7c25bbb6458400b3a424 diff --git a/qcsrc/server/mutators/events.qh b/qcsrc/server/mutators/events.qh index 58e9ca127..c4521e824 100644 --- a/qcsrc/server/mutators/events.qh +++ b/qcsrc/server/mutators/events.qh @@ -90,6 +90,17 @@ MUTATOR_HOOKABLE(PlayerDies, EV_PlayerDies); /**/ MUTATOR_HOOKABLE(PlayerDied, EV_PlayerDied); +/** called when showing an obituary for the player. return true to show nothing (workarounds may be needed) */ +#define EV_ClientObituary(i, o) \ + /** inflictor */ i(entity, MUTATOR_ARGV_0_entity) \ + /** attacker */ i(entity, MUTATOR_ARGV_1_entity) \ + /** target */ i(entity, MUTATOR_ARGV_2_entity) \ + /** deathtype */ i(float, MUTATOR_ARGV_3_float) \ + /** wep entity */ i(entity, MUTATOR_ARGV_4_entity) \ + /** anonymous killer*/ o(bool, MUTATOR_ARGV_5_bool) \ + /**/ +MUTATOR_HOOKABLE(ClientObituary, EV_ClientObituary); + /** allows overriding the frag centerprint messages */ #define EV_FragCenterMessage(i, o) \ /** attacker */ i(entity, MUTATOR_ARGV_0_entity) \ @@ -306,6 +317,7 @@ MUTATOR_HOOKABLE(PlayerPreThink, EV_PlayerPreThink); MUTATOR_HOOKABLE(GetPressedKeys, EV_GetPressedKeys); /** is meant to call GetCvars_handle*(get_cvars_s, get_cvars_f, cvarfield, "cvarname") for cvars this mutator needs from the client */ +// NOTE: requesting cvar values (get_cvars_f 0) is deprecated #define EV_GetCvars(i, o) \ /**/ i(float, get_cvars_f) \ /**/ i(string, get_cvars_s) \ @@ -437,6 +449,7 @@ MUTATOR_HOOKABLE(Damage_Calculate, EV_Damage_Calculate); /** * Called when a player is damaged + * Returns true if damage shouldn't be logged */ #define EV_PlayerDamaged(i, o) \ /** attacker */ i(entity, MUTATOR_ARGV_0_entity) \ @@ -701,18 +714,18 @@ resource limit. */ /**/ MUTATOR_HOOKABLE(GetResourceLimit, EV_GetResourceLimit); -/** Called when the amount of resource of an entity changes. See RESOURCE_* +/** Called when the amount of resource of an entity changes. See RES_* constants for resource types. Return true to forbid the change. */ -#define EV_SetResourceAmount(i, o) \ +#define EV_SetResource(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); +MUTATOR_HOOKABLE(SetResource, EV_SetResource); -/** Called after the amount of resource of an entity has changed. See RESOURCE_* +/** Called after the amount of resource of an entity has changed. See RES_* 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) \ @@ -723,7 +736,7 @@ above resource limit so it was not given. */ 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 +limit. See RES_* 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) \ @@ -732,8 +745,9 @@ of resource that is above resource limit so it was not given. */ /**/ MUTATOR_HOOKABLE(ResourceWasted, EV_ResourceWasted); -/** Called when entity is being given some resource. See RESOURCE_* constants -for resource types. Return true to forbid giving. */ +/** Called when entity is being given some resource. See RES_* constants +for resource types. Return true to forbid giving. +NOTE: This hook is also called by GiveResourceWithLimit */ #define EV_GiveResource(i, o) \ /** receiver */ i(entity, MUTATOR_ARGV_0_entity) \ /** resource type */ i(int, MUTATOR_ARGV_1_int) \ @@ -744,7 +758,7 @@ 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. */ +RES_* 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) \ @@ -756,8 +770,9 @@ RESOURCE_* constants for resource types. Return true to forbid giving. */ /**/ MUTATOR_HOOKABLE(GiveResourceWithLimit, EV_GiveResourceWithLimit); -/** Called when some resource is being taken from an entity. See RESOURCE_* constants -for resource types. Return true to forbid giving. */ +/** Called when some resource is being taken from an entity. See RES_* constants +for resource types. Return true to forbid giving. +NOTE: This hook is also called by TakeResourceWithLimit */ #define EV_TakeResource(i, o) \ /** receiver */ i(entity, MUTATOR_ARGV_0_entity) \ /** resource type */ i(int, MUTATOR_ARGV_1_int) \ @@ -768,7 +783,7 @@ for resource types. Return true to forbid giving. */ MUTATOR_HOOKABLE(TakeResource, EV_TakeResource); /** Called when some resource is being taken from an entity, with a limit. See -RESOURCE_* constants for resource types. Return true to forbid giving. */ +RES_* constants for resource types. Return true to forbid giving. */ #define EV_TakeResourceWithLimit(i, o) \ /** receiver */ i(entity, MUTATOR_ARGV_0_entity) \ /** resource type */ i(int, MUTATOR_ARGV_1_int) \ @@ -1081,15 +1096,23 @@ MUTATOR_HOOKABLE(Player_ChangeTeamKill, EV_Player_ChangeTeamKill); /** id */ i(float, MUTATOR_ARGV_0_float) \ /** status */ i(float, MUTATOR_ARGV_1_float) \ /** data */ i(string, MUTATOR_ARGV_2_string) \ - /**/ + /**/ MUTATOR_HOOKABLE(URI_GetCallback, EV_URI_GetCallback); +/** + * return true to lock weapon (can't be used nor changed) for a player + */ +#define EV_LockWeapon(i, o) \ + /** player */ i(entity, MUTATOR_ARGV_0_entity) \ + /**/ +MUTATOR_HOOKABLE(LockWeapon, EV_LockWeapon); + /** * return true to prevent weapon use for a player */ - #define EV_ForbidWeaponUse(i, o) \ - /** player */ i(entity, MUTATOR_ARGV_0_entity) \ - /**/ +#define EV_ForbidWeaponUse(i, o) \ + /** player */ i(entity, MUTATOR_ARGV_0_entity) \ + /**/ MUTATOR_HOOKABLE(ForbidWeaponUse, EV_ForbidWeaponUse); /** called when creating a clone of the player (usually for corpses that stay after the player has re-spawned) */ @@ -1203,3 +1226,27 @@ MUTATOR_HOOKABLE(Freeze, EV_Freeze); /** targ */ i(entity, MUTATOR_ARGV_0_entity) \ /**/ MUTATOR_HOOKABLE(Unfreeze, EV_Unfreeze); + +/** + * Called when a player is trying to join, argument is the number of players allowed to join the match + */ +#define EV_GetPlayerLimit(i, o) \ + /** g_maxplayers */ i(int, MUTATOR_ARGV_0_int) \ + /**/ o(int, MUTATOR_ARGV_0_int) \ + /**/ +MUTATOR_HOOKABLE(GetPlayerLimit, EV_GetPlayerLimit); + +/** include special item codes for a death to the game log */ +#define EV_LogDeath_AppendItemCodes(i, o) \ + /** player */ i(entity, MUTATOR_ARGV_0_entity) \ + /** item codes */ i(string, MUTATOR_ARGV_1_string) \ + /**/ o(string, MUTATOR_ARGV_1_string) \ + /**/ +MUTATOR_HOOKABLE(LogDeath_AppendItemCodes, EV_LogDeath_AppendItemCodes); + +/** Allows disabling or enabling rocket jumping independently of balance, use the parameter to force a preferred setting */ +#define EV_AllowRocketJumping(i, o) \ + /** allow_rocketjump */ i(bool, MUTATOR_ARGV_0_bool) \ + /**/ o(bool, MUTATOR_ARGV_0_bool) \ + /**/ +MUTATOR_HOOKABLE(AllowRocketJumping, EV_AllowRocketJumping);