Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
events.qh
Go to the documentation of this file.
1#pragma once
2
4
5// register all possible hooks here
6
7// to use a hook, first register your mutator using REGISTER_MUTATOR
8// then create your function using MUTATOR_HOOKFUNCTION
9
11#define EV_MakePlayerObserver(i, o) \
12 i(entity, MUTATOR_ARGV_0_entity) \
13 i(bool, MUTATOR_ARGV_1_bool) \
14 /**/
15MUTATOR_HOOKABLE(MakePlayerObserver, EV_MakePlayerObserver)
16
17
18#define EV_PutClientInServer(i, o) \
19 i(entity, MUTATOR_ARGV_0_entity) \
20 /**/
22
26 #define EV_ForbidSpawn(i, o) \
27 i(entity, MUTATOR_ARGV_0_entity) \
28 /**/
30
32#define EV_AutoJoinOnConnection(i, o) \
33 i(entity, MUTATOR_ARGV_0_entity) \
34 /**/
36
38#define EV_ForbidRandomStartWeapons(i, o) \
39 i(entity, MUTATOR_ARGV_0_entity) \
40 /**/
42
44#define EV_PlayerSpawn(i, o) \
45 i(entity, MUTATOR_ARGV_0_entity) \
46 i(entity, MUTATOR_ARGV_1_entity) \
47 /**/
49
51#define EV_PlayerWeaponSelect(i, o) \
52 i(entity, MUTATOR_ARGV_0_entity) \
53 /**/
55
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) \
61 /**/
63
65#define EV_reset_map_global(i, o) \
66 /**/
68
70#define EV_reset_map_players(i, o) \
71 /**/
73
75#define EV_ForbidPlayerScore_Clear(i, o) \
76 /**/
78
80#define EV_ClientDisconnect(i, o) \
81 i(entity, MUTATOR_ARGV_0_entity) \
82 /**/
84
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) \
93 /**/
95
97#define EV_PlayerDied(i, o) \
98 i(entity, MUTATOR_ARGV_0_entity) \
99 /**/
101
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) \
110 /**/
112
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) \
120 /**/
122
124#define EV_PlayHitsound(i, o) \
125 i(entity, MUTATOR_ARGV_0_entity) \
126 i(entity, MUTATOR_ARGV_1_entity) \
127 /**/
129
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) \
135 /**/
137
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) \
143 /**/
145
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) \
154 /**/
156
158MUTATOR_HOOKABLE(MatchEnd_BeforeScores, EV_NO_ARGS);
159
162
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) \
173 /**/
176
179
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) \
186 /**/
188
192#define EV_TeamBalance_FindBestTeams(i, o) \
193 i(entity, MUTATOR_ARGV_0_entity) \
194 o(float, MUTATOR_ARGV_1_float) \
195 /**/
197
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) \
205 /**/
208
210#define EV_SpectateCopy(i, o) \
211 i(entity, MUTATOR_ARGV_0_entity) \
212 i(entity, MUTATOR_ARGV_1_entity) \
213 /**/
215
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) \
223 /**/
225
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) \
231 /**/
233
235#define EV_ForbidThrowCurrentWeapon(i, o) \
236 i(entity, MUTATOR_ARGV_0_entity) \
237 i(entity, MUTATOR_ARGV_1_entity) \
238 /**/
240
242#define EV_ForbidDropCurrentWeapon(i, o) \
243 i(entity, MUTATOR_ARGV_0_entity) \
244 i(int, MUTATOR_ARGV_1_int) \
245 /**/
247
250
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) \
256 /**/
258
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) \
264 /**/
266
269
271#define EV_CustomizeWaypoint(i, o) \
272 i(entity, MUTATOR_ARGV_0_entity) \
273 i(entity, MUTATOR_ARGV_1_entity) \
274 /**/
276
280#define EV_FilterItemDefinition(i, o) \
281 i(entity, MUTATOR_ARGV_0_entity) \
282 /**/
284
289#define EV_FilterItem(i, o) \
290 i(entity, MUTATOR_ARGV_0_entity) \
291 /**/
293
295#define EV_TurretSpawn(i, o) \
296 i(entity, MUTATOR_ARGV_0_entity) \
297 /**/
299
301#define EV_TurretFire(i, o) \
302 i(entity, MUTATOR_ARGV_0_entity) \
303 /**/
305
307#define EV_Turret_CheckFire(i, o) \
308 i(entity, MUTATOR_ARGV_0_entity) \
309 o(bool, MUTATOR_ARGV_1_bool) \
310 /**/
312
314#define EV_OnEntityPreSpawn(i, o) \
315 i(entity, MUTATOR_ARGV_0_entity) \
316 /**/
318
320#define EV_PlayerPreThink(i, o) \
321 i(entity, MUTATOR_ARGV_0_entity) \
322 /**/
324
326#define EV_GetPressedKeys(i, o) \
327 i(entity, MUTATOR_ARGV_0_entity) \
328 /**/
330
342#define EV_GetCvars(i, o) \
343 /**/ i(float, get_cvars_f) \
344 /**/ i(string, get_cvars_s) \
345 /**/
348MUTATOR_HOOKABLE(GetCvars, EV_NO_ARGS); // NOTE: Can't use EV_GetCvars because of `SZ_GetSpace: overflow`
349
351#define EV_EditProjectile(i, o) \
352 i(entity, MUTATOR_ARGV_0_entity) \
353 i(entity, MUTATOR_ARGV_1_entity) \
354 /**/
356
358#define EV_MonsterSpawn(i, o) \
359 i(entity, MUTATOR_ARGV_0_entity) \
360 /**/
362
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) \
368 /**/
370
372#define EV_MonsterRemove(i, o) \
373 i(entity, MUTATOR_ARGV_0_entity) \
374 /**/
376
378#define EV_MonsterRespawn(i, o) \
379 i(entity, MUTATOR_ARGV_0_entity) \
380 /**/
382
384#define EV_MonsterDropItem(i, o) \
385 /* monster */ i(entity, MUTATOR_ARGV_0_entity) \
386 /* list of items to drop */ i(string, MUTATOR_ARGV_1_string) \
387 /**/ o(string, MUTATOR_ARGV_1_string) \
388 /* attacker */ i(entity, MUTATOR_ARGV_2_entity) \
389 /**/
392
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) \
405 /**/
407
409MUTATOR_HOOKABLE(MonsterFindTarget, EV_NO_ARGS);
410
414#define EV_MonsterValidTarget(i, o) \
415 i(entity, MUTATOR_ARGV_0_entity) \
416 i(entity, MUTATOR_ARGV_1_entity) \
417 /**/
419
424#define EV_MonsterCheckBossFlag(i, o) \
425 i(entity, MUTATOR_ARGV_0_entity) \
426 /**/
428
434 #define EV_AllowMobSpawning(i, o) \
435 i(entity, MUTATOR_ARGV_0_entity) \
436 o(string, MUTATOR_ARGV_1_string) \
437 /**/
439
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) \
452 /**/
454
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) \
471 /**/
473
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) \
486 /**/
488
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) \
497 /**/
499
503#define EV_W_Reload(i, o) \
504 i(entity, MUTATOR_ARGV_0_entity) \
505 /**/
507
509#define EV_PlayerPowerups(i, o) \
510 i(entity, MUTATOR_ARGV_0_entity) \
511 i(int, MUTATOR_ARGV_1_int) \
512 /**/
514
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) \
541 /**/
543
549 #define EV_PlayerUseKey(i, o) \
550 i(entity, MUTATOR_ARGV_0_entity) \
551 /**/
553
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) \
582 /**/
584
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) \
594 /**/
596
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) \
602 /**/
604
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) \
614 /**/
616
619
620#define EV_SetModname(i, o) \
621 \
622 /**/ i(string, MUTATOR_ARGV_0_string) \
623 /**/ o(string, MUTATOR_ARGV_0_string) \
624 /**/
626
631#define EV_Item_Spawn(i, o) \
632 i(entity, MUTATOR_ARGV_0_entity) \
633 /**/
635
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) \
641 /**/
643
645#define EV_Item_RespawnCountdown(i, o) \
646 i(entity, MUTATOR_ARGV_0_entity) \
647 /**/
649
654#define EV_BotShouldAttack(i, o) \
655 i(entity, MUTATOR_ARGV_0_entity) \
656 i(entity, MUTATOR_ARGV_1_entity) \
657 /**/
659
664#define EV_PortalTeleport(i, o) \
665 i(entity, MUTATOR_ARGV_0_entity) \
666 /**/
668
675#define EV_HelpMePing(i, o) \
676 i(entity, MUTATOR_ARGV_0_entity) \
677 /**/
679
684#define EV_VehicleInit(i, o) \
685 i(entity, MUTATOR_ARGV_0_entity) \
686 /**/
688
693#define EV_VehicleEnter(i, o) \
694 i(entity, MUTATOR_ARGV_0_entity) \
695 i(entity, MUTATOR_ARGV_1_entity) \
696 /**/
698
703#define EV_VehicleTouch(i, o) \
704 i(entity, MUTATOR_ARGV_0_entity) \
705 i(entity, MUTATOR_ARGV_1_entity) \
706 /**/
708
713#define EV_VehicleExit(i, o) \
714 i(entity, MUTATOR_ARGV_0_entity) \
715 i(entity, MUTATOR_ARGV_1_entity) \
716 /**/
718
720#define EV_AbortSpeedrun(i, o) \
721 i(entity, MUTATOR_ARGV_0_entity) \
722 /**/
724
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) \
730 /**/
732
733enum {
734 MUT_ITEMTOUCH_CONTINUE, // return this flag to make the function continue as normal
735 MUT_ITEMTOUCH_RETURN, // return this flag to make the function return (handled entirely by mutator)
736 MUT_ITEMTOUCH_PICKUP // return this flag to have the item "picked up" and taken even after mutator handled it
737};
738
740#define EV_ItemTouched(i, o) \
741 i(entity, MUTATOR_ARGV_0_entity) \
742 i(entity, MUTATOR_ARGV_1_entity) \
743 /**/
745
746// The Resource hooks are often called by other hooks and to avoid conflicts
747// as much as possible their args start from ARGV_7
748
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) \
756 /**/
758
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) \
767 /**/
769
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) \
777 /**/
779
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) \
787 /**/
789
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) \
799 /**/
801
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) \
812 /**/
814
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) \
824 /**/
826
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) \
837 /**/
839
840// END Resource hooks
841
843#define EV_ClientConnect(i, o) \
844 i(entity, MUTATOR_ARGV_0_entity) \
845 /**/
847
848#define EV_HavocBot_ChooseRole(i, o) \
849 i(entity, MUTATOR_ARGV_0_entity) \
850 /**/
852
854#define EV_AccuracyTargetValid(i, o) \
855 i(entity, MUTATOR_ARGV_0_entity) \
856 i(entity, MUTATOR_ARGV_1_entity) \
857 /**/
859enum {
860 MUT_ACCADD_VALID, // return this flag to make the function continue if target is a client
861 MUT_ACCADD_INVALID, // return this flag to make the function always continue
862 MUT_ACCADD_INDIFFERENT // return this flag to make the function always return
863};
864
866MUTATOR_HOOKABLE(ClearModelParams, EV_NO_ARGS);
867
869#define EV_GetModelParams(i, o) \
870 i(string, MUTATOR_ARGV_0_string) \
871 i(string, MUTATOR_ARGV_1_string) \
872 /**/
874
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) \
884 /**/
886
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) \
893 /**/
895
897MUTATOR_HOOKABLE(Scores_CountFragsRemaining, EV_NO_ARGS);
898
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) \
907 /**/
909
910#define EV_BuffModel_Customize(i, o) \
911 i(entity, MUTATOR_ARGV_0_entity) \
912 i(entity, MUTATOR_ARGV_1_entity) \
913 /**/
915
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) \
921 /**/
923
925
927
929
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) \
934 /**/
936
937#define EV_Race_FinalCheckpoint(i, o) \
938 i(entity, MUTATOR_ARGV_0_entity) \
939 /**/
941
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) \
947 /**/
949
951#define EV_ClientKill_Now(i, o) \
952 i(entity, MUTATOR_ARGV_0_entity) \
953 /**/
955
956#define EV_FixClientCvars(i, o) \
957 i(entity, MUTATOR_ARGV_0_entity) \
958 /**/
960
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) \
965 /**/
967
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) \
972 /**/
974
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) \
980 /**/
982
983enum {
984 MUT_SPECPREV_CONTINUE, // return this flag to make the function continue as normal
985 MUT_SPECPREV_RETURN, // return this flag to make the function return (handled entirely by mutator)
986 MUT_SPECPREV_FOUND // return this flag to make the function continue without default functions (handled mostly by mutator)
987};
988
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) \
995 /**/
997
998#define EV_ClientCommand_Spectate(i, o) \
999 i(entity, MUTATOR_ARGV_0_entity) \
1000 /**/
1002
1003enum {
1004 MUT_SPECCMD_CONTINUE, // return this flag to make the function continue as normal
1005 MUT_SPECCMD_RETURN, // return this flag to make the function return (don't spectate)
1006 MUT_SPECCMD_FORCE // return this flag to force the player to spectate, even if they're not a player
1007};
1008
1009#define EV_CheckRules_World(i, o) \
1010 i(float, MUTATOR_ARGV_0_float) \
1011 /**/ o(float, MUTATOR_ARGV_0_float) \
1012 /* time limit */ i(float, MUTATOR_ARGV_1_float) \
1013 /* frag limit */ i(float, MUTATOR_ARGV_2_float) \
1014 /**/
1016
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) \
1025 /**/
1027
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) \
1033 /**/
1035
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) \
1040 /**/
1042
1043#define EV_GetPlayerStatus(i, o) \
1044 i(entity, MUTATOR_ARGV_0_entity) \
1045 /**/
1047
1048#define EV_SetWeaponArena(i, o) \
1049 i(string, MUTATOR_ARGV_0_string) \
1050 /**/ o(string, MUTATOR_ARGV_0_string) \
1051 /**/
1053
1054#define EV_DropSpecialItems(i, o) \
1055 i(entity, MUTATOR_ARGV_0_entity) \
1056 /**/
1058
1063#define EV_AllowMobButcher(i, o) \
1064 o(string, MUTATOR_ARGV_0_string) \
1065 /**/
1067
1069
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) \
1077 /**/
1079
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) \
1085 /**/
1087
1088#define EV_TurretThink(i, o) \
1089 i(entity, MUTATOR_ARGV_0_entity) \
1090 /**/
1092
1094
1096#define EV_PrepareExplosionByDamage(i, o) \
1097 i(entity, MUTATOR_ARGV_0_entity) \
1098 i(entity, MUTATOR_ARGV_1_entity) \
1099 /**/
1101
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) \
1107 /**/
1109
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) \
1117 /**/
1119
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) \
1127 /**/
1129
1133#define EV_Player_ChangeTeamKill(i, o) \
1134 i(entity, MUTATOR_ARGV_0_entity) \
1135 /**/
1137
1138/**/
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) \
1143 /**/
1145
1149#define EV_LockWeapon(i, o) \
1150 i(entity, MUTATOR_ARGV_0_entity) \
1151 /**/
1153
1157#define EV_ForbidWeaponUse(i, o) \
1158 i(entity, MUTATOR_ARGV_0_entity) \
1159 /**/
1161
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) \
1167 /**/
1169
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) \
1176 /**/
1178
1180#define EV_ChatMessageTo(i, o) \
1181 i(entity, MUTATOR_ARGV_0_entity) \
1182 i(entity, MUTATOR_ARGV_1_entity) \
1183 /**/
1185
1190MUTATOR_HOOKABLE(ReadyRestart_Deny, EV_NO_ARGS);
1191
1193#define EV_FusionReactor_ValidTarget(i, o) \
1194 i(entity, MUTATOR_ARGV_0_entity) \
1195 i(entity, MUTATOR_ARGV_1_entity) \
1196 /**/
1198
1199enum {
1200 MUT_FUSREAC_TARG_CONTINUE, // return this flag to make the function continue as normal
1201 MUT_FUSREAC_TARG_VALID, // return this flag to make the function return true (valid target)
1202 MUT_FUSREAC_TARG_INVALID // return this flag to make the function return false (invalid target)
1203};
1204
1206#define EV_Item_ScheduleRespawn(i, o) \
1207 i(entity, MUTATOR_ARGV_0_entity) \
1208 i(float, MUTATOR_ARGV_1_float) \
1209 /**/
1211
1213#define EV_PlayerPhysics_UpdateStats(i, o) \
1214 i(entity, MUTATOR_ARGV_0_entity) \
1215 /**/
1217
1219#define EV_PlayerPhysics_PostUpdateStats(i, o) \
1220 i(entity, MUTATOR_ARGV_0_entity) \
1221 i(float, MUTATOR_ARGV_1_float) \
1222 /**/
1224
1226#define EV_HavocBot_Aim(i, o) \
1227 i(entity, MUTATOR_ARGV_0_entity) \
1228 /**/
1230
1232#define EV_CalculateRespawnTime(i, o) \
1233 i(entity, MUTATOR_ARGV_0_entity) \
1234 /**/
1236
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) \
1244 /**/
1246
1247enum {
1248 MUT_VOTEPARSE_CONTINUE, // return this flag to make the function continue as normal
1249 MUT_VOTEPARSE_SUCCESS, // return 1 (vote parsed)
1250 MUT_VOTEPARSE_INVALID, // return -1 (vote parsed but counted as invalid, no action or vote)
1251 MUT_VOTEPARSE_UNACCEPTABLE // return 0 (vote parameter counted as unacceptable, warns caller)
1252};
1253
1257#define EV_GetPlayerLimit(i, o) \
1258 i(int, MUTATOR_ARGV_0_int) \
1259 /**/ o(int, MUTATOR_ARGV_0_int) \
1260 /**/
1262
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) \
1268 /**/
1270
1272#define EV_AllowRocketJumping(i, o) \
1273 i(bool, MUTATOR_ARGV_0_bool) \
1274 /**/ o(bool, MUTATOR_ARGV_0_bool) \
1275 /**/
1277
1279#define EV_W_PlayStrengthSound(i, o) \
1280 i(entity, MUTATOR_ARGV_0_entity) \
1281 /**/
1283
1285#define EV_Sandbox_DragAllowed(i, o) \
1286 i(entity, MUTATOR_ARGV_0_entity) \
1287 /**/
1289
1291MUTATOR_HOOKABLE(Sandbox_SaveAllowed, EV_NO_ARGS);
1292
1294#define EV_Sandbox_EditAllowed(i, o) \
1295 i(entity, MUTATOR_ARGV_0_entity) \
1296 /**/
1298
1300#define EV_ShowChatBubble(i, o) \
1301 i(entity, MUTATOR_ARGV_0_entity) \
1302 i(entity, MUTATOR_ARGV_1_entity) \
1303 /**/
#define MUTATOR_HOOKABLE(id, params)
Definition base.qh:129
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.
Definition events.qh:84
#define EV_EditProjectile(i, o)
Called when a projectile's properties are being modified.
Definition events.qh:48
void ClientKill_Now(entity this)
Definition clientkill.qc:37
#define EV_NO_ARGS(i, o)
Definition events.qh:3
void GetCvars(entity this, entity store, int f)
#define ClientConnect
Definition _all.inc:238
#define ClientKill
Definition _all.inc:250
#define PlayerPreThink
Definition _all.inc:254
#define SV_ParseClientCommand
Definition _all.inc:284
#define SetChangeParms
Definition _all.inc:228
#define PutClientInServer
Definition _all.inc:246
#define ClientDisconnect
Definition _all.inc:242
#define SetNewParms
Definition _all.inc:224
bool SpectateSet(entity this)
Definition client.qc:1879
void SpectateCopy(entity this, entity spectatee)
Definition client.qc:1793
int GetPlayerLimit()
Definition client.qc:2127
void GetPressedKeys(entity this)
Definition client.qc:1761
void PlayerUseKey(entity this)
Definition client.qc:2584
void FixClientCvars(entity e)
Definition client.qc:997
bool SpectateNext(entity this)
Definition client.qc:1981
void FixPlayermodel(entity player)
Definition client.qc:454
bool SpectatePrev(entity this)
Definition client.qc:1995
void Item_ScheduleRespawn(entity e)
Definition items.qc:391
void Item_RespawnCountdown(entity this)
Definition items.qc:258
#define EV_GetRecords(i, o)
Definition events.qh:930
#define EV_AllowMobButcher(i, o)
called when an admin tries to kill all monsters return 1 to prevent spawning
Definition events.qh:1063
#define EV_PlayerPhysics_PostUpdateStats(i, o)
called after physics stats are set on a player, allows post-initialization modifications
Definition events.qh:1219
#define EV_FilterItemDefinition(i, o)
Check if items having the given definition are allowed to spawn.
Definition events.qh:280
string monster_loot
Definition events.qh:390
#define EV_ClientObituary(i, o)
called when showing an obituary for the player.
Definition events.qh:103
#define EV_CopyBody(i, o)
called when creating a clone of the player (usually for corpses that stay after the player has re-spa...
Definition events.qh:1163
#define EV_ForbidSpawn(i, o)
return true to prevent a spectator/observer to spawn as player
Definition events.qh:26
#define EV_URI_GetCallback(i, o)
Definition events.qh:1139
#define EV_Player_ChangeTeam(i, o)
Called before player changes their team.
Definition events.qh:1113
#define EV_TeamBalance_GetPlayerForTeamSwitch(i, o)
Called during autobalance.
Definition events.qh:200
#define EV_TakeResourceWithLimit(i, o)
Called when some resource is being taken from an entity, with a limit.
Definition events.qh:829
#define EV_Item_Spawn(i, o)
called for each item being spawned on a map, including dropped weapons return 1 to remove an item
Definition events.qh:631
float get_cvars_f
Definition events.qh:346
#define EV_HavocBot_ChooseRole(i, o)
Definition events.qh:848
#define EV_ClientCommand_Spectate(i, o)
Definition events.qh:998
#define EV_ClientCommand_FloodControl(i, o)
please read EV_SV_ParseClientCommand description before using return true to skip flood control on th...
Definition events.qh:589
@ MUT_FUSREAC_TARG_VALID
Definition events.qh:1201
@ MUT_FUSREAC_TARG_INVALID
Definition events.qh:1202
@ MUT_FUSREAC_TARG_CONTINUE
Definition events.qh:1200
#define EV_AllowRocketJumping(i, o)
Allows disabling or enabling rocket jumping independently of balance, use the parameter to force a pr...
Definition events.qh:1272
#define EV_ChatMessageTo(i, o)
return true to prevent sending a chat (private, team or regular) message from reaching a certain play...
Definition events.qh:1180
@ MUT_VOTEPARSE_CONTINUE
Definition events.qh:1248
@ MUT_VOTEPARSE_UNACCEPTABLE
Definition events.qh:1251
@ MUT_VOTEPARSE_INVALID
Definition events.qh:1250
@ MUT_VOTEPARSE_SUCCESS
Definition events.qh:1249
#define EV_SetWeaponreplace(i, o)
Definition events.qh:636
#define EV_MonsterMove(i, o)
called when a monster moves returning true makes the monster stop
Definition events.qh:397
#define EV_ForbidWeaponUse(i, o)
return true to prevent weapon use for a player
Definition events.qh:1157
#define EV_MonsterDropItem(i, o)
called when a monster is dropping loot
Definition events.qh:384
#define EV_MakePlayerObserver(i, o)
called when a player becomes observer, after shared setup
Definition events.qh:11
#define EV_PlayerRegen(i, o)
called every player think frame return 1 to disable regen
Definition events.qh:519
#define EV_TurretValidateTarget(i, o)
Definition events.qh:1080
#define EV_PlayerDies(i, o)
called when a player dies to e.g.
Definition events.qh:86
#define EV_W_DecreaseAmmo(i, o)
Called by W_DecreaseAmmo.
Definition events.qh:492
#define EV_PlayerPreThink(i, o)
runs in the event loop for players; is called for ALL player entities, also bots, also the dead,...
Definition events.qh:320
#define EV_GiveResourceWithLimit(i, o)
Called when entity is being given some resource with specified limit.
Definition events.qh:804
#define EV_ClientKill(i, o)
called when player triggered kill (or is changing teams), return error to not do anything
Definition events.qh:943
#define EV_PlayerPowerups(i, o)
called at the end of player_powerups() in client.qc, used for manipulating the values which are set b...
Definition events.qh:509
#define EV_W_Reload(i, o)
Called by W_Reload.
Definition events.qh:503
#define EV_HavocBot_Aim(i, o)
return true to use your own aim target (or none at all)
Definition events.qh:1226
#define EV_FixPlayermodel(i, o)
Definition events.qh:887
#define EV_SetModname(i, o)
Definition events.qh:620
#define EV_ItemTouched(i, o)
called after the item has been touched.
Definition events.qh:740
#define EV_ForbidRandomStartWeapons(i, o)
called when player spawns to determine whether to give them random start weapons.
Definition events.qh:38
#define EV_PlayerAnim(i, o)
called when setting the player's animation state
Definition events.qh:57
#define EV_CheckRules_World(i, o)
Definition events.qh:1009
#define EV_GiveFragsForKill(i, o)
called when someone was fragged by "self", and is expected to change frag_score to adjust scoring for...
Definition events.qh:147
#define EV_SendWaypoint(i, o)
Definition events.qh:1070
@ MUT_SPECPREV_RETURN
Definition events.qh:985
@ MUT_SPECPREV_CONTINUE
Definition events.qh:984
@ MUT_SPECPREV_FOUND
Definition events.qh:986
#define EV_BuffTouch(i, o)
called at when a buff is touched.
Definition events.qh:917
#define EV_Player_ChangedTeam(i, o)
Called after player has changed their team.
Definition events.qh:1123
#define EV_Turret_CheckFire(i, o)
return error to not attack
Definition events.qh:307
#define EV_MonsterDies(i, o)
called when a monster dies
Definition events.qh:364
#define EV_AddPlayerScore(i, o)
Definition events.qh:1028
#define EV_reset_map_global(i, o)
called in reset_map
Definition events.qh:65
#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...
Definition events.qh:654
#define EV_Bot_FixCount(i, o)
called when player triggered kill (or is changing teams), return error to not do anything
Definition events.qh:990
#define EV_SpectateNext(i, o)
Definition events.qh:968
@ MUT_ACCADD_INDIFFERENT
Definition events.qh:862
@ MUT_ACCADD_INVALID
Definition events.qh:861
@ MUT_ACCADD_VALID
Definition events.qh:860
#define EV_GetResourceLimit(i, o)
Called when the amount of entity resources changes.
Definition events.qh:751
#define EV_PlayerDied(i, o)
called after a player died.
Definition events.qh:97
#define EV_GetPressedKeys(i, o)
TODO change this into a general PlayerPostThink hook?
Definition events.qh:326
#define EV_GiveResource(i, o)
Called when entity is being given some resource.
Definition events.qh:793
#define EV_PlayHitsound(i, o)
called when a player dies to e.g.
Definition events.qh:124
#define EV_Player_ChangeTeamKill(i, o)
Called when player is about to be killed when changing teams.
Definition events.qh:1133
#define EV_SpectateCopy(i, o)
copies variables for spectating "spectatee" to "this"
Definition events.qh:210
#define EV_ShowChatBubble(i, o)
Return true to hide the chat bubble above typing players.
Definition events.qh:1300
#define EV_reset_map_players(i, o)
called in reset_map
Definition events.qh:70
#define EV_GrappleHookThink(i, o)
Definition events.qh:899
#define EV_Item_ScheduleRespawn(i, o)
return true to show a waypoint while the item is spawning
Definition events.qh:1206
#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...
Definition events.qh:664
#define EV_MonsterValidTarget(i, o)
called when validating a monster's target
Definition events.qh:414
#define EV_ClientConnect(i, o)
called at when a player connect
Definition events.qh:843
@ MUT_ITEMTOUCH_PICKUP
Definition events.qh:736
@ MUT_ITEMTOUCH_RETURN
Definition events.qh:735
@ MUT_ITEMTOUCH_CONTINUE
Definition events.qh:734
#define EV_TurretThink(i, o)
Definition events.qh:1088
#define EV_VoteCommand_Parse(i, o)
called when parsing a vote command.
Definition events.qh:1238
#define EV_Spawn_Score(i, o)
called when a spawnpoint is being evaluated return 1 to make the spawnpoint unusable
Definition events.qh:609
#define EV_ResourceWasted(i, o)
Called when there was an attempt to set entity resources higher than their limit.
Definition events.qh:783
#define EV_ItemModel(i, o)
called when an item model is about to be set, allows custom paths etc.
Definition events.qh:131
#define EV_ForbidPlayerScore_Clear(i, o)
returns 1 if clearing player score shall not be allowed
Definition events.qh:75
#define EV_VehicleInit(i, o)
called when a vehicle initializes return true to remove the vehicle
Definition events.qh:684
#define EV_SV_ParseClientCommand(i, o)
called when a client command is parsed NOTE: hooks MUST start with if (MUTATOR_RETURNVALUE) return fa...
Definition events.qh:577
#define EV_ItemSound(i, o)
called when an item sound is about to be played, allows custom paths etc.
Definition events.qh:139
#define EV_TakeResource(i, o)
Called when some resource is being taken from an entity.
Definition events.qh:818
#define EV_PreFormatMessage(i, o)
called before any formatting is applied, handy for tweaking the message before scripts get ahold of i...
Definition events.qh:227
#define EV_DropSpecialItems(i, o)
Definition events.qh:1054
#define EV_MonsterSpawn(i, o)
called when a monster spawns
Definition events.qh:358
#define EV_TurretFire(i, o)
return error to not attack
Definition events.qh:301
#define EV_VehicleExit(i, o)
called when a player exits a vehicle allows mutators to set special settings in this event
Definition events.qh:713
#define EV_GetPlayerLimit(i, o)
Called when a player is trying to join, argument is the number of players allowed to join the match.
Definition events.qh:1257
#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...
Definition events.qh:549
#define EV_TeamBalance_CheckAllowedTeams(i, o)
Allows adjusting allowed teams.
Definition events.qh:167
#define EV_FireBullet_Hit(i, o)
called when a bullet has hit a target
Definition events.qh:876
#define EV_MonsterModel(i, o)
called when a monster model is about to be set, allows custom paths etc.
Definition events.qh:1103
#define EV_FixClientCvars(i, o)
Definition events.qh:956
#define EV_SpectateSet(i, o)
Definition events.qh:961
#define EV_SpectatePrev(i, o)
Definition events.qh:975
#define EV_ForbidThrowCurrentWeapon(i, o)
returns true if throwing the current weapon shall not be allowed
Definition events.qh:235
#define EV_OnEntityPreSpawn(i, o)
return error to prevent entity spawn, or modify the entity
Definition events.qh:314
#define EV_BuffModel_Customize(i, o)
Definition events.qh:910
#define EV_FusionReactor_ValidTarget(i, o)
called when a fusion reactor is validating its target
Definition events.qh:1193
#define EV_CalculateRespawnTime(i, o)
return true to skip respawn time calculations
Definition events.qh:1232
#define EV_ChatMessage(i, o)
called when sending a chat message, ret argument can be changed to prevent the message
Definition events.qh:1171
#define EV_SetResource(i, o)
Called when the amount of resource of an entity changes.
Definition events.qh:761
#define EV_WeaponRateFactor(i, o)
allows changing attack rate
Definition events.qh:252
#define EV_PrepareExplosionByDamage(i, o)
Definition events.qh:1096
#define EV_PlayerSpawn(i, o)
called when a player spawns as player, after shared setup, before their weapon is chosen (so items ma...
Definition events.qh:44
#define EV_WantWeapon(i, o)
Definition events.qh:1017
#define EV_VehicleEnter(i, o)
called when a player enters a vehicle allows mutators to set special settings in this event
Definition events.qh:693
#define EV_MonsterCheckBossFlag(i, o)
called when checking if a monster should be a miniboss return true to prevent the monster from becomi...
Definition events.qh:424
@ MUT_SPECCMD_RETURN
Definition events.qh:1005
@ MUT_SPECCMD_FORCE
Definition events.qh:1006
@ MUT_SPECCMD_CONTINUE
Definition events.qh:1004
#define EV_MonsterRespawn(i, o)
called when a monster wants to respawn
Definition events.qh:378
#define EV_ForbidDropCurrentWeapon(i, o)
returns true if dropping the current weapon shall not be allowed at any time including death
Definition events.qh:242
#define EV_PutClientInServer(i, o)
Definition events.qh:18
#define EV_AutoJoinOnConnection(i, o)
returns true if client should be put as player on connection
Definition events.qh:32
#define EV_LockWeapon(i, o)
return true to lock weapon (can't be used nor changed) for a player
Definition events.qh:1149
#define EV_WeaponSpeedFactor(i, o)
allows changing weapon speed (projectiles mostly)
Definition events.qh:260
#define EV_ClientKill_Now(i, o)
called when player is about to be killed during kill command or changing teams
Definition events.qh:951
#define EV_ClientDisconnect(i, o)
called when a player disconnects
Definition events.qh:80
#define EV_W_PlayStrengthSound(i, o)
Called when weapons are performing their attack, useful for applying bonus attack sounds.
Definition events.qh:1279
#define EV_FormatMessage(i, o)
called when formatting a chat message to replace fancy functions
Definition events.qh:217
#define EV_Sandbox_EditAllowed(i, o)
Return true to prevent the player from editing sandbox objects with commands.
Definition events.qh:1294
#define EV_AbortSpeedrun(i, o)
called when a speedrun is aborted and the player is teleported back to start position
Definition events.qh:720
#define EV_AllowMobSpawning(i, o)
called when a player tries to spawn a monster return 1 to prevent spawning NOTE: requires reason if d...
Definition events.qh:434
#define EV_VehicleTouch(i, o)
called when a player touches a vehicle return true to stop player from entering the vehicle
Definition events.qh:703
#define EV_GetPlayerStatus(i, o)
Definition events.qh:1043
#define EV_MonsterRemove(i, o)
called when a monster dies
Definition events.qh:372
#define EV_CustomizeWaypoint(i, o)
called every frame.
Definition events.qh:271
#define EV_TeamBalance_FindBestTeams(i, o)
allows overriding the teams that will make the game most balanced if the player joins any of them.
Definition events.qh:192
#define EV_PlayerDamaged(i, o)
Called when a player is damaged Returns true if damage shouldn't be logged.
Definition events.qh:478
#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...
Definition events.qh:289
#define EV_Item_RespawnCountdown(i, o)
called when an item is about to respawn
Definition events.qh:645
#define EV_LogDeath_AppendItemCodes(i, o)
include special item codes for a death to the game log
Definition events.qh:1264
#define EV_PlayerDamage_SplitHealthArmor(i, o)
called when a player gets damaged to e.g.
Definition events.qh:441
string get_cvars_s
Definition events.qh:347
#define EV_ItemTouch(i, o)
called at when a item is touched.
Definition events.qh:726
#define EV_ResourceAmountChanged(i, o)
Called after the amount of resource of an entity has changed.
Definition events.qh:773
#define EV_Sandbox_DragAllowed(i, o)
Return true to prevent sandbox objects from being dragged.
Definition events.qh:1285
#define EV_Damage_Calculate(i, o)
called to adjust damage and force values which are applied to the player, used for e....
Definition events.qh:459
#define EV_AccuracyTargetValid(i, o)
called when a target is checked for accuracy
Definition events.qh:854
#define EV_SV_ParseServerCommand(i, o)
please read EV_SV_ParseClientCommand description before using
Definition events.qh:598
#define EV_TurretSpawn(i, o)
return error to request removal
Definition events.qh:295
#define EV_Race_FinalCheckpoint(i, o)
Definition events.qh:937
#define EV_PlayerPhysics_UpdateStats(i, o)
called before physics stats are set on a player, allows limited early customization
Definition events.qh:1213
#define EV_TeamBalance_GetTeamCount(i, o)
allows overriding of team counts
Definition events.qh:181
#define EV_SetWeaponArena(i, o)
Definition events.qh:1048
#define EV_FragCenterMessage(i, o)
allows overriding the frag centerprint messages
Definition events.qh:114
#define EV_HelpMePing(i, o)
called whenever a player uses impulse 33 (help me) in impulse.qc normally help me ping uses ....
Definition events.qh:675
#define EV_PlayerWeaponSelect(i, o)
called after a player's weapon is chosen so it can be overriden here
Definition events.qh:51
void CopyBody(entity this, float keepvelocity)
Definition player.qc:64
vector Spawn_Score(entity this, entity spot, float mindist, float teamcheck, bool targetcheck)
void W_PlayStrengthSound(entity player)
Definition common.qc:40
void DecodeLevelParms(entity this)
Definition client.qc:984
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.
Definition teamplay.qc:846
entity TeamBalance_CheckAllowedTeams(entity for_whom)
Checks whether the player can join teams according to global configuration and mutator settings.
Definition teamplay.qc:459
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...
Definition teamplay.qc:984
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.
Definition teamplay.qc:1161
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)
void SetDefaultAlpha()
Definition world.qc:105
void CheckRules_World()
Definition world.qc:1705