11#define EV_MakePlayerObserver(i, o) \
12 i(entity, MUTATOR_ARGV_0_entity) \
13 i(bool, MUTATOR_ARGV_1_bool) \
18#define EV_PutClientInServer(i, o) \
19 i(entity, MUTATOR_ARGV_0_entity) \
26 #define EV_ForbidSpawn(i, o) \
27 i(entity, MUTATOR_ARGV_0_entity) \
32#define EV_AutoJoinOnConnection(i, o) \
33 i(entity, MUTATOR_ARGV_0_entity) \
38#define EV_ForbidRandomStartWeapons(i, o) \
39 i(entity, MUTATOR_ARGV_0_entity) \
44#define EV_PlayerSpawn(i, o) \
45 i(entity, MUTATOR_ARGV_0_entity) \
46 i(entity, MUTATOR_ARGV_1_entity) \
51#define EV_PlayerWeaponSelect(i, o) \
52 i(entity, MUTATOR_ARGV_0_entity) \
57#define EV_PlayerAnim(i, o) \
58 i(entity, MUTATOR_ARGV_0_entity) \
59 i(int, MUTATOR_ARGV_1_int) \
60 o(int, MUTATOR_ARGV_1_int) \
65#define EV_reset_map_global(i, o) \
70#define EV_reset_map_players(i, o) \
75#define EV_ForbidPlayerScore_Clear(i, o) \
80#define EV_ClientDisconnect(i, o) \
81 i(entity, MUTATOR_ARGV_0_entity) \
86#define EV_PlayerDies(i, o) \
87 i(entity, MUTATOR_ARGV_0_entity) \
88 i(entity, MUTATOR_ARGV_1_entity) \
89 i(entity, MUTATOR_ARGV_2_entity) \
90 i(float, MUTATOR_ARGV_3_float) \
91 i(float, MUTATOR_ARGV_4_float) \
92 o(float, MUTATOR_ARGV_4_float) \
97#define EV_PlayerDied(i, o) \
98 i(entity, MUTATOR_ARGV_0_entity) \
103#define EV_ClientObituary(i, o) \
104 i(entity, MUTATOR_ARGV_0_entity) \
105 i(entity, MUTATOR_ARGV_1_entity) \
106 i(entity, MUTATOR_ARGV_2_entity) \
107 i(float, MUTATOR_ARGV_3_float) \
108 i(entity, MUTATOR_ARGV_4_entity) \
109 o(bool, MUTATOR_ARGV_5_bool) \
114#define EV_FragCenterMessage(i, o) \
115 i(entity, MUTATOR_ARGV_0_entity) \
116 i(entity, MUTATOR_ARGV_1_entity) \
117 i(float, MUTATOR_ARGV_2_float) \
118 i(int, MUTATOR_ARGV_3_int) \
119 i(int, MUTATOR_ARGV_4_int) \
124#define EV_PlayHitsound(i, o) \
125 i(entity, MUTATOR_ARGV_0_entity) \
126 i(entity, MUTATOR_ARGV_1_entity) \
131#define EV_ItemModel(i, o) \
132 i(string, MUTATOR_ARGV_0_string) \
133 i(string, MUTATOR_ARGV_1_string) \
134 o(string, MUTATOR_ARGV_1_string) \
139#define EV_ItemSound(i, o) \
140 i(string, MUTATOR_ARGV_0_string) \
141 i(string, MUTATOR_ARGV_1_string) \
142 o(string, MUTATOR_ARGV_1_string) \
147#define EV_GiveFragsForKill(i, o) \
148 i(entity, MUTATOR_ARGV_0_entity) \
149 i(entity, MUTATOR_ARGV_1_entity) \
150 i(float, MUTATOR_ARGV_2_float) \
151 o(float, MUTATOR_ARGV_2_float) \
152 i(float, MUTATOR_ARGV_3_float) \
153 i(entity, MUTATOR_ARGV_4_entity) \
167#define EV_TeamBalance_CheckAllowedTeams(i, o) \
168 i(float, MUTATOR_ARGV_0_float) \
169 o(float, MUTATOR_ARGV_0_float) \
170 i(string, MUTATOR_ARGV_1_string) \
171 o(string, MUTATOR_ARGV_1_string) \
172 i(entity, MUTATOR_ARGV_2_entity) \
181#define EV_TeamBalance_GetTeamCount(i, o) \
182 i(float, MUTATOR_ARGV_0_float) \
183 i(entity, MUTATOR_ARGV_1_entity) \
184 o(float, MUTATOR_ARGV_2_float) \
185 o(float, MUTATOR_ARGV_3_float) \
192#define EV_TeamBalance_FindBestTeams(i, o) \
193 i(entity, MUTATOR_ARGV_0_entity) \
194 o(float, MUTATOR_ARGV_1_float) \
200#define EV_TeamBalance_GetPlayerForTeamSwitch(i, o) \
201 i(int, MUTATOR_ARGV_0_int) \
202 i(int, MUTATOR_ARGV_1_int) \
203 i(bool, MUTATOR_ARGV_2_bool) \
204 o(entity, MUTATOR_ARGV_3_entity) \
210#define EV_SpectateCopy(i, o) \
211 i(entity, MUTATOR_ARGV_0_entity) \
212 i(entity, MUTATOR_ARGV_1_entity) \
217#define EV_FormatMessage(i, o) \
218 i(entity, MUTATOR_ARGV_0_entity) \
219 i(string, MUTATOR_ARGV_1_string) \
220 i(string, MUTATOR_ARGV_2_string) \
221 o(string, MUTATOR_ARGV_2_string) \
222 i(string, MUTATOR_ARGV_3_string) \
227#define EV_PreFormatMessage(i, o) \
228 i(entity, MUTATOR_ARGV_0_entity) \
229 i(string, MUTATOR_ARGV_1_string) \
230 o(string, MUTATOR_ARGV_1_string) \
235#define EV_ForbidThrowCurrentWeapon(i, o) \
236 i(entity, MUTATOR_ARGV_0_entity) \
237 i(entity, MUTATOR_ARGV_1_entity) \
242#define EV_ForbidDropCurrentWeapon(i, o) \
243 i(entity, MUTATOR_ARGV_0_entity) \
244 i(int, MUTATOR_ARGV_1_int) \
252#define EV_WeaponRateFactor(i, o) \
253 i(float, MUTATOR_ARGV_0_float) \
254 o(float, MUTATOR_ARGV_0_float) \
255 i(entity, MUTATOR_ARGV_1_entity) \
260#define EV_WeaponSpeedFactor(i, o) \
261 i(float, MUTATOR_ARGV_0_float) \
262 o(float, MUTATOR_ARGV_0_float) \
263 i(entity, MUTATOR_ARGV_1_entity) \
271#define EV_CustomizeWaypoint(i, o) \
272 i(entity, MUTATOR_ARGV_0_entity) \
273 i(entity, MUTATOR_ARGV_1_entity) \
280#define EV_FilterItemDefinition(i, o) \
281 i(entity, MUTATOR_ARGV_0_entity) \
289#define EV_FilterItem(i, o) \
290 i(entity, MUTATOR_ARGV_0_entity) \
295#define EV_TurretSpawn(i, o) \
296 i(entity, MUTATOR_ARGV_0_entity) \
301#define EV_TurretFire(i, o) \
302 i(entity, MUTATOR_ARGV_0_entity) \
307#define EV_Turret_CheckFire(i, o) \
308 i(entity, MUTATOR_ARGV_0_entity) \
309 o(bool, MUTATOR_ARGV_1_bool) \
314#define EV_OnEntityPreSpawn(i, o) \
315 i(entity, MUTATOR_ARGV_0_entity) \
320#define EV_PlayerPreThink(i, o) \
321 i(entity, MUTATOR_ARGV_0_entity) \
326#define EV_GetPressedKeys(i, o) \
327 i(entity, MUTATOR_ARGV_0_entity) \
342#define EV_GetCvars(i, o) \
343 i(float, get_cvars_f) \
344 i(string, get_cvars_s) \
351#define EV_EditProjectile(i, o) \
352 i(entity, MUTATOR_ARGV_0_entity) \
353 i(entity, MUTATOR_ARGV_1_entity) \
358#define EV_MonsterSpawn(i, o) \
359 i(entity, MUTATOR_ARGV_0_entity) \
364#define EV_MonsterDies(i, o) \
365 i(entity, MUTATOR_ARGV_0_entity) \
366 i(entity, MUTATOR_ARGV_1_entity) \
367 i(float, MUTATOR_ARGV_2_float) \
372#define EV_MonsterRemove(i, o) \
373 i(entity, MUTATOR_ARGV_0_entity) \
378#define EV_MonsterRespawn(i, o) \
379 i(entity, MUTATOR_ARGV_0_entity) \
384#define EV_MonsterDropItem(i, o) \
385 i(entity, MUTATOR_ARGV_0_entity) \
386 i(string, MUTATOR_ARGV_1_string) \
387 o(string, MUTATOR_ARGV_1_string) \
388 i(entity, MUTATOR_ARGV_2_entity) \
397#define EV_MonsterMove(i, o) \
398 i(entity, MUTATOR_ARGV_0_entity) \
399 i(float, MUTATOR_ARGV_1_float) \
400 o(float, MUTATOR_ARGV_1_float) \
401 i(float, MUTATOR_ARGV_2_float) \
402 o(float, MUTATOR_ARGV_2_float) \
403 i(entity, MUTATOR_ARGV_3_entity) \
404 o(entity, MUTATOR_ARGV_3_entity) \
414#define EV_MonsterValidTarget(i, o) \
415 i(entity, MUTATOR_ARGV_0_entity) \
416 i(entity, MUTATOR_ARGV_1_entity) \
424#define EV_MonsterCheckBossFlag(i, o) \
425 i(entity, MUTATOR_ARGV_0_entity) \
434 #define EV_AllowMobSpawning(i, o) \
435 i(entity, MUTATOR_ARGV_0_entity) \
436 o(string, MUTATOR_ARGV_1_string) \
441#define EV_PlayerDamage_SplitHealthArmor(i, o) \
442 i(entity, MUTATOR_ARGV_0_entity) \
443 i(entity, MUTATOR_ARGV_1_entity) \
444 i(entity, MUTATOR_ARGV_2_entity) \
445 i(vector, MUTATOR_ARGV_3_vector) \
446 i(float, MUTATOR_ARGV_4_float) \
447 o(float, MUTATOR_ARGV_4_float) \
448 i(float, MUTATOR_ARGV_5_float) \
449 o(float, MUTATOR_ARGV_5_float) \
450 i(float, MUTATOR_ARGV_6_float) \
451 i(float, MUTATOR_ARGV_7_float) \
459#define EV_Damage_Calculate(i, o) \
460 i(entity, MUTATOR_ARGV_0_entity) \
461 i(entity, MUTATOR_ARGV_1_entity) \
462 i(entity, MUTATOR_ARGV_2_entity) \
463 i(float, MUTATOR_ARGV_3_float) \
464 i(float, MUTATOR_ARGV_4_float) \
465 o(float, MUTATOR_ARGV_4_float) \
466 i(float, MUTATOR_ARGV_5_float) \
467 o(float, MUTATOR_ARGV_5_float) \
468 i(vector, MUTATOR_ARGV_6_vector) \
469 o(vector, MUTATOR_ARGV_6_vector) \
470 i(entity, MUTATOR_ARGV_7_entity) \
478#define EV_PlayerDamaged(i, o) \
479 i(entity, MUTATOR_ARGV_0_entity) \
480 i(entity, MUTATOR_ARGV_1_entity) \
481 i(float, MUTATOR_ARGV_2_float) \
482 i(float, MUTATOR_ARGV_3_float) \
483 i(vector, MUTATOR_ARGV_4_vector) \
484 i(int, MUTATOR_ARGV_5_int) \
485 i(float, MUTATOR_ARGV_6_float) \
492#define EV_W_DecreaseAmmo(i, o) \
493 i(entity, MUTATOR_ARGV_0_entity) \
494 i(entity, MUTATOR_ARGV_1_entity) \
495 i(float, MUTATOR_ARGV_2_float) \
496 o(float, MUTATOR_ARGV_2_float) \
503#define EV_W_Reload(i, o) \
504 i(entity, MUTATOR_ARGV_0_entity) \
509#define EV_PlayerPowerups(i, o) \
510 i(entity, MUTATOR_ARGV_0_entity) \
511 i(int, MUTATOR_ARGV_1_int) \
519 #define EV_PlayerRegen(i, o) \
520 i(entity, MUTATOR_ARGV_0_entity) \
521 i(float, MUTATOR_ARGV_1_float) \
522 o(float, MUTATOR_ARGV_1_float) \
523 i(float, MUTATOR_ARGV_2_float) \
524 o(float, MUTATOR_ARGV_2_float) \
525 i(float, MUTATOR_ARGV_3_float) \
526 o(float, MUTATOR_ARGV_3_float) \
527 i(float, MUTATOR_ARGV_4_float) \
528 o(float, MUTATOR_ARGV_4_float) \
529 i(float, MUTATOR_ARGV_5_float) \
530 o(float, MUTATOR_ARGV_5_float) \
531 i(float, MUTATOR_ARGV_6_float) \
532 o(float, MUTATOR_ARGV_6_float) \
533 i(float, MUTATOR_ARGV_7_float) \
534 o(float, MUTATOR_ARGV_7_float) \
535 i(float, MUTATOR_ARGV_8_float) \
536 o(float, MUTATOR_ARGV_8_float) \
537 i(float, MUTATOR_ARGV_9_float) \
538 o(float, MUTATOR_ARGV_9_float) \
539 i(float, MUTATOR_ARGV_10_float) \
540 o(float, MUTATOR_ARGV_10_float) \
549 #define EV_PlayerUseKey(i, o) \
550 i(entity, MUTATOR_ARGV_0_entity) \
577#define EV_SV_ParseClientCommand(i, o) \
578 i(entity, MUTATOR_ARGV_0_entity) \
579 i(string, MUTATOR_ARGV_1_string) \
580 i(int, MUTATOR_ARGV_2_int) \
581 i(string, MUTATOR_ARGV_3_string) \
589#define EV_ClientCommand_FloodControl(i, o) \
590 i(entity, MUTATOR_ARGV_0_entity) \
591 i(string, MUTATOR_ARGV_1_string) \
592 i(int, MUTATOR_ARGV_2_int) \
593 i(string, MUTATOR_ARGV_3_string) \
598#define EV_SV_ParseServerCommand(i, o) \
599 i(string, MUTATOR_ARGV_0_string) \
600 i(int, MUTATOR_ARGV_1_int) \
601 i(string, MUTATOR_ARGV_2_string) \
609#define EV_Spawn_Score(i, o) \
610 i(entity, MUTATOR_ARGV_0_entity) \
611 i(entity, MUTATOR_ARGV_1_entity) \
612 i(vector, MUTATOR_ARGV_2_vector) \
613 o(vector, MUTATOR_ARGV_2_vector) \
620#define EV_SetModname(i, o) \
622 i(string, MUTATOR_ARGV_0_string) \
623 o(string, MUTATOR_ARGV_0_string) \
631#define EV_Item_Spawn(i, o) \
632 i(entity, MUTATOR_ARGV_0_entity) \
636#define EV_SetWeaponreplace(i, o) \
637 i(entity, MUTATOR_ARGV_0_entity) \
638 i(entity, MUTATOR_ARGV_1_entity) \
639 i(string, MUTATOR_ARGV_2_string) \
640 o(string, MUTATOR_ARGV_2_string) \
645#define EV_Item_RespawnCountdown(i, o) \
646 i(entity, MUTATOR_ARGV_0_entity) \
654#define EV_BotShouldAttack(i, o) \
655 i(entity, MUTATOR_ARGV_0_entity) \
656 i(entity, MUTATOR_ARGV_1_entity) \
664#define EV_PortalTeleport(i, o) \
665 i(entity, MUTATOR_ARGV_0_entity) \
675#define EV_HelpMePing(i, o) \
676 i(entity, MUTATOR_ARGV_0_entity) \
684#define EV_VehicleInit(i, o) \
685 i(entity, MUTATOR_ARGV_0_entity) \
693#define EV_VehicleEnter(i, o) \
694 i(entity, MUTATOR_ARGV_0_entity) \
695 i(entity, MUTATOR_ARGV_1_entity) \
703#define EV_VehicleTouch(i, o) \
704 i(entity, MUTATOR_ARGV_0_entity) \
705 i(entity, MUTATOR_ARGV_1_entity) \
713#define EV_VehicleExit(i, o) \
714 i(entity, MUTATOR_ARGV_0_entity) \
715 i(entity, MUTATOR_ARGV_1_entity) \
720#define EV_AbortSpeedrun(i, o) \
721 i(entity, MUTATOR_ARGV_0_entity) \
726#define EV_ItemTouch(i, o) \
727 i(entity, MUTATOR_ARGV_0_entity) \
728 i(entity, MUTATOR_ARGV_1_entity) \
729 o(entity, MUTATOR_ARGV_1_entity) \
740#define EV_ItemTouched(i, o) \
741 i(entity, MUTATOR_ARGV_0_entity) \
742 i(entity, MUTATOR_ARGV_1_entity) \
751#define EV_GetResourceLimit(i, o) \
752 i(entity, MUTATOR_ARGV_7_entity) \
753 i(entity, MUTATOR_ARGV_8_entity) \
754 i(float, MUTATOR_ARGV_9_float) \
755 o(float, MUTATOR_ARGV_9_float) \
761#define EV_SetResource(i, o) \
762 i(entity, MUTATOR_ARGV_7_entity) \
763 i(entity, MUTATOR_ARGV_8_entity) \
764 o(entity, MUTATOR_ARGV_8_entity) \
765 i(float, MUTATOR_ARGV_9_float) \
766 o(float, MUTATOR_ARGV_9_float) \
773#define EV_ResourceAmountChanged(i, o) \
774 i(entity, MUTATOR_ARGV_7_entity) \
775 i(entity, MUTATOR_ARGV_8_entity) \
776 i(float, MUTATOR_ARGV_9_float) \
783#define EV_ResourceWasted(i, o) \
784 i(entity, MUTATOR_ARGV_7_entity) \
785 i(entity, MUTATOR_ARGV_8_entity) \
786 i(float, MUTATOR_ARGV_9_float) \
793#define EV_GiveResource(i, o) \
794 i(entity, MUTATOR_ARGV_7_entity) \
795 i(entity, MUTATOR_ARGV_8_entity) \
796 o(entity, MUTATOR_ARGV_8_entity) \
797 i(float, MUTATOR_ARGV_9_float) \
798 o(float, MUTATOR_ARGV_9_float) \
804#define EV_GiveResourceWithLimit(i, o) \
805 i(entity, MUTATOR_ARGV_7_entity) \
806 i(entity, MUTATOR_ARGV_8_entity) \
807 o(entity, MUTATOR_ARGV_8_entity) \
808 i(float, MUTATOR_ARGV_9_float) \
809 o(float, MUTATOR_ARGV_9_float) \
810 i(float, MUTATOR_ARGV_10_float) \
811 o(float, MUTATOR_ARGV_10_float) \
818#define EV_TakeResource(i, o) \
819 i(entity, MUTATOR_ARGV_7_entity) \
820 i(entity, MUTATOR_ARGV_8_entity) \
821 o(entity, MUTATOR_ARGV_8_entity) \
822 i(float, MUTATOR_ARGV_9_float) \
823 o(float, MUTATOR_ARGV_9_float) \
829#define EV_TakeResourceWithLimit(i, o) \
830 i(entity, MUTATOR_ARGV_7_entity) \
831 i(entity, MUTATOR_ARGV_8_entity) \
832 o(entity, MUTATOR_ARGV_8_entity) \
833 i(float, MUTATOR_ARGV_9_float) \
834 o(float, MUTATOR_ARGV_9_float) \
835 i(float, MUTATOR_ARGV_10_float) \
836 o(float, MUTATOR_ARGV_10_float) \
843#define EV_ClientConnect(i, o) \
844 i(entity, MUTATOR_ARGV_0_entity) \
848#define EV_HavocBot_ChooseRole(i, o) \
849 i(entity, MUTATOR_ARGV_0_entity) \
854#define EV_AccuracyTargetValid(i, o) \
855 i(entity, MUTATOR_ARGV_0_entity) \
856 i(entity, MUTATOR_ARGV_1_entity) \
869#define EV_GetModelParams(i, o) \
870 i(string, MUTATOR_ARGV_0_string) \
871 i(string, MUTATOR_ARGV_1_string) \
876#define EV_FireBullet_Hit(i, o) \
877 i(entity, MUTATOR_ARGV_0_entity) \
878 i(entity, MUTATOR_ARGV_1_entity) \
879 i(vector, MUTATOR_ARGV_2_vector) \
880 i(vector, MUTATOR_ARGV_3_vector) \
881 i(float, MUTATOR_ARGV_4_float) \
882 o(float, MUTATOR_ARGV_4_float) \
883 i(entity, MUTATOR_ARGV_5_entity) \
887#define EV_FixPlayermodel(i, o) \
888 i(string, MUTATOR_ARGV_0_string) \
889 o(string, MUTATOR_ARGV_0_string) \
890 i(int, MUTATOR_ARGV_1_int) \
891 o(int, MUTATOR_ARGV_1_int) \
892 i(entity, MUTATOR_ARGV_2_entity) \
899#define EV_GrappleHookThink(i, o) \
900 i(entity, MUTATOR_ARGV_0_entity) \
901 i(int, MUTATOR_ARGV_1_int) \
902 o(int, MUTATOR_ARGV_1_int) \
903 i(entity, MUTATOR_ARGV_2_entity) \
904 o(entity, MUTATOR_ARGV_2_entity) \
905 i(float, MUTATOR_ARGV_3_float) \
906 o(float, MUTATOR_ARGV_3_float) \
910#define EV_BuffModel_Customize(i, o) \
911 i(entity, MUTATOR_ARGV_0_entity) \
912 i(entity, MUTATOR_ARGV_1_entity) \
917#define EV_BuffTouch(i, o) \
918 i(entity, MUTATOR_ARGV_0_entity) \
919 i(entity, MUTATOR_ARGV_1_entity) \
920 o(entity, MUTATOR_ARGV_1_entity) \
930#define EV_GetRecords(i, o) \
931 i(int, MUTATOR_ARGV_0_int) \
932 i(string, MUTATOR_ARGV_1_string) \
933 o(string, MUTATOR_ARGV_1_string) \
937#define EV_Race_FinalCheckpoint(i, o) \
938 i(entity, MUTATOR_ARGV_0_entity) \
943#define EV_ClientKill(i, o) \
944 i(entity, MUTATOR_ARGV_0_entity) \
945 i(float, MUTATOR_ARGV_1_float) \
946 o(float, MUTATOR_ARGV_1_float) \
951#define EV_ClientKill_Now(i, o) \
952 i(entity, MUTATOR_ARGV_0_entity) \
956#define EV_FixClientCvars(i, o) \
957 i(entity, MUTATOR_ARGV_0_entity) \
961#define EV_SpectateSet(i, o) \
962 i(entity, MUTATOR_ARGV_0_entity) \
963 i(entity, MUTATOR_ARGV_1_entity) \
964 o(entity, MUTATOR_ARGV_1_entity) \
968#define EV_SpectateNext(i, o) \
969 i(entity, MUTATOR_ARGV_0_entity) \
970 i(entity, MUTATOR_ARGV_1_entity) \
971 o(entity, MUTATOR_ARGV_1_entity) \
975#define EV_SpectatePrev(i, o) \
976 i(entity, MUTATOR_ARGV_0_entity) \
977 i(entity, MUTATOR_ARGV_1_entity) \
978 o(entity, MUTATOR_ARGV_1_entity) \
979 i(entity, MUTATOR_ARGV_2_entity) \
990#define EV_Bot_FixCount(i, o) \
991 i(int, MUTATOR_ARGV_0_int) \
992 o(int, MUTATOR_ARGV_0_int) \
993 i(int, MUTATOR_ARGV_1_int) \
994 o(int, MUTATOR_ARGV_1_int) \
998#define EV_ClientCommand_Spectate(i, o) \
999 i(entity, MUTATOR_ARGV_0_entity) \
1009#define EV_CheckRules_World(i, o) \
1010 i(float, MUTATOR_ARGV_0_float) \
1011 o(float, MUTATOR_ARGV_0_float) \
1012 i(float, MUTATOR_ARGV_1_float) \
1013 i(float, MUTATOR_ARGV_2_float) \
1017#define EV_WantWeapon(i, o) \
1018 i(entity, MUTATOR_ARGV_0_entity) \
1019 i(float, MUTATOR_ARGV_1_float) \
1020 o(float, MUTATOR_ARGV_1_float) \
1021 i(int, MUTATOR_ARGV_2_int) \
1022 o(int, MUTATOR_ARGV_2_int) \
1023 i(bool, MUTATOR_ARGV_3_bool) \
1024 o(bool, MUTATOR_ARGV_3_bool) \
1028#define EV_AddPlayerScore(i, o) \
1029 i(entity, MUTATOR_ARGV_0_entity) \
1030 i(float, MUTATOR_ARGV_1_float) \
1031 o(float, MUTATOR_ARGV_1_float) \
1032 i(entity, MUTATOR_ARGV_2_entity) \
1036#define EV_AddedPlayerScore(i, o) \
1037 i(entity, MUTATOR_ARGV_0_entity) \
1038 i(float, MUTATOR_ARGV_1_float) \
1039 i(entity, MUTATOR_ARGV_2_entity) \
1043#define EV_GetPlayerStatus(i, o) \
1044 i(entity, MUTATOR_ARGV_0_entity) \
1048#define EV_SetWeaponArena(i, o) \
1049 i(string, MUTATOR_ARGV_0_string) \
1050 o(string, MUTATOR_ARGV_0_string) \
1054#define EV_DropSpecialItems(i, o) \
1055 i(entity, MUTATOR_ARGV_0_entity) \
1063#define EV_AllowMobButcher(i, o) \
1064 o(string, MUTATOR_ARGV_0_string) \
1070#define EV_SendWaypoint(i, o) \
1071 i(entity, MUTATOR_ARGV_0_entity) \
1072 i(entity, MUTATOR_ARGV_1_entity) \
1073 i(int, MUTATOR_ARGV_2_int) \
1074 o(int, MUTATOR_ARGV_2_int) \
1075 i(int, MUTATOR_ARGV_3_int) \
1076 o(int, MUTATOR_ARGV_3_int) \
1080#define EV_TurretValidateTarget(i, o) \
1081 i(entity, MUTATOR_ARGV_0_entity) \
1082 i(entity, MUTATOR_ARGV_1_entity) \
1083 i(int, MUTATOR_ARGV_2_int) \
1084 o(float, MUTATOR_ARGV_3_float) \
1088#define EV_TurretThink(i, o) \
1089 i(entity, MUTATOR_ARGV_0_entity) \
1096#define EV_PrepareExplosionByDamage(i, o) \
1097 i(entity, MUTATOR_ARGV_0_entity) \
1098 i(entity, MUTATOR_ARGV_1_entity) \
1103#define EV_MonsterModel(i, o) \
1104 i(string, MUTATOR_ARGV_0_string) \
1105 i(string, MUTATOR_ARGV_1_string) \
1106 o(string, MUTATOR_ARGV_1_string) \
1113#define EV_Player_ChangeTeam(i, o) \
1114 i(entity, MUTATOR_ARGV_0_entity) \
1115 i(float, MUTATOR_ARGV_1_float) \
1116 i(float, MUTATOR_ARGV_2_float) \
1123#define EV_Player_ChangedTeam(i, o) \
1124 i(entity, MUTATOR_ARGV_0_entity) \
1125 i(float, MUTATOR_ARGV_1_float) \
1126 i(float, MUTATOR_ARGV_2_float) \
1133#define EV_Player_ChangeTeamKill(i, o) \
1134 i(entity, MUTATOR_ARGV_0_entity) \
1139#define EV_URI_GetCallback(i, o) \
1140 i(float, MUTATOR_ARGV_0_float) \
1141 i(float, MUTATOR_ARGV_1_float) \
1142 i(string, MUTATOR_ARGV_2_string) \
1149#define EV_LockWeapon(i, o) \
1150 i(entity, MUTATOR_ARGV_0_entity) \
1157#define EV_ForbidWeaponUse(i, o) \
1158 i(entity, MUTATOR_ARGV_0_entity) \
1163#define EV_CopyBody(i, o) \
1164 i(entity, MUTATOR_ARGV_0_entity) \
1165 i(entity, MUTATOR_ARGV_1_entity) \
1166 i(bool, MUTATOR_ARGV_2_bool) \
1171#define EV_ChatMessage(i, o) \
1172 i(entity, MUTATOR_ARGV_0_entity) \
1173 i(int, MUTATOR_ARGV_1_int) \
1174 o(int, MUTATOR_ARGV_1_int) \
1175 i(string, MUTATOR_ARGV_2_string) \
1180#define EV_ChatMessageTo(i, o) \
1181 i(entity, MUTATOR_ARGV_0_entity) \
1182 i(entity, MUTATOR_ARGV_1_entity) \
1193#define EV_FusionReactor_ValidTarget(i, o) \
1194 i(entity, MUTATOR_ARGV_0_entity) \
1195 i(entity, MUTATOR_ARGV_1_entity) \
1206#define EV_Item_ScheduleRespawn(i, o) \
1207 i(entity, MUTATOR_ARGV_0_entity) \
1208 i(float, MUTATOR_ARGV_1_float) \
1213#define EV_PlayerPhysics_UpdateStats(i, o) \
1214 i(entity, MUTATOR_ARGV_0_entity) \
1219#define EV_PlayerPhysics_PostUpdateStats(i, o) \
1220 i(entity, MUTATOR_ARGV_0_entity) \
1221 i(float, MUTATOR_ARGV_1_float) \
1226#define EV_HavocBot_Aim(i, o) \
1227 i(entity, MUTATOR_ARGV_0_entity) \
1232#define EV_CalculateRespawnTime(i, o) \
1233 i(entity, MUTATOR_ARGV_0_entity) \
1238#define EV_VoteCommand_Parse(i, o) \
1239 i(entity, MUTATOR_ARGV_0_entity) \
1240 i(string, MUTATOR_ARGV_1_string) \
1241 i(string, MUTATOR_ARGV_2_string) \
1242 i(float, MUTATOR_ARGV_3_float) \
1243 i(float, MUTATOR_ARGV_4_float) \
1257#define EV_GetPlayerLimit(i, o) \
1258 i(int, MUTATOR_ARGV_0_int) \
1259 o(int, MUTATOR_ARGV_0_int) \
1264#define EV_LogDeath_AppendItemCodes(i, o) \
1265 i(entity, MUTATOR_ARGV_0_entity) \
1266 i(string, MUTATOR_ARGV_1_string) \
1267 o(string, MUTATOR_ARGV_1_string) \
1272#define EV_AllowRocketJumping(i, o) \
1273 i(bool, MUTATOR_ARGV_0_bool) \
1274 o(bool, MUTATOR_ARGV_0_bool) \
1279#define EV_W_PlayStrengthSound(i, o) \
1280 i(entity, MUTATOR_ARGV_0_entity) \
1285#define EV_Sandbox_DragAllowed(i, o) \
1286 i(entity, MUTATOR_ARGV_0_entity) \
1294#define EV_Sandbox_EditAllowed(i, o) \
1295 i(entity, MUTATOR_ARGV_0_entity) \
1300#define EV_ShowChatBubble(i, o) \
1301 i(entity, MUTATOR_ARGV_0_entity) \
1302 i(entity, MUTATOR_ARGV_1_entity) \
#define MUTATOR_HOOKABLE(id, params)
void TakeResourceWithLimit(entity receiver, Resource res_type, float amount, float limit)
Takes an entity some resource but not less than a limit.
void SetResource(entity e, Resource res_type, float amount)
Sets the current amount of resource the given entity will have.
void TakeResource(entity receiver, Resource res_type, float amount)
Takes an entity some resource.
#define EV_GetModelParams(i, o)
Called when getting the global parameters for a model.
#define EV_EditProjectile(i, o)
Called when a projectile's properties are being modified.
void ClientKill_Now(entity this)
void GetCvars(entity this, entity store, int f)
#define SV_ParseClientCommand
#define PutClientInServer
bool SpectateSet(entity this)
void SpectateCopy(entity this, entity spectatee)
void GetPressedKeys(entity this)
void PlayerUseKey(entity this)
void FixClientCvars(entity e)
bool SpectateNext(entity this)
void FixPlayermodel(entity player)
bool SpectatePrev(entity this)
void Item_ScheduleRespawn(entity e)
void Item_RespawnCountdown(entity this)
#define EV_GetRecords(i, o)
#define EV_AllowMobButcher(i, o)
called when an admin tries to kill all monsters return 1 to prevent spawning
#define EV_PlayerPhysics_PostUpdateStats(i, o)
called after physics stats are set on a player, allows post-initialization modifications
#define EV_FilterItemDefinition(i, o)
Check if items having the given definition are allowed to spawn.
#define EV_ClientObituary(i, o)
called when showing an obituary for the player.
#define EV_CopyBody(i, o)
called when creating a clone of the player (usually for corpses that stay after the player has re-spa...
#define EV_ForbidSpawn(i, o)
return true to prevent a spectator/observer to spawn as player
#define EV_URI_GetCallback(i, o)
#define EV_Player_ChangeTeam(i, o)
Called before player changes their team.
#define EV_TeamBalance_GetPlayerForTeamSwitch(i, o)
Called during autobalance.
#define EV_TakeResourceWithLimit(i, o)
Called when some resource is being taken from an entity, with a limit.
#define EV_Item_Spawn(i, o)
called for each item being spawned on a map, including dropped weapons return 1 to remove an item
#define EV_HavocBot_ChooseRole(i, o)
#define EV_ClientCommand_Spectate(i, o)
#define EV_ClientCommand_FloodControl(i, o)
please read EV_SV_ParseClientCommand description before using return true to skip flood control on th...
@ MUT_FUSREAC_TARG_INVALID
@ MUT_FUSREAC_TARG_CONTINUE
#define EV_AllowRocketJumping(i, o)
Allows disabling or enabling rocket jumping independently of balance, use the parameter to force a pr...
#define EV_ChatMessageTo(i, o)
return true to prevent sending a chat (private, team or regular) message from reaching a certain play...
@ MUT_VOTEPARSE_UNACCEPTABLE
#define EV_SetWeaponreplace(i, o)
#define EV_MonsterMove(i, o)
called when a monster moves returning true makes the monster stop
#define EV_ForbidWeaponUse(i, o)
return true to prevent weapon use for a player
#define EV_MonsterDropItem(i, o)
called when a monster is dropping loot
#define EV_MakePlayerObserver(i, o)
called when a player becomes observer, after shared setup
#define EV_PlayerRegen(i, o)
called every player think frame return 1 to disable regen
#define EV_TurretValidateTarget(i, o)
#define EV_PlayerDies(i, o)
called when a player dies to e.g.
#define EV_W_DecreaseAmmo(i, o)
Called by W_DecreaseAmmo.
#define EV_PlayerPreThink(i, o)
runs in the event loop for players; is called for ALL player entities, also bots, also the dead,...
#define EV_GiveResourceWithLimit(i, o)
Called when entity is being given some resource with specified limit.
#define EV_ClientKill(i, o)
called when player triggered kill (or is changing teams), return error to not do anything
#define EV_PlayerPowerups(i, o)
called at the end of player_powerups() in client.qc, used for manipulating the values which are set b...
#define EV_W_Reload(i, o)
Called by W_Reload.
#define EV_HavocBot_Aim(i, o)
return true to use your own aim target (or none at all)
#define EV_FixPlayermodel(i, o)
#define EV_SetModname(i, o)
#define EV_ItemTouched(i, o)
called after the item has been touched.
#define EV_ForbidRandomStartWeapons(i, o)
called when player spawns to determine whether to give them random start weapons.
#define EV_PlayerAnim(i, o)
called when setting the player's animation state
#define EV_CheckRules_World(i, o)
#define EV_GiveFragsForKill(i, o)
called when someone was fragged by "self", and is expected to change frag_score to adjust scoring for...
#define EV_SendWaypoint(i, o)
#define EV_BuffTouch(i, o)
called at when a buff is touched.
#define EV_Player_ChangedTeam(i, o)
Called after player has changed their team.
#define EV_Turret_CheckFire(i, o)
return error to not attack
#define EV_MonsterDies(i, o)
called when a monster dies
#define EV_AddPlayerScore(i, o)
#define EV_reset_map_global(i, o)
called in reset_map
#define EV_BotShouldAttack(i, o)
called when a bot checks a target to attack return false to allow the bot to attack the target (inver...
#define EV_Bot_FixCount(i, o)
called when player triggered kill (or is changing teams), return error to not do anything
#define EV_SpectateNext(i, o)
#define EV_GetResourceLimit(i, o)
Called when the amount of entity resources changes.
#define EV_PlayerDied(i, o)
called after a player died.
#define EV_GetPressedKeys(i, o)
TODO change this into a general PlayerPostThink hook?
#define EV_GiveResource(i, o)
Called when entity is being given some resource.
#define EV_PlayHitsound(i, o)
called when a player dies to e.g.
#define EV_Player_ChangeTeamKill(i, o)
Called when player is about to be killed when changing teams.
#define EV_SpectateCopy(i, o)
copies variables for spectating "spectatee" to "this"
#define EV_ShowChatBubble(i, o)
Return true to hide the chat bubble above typing players.
#define EV_reset_map_players(i, o)
called in reset_map
#define EV_GrappleHookThink(i, o)
#define EV_Item_ScheduleRespawn(i, o)
return true to show a waypoint while the item is spawning
#define EV_PortalTeleport(i, o)
called whenever a player goes through a portal gun teleport allows you to strip a player of an item i...
#define EV_MonsterValidTarget(i, o)
called when validating a monster's target
#define EV_ClientConnect(i, o)
called at when a player connect
#define EV_TurretThink(i, o)
#define EV_VoteCommand_Parse(i, o)
called when parsing a vote command.
#define EV_Spawn_Score(i, o)
called when a spawnpoint is being evaluated return 1 to make the spawnpoint unusable
#define EV_ResourceWasted(i, o)
Called when there was an attempt to set entity resources higher than their limit.
#define EV_ItemModel(i, o)
called when an item model is about to be set, allows custom paths etc.
#define EV_ForbidPlayerScore_Clear(i, o)
returns 1 if clearing player score shall not be allowed
#define EV_VehicleInit(i, o)
called when a vehicle initializes return true to remove the vehicle
#define EV_SV_ParseClientCommand(i, o)
called when a client command is parsed NOTE: hooks MUST start with if (MUTATOR_RETURNVALUE) return fa...
#define EV_ItemSound(i, o)
called when an item sound is about to be played, allows custom paths etc.
#define EV_TakeResource(i, o)
Called when some resource is being taken from an entity.
#define EV_PreFormatMessage(i, o)
called before any formatting is applied, handy for tweaking the message before scripts get ahold of i...
#define EV_DropSpecialItems(i, o)
#define EV_MonsterSpawn(i, o)
called when a monster spawns
#define EV_TurretFire(i, o)
return error to not attack
#define EV_VehicleExit(i, o)
called when a player exits a vehicle allows mutators to set special settings in this event
#define EV_GetPlayerLimit(i, o)
Called when a player is trying to join, argument is the number of players allowed to join the match.
#define EV_PlayerUseKey(i, o)
called when the use key is pressed if MUTATOR_RETURNVALUE is 1, don't do anything return 1 if the use...
#define EV_TeamBalance_CheckAllowedTeams(i, o)
Allows adjusting allowed teams.
#define EV_FireBullet_Hit(i, o)
called when a bullet has hit a target
#define EV_MonsterModel(i, o)
called when a monster model is about to be set, allows custom paths etc.
#define EV_FixClientCvars(i, o)
#define EV_SpectateSet(i, o)
#define EV_SpectatePrev(i, o)
#define EV_ForbidThrowCurrentWeapon(i, o)
returns true if throwing the current weapon shall not be allowed
#define EV_OnEntityPreSpawn(i, o)
return error to prevent entity spawn, or modify the entity
#define EV_BuffModel_Customize(i, o)
#define EV_FusionReactor_ValidTarget(i, o)
called when a fusion reactor is validating its target
#define EV_CalculateRespawnTime(i, o)
return true to skip respawn time calculations
#define EV_ChatMessage(i, o)
called when sending a chat message, ret argument can be changed to prevent the message
#define EV_SetResource(i, o)
Called when the amount of resource of an entity changes.
#define EV_WeaponRateFactor(i, o)
allows changing attack rate
#define EV_PrepareExplosionByDamage(i, o)
#define EV_PlayerSpawn(i, o)
called when a player spawns as player, after shared setup, before their weapon is chosen (so items ma...
#define EV_WantWeapon(i, o)
#define EV_VehicleEnter(i, o)
called when a player enters a vehicle allows mutators to set special settings in this event
#define EV_MonsterCheckBossFlag(i, o)
called when checking if a monster should be a miniboss return true to prevent the monster from becomi...
#define EV_MonsterRespawn(i, o)
called when a monster wants to respawn
#define EV_ForbidDropCurrentWeapon(i, o)
returns true if dropping the current weapon shall not be allowed at any time including death
#define EV_PutClientInServer(i, o)
#define EV_AutoJoinOnConnection(i, o)
returns true if client should be put as player on connection
#define EV_LockWeapon(i, o)
return true to lock weapon (can't be used nor changed) for a player
#define EV_WeaponSpeedFactor(i, o)
allows changing weapon speed (projectiles mostly)
#define EV_ClientKill_Now(i, o)
called when player is about to be killed during kill command or changing teams
#define EV_ClientDisconnect(i, o)
called when a player disconnects
#define EV_W_PlayStrengthSound(i, o)
Called when weapons are performing their attack, useful for applying bonus attack sounds.
#define EV_FormatMessage(i, o)
called when formatting a chat message to replace fancy functions
#define EV_Sandbox_EditAllowed(i, o)
Return true to prevent the player from editing sandbox objects with commands.
#define EV_AbortSpeedrun(i, o)
called when a speedrun is aborted and the player is teleported back to start position
#define EV_AllowMobSpawning(i, o)
called when a player tries to spawn a monster return 1 to prevent spawning NOTE: requires reason if d...
#define EV_VehicleTouch(i, o)
called when a player touches a vehicle return true to stop player from entering the vehicle
#define EV_GetPlayerStatus(i, o)
#define EV_MonsterRemove(i, o)
called when a monster dies
#define EV_CustomizeWaypoint(i, o)
called every frame.
#define EV_TeamBalance_FindBestTeams(i, o)
allows overriding the teams that will make the game most balanced if the player joins any of them.
#define EV_PlayerDamaged(i, o)
Called when a player is damaged Returns true if damage shouldn't be logged.
#define EV_FilterItem(i, o)
checks if the current item may be spawned (.items may be read and written to, as well as the ammo_ fi...
#define EV_Item_RespawnCountdown(i, o)
called when an item is about to respawn
#define EV_LogDeath_AppendItemCodes(i, o)
include special item codes for a death to the game log
#define EV_PlayerDamage_SplitHealthArmor(i, o)
called when a player gets damaged to e.g.
#define EV_ItemTouch(i, o)
called at when a item is touched.
#define EV_ResourceAmountChanged(i, o)
Called after the amount of resource of an entity has changed.
#define EV_Sandbox_DragAllowed(i, o)
Return true to prevent sandbox objects from being dragged.
#define EV_Damage_Calculate(i, o)
called to adjust damage and force values which are applied to the player, used for e....
#define EV_AccuracyTargetValid(i, o)
called when a target is checked for accuracy
#define EV_SV_ParseServerCommand(i, o)
please read EV_SV_ParseClientCommand description before using
#define EV_TurretSpawn(i, o)
return error to request removal
#define EV_Race_FinalCheckpoint(i, o)
#define EV_PlayerPhysics_UpdateStats(i, o)
called before physics stats are set on a player, allows limited early customization
#define EV_TeamBalance_GetTeamCount(i, o)
allows overriding of team counts
#define EV_SetWeaponArena(i, o)
#define EV_FragCenterMessage(i, o)
allows overriding the frag centerprint messages
#define EV_HelpMePing(i, o)
called whenever a player uses impulse 33 (help me) in impulse.qc normally help me ping uses ....
#define EV_PlayerWeaponSelect(i, o)
called after a player's weapon is chosen so it can be overriden here
void CopyBody(entity this, float keepvelocity)
vector Spawn_Score(entity this, entity spot, float mindist, float teamcheck, bool targetcheck)
void W_PlayStrengthSound(entity player)
void DecodeLevelParms(entity this)
void GiveResource(entity receiver, Resource res_type, float amount)
Gives an entity some resource.
float GetResourceLimit(entity e, Resource res_type)
Returns the maximum amount of the given resource.
void GiveResourceWithLimit(entity receiver, Resource res_type, float amount, float limit)
Gives an entity some resource but not more than a limit.
void TeamBalance_GetTeamCounts(entity balance, entity ignore)
Counts the number of players and various other information about each team.
entity TeamBalance_CheckAllowedTeams(entity for_whom)
Checks whether the player can join teams according to global configuration and mutator settings.
int TeamBalance_FindBestTeams(entity balance, entity player, bool use_score)
Returns the bitmask of the teams that will make the game most balanced if the player joins any of the...
entity TeamBalance_GetPlayerForTeamSwitch(int source_team_index, int destination_team_index, bool is_bot)
Returns the player who is the most suitable for switching between the given teams.
void W_DecreaseAmmo(Weapon wep, entity actor, float ammo_use,.entity weaponentity)
void W_Reload(entity actor,.entity weaponentity, float sent_ammo_min, Sound sent_sound)