From 91c463d4bfe3e57330e5fbce63c98eb22d5b208e Mon Sep 17 00:00:00 2001 From: /dev/humancontroller Date: Thu, 13 Apr 2017 11:30:00 +0000 Subject: implement !setdevmode: an admin command to switch developer mode on or off --- src/game/g_admin.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'src/game/g_admin.c') diff --git a/src/game/g_admin.c b/src/game/g_admin.c index 8a77326..99a08e5 100644 --- a/src/game/g_admin.c +++ b/src/game/g_admin.c @@ -351,6 +351,11 @@ g_admin_cmd_t g_admin_cmds[ ] = "[^3name|admin#^7]" }, + {"setdevmode", G_admin_setdevmode, "setdevmode", + "switch developer mode on or off", + "[^3on|off^7]" + }, + {"setlevel", G_admin_setlevel, "setlevel", "sets the admin level of a player", "[^3name|slot#|admin#^7] [^3level^7]" @@ -2973,6 +2978,50 @@ static qboolean admin_create_ban_check_repeats( gentity_t *ent, return qtrue; } +qboolean G_admin_setdevmode( gentity_t *ent, int skiparg ) +{ + char str[ 5 ]; + + if( G_SayArgc() != 2 + skiparg ) + { + ADMP( "^3!setdevmode: ^7usage: !setdevmode [on|off]\n" ); + return qfalse; + } + G_SayArgv( 1 + skiparg, str, sizeof( str ) ); + + if( !Q_stricmp( str, "on" ) ) + { + if( g_cheats.integer ) + { + ADMP( "^3!setdevmode: ^7developer mode is already on\n" ); + return qfalse; + } + trap_Cvar_Set( "sv_cheats", "1" ); + trap_Cvar_Update( &g_cheats ); + AP( va( "print \"^3!setdevmode: ^7%s ^7has switched developer mode on\n\"", + ent ? G_admin_adminPrintName( ent ) : "console" ) ); + } + else if( !Q_stricmp( str, "off" ) ) + { + if( !g_cheats.integer ) + { + ADMP( "^3!setdevmode: ^7developer mode is already off\n" ); + return qfalse; + } + trap_Cvar_Set( "sv_cheats", "0" ); + trap_Cvar_Update( &g_cheats ); + AP( va( "print \"^3!setdevmode: ^7%s ^7has switched developer mode off\n\"", + ent ? G_admin_adminPrintName( ent ) : "console" ) ); + } + else + { + ADMP( "^3!setdevmode: ^7usage: !setdevmode [on|off]\n" ); + return qfalse; + } + + return qtrue; +} + qboolean G_admin_kick( gentity_t *ent, int skiparg ) { int pids[ MAX_CLIENTS ]; -- cgit