X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fmutators%2Fevents.qh;h=2d32dc966a32f375c726888f7f4bcda3d0c69228;hb=b834eab77489d98d5d722d67c8a96cf6c3549436;hp=2d19df72bfc5aa92011786a0177be6f4bff52678;hpb=3bbcff2475d1b2efc1314a358bf60c6fba6e4be6;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/mutators/events.qh b/qcsrc/server/mutators/events.qh index 2d19df72b..2d32dc966 100644 --- a/qcsrc/server/mutators/events.qh +++ b/qcsrc/server/mutators/events.qh @@ -31,6 +31,12 @@ MUTATOR_HOOKABLE(ForbidSpawn, EV_ForbidSpawn); /**/ MUTATOR_HOOKABLE(PlayerSpawn, EV_PlayerSpawn); +/** called after a player's weapon is chosen so it can be overriden here */ +#define EV_PlayerWeaponSelect(i, o) \ + /** player spawning */ i(entity, MUTATOR_ARGV_0_entity) \ + /**/ +MUTATOR_HOOKABLE(PlayerWeaponSelect, EV_PlayerWeaponSelect); + /** called in reset_map */ #define EV_reset_map_global(i, o) \ /**/ @@ -96,6 +102,14 @@ MUTATOR_HOOKABLE(WeaponSound, EV_WeaponSound); /**/ MUTATOR_HOOKABLE(ItemModel, EV_ItemModel); +/** called when an item sound is about to be played, allows custom paths etc. */ +#define EV_ItemSound(i, o) \ + /** sound */ i(string, MUTATOR_ARGV_0_string) \ + /** output */ i(string, MUTATOR_ARGV_1_string) \ + /**/ o(string, MUTATOR_ARGV_1_string) \ + /**/ +MUTATOR_HOOKABLE(ItemSound, EV_ItemSound); + /** called when someone was fragged by "self", and is expected to change frag_score to adjust scoring for the kill */ #define EV_GiveFragsForKill(i, o) \ /** attacker */ i(entity, MUTATOR_ARGV_0_entity) \ @@ -134,6 +148,14 @@ MUTATOR_HOOKABLE(SpectateCopy, EV_SpectateCopy); /**/ MUTATOR_HOOKABLE(FormatMessage, EV_FormatMessage); +/** called before any formatting is applied, handy for tweaking the message before scripts get ahold of it */ +#define EV_PreFormatMessage(i, o) \ + /** player */ i(entity, MUTATOR_ARGV_0_entity) \ + /** message */ i(string, MUTATOR_ARGV_1_string) \ + /**/ o(string, MUTATOR_ARGV_1_string) \ + /**/ +MUTATOR_HOOKABLE(PreFormatMessage, EV_PreFormatMessage); + /** returns true if throwing the current weapon shall not be allowed */ #define EV_ForbidThrowCurrentWeapon(i, o) \ /** player */ i(entity, MUTATOR_ARGV_0_entity) \ @@ -286,6 +308,7 @@ MUTATOR_HOOKABLE(MonsterDropItem, EV_MonsterDropItem); /** walk speed */ i(float, MUTATOR_ARGV_2_float) \ /**/ o(float, MUTATOR_ARGV_2_float) \ /** move target */ i(entity, MUTATOR_ARGV_3_entity) \ + /**/ o(entity, MUTATOR_ARGV_3_entity) \ /**/ MUTATOR_HOOKABLE(MonsterMove, EV_MonsterMove); @@ -337,7 +360,7 @@ MUTATOR_HOOKABLE(PlayerDamage_SplitHealthArmor, EV_PlayerDamage_SplitHealthArmor * called to adjust damage and force values which are applied to the player, used for e.g. strength damage/force multiplier * i'm not sure if I should change this around slightly (Naming of the entities, and also how they're done in g_damage). */ -#define EV_PlayerDamage_Calculate(i, o) \ +#define EV_Damage_Calculate(i, o) \ /** inflictor */ i(entity, MUTATOR_ARGV_0_entity) \ /** attacker */ i(entity, MUTATOR_ARGV_1_entity) \ /** target */ i(entity, MUTATOR_ARGV_2_entity) \ @@ -349,7 +372,7 @@ MUTATOR_HOOKABLE(PlayerDamage_SplitHealthArmor, EV_PlayerDamage_SplitHealthArmor /** force */ i(vector, MUTATOR_ARGV_6_vector) \ /** force */ o(vector, MUTATOR_ARGV_6_vector) \ /**/ -MUTATOR_HOOKABLE(PlayerDamage_Calculate, EV_PlayerDamage_Calculate); +MUTATOR_HOOKABLE(Damage_Calculate, EV_Damage_Calculate); /** * Called when a player is damaged @@ -357,10 +380,11 @@ MUTATOR_HOOKABLE(PlayerDamage_Calculate, EV_PlayerDamage_Calculate); #define EV_PlayerDamaged(i, o) \ /** attacker */ i(entity, MUTATOR_ARGV_0_entity) \ /** target */ i(entity, MUTATOR_ARGV_1_entity) \ - /** health */ i(int, MUTATOR_ARGV_2_int) \ - /** armor */ i(int, MUTATOR_ARGV_3_int) \ + /** health */ i(float, MUTATOR_ARGV_2_float) \ + /** armor */ i(float, MUTATOR_ARGV_3_float) \ /** location */ i(vector, MUTATOR_ARGV_4_vector) \ /** deathtype */ i(int, MUTATOR_ARGV_5_int) \ + /** potential_damage */ i(float, MUTATOR_ARGV_6_float) \ /**/ MUTATOR_HOOKABLE(PlayerDamaged, EV_PlayerDamaged); @@ -543,7 +567,7 @@ MUTATOR_HOOKABLE(HelpMePing, EV_HelpMePing); /** * called when a vehicle initializes - * return false to remove the vehicle + * return true to remove the vehicle */ #define EV_VehicleInit(i, o) \ /** vehicle */ i(entity, MUTATOR_ARGV_0_entity) \ @@ -641,6 +665,7 @@ MUTATOR_HOOKABLE(GetModelParams, EV_GetModelParams); /** end pos */ i(vector, MUTATOR_ARGV_3_vector) \ /** damage */ i(float, MUTATOR_ARGV_4_float) \ /**/ o(float, MUTATOR_ARGV_4_float) \ + /** wep entity */ i(entity, MUTATOR_ARGV_5_entity) \ /**/ MUTATOR_HOOKABLE(FireBullet_Hit, EV_FireBullet_Hit); @@ -885,3 +910,21 @@ MUTATOR_HOOKABLE(ForbidWeaponUse, EV_ForbidWeaponUse); /** keepvelocity? */ i(bool, MUTATOR_ARGV_2_bool) \ /**/ MUTATOR_HOOKABLE(CopyBody, EV_CopyBody); + +/** called when sending a chat message, ret argument can be changed to prevent the message */ +#define EV_ChatMessage(i, o) \ + /** sender */ i(entity, MUTATOR_ARGV_0_entity) \ + /** ret */ i(int, MUTATOR_ARGV_1_int) \ + /**/ o(int, MUTATOR_ARGV_1_int) \ + /**/ +MUTATOR_HOOKABLE(ChatMessage, EV_ChatMessage); + +/** return true to prevent sending a chat (private, team or regular) message from reaching a certain player */ +#define EV_ChatMessageTo(i, o) \ + /** destination player */ i(entity, MUTATOR_ARGV_0_entity) \ + /** sender */ i(entity, MUTATOR_ARGV_1_entity) \ + /**/ +MUTATOR_HOOKABLE(ChatMessageTo, EV_ChatMessageTo); + +/** return true to just restart the match, for modes that don't support readyrestart */ +MUTATOR_HOOKABLE(ReadyRestart_Deny, EV_NO_ARGS);