entity frag_target; // same as self
float frag_deathtype;
+MUTATOR_HOOKABLE(PlayerJump);
+ // called when a player presses the jump key
+ // INPUT, OUTPUT:
+ float player_multijump;
+
MUTATOR_HOOKABLE(GiveFragsForKill);
// called when someone was fragged by "self", and is expected to change frag_score to adjust scoring for the kill
// INPUT:
// INPUT, OUTPUT:
string ret_string;
+MUTATOR_HOOKABLE(CustomizeWaypoint);
+ // called every frame
+ // customizes the waypoint for spectators
+ // INPUT: self = waypoint, other = player, other.enemy = spectator
+
MUTATOR_HOOKABLE(FilterItem);
// checks if the current item may be spawned (self.items and self.weapons may be read and written to, as well as the ammo_ fields)
// return error to request removal
MUTATOR_HOOKABLE(TurretSpawn);
// return error to request removal
// INPUT: self - turret
-
+
MUTATOR_HOOKABLE(OnEntityPreSpawn);
// return error to prevent entity spawn, or modify the entity
// INPUT:
entity self;
entity other;
+
+MUTATOR_HOOKABLE(MonsterSpawn);
+ // called when a monster spawns
+
+MUTATOR_HOOKABLE(MonsterDies);
+ // called when a monster dies
+ // INPUT:
+ entity frag_attacker;
+
+MUTATOR_HOOKABLE(MonsterRespawn);
+ // called when a monster wants to respawn
+ // INPUT:
+ entity other;
+
+MUTATOR_HOOKABLE(MonsterDropItem);
+ // called when a monster is dropping loot
+ // INPUT, OUTPUT:
+ .void() monster_loot;
+ entity other;
+
+MUTATOR_HOOKABLE(MonsterMove);
+ // called when a monster moves
+ // returning TRUE makes the monster stop
+ // INPUT:
+ float monster_speed_run;
+ float monster_speed_walk;
+ entity monster_target;
+
+MUTATOR_HOOKABLE(MonsterFindTarget);
+ // called when a monster looks for another target
+
+MUTATOR_HOOKABLE(MonsterCheckBossFlag);
+ // called to change a random monster to a miniboss
+
+MUTATOR_HOOKABLE(AllowMobSpawning);
+ // called when a player tries to spawn a monster
+ // return 1 to prevent spawning
MUTATOR_HOOKABLE(PlayerDamage_SplitHealthArmor);
// called when a player gets damaged to e.g. remove stuff he was carrying.
// INPUT, OUTPUT:
float damage_take;
float damage_save;
-
+
MUTATOR_HOOKABLE(PlayerDamage_Calculate);
// called to adjust damage and force values which are applied to the player, used for e.g. strength damage/force multiplier
// i'm not sure if I should change this around slightly (Naming of the entities, and also how they're done in g_damage).
float frag_deathtype;
// INPUT, OUTPUT:
float frag_damage;
+ float frag_mirrordamage;
vector frag_force;
MUTATOR_HOOKABLE(PlayerPowerups);
// called at the end of player_powerups() in cl_client.qc, used for manipulating the values which are set by powerup items.
// INPUT
entity self;
- float olditems; // also technically output, but since it is at the end of the function it's useless for that :P
+ float olditems; // also technically output, but since it is at the end of the function it's useless for that :P
+
+MUTATOR_HOOKABLE(PlayerRegen);
+ // called every player think frame
+ // return 1 to disable regen
MUTATOR_HOOKABLE(PlayerUseKey);
// called when the use key is pressed
MUTATOR_HOOKABLE(SetModname);
// OUT
string modname; // name of the mutator/mod if it warrants showing as such in the server browser
-
+
MUTATOR_HOOKABLE(Item_Spawn);
// called for each item being spawned on a map, including dropped weapons
// return 1 to remove an item
// IN+OUT
string ret_string;
+MUTATOR_HOOKABLE(Item_RespawnCountdown);
+ // called when an item is about to respawn
+ // INPUT+OUTPUT:
+ string item_name;
+ vector item_color;
+
+MUTATOR_HOOKABLE(BotShouldAttack);
+ // called when a bot checks a target to attack
+ // INPUT
+ entity checkentity;
+
MUTATOR_HOOKABLE(PortalTeleport);
// called whenever a player goes through a portal gun teleport
// allows you to strip a player of an item if they go through the teleporter to help prevent cheating
// INPUT
entity self;
-
+
MUTATOR_HOOKABLE(HelpMePing);
// called whenever a player uses impulse 33 (help me) in cl_impulse.qc
// normally help me ping uses self.waypointsprite_attachedforcarrier,
// in a special manner using this hook
// INPUT
entity self; // the player who pressed impulse 33
-
+
MUTATOR_HOOKABLE(VehicleSpawn);
// called when a vehicle initializes
// return TRUE to remove the vehicle
-
+
MUTATOR_HOOKABLE(VehicleEnter);
// called when a player enters a vehicle
// allows mutators to set special settings in this event
// INPUT
entity vh_player; // player
entity vh_vehicle; // vehicle
-
+
+MUTATOR_HOOKABLE(VehicleTouch);
+ // called when a player touches a vehicle
+ // return TRUE to stop player from entering the vehicle
+ // INPUT
+ entity self; // vehicle
+ entity other; // player
+
MUTATOR_HOOKABLE(VehicleExit);
// called when a player exits a vehicle
// allows mutators to set special settings in this event
// INPUT
entity vh_player; // player
entity vh_vehicle; // vehicle
-
+
MUTATOR_HOOKABLE(AbortSpeedrun);
// called when a speedrun is aborted and the player is teleported back to start position
// INPUT
// called at when a item is touched. Called early, can edit item properties.
entity self; // item
entity other; // player
+ #define MUT_ITEMTOUCH_CONTINUE 0 // return this flag to make the function continue as normal
+ #define MUT_ITEMTOUCH_RETURN 1 // return this flag to make the function return (handled entirely by mutator)
+ #define MUT_ITEMTOUCH_PICKUP 2 // return this flag to have the item "picked up" and taken even after mutator handled it
MUTATOR_HOOKABLE(ClientConnect);
// called at when a player connect
MUTATOR_HOOKABLE(HavocBot_ChooseRule);
entity self;
+
+MUTATOR_HOOKABLE(AccuracyTargetValid);
+ // called when a target is checked for accuracy
+ entity frag_attacker; // attacker
+ entity frag_target; // target
+ #define MUT_ACCADD_VALID 0 // return this flag to make the function continue if target is a client
+ #define MUT_ACCADD_INVALID 1 // return this flag to make the function always continue
+ #define MUT_ACCADD_INDIFFERENT 2 // return this flag to make the function always return