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_PreferPlayerScore_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_Bot_ForbidAttack(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
950#define EV_FixClientCvars(i, o) \
951 i(entity, MUTATOR_ARGV_0_entity) \
952 /**/
954
955#define EV_SpectateSet(i, o) \
956 i(entity, MUTATOR_ARGV_0_entity) \
957 i(entity, MUTATOR_ARGV_1_entity) \
958 /**/ o(entity, MUTATOR_ARGV_1_entity) \
959 /**/
961
962#define EV_SpectateNext(i, o) \
963 i(entity, MUTATOR_ARGV_0_entity) \
964 i(entity, MUTATOR_ARGV_1_entity) \
965 /**/ o(entity, MUTATOR_ARGV_1_entity) \
966 /**/
968
969#define EV_SpectatePrev(i, o) \
970 i(entity, MUTATOR_ARGV_0_entity) \
971 i(entity, MUTATOR_ARGV_1_entity) \
972 /**/ o(entity, MUTATOR_ARGV_1_entity) \
973 i(entity, MUTATOR_ARGV_2_entity) \
974 /**/
976
977enum {
978 MUT_SPECPREV_CONTINUE, // return this flag to make the function continue as normal
979 MUT_SPECPREV_RETURN, // return this flag to make the function return (handled entirely by mutator)
980 MUT_SPECPREV_FOUND // return this flag to make the function continue without default functions (handled mostly by mutator)
981};
982
984#define EV_Bot_FixCount(i, o) \
985 i(int, MUTATOR_ARGV_0_int) \
986 /**/ o(int, MUTATOR_ARGV_0_int) \
987 i(int, MUTATOR_ARGV_1_int) \
988 /**/ o(int, MUTATOR_ARGV_1_int) \
989 /**/
991
992#define EV_ClientCommand_Spectate(i, o) \
993 i(entity, MUTATOR_ARGV_0_entity) \
994 /**/
996
997enum {
998 MUT_SPECCMD_CONTINUE, // return this flag to make the function continue as normal
999 MUT_SPECCMD_RETURN, // return this flag to make the function return (don't spectate)
1000 MUT_SPECCMD_FORCE // return this flag to force the player to spectate, even if they're not a player
1001};
1002
1003#define EV_CheckRules_World(i, o) \
1004 i(float, MUTATOR_ARGV_0_float) \
1005 /**/ o(float, MUTATOR_ARGV_0_float) \
1006 /* time limit */ i(float, MUTATOR_ARGV_1_float) \
1007 /* frag limit */ i(float, MUTATOR_ARGV_2_float) \
1008 /**/
1010
1011#define EV_WantWeapon(i, o) \
1012 i(entity, MUTATOR_ARGV_0_entity) \
1013 i(float, MUTATOR_ARGV_1_float) \
1014 /**/ o(float, MUTATOR_ARGV_1_float) \
1015 i(int, MUTATOR_ARGV_2_int) \
1016 /**/ o(int, MUTATOR_ARGV_2_int) \
1017 i(bool, MUTATOR_ARGV_3_bool) \
1018 /**/ o(bool, MUTATOR_ARGV_3_bool) \
1019 /**/
1021
1022#define EV_AddPlayerScore(i, o) \
1023 i(entity, MUTATOR_ARGV_0_entity) \
1024 i(float, MUTATOR_ARGV_1_float) \
1025 /**/ o(float, MUTATOR_ARGV_1_float) \
1026 i(entity, MUTATOR_ARGV_2_entity) \
1027 /**/
1029
1030#define EV_AddedPlayerScore(i, o) \
1031 i(entity, MUTATOR_ARGV_0_entity) \
1032 i(float, MUTATOR_ARGV_1_float) \
1033 i(entity, MUTATOR_ARGV_2_entity) \
1034 /**/
1036
1037#define EV_GetPlayerStatus(i, o) \
1038 i(entity, MUTATOR_ARGV_0_entity) \
1039 /**/
1041
1042#define EV_SetWeaponArena(i, o) \
1043 i(string, MUTATOR_ARGV_0_string) \
1044 /**/ o(string, MUTATOR_ARGV_0_string) \
1045 /**/
1047
1048#define EV_DropSpecialItems(i, o) \
1049 i(entity, MUTATOR_ARGV_0_entity) \
1050 /**/
1052
1057#define EV_AllowMobButcher(i, o) \
1058 o(string, MUTATOR_ARGV_0_string) \
1059 /**/
1061
1063
1064#define EV_SendWaypoint(i, o) \
1065 i(entity, MUTATOR_ARGV_0_entity) \
1066 i(entity, MUTATOR_ARGV_1_entity) \
1067 i(int, MUTATOR_ARGV_2_int) \
1068 /**/ o(int, MUTATOR_ARGV_2_int) \
1069 i(int, MUTATOR_ARGV_3_int) \
1070 /**/ o(int, MUTATOR_ARGV_3_int) \
1071 /**/
1073
1074#define EV_TurretValidateTarget(i, o) \
1075 i(entity, MUTATOR_ARGV_0_entity) \
1076 i(entity, MUTATOR_ARGV_1_entity) \
1077 i(int, MUTATOR_ARGV_2_int) \
1078 o(float, MUTATOR_ARGV_3_float) \
1079 /**/
1081
1082#define EV_TurretThink(i, o) \
1083 i(entity, MUTATOR_ARGV_0_entity) \
1084 /**/
1086
1088
1090#define EV_PrepareExplosionByDamage(i, o) \
1091 i(entity, MUTATOR_ARGV_0_entity) \
1092 i(entity, MUTATOR_ARGV_1_entity) \
1093 /**/
1095
1097#define EV_MonsterModel(i, o) \
1098 i(string, MUTATOR_ARGV_0_string) \
1099 i(string, MUTATOR_ARGV_1_string) \
1100 /**/ o(string, MUTATOR_ARGV_1_string) \
1101 /**/
1103
1107#define EV_Player_ChangeTeam(i, o) \
1108 i(entity, MUTATOR_ARGV_0_entity) \
1109 i(float, MUTATOR_ARGV_1_float) \
1110 i(float, MUTATOR_ARGV_2_float) \
1111 /**/
1113
1117#define EV_Player_ChangedTeam(i, o) \
1118 i(entity, MUTATOR_ARGV_0_entity) \
1119 i(float, MUTATOR_ARGV_1_float) \
1120 i(float, MUTATOR_ARGV_2_float) \
1121 /**/
1123
1124/**/
1125#define EV_URI_GetCallback(i, o) \
1126 i(float, MUTATOR_ARGV_0_float) \
1127 i(float, MUTATOR_ARGV_1_float) \
1128 i(string, MUTATOR_ARGV_2_string) \
1129 /**/
1131
1135#define EV_LockWeapon(i, o) \
1136 i(entity, MUTATOR_ARGV_0_entity) \
1137 /**/
1139
1143#define EV_ForbidWeaponUse(i, o) \
1144 i(entity, MUTATOR_ARGV_0_entity) \
1145 /**/
1147
1149#define EV_CopyBody(i, o) \
1150 i(entity, MUTATOR_ARGV_0_entity) \
1151 i(entity, MUTATOR_ARGV_1_entity) \
1152 i(bool, MUTATOR_ARGV_2_bool) \
1153 /**/
1155
1157#define EV_ChatMessage(i, o) \
1158 i(entity, MUTATOR_ARGV_0_entity) \
1159 i(int, MUTATOR_ARGV_1_int) \
1160 /**/ o(int, MUTATOR_ARGV_1_int) \
1161 i(string, MUTATOR_ARGV_2_string) \
1162 i(entity, MUTATOR_ARGV_3_entity) \
1163 /**/
1165
1167#define EV_ChatMessageTo(i, o) \
1168 i(entity, MUTATOR_ARGV_0_entity) \
1169 i(entity, MUTATOR_ARGV_1_entity) \
1170 /**/
1172
1177MUTATOR_HOOKABLE(ReadyRestart_Deny, EV_NO_ARGS);
1178
1180#define EV_FusionReactor_ValidTarget(i, o) \
1181 i(entity, MUTATOR_ARGV_0_entity) \
1182 i(entity, MUTATOR_ARGV_1_entity) \
1183 /**/
1185
1186enum {
1187 MUT_FUSREAC_TARG_CONTINUE, // return this flag to make the function continue as normal
1188 MUT_FUSREAC_TARG_VALID, // return this flag to make the function return true (valid target)
1189 MUT_FUSREAC_TARG_INVALID // return this flag to make the function return false (invalid target)
1190};
1191
1193#define EV_Item_ScheduleRespawn(i, o) \
1194 i(entity, MUTATOR_ARGV_0_entity) \
1195 i(float, MUTATOR_ARGV_1_float) \
1196 /**/
1198
1200#define EV_PlayerPhysics_UpdateStats(i, o) \
1201 i(entity, MUTATOR_ARGV_0_entity) \
1202 /**/
1204
1206#define EV_PlayerPhysics_PostUpdateStats(i, o) \
1207 i(entity, MUTATOR_ARGV_0_entity) \
1208 i(float, MUTATOR_ARGV_1_float) \
1209 /**/
1211
1213#define EV_HavocBot_Aim(i, o) \
1214 i(entity, MUTATOR_ARGV_0_entity) \
1215 /**/
1217
1219#define EV_CalculateRespawnTime(i, o) \
1220 i(entity, MUTATOR_ARGV_0_entity) \
1221 /**/
1223
1225#define EV_VoteCommand_Parse(i, o) \
1226 i(entity, MUTATOR_ARGV_0_entity) \
1227 i(string, MUTATOR_ARGV_1_string) \
1228 i(string, MUTATOR_ARGV_2_string) \
1229 i(float, MUTATOR_ARGV_3_float) \
1230 i(float, MUTATOR_ARGV_4_float) \
1231 /**/
1233
1234enum {
1235 MUT_VOTEPARSE_CONTINUE, // return this flag to make the function continue as normal
1236 MUT_VOTEPARSE_SUCCESS, // return 1 (vote parsed)
1237 MUT_VOTEPARSE_INVALID, // return -1 (vote parsed but counted as invalid, no action or vote)
1238 MUT_VOTEPARSE_UNACCEPTABLE // return 0 (vote parameter counted as unacceptable, warns caller)
1239};
1240
1244#define EV_GetPlayerLimit(i, o) \
1245 i(int, MUTATOR_ARGV_0_int) \
1246 /**/ o(int, MUTATOR_ARGV_0_int) \
1247 /**/
1249
1251#define EV_LogDeath_AppendItemCodes(i, o) \
1252 i(entity, MUTATOR_ARGV_0_entity) \
1253 i(string, MUTATOR_ARGV_1_string) \
1254 /**/ o(string, MUTATOR_ARGV_1_string) \
1255 /**/
1257
1259#define EV_AllowRocketJumping(i, o) \
1260 i(bool, MUTATOR_ARGV_0_bool) \
1261 /**/ o(bool, MUTATOR_ARGV_0_bool) \
1262 /**/
1264
1266#define EV_W_PlayStrengthSound(i, o) \
1267 i(entity, MUTATOR_ARGV_0_entity) \
1268 /**/
1270
1272#define EV_Sandbox_DragAllowed(i, o) \
1273 i(entity, MUTATOR_ARGV_0_entity) \
1274 /**/
1276
1278MUTATOR_HOOKABLE(Sandbox_SaveAllowed, EV_NO_ARGS);
1279
1281#define EV_Sandbox_EditAllowed(i, o) \
1282 i(entity, MUTATOR_ARGV_0_entity) \
1283 /**/
1285
1287#define EV_ShowChatBubble(i, o) \
1288 i(entity, MUTATOR_ARGV_0_entity) \
1289 i(entity, MUTATOR_ARGV_1_entity) \
1290 /**/
#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
#define EV_NO_ARGS(i, o)
Definition events.qh:3
void GetCvars(entity this, entity store, int f)
#define ClientConnect
Definition _all.inc:242
#define ClientKill
Definition _all.inc:254
#define PlayerPreThink
Definition _all.inc:258
#define SV_ParseClientCommand
Definition _all.inc:289
#define SetChangeParms
Definition _all.inc:232
#define PutClientInServer
Definition _all.inc:250
#define ClientDisconnect
Definition _all.inc:246
#define SetNewParms
Definition _all.inc:228
bool SpectateSet(entity this)
Definition client.qc:1886
void SpectateCopy(entity this, entity spectatee)
Definition client.qc:1800
int GetPlayerLimit()
Definition client.qc:2156
void GetPressedKeys(entity this)
Definition client.qc:1768
void PlayerUseKey(entity this)
Definition client.qc:2631
void FixClientCvars(entity e)
Definition client.qc:1001
bool SpectateNext(entity this)
Definition client.qc:1988
void FixPlayermodel(entity player)
Definition client.qc:454
bool SpectatePrev(entity this)
Definition client.qc:2002
void Item_ScheduleRespawn(entity e)
Definition items.qc:385
void Item_RespawnCountdown(entity this)
Definition items.qc:257
#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:1057
#define EV_PlayerPhysics_PostUpdateStats(i, o)
called after physics stats are set on a player, allows post-initialization modifications
Definition events.qh:1206
#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:1149
#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:1125
#define EV_Player_ChangeTeam(i, o)
Called before player changes their team.
Definition events.qh:1107
#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:992
#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:1188
@ MUT_FUSREAC_TARG_INVALID
Definition events.qh:1189
@ MUT_FUSREAC_TARG_CONTINUE
Definition events.qh:1187
#define EV_AllowRocketJumping(i, o)
Allows disabling or enabling rocket jumping independently of balance, use the parameter to force a pr...
Definition events.qh:1259
#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:1167
@ MUT_VOTEPARSE_CONTINUE
Definition events.qh:1235
@ MUT_VOTEPARSE_UNACCEPTABLE
Definition events.qh:1238
@ MUT_VOTEPARSE_INVALID
Definition events.qh:1237
@ MUT_VOTEPARSE_SUCCESS
Definition events.qh:1236
#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:1143
#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:1074
#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:1213
#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:1003
#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:1064
@ MUT_SPECPREV_RETURN
Definition events.qh:979
@ MUT_SPECPREV_CONTINUE
Definition events.qh:978
@ MUT_SPECPREV_FOUND
Definition events.qh:980
#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:1117
#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:1022
#define EV_reset_map_global(i, o)
called in reset_map
Definition events.qh:65
#define EV_Bot_FixCount(i, o)
called when player triggered kill (or is changing teams), return error to not do anything
Definition events.qh:984
#define EV_SpectateNext(i, o)
Definition events.qh:962
@ 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_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:1287
#define EV_reset_map_players(i, o)
called in reset_map
Definition events.qh:70
#define EV_PreferPlayerScore_Clear(i, o)
returns 1 if player score shall be cleared with g_score_resetonjoin -1
Definition events.qh:75
#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:1193
#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:1082
#define EV_VoteCommand_Parse(i, o)
called when parsing a vote command.
Definition events.qh:1225
#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_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:1048
#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:1244
#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:1097
#define EV_FixClientCvars(i, o)
Definition events.qh:950
#define EV_SpectateSet(i, o)
Definition events.qh:955
#define EV_SpectatePrev(i, o)
Definition events.qh:969
#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:1180
#define EV_CalculateRespawnTime(i, o)
return true to skip respawn time calculations
Definition events.qh:1219
#define EV_ChatMessage(i, o)
called when sending a chat message, ret argument can be changed to prevent the message
Definition events.qh:1157
#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:1090
#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:1011
#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:999
@ MUT_SPECCMD_FORCE
Definition events.qh:1000
@ MUT_SPECCMD_CONTINUE
Definition events.qh:998
#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:1135
#define EV_WeaponSpeedFactor(i, o)
allows changing weapon speed (projectiles mostly)
Definition events.qh:260
#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:1266
#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:1281
#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:1037
#define EV_Bot_ForbidAttack(i, o)
called when a bot checks a target to attack return true to forbid the bot from attacking the target
Definition events.qh:654
#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:1251
#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:1272
#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:1200
#define EV_TeamBalance_GetTeamCount(i, o)
allows overriding of team counts
Definition events.qh:181
#define EV_SetWeaponArena(i, o)
Definition events.qh:1042
#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:988
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:758
entity TeamBalance_CheckAllowedTeams(entity for_whom)
Checks whether the player can join teams according to global configuration and mutator settings.
Definition teamplay.qc:424
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:928
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:1109
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:1723