set g_respawn_delay_large 2 "large game number of seconds you have to wait before you can respawn again"
set g_respawn_delay_large_count 8 "Player count per team for g_respawn_delay_large. <=0 values mean the minimum amount of players to have gameplay (typically 2 in FFA, 1 in teamplay)."
set g_respawn_delay_max 0 "number of seconds you can wait before you're forced to respawn (only effective with g_forced_respawn 1)"
+set g_respawn_delay_forced 0 "enforce regular respawn delay (prevent gamemode specific respawn delays)"
set g_respawn_waves 0 "respawn in waves (every n seconds), intended to decrease overwhelming base attacks"
// overtime
float autocvar_g_respawn_delay_large;
int autocvar_g_respawn_delay_large_count;
float autocvar_g_respawn_delay_max;
+bool autocvar_g_respawn_delay_forced;
bool autocvar_g_respawn_ghosts;
float autocvar_g_respawn_ghosts_maxtime;
float autocvar_g_respawn_ghosts_speed;
#define GAMETYPE_DEFAULTED_SETTING(str) \
((gametype_setting_tmp = cvar(strcat("g_", GetGametype(), "_" #str))), \
(gametype_setting_tmp < 0) ? 0 : \
- (gametype_setting_tmp == 0) ? max(0, autocvar_g_##str) : \
+ (gametype_setting_tmp == 0 || autocvar_g_respawn_delay_forced) ? max(0, autocvar_g_##str) : \
gametype_setting_tmp)
return;
}
}
+ else if(MUTATOR_CALLHOOK(SV_ParseServerCommand, strtolower(argv(0)), argc, command))
+ {
+ return; // handled by a mutator
+ }
else if(BanCommand(command))
{
return; // handled by server/command/ipban.qc
string cmd_string;
MUTATOR_HOOKABLE(SV_ParseClientCommand, EV_SV_ParseClientCommand);
+/** please read EV_SV_ParseClientCommand description before using */
+#define EV_SV_ParseServerCommand(i, o) \
+ /** command name */ i(string, cmd_name) \
+ /** also, argv() can be used */ i(int, cmd_argc) \
+ /** whole command, use only if you really have to */ i(string, cmd_string) \
+ /**/
+//string cmd_name;
+//int cmd_argc;
+//string cmd_string;
+MUTATOR_HOOKABLE(SV_ParseServerCommand, EV_SV_ParseServerCommand);
+
/**
* called when a spawnpoint is being evaluated
* return 1 to make the spawnpoint unusable