float CallbackChain_ReturnValue; // read-only field of the current return value
entity CallbackChain_New(string name);
-float CallbackChain_Add(entity cb, float() func, float order)
+float CallbackChain_Add(entity cb, float() func, float order);
float CallbackChain_Remove(entity cb, float() func);
// a callback function is like this:
// float mycallback(entity me)
MUTATOR_HOOKABLE(ClientDisconnect);
// called when a player disconnects
+
+MUTATOR_HOOKABLE(PlayerCanJoin);
+ // called when a player tries to join
+ // if this returns TRUE, the player cannot join
MUTATOR_HOOKABLE(PlayerDies);
// called when a player dies to e.g. remove stuff he was carrying.
// return error to request removal
// INPUT: self - turret
+MUTATOR_HOOKABLE(TurretValidateTarget);
+ // return target score
+ // INPUT:
+ entity turret_target;
+ entity 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(MonsterDropItem);
+ // called when a monster is dropping loot
+ // INPUT, OUTPUT:
+ string monster_dropitem;
+ string monster_dropsize;
+
+MUTATOR_HOOKABLE(MonsterMove);
+ // called when a monster moves
+ // 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(PlayerDamage_SplitHealthArmor);
// called when a player gets damaged to e.g. remove stuff he was carrying.
// IN+OUT
string ret_string;
+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,
+ // but if your mutator uses something different then you can handle it
+ // in a special manner using this hook
+ // INPUT
+ entity self; // the player who pressed impulse 33
+
+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(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
+ entity self; // player
+
MUTATOR_HOOKABLE(ItemTouch);
// called at when a item is touched. Called early, can edit item properties.
entity self; // item
MUTATOR_HOOKABLE(ClientConnect);
// called at when a player connect
entity self; // player
+
+MUTATOR_HOOKABLE(HavocBot_ChooseRule);
+ entity self;