2011-08-27 15:11:39 +00:00
/* (c) Shereef Marzouk. See "licence DDRace.txt" and the readme.txt in the root of the distribution for more information. */
# include "gamecontext.h"
# include <engine/shared/config.h>
2014-01-01 21:34:10 +00:00
# include <engine/shared/protocol.h>
2011-08-27 15:11:39 +00:00
# include <engine/server/server.h>
# include <game/server/teams.h>
# include <game/server/gamemodes/DDRace.h>
# include <game/version.h>
# include <game/generated/nethash.cpp>
# if defined(CONF_SQL)
2011-12-25 13:51:04 +00:00
# include <game/server/score/sql_score.h>
2011-08-27 15:11:39 +00:00
# endif
bool CheckClientID ( int ClientID ) ;
void CGameContext : : ConCredits ( IConsole : : IResult * pResult , void * pUserData )
{
2011-12-25 13:51:04 +00:00
CGameContext * pSelf = ( CGameContext * ) pUserData ;
2013-12-31 12:35:59 +00:00
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " credit " ,
2014-07-09 18:01:40 +00:00
" DDRaceNetwork is maintained by deen. " ) ;
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " credit " ,
2013-12-31 12:35:59 +00:00
" Many ideas from the great community, " ) ;
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " credit " ,
2014-08-24 22:24:07 +00:00
" Help and code by eeeee, HMH, east, CookieMichal, Savander & others. " ) ;
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " credit " ,
2013-12-31 12:35:59 +00:00
" Based on DDRace by the DDRace developers, " ) ;
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " credit " ,
2013-12-31 12:35:59 +00:00
" which is a mod of Teeworlds by the Teeworlds developers. " ) ;
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " credit " ,
2013-12-31 12:35:59 +00:00
" Check the changes on ddnet.tw " ) ;
2011-08-27 15:11:39 +00:00
}
void CGameContext : : ConInfo ( IConsole : : IResult * pResult , void * pUserData )
{
2011-12-25 13:51:04 +00:00
CGameContext * pSelf = ( CGameContext * ) pUserData ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " info " ,
2013-08-13 16:32:33 +00:00
" DDraceNetwork Mod. Version: " GAME_VERSION ) ;
2011-08-27 15:11:39 +00:00
# if defined( GIT_SHORTREV_HASH )
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " info " ,
" Git revision hash: " GIT_SHORTREV_HASH ) ;
2011-08-27 15:11:39 +00:00
# endif
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " info " ,
2013-08-12 19:55:04 +00:00
" Official site: ddnet.tw " ) ;
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " info " ,
" For more Info /cmdlist " ) ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " info " ,
2013-08-12 19:55:04 +00:00
" Or visit ddnet.tw " ) ;
2011-08-27 15:11:39 +00:00
}
void CGameContext : : ConHelp ( IConsole : : IResult * pResult , void * pUserData )
{
2011-12-25 13:51:04 +00:00
CGameContext * pSelf = ( CGameContext * ) pUserData ;
2011-08-27 15:11:39 +00:00
2011-12-25 13:51:04 +00:00
if ( pResult - > NumArguments ( ) = = 0 )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " help " ,
" /cmdlist will show a list of all chat commands " ) ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " help " ,
" /help + any command will show you the help for this command " ) ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " help " ,
" Example /help settings will display the help about " ) ;
2011-08-27 15:11:39 +00:00
}
else
{
const char * pArg = pResult - > GetString ( 0 ) ;
2011-12-25 13:51:04 +00:00
const IConsole : : CCommandInfo * pCmdInfo =
pSelf - > Console ( ) - > GetCommandInfo ( pArg , CFGFLAG_SERVER , false ) ;
if ( pCmdInfo & & pCmdInfo - > m_pHelp )
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " help " ,
pCmdInfo - > m_pHelp ) ;
2011-08-27 15:11:39 +00:00
else
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" help " ,
" Command is either unknown or you have given a blank command without any parameters. " ) ;
2011-08-27 15:11:39 +00:00
}
}
void CGameContext : : ConSettings ( IConsole : : IResult * pResult , void * pUserData )
{
2011-12-25 13:51:04 +00:00
CGameContext * pSelf = ( CGameContext * ) pUserData ;
2011-08-27 15:11:39 +00:00
2011-12-25 13:51:04 +00:00
if ( pResult - > NumArguments ( ) = = 0 )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" setting " ,
" to check a server setting say /settings and setting's name, setting names are: " ) ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " setting " ,
" teams, cheats, collision, hooking, endlesshooking, me, " ) ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " setting " ,
" hitting, oldlaser, timeout, votes, pause and scores " ) ;
2011-08-27 15:11:39 +00:00
}
else
{
const char * pArg = pResult - > GetString ( 0 ) ;
char aBuf [ 256 ] ;
float ColTemp ;
float HookTemp ;
pSelf - > m_Tuning . Get ( " player_collision " , & ColTemp ) ;
pSelf - > m_Tuning . Get ( " player_hooking " , & HookTemp ) ;
2011-12-25 13:51:04 +00:00
if ( str_comp ( pArg , " teams " ) = = 0 )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
str_format (
aBuf ,
sizeof ( aBuf ) ,
" %s %s " ,
g_Config . m_SvTeam = = 1 ?
" Teams are available on this server " :
2013-12-19 22:04:01 +00:00
( g_Config . m_SvTeam = = 0 | | g_Config . m_SvTeam = = 3 ) ?
2011-12-25 13:51:04 +00:00
" Teams are not available on this server " :
" You have to be in a team to play on this server " , /*g_Config.m_SvTeamStrict ? "and if you die in a team all of you die" : */
" and if you die in a team only you die " ) ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " settings " ,
aBuf ) ;
2011-08-27 15:11:39 +00:00
}
2011-12-25 13:51:04 +00:00
else if ( str_comp ( pArg , " collision " ) = = 0 )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" settings " ,
ColTemp ?
" Players can collide on this server " :
" Players Can't collide on this server " ) ;
2011-08-27 15:11:39 +00:00
}
2011-12-25 13:51:04 +00:00
else if ( str_comp ( pArg , " hooking " ) = = 0 )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" settings " ,
HookTemp ?
" Players can hook each other on this server " :
" Players Can't hook each other on this server " ) ;
2011-08-27 15:11:39 +00:00
}
2011-12-25 13:51:04 +00:00
else if ( str_comp ( pArg , " endlesshooking " ) = = 0 )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" settings " ,
g_Config . m_SvEndlessDrag ?
" Players can hook time is unlimited " :
" Players can hook time is limited " ) ;
2011-08-27 15:11:39 +00:00
}
2011-12-25 13:51:04 +00:00
else if ( str_comp ( pArg , " hitting " ) = = 0 )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" settings " ,
g_Config . m_SvHit ?
" Player's weapons affect each other " :
" Player's weapons has no affect on each other " ) ;
2011-08-27 15:11:39 +00:00
}
2011-12-25 13:51:04 +00:00
else if ( str_comp ( pArg , " oldlaser " ) = = 0 )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" settings " ,
g_Config . m_SvOldLaser ?
" Lasers can hit you if you shot them and that they pull you towards the bounce origin (Like DDRace Beta) " :
" Lasers can't hit you if you shot them, and they pull others towards the shooter " ) ;
2011-08-27 15:11:39 +00:00
}
2011-12-25 13:51:04 +00:00
else if ( str_comp ( pArg , " me " ) = = 0 )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" settings " ,
g_Config . m_SvSlashMe ?
" Players can use /me commands the famous IRC Command " :
" Players Can't use the /me command " ) ;
2011-08-27 15:11:39 +00:00
}
2011-12-25 13:51:04 +00:00
else if ( str_comp ( pArg , " timeout " ) = = 0 )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
str_format ( aBuf , sizeof ( aBuf ) ,
2013-08-17 23:06:36 +00:00
" The Server Timeout is currently set to %d seconds " ,
2011-12-25 13:51:04 +00:00
g_Config . m_ConnTimeout ) ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " settings " ,
aBuf ) ;
2011-08-27 15:11:39 +00:00
}
2011-12-25 13:51:04 +00:00
else if ( str_comp ( pArg , " votes " ) = = 0 )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" settings " ,
g_Config . m_SvVoteKick ?
" Players can use Callvote menu tab to kick offenders " :
" Players Can't use the Callvote menu tab to kick offenders " ) ;
if ( g_Config . m_SvVoteKick )
str_format (
aBuf ,
sizeof ( aBuf ) ,
" Players are banned for %d second(s) if they get voted off " ,
g_Config . m_SvVoteKickBantime ) ;
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" settings " ,
g_Config . m_SvVoteKickBantime ?
aBuf :
" Players are just kicked and not banned if they get voted off " ) ;
2011-08-27 15:11:39 +00:00
}
2011-12-25 13:51:04 +00:00
else if ( str_comp ( pArg , " pause " ) = = 0 )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" settings " ,
g_Config . m_SvPauseable ?
g_Config . m_SvPauseTime ?
" /pause is available on this server and it pauses your time too " :
" /pause is available on this server but it doesn't pause your time "
: " /pause is NOT available on this server " ) ;
2011-08-27 15:11:39 +00:00
}
2011-12-25 13:51:04 +00:00
else if ( str_comp ( pArg , " scores " ) = = 0 )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" settings " ,
g_Config . m_SvHideScore ?
" Scores are private on this server " :
" Scores are public on this server " ) ;
2011-08-27 15:11:39 +00:00
}
}
}
void CGameContext : : ConRules ( IConsole : : IResult * pResult , void * pUserData )
{
2011-12-25 13:51:04 +00:00
CGameContext * pSelf = ( CGameContext * ) pUserData ;
2011-08-27 15:11:39 +00:00
bool Printed = false ;
2011-12-25 13:51:04 +00:00
if ( g_Config . m_SvDDRaceRules )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " rules " ,
2013-12-31 12:36:05 +00:00
" Be nice. " ) ;
2011-08-27 15:11:39 +00:00
Printed = true ;
}
2011-12-25 13:51:04 +00:00
if ( g_Config . m_SvRulesLine1 [ 0 ] )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " rules " ,
g_Config . m_SvRulesLine1 ) ;
2011-08-27 15:11:39 +00:00
Printed = true ;
}
2011-12-25 13:51:04 +00:00
if ( g_Config . m_SvRulesLine2 [ 0 ] )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " rules " ,
g_Config . m_SvRulesLine2 ) ;
2011-08-27 15:11:39 +00:00
Printed = true ;
}
2011-12-25 13:51:04 +00:00
if ( g_Config . m_SvRulesLine3 [ 0 ] )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " rules " ,
g_Config . m_SvRulesLine3 ) ;
2011-08-27 15:11:39 +00:00
Printed = true ;
}
2011-12-25 13:51:04 +00:00
if ( g_Config . m_SvRulesLine4 [ 0 ] )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " rules " ,
g_Config . m_SvRulesLine4 ) ;
2011-08-27 15:11:39 +00:00
Printed = true ;
}
2011-12-25 13:51:04 +00:00
if ( g_Config . m_SvRulesLine5 [ 0 ] )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " rules " ,
g_Config . m_SvRulesLine5 ) ;
2011-08-27 15:11:39 +00:00
Printed = true ;
}
2011-12-25 13:51:04 +00:00
if ( g_Config . m_SvRulesLine6 [ 0 ] )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " rules " ,
g_Config . m_SvRulesLine6 ) ;
2011-08-27 15:11:39 +00:00
Printed = true ;
}
2011-12-25 13:51:04 +00:00
if ( g_Config . m_SvRulesLine7 [ 0 ] )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " rules " ,
g_Config . m_SvRulesLine7 ) ;
2011-08-27 15:11:39 +00:00
Printed = true ;
}
2011-12-25 13:51:04 +00:00
if ( g_Config . m_SvRulesLine8 [ 0 ] )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " rules " ,
g_Config . m_SvRulesLine8 ) ;
Printed = true ;
2011-08-27 15:11:39 +00:00
}
2011-12-25 13:51:04 +00:00
if ( g_Config . m_SvRulesLine9 [ 0 ] )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " rules " ,
g_Config . m_SvRulesLine9 ) ;
Printed = true ;
2011-08-27 15:11:39 +00:00
}
2011-12-25 13:51:04 +00:00
if ( g_Config . m_SvRulesLine10 [ 0 ] )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " rules " ,
g_Config . m_SvRulesLine10 ) ;
2011-08-27 15:11:39 +00:00
Printed = true ;
}
2011-12-25 13:51:04 +00:00
if ( ! Printed )
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " rules " ,
" No Rules Defined, Kill em all!! " ) ;
2011-08-27 15:11:39 +00:00
}
void CGameContext : : ConTogglePause ( IConsole : : IResult * pResult , void * pUserData )
{
2011-12-25 13:51:04 +00:00
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
2011-08-27 15:11:39 +00:00
char aBuf [ 128 ] ;
2011-12-29 13:58:39 +00:00
if ( ! g_Config . m_SvPauseable )
{
ConToggleSpec ( pResult , pUserData ) ;
return ;
}
2011-08-27 15:11:39 +00:00
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
2011-12-25 13:51:04 +00:00
if ( ! pPlayer )
2011-08-27 15:11:39 +00:00
return ;
2012-03-08 16:24:23 +00:00
if ( pPlayer - > GetCharacter ( ) = = 0 )
{
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " pause " ,
" You can't pause while you are dead/a spectator. " ) ;
2012-03-31 18:27:15 +00:00
return ;
2012-03-08 16:24:23 +00:00
}
2012-03-07 17:51:30 +00:00
if ( pPlayer - > m_Paused = = CPlayer : : PAUSED_SPEC & & g_Config . m_SvPauseable )
{
ConToggleSpec ( pResult , pUserData ) ;
return ;
}
2011-12-29 13:58:39 +00:00
if ( pPlayer - > m_Paused = = CPlayer : : PAUSED_FORCE )
2011-08-27 15:11:39 +00:00
{
2011-12-29 13:58:39 +00:00
str_format ( aBuf , sizeof ( aBuf ) , " You are force-paused. %ds left. " , pPlayer - > m_ForcePauseTime / pSelf - > Server ( ) - > TickSpeed ( ) ) ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " pause " , aBuf ) ;
return ;
2011-08-27 15:11:39 +00:00
}
2011-12-29 13:58:39 +00:00
pPlayer - > m_Paused = ( pPlayer - > m_Paused = = CPlayer : : PAUSED_PAUSED ) ? CPlayer : : PAUSED_NONE : CPlayer : : PAUSED_PAUSED ;
}
void CGameContext : : ConToggleSpec ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) ) return ;
char aBuf [ 128 ] ;
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
2012-03-08 16:24:23 +00:00
if ( pPlayer - > GetCharacter ( ) = = 0 )
{
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " spec " ,
" You can't spec while you are dead/a spectator. " ) ;
2012-03-31 18:27:15 +00:00
return ;
2012-03-08 16:24:23 +00:00
}
2011-12-29 13:58:39 +00:00
if ( pPlayer - > m_Paused = = CPlayer : : PAUSED_FORCE )
{
str_format ( aBuf , sizeof ( aBuf ) , " You are force-paused. %ds left. " , pPlayer - > m_ForcePauseTime / pSelf - > Server ( ) - > TickSpeed ( ) ) ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " spec " , aBuf ) ;
return ;
}
pPlayer - > m_Paused = ( pPlayer - > m_Paused = = CPlayer : : PAUSED_SPEC ) ? CPlayer : : PAUSED_NONE : CPlayer : : PAUSED_SPEC ;
2011-08-27 15:11:39 +00:00
}
2013-07-21 06:46:52 +00:00
void CGameContext : : ConTeamTop5 ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
# if defined(CONF_SQL)
if ( pSelf - > m_apPlayers [ pResult - > m_ClientID ] & & g_Config . m_SvUseSQL )
if ( pSelf - > m_apPlayers [ pResult - > m_ClientID ] - > m_LastSQLQuery + pSelf - > Server ( ) - > TickSpeed ( ) > = pSelf - > Server ( ) - > Tick ( ) )
return ;
# endif
if ( g_Config . m_SvHideScore )
{
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " teamtop5 " ,
" Showing the team top 5 is not allowed on this server. " ) ;
return ;
}
if ( pResult - > NumArguments ( ) > 0 & & pResult - > GetInteger ( 0 ) > = 0 )
pSelf - > Score ( ) - > ShowTeamTop5 ( pResult , pResult - > m_ClientID , pUserData ,
pResult - > GetInteger ( 0 ) ) ;
else
pSelf - > Score ( ) - > ShowTeamTop5 ( pResult , pResult - > m_ClientID , pUserData ) ;
# if defined(CONF_SQL)
if ( pSelf - > m_apPlayers [ pResult - > m_ClientID ] & & g_Config . m_SvUseSQL )
pSelf - > m_apPlayers [ pResult - > m_ClientID ] - > m_LastSQLQuery = pSelf - > Server ( ) - > Tick ( ) ;
2013-07-28 15:53:07 +00:00
# endif
}
2011-08-27 15:11:39 +00:00
void CGameContext : : ConTop5 ( IConsole : : IResult * pResult , void * pUserData )
{
2011-12-25 13:51:04 +00:00
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
2011-08-27 15:11:39 +00:00
2011-09-07 22:51:55 +00:00
# if defined(CONF_SQL)
2011-12-25 13:51:04 +00:00
if ( pSelf - > m_apPlayers [ pResult - > m_ClientID ] & & g_Config . m_SvUseSQL )
if ( pSelf - > m_apPlayers [ pResult - > m_ClientID ] - > m_LastSQLQuery + pSelf - > Server ( ) - > TickSpeed ( ) > = pSelf - > Server ( ) - > Tick ( ) )
return ;
2011-09-07 22:51:55 +00:00
# endif
2011-12-25 13:51:04 +00:00
if ( g_Config . m_SvHideScore )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " top5 " ,
" Showing the top 5 is not allowed on this server. " ) ;
2011-08-27 15:11:39 +00:00
return ;
}
2012-03-23 21:32:20 +00:00
if ( pResult - > NumArguments ( ) > 0 & & pResult - > GetInteger ( 0 ) > = 0 )
2011-12-25 13:51:04 +00:00
pSelf - > Score ( ) - > ShowTop5 ( pResult , pResult - > m_ClientID , pUserData ,
pResult - > GetInteger ( 0 ) ) ;
else
pSelf - > Score ( ) - > ShowTop5 ( pResult , pResult - > m_ClientID , pUserData ) ;
2011-09-07 22:51:55 +00:00
# if defined(CONF_SQL)
2011-12-25 13:51:04 +00:00
if ( pSelf - > m_apPlayers [ pResult - > m_ClientID ] & & g_Config . m_SvUseSQL )
pSelf - > m_apPlayers [ pResult - > m_ClientID ] - > m_LastSQLQuery = pSelf - > Server ( ) - > Tick ( ) ;
2011-09-07 22:51:55 +00:00
# endif
2011-08-27 15:11:39 +00:00
}
2011-08-31 10:30:18 +00:00
2011-08-27 15:11:39 +00:00
# if defined(CONF_SQL)
void CGameContext : : ConTimes ( IConsole : : IResult * pResult , void * pUserData )
{
if ( ! CheckClientID ( pResult - > m_ClientID ) ) return ;
2011-08-31 22:30:37 +00:00
CGameContext * pSelf = ( CGameContext * ) pUserData ;
2011-08-27 15:11:39 +00:00
2011-09-07 22:51:55 +00:00
# if defined(CONF_SQL)
2011-12-25 13:51:04 +00:00
if ( pSelf - > m_apPlayers [ pResult - > m_ClientID ] & & g_Config . m_SvUseSQL )
if ( pSelf - > m_apPlayers [ pResult - > m_ClientID ] - > m_LastSQLQuery + pSelf - > Server ( ) - > TickSpeed ( ) > = pSelf - > Server ( ) - > Tick ( ) )
return ;
2011-09-07 22:51:55 +00:00
# endif
2011-08-27 15:11:39 +00:00
if ( g_Config . m_SvUseSQL )
{
CSqlScore * pScore = ( CSqlScore * ) pSelf - > Score ( ) ;
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
if ( pResult - > NumArguments ( ) = = 0 )
{
pScore - > ShowTimes ( pPlayer - > GetCID ( ) , 1 ) ;
return ;
}
else if ( pResult - > NumArguments ( ) < 3 )
{
if ( pResult - > NumArguments ( ) = = 1 )
{
if ( pResult - > GetInteger ( 0 ) ! = 0 )
pScore - > ShowTimes ( pPlayer - > GetCID ( ) , pResult - > GetInteger ( 0 ) ) ;
else
pScore - > ShowTimes ( pPlayer - > GetCID ( ) , ( str_comp ( pResult - > GetString ( 0 ) , " me " ) = = 0 ) ? pSelf - > Server ( ) - > ClientName ( pResult - > m_ClientID ) : pResult - > GetString ( 0 ) , 1 ) ;
return ;
}
else if ( pResult - > GetInteger ( 1 ) ! = 0 )
{
pScore - > ShowTimes ( pPlayer - > GetCID ( ) , ( str_comp ( pResult - > GetString ( 0 ) , " me " ) = = 0 ) ? pSelf - > Server ( ) - > ClientName ( pResult - > m_ClientID ) : pResult - > GetString ( 0 ) , pResult - > GetInteger ( 1 ) ) ;
return ;
}
}
2011-12-25 13:51:04 +00:00
2011-09-02 08:45:26 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " times " , " /times needs 0, 1 or 2 parameter. 1. = name, 2. = start number " ) ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " times " , " Example: /times, /times me, /times Hans, /times \" Papa Smurf \" 5 " ) ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " times " , " Bad: /times Papa Smurf 5 # Good: /times \" Papa Smurf \" 5 " ) ;
2011-09-07 22:51:55 +00:00
# if defined(CONF_SQL)
if ( pSelf - > m_apPlayers [ pResult - > m_ClientID ] & & g_Config . m_SvUseSQL )
pSelf - > m_apPlayers [ pResult - > m_ClientID ] - > m_LastSQLQuery = pSelf - > Server ( ) - > Tick ( ) ;
# endif
2011-12-25 13:51:04 +00:00
}
2011-08-27 15:11:39 +00:00
}
# endif
2013-12-22 17:30:13 +00:00
void CGameContext : : ConDND ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) ) return ;
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
if ( pPlayer - > m_DND )
{
pPlayer - > m_DND = false ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " dnd " , " You will receive global chat and server messages " ) ;
}
else
{
pPlayer - > m_DND = true ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " dnd " , " You will not receive any further global chat and server messages " ) ;
}
}
2014-02-19 20:22:36 +00:00
void CGameContext : : ConMap ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
2014-03-07 22:58:22 +00:00
if ( g_Config . m_SvMapVote = = 0 )
{
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " map " ,
" Admin has disabled /map " ) ;
return ;
}
2014-02-19 20:22:36 +00:00
if ( pResult - > NumArguments ( ) < = 0 )
{
2014-02-19 20:35:56 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " map " , " Example: /map adr3 to call vote for Adrenaline 3. This means that the map name must start with 'a' and contain the characters 'd', 'r' and '3' in that order " ) ;
2014-02-19 20:22:36 +00:00
return ;
}
2014-04-23 23:02:03 +00:00
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
2014-02-19 20:22:36 +00:00
# if defined(CONF_SQL)
2014-04-23 23:02:03 +00:00
if ( g_Config . m_SvUseSQL )
if ( pPlayer - > m_LastSQLQuery + pSelf - > Server ( ) - > TickSpeed ( ) > = pSelf - > Server ( ) - > Tick ( ) )
2014-02-19 20:22:36 +00:00
return ;
# endif
pSelf - > Score ( ) - > MapVote ( pResult - > m_ClientID , pResult - > GetString ( 0 ) ) ;
# if defined(CONF_SQL)
2014-04-23 23:02:03 +00:00
if ( g_Config . m_SvUseSQL )
pPlayer - > m_LastSQLQuery = pSelf - > Server ( ) - > Tick ( ) ;
2014-02-19 20:22:36 +00:00
# endif
}
2013-11-28 14:11:59 +00:00
void CGameContext : : ConMapPoints ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
2014-04-23 23:02:03 +00:00
# if defined(CONF_SQL)
if ( g_Config . m_SvUseSQL )
if ( pPlayer - > m_LastSQLQuery + pSelf - > Server ( ) - > TickSpeed ( ) > = pSelf - > Server ( ) - > Tick ( ) )
return ;
# endif
2013-11-28 14:11:59 +00:00
if ( pResult - > NumArguments ( ) > 0 )
pSelf - > Score ( ) - > MapPoints ( pResult - > m_ClientID , pResult - > GetString ( 0 ) ) ;
else
pSelf - > Score ( ) - > MapPoints ( pResult - > m_ClientID , g_Config . m_SvMap ) ;
# if defined(CONF_SQL)
2014-04-23 23:02:03 +00:00
if ( g_Config . m_SvUseSQL )
pPlayer - > m_LastSQLQuery = pSelf - > Server ( ) - > Tick ( ) ;
2013-11-28 14:11:59 +00:00
# endif
}
2014-08-09 15:25:29 +00:00
void CGameContext : : ConTimeout ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
for ( int i = 0 ; i < pSelf - > Server ( ) - > MaxClients ( ) ; i + + )
{
if ( i = = pResult - > m_ClientID ) continue ;
if ( ! pSelf - > m_apPlayers [ i ] ) continue ;
if ( str_comp ( pSelf - > m_apPlayers [ i ] - > m_TimeoutCode , pResult - > GetString ( 0 ) ) ) continue ;
if ( ( ( CServer * ) pSelf - > Server ( ) ) - > m_NetServer . SetTimedOut ( i , pResult - > m_ClientID ) )
{
2014-08-09 15:53:24 +00:00
( ( CServer * ) pSelf - > Server ( ) ) - > DelClientCallback ( pResult - > m_ClientID , " Timeout Protection used " , ( ( CServer * ) pSelf - > Server ( ) ) ) ;
2014-08-17 02:39:33 +00:00
if ( pSelf - > m_apPlayers [ i ] - > GetCharacter ( ) )
2014-08-17 03:04:37 +00:00
( ( CGameContext * ) ( ( ( CServer * ) pSelf - > Server ( ) ) - > GameServer ( ) ) ) - > SendTuningParams ( i , pSelf - > m_apPlayers [ i ] - > GetCharacter ( ) - > m_TuneZone ) ;
2014-08-09 15:53:24 +00:00
return ;
2014-08-09 15:25:29 +00:00
}
}
2014-08-09 16:08:00 +00:00
( ( CServer * ) pSelf - > Server ( ) ) - > m_NetServer . SetTimeoutProtected ( pResult - > m_ClientID ) ;
2014-08-09 15:25:29 +00:00
str_copy ( pPlayer - > m_TimeoutCode , pResult - > GetString ( 0 ) , sizeof ( pPlayer - > m_TimeoutCode ) ) ;
}
2014-07-26 12:46:31 +00:00
void CGameContext : : ConSave ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
# if defined(CONF_SQL)
if ( ! g_Config . m_SvSaveGames )
{
pSelf - > SendChatTarget ( pResult - > m_ClientID , " Save-function is disabled on this server " ) ;
return ;
}
if ( g_Config . m_SvUseSQL )
if ( pPlayer - > m_LastSQLQuery + pSelf - > Server ( ) - > TickSpeed ( ) > = pSelf - > Server ( ) - > Tick ( ) )
return ;
# endif
int Team = ( ( CGameControllerDDRace * ) pSelf - > m_pController ) - > m_Teams . m_Core . Team ( pResult - > m_ClientID ) ;
pSelf - > Score ( ) - > SaveTeam ( Team , pResult - > GetString ( 0 ) , pResult - > m_ClientID ) ;
# if defined(CONF_SQL)
if ( g_Config . m_SvUseSQL )
pPlayer - > m_LastSQLQuery = pSelf - > Server ( ) - > Tick ( ) ;
# endif
}
void CGameContext : : ConLoad ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
# if defined(CONF_SQL)
if ( ! g_Config . m_SvSaveGames )
{
pSelf - > SendChatTarget ( pResult - > m_ClientID , " Save-function is disabled on this server " ) ;
return ;
}
if ( g_Config . m_SvUseSQL )
if ( pPlayer - > m_LastSQLQuery + pSelf - > Server ( ) - > TickSpeed ( ) > = pSelf - > Server ( ) - > Tick ( ) )
return ;
# endif
if ( pResult - > NumArguments ( ) > 0 )
pSelf - > Score ( ) - > LoadTeam ( pResult - > GetString ( 0 ) , pResult - > m_ClientID ) ;
else
return ;
# if defined(CONF_SQL)
if ( g_Config . m_SvUseSQL )
pPlayer - > m_LastSQLQuery = pSelf - > Server ( ) - > Tick ( ) ;
# endif
}
2013-07-21 06:46:52 +00:00
void CGameContext : : ConTeamRank ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
2014-04-23 23:02:03 +00:00
# if defined(CONF_SQL)
if ( g_Config . m_SvUseSQL )
if ( pPlayer - > m_LastSQLQuery + pSelf - > Server ( ) - > TickSpeed ( ) > = pSelf - > Server ( ) - > Tick ( ) )
return ;
# endif
2013-07-21 06:46:52 +00:00
if ( pResult - > NumArguments ( ) > 0 )
if ( ! g_Config . m_SvHideScore )
pSelf - > Score ( ) - > ShowTeamRank ( pResult - > m_ClientID , pResult - > GetString ( 0 ) ,
true ) ;
else
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" teamrank " ,
" Showing the team rank of other players is not allowed on this server. " ) ;
else
pSelf - > Score ( ) - > ShowTeamRank ( pResult - > m_ClientID ,
pSelf - > Server ( ) - > ClientName ( pResult - > m_ClientID ) ) ;
# if defined(CONF_SQL)
2014-04-23 23:02:03 +00:00
if ( g_Config . m_SvUseSQL )
pPlayer - > m_LastSQLQuery = pSelf - > Server ( ) - > Tick ( ) ;
2013-07-21 06:46:52 +00:00
# endif
}
2011-08-27 15:11:39 +00:00
void CGameContext : : ConRank ( IConsole : : IResult * pResult , void * pUserData )
{
2011-12-25 13:51:04 +00:00
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
2011-08-27 15:11:39 +00:00
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
2011-12-25 13:51:04 +00:00
if ( ! pPlayer )
2011-08-27 15:11:39 +00:00
return ;
2014-04-23 23:02:03 +00:00
# if defined(CONF_SQL)
if ( g_Config . m_SvUseSQL )
if ( pPlayer - > m_LastSQLQuery + pSelf - > Server ( ) - > TickSpeed ( ) > = pSelf - > Server ( ) - > Tick ( ) )
return ;
# endif
2011-12-25 13:51:04 +00:00
if ( pResult - > NumArguments ( ) > 0 )
if ( ! g_Config . m_SvHideScore )
pSelf - > Score ( ) - > ShowRank ( pResult - > m_ClientID , pResult - > GetString ( 0 ) ,
true ) ;
2011-08-27 15:11:39 +00:00
else
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" rank " ,
" Showing the rank of other players is not allowed on this server. " ) ;
2011-08-27 15:11:39 +00:00
else
2011-12-25 13:51:04 +00:00
pSelf - > Score ( ) - > ShowRank ( pResult - > m_ClientID ,
pSelf - > Server ( ) - > ClientName ( pResult - > m_ClientID ) ) ;
2011-09-07 22:51:55 +00:00
# if defined(CONF_SQL)
2014-04-23 23:02:03 +00:00
if ( g_Config . m_SvUseSQL )
pPlayer - > m_LastSQLQuery = pSelf - > Server ( ) - > Tick ( ) ;
2011-09-07 22:51:55 +00:00
# endif
2011-08-27 15:11:39 +00:00
}
2013-11-15 23:44:49 +00:00
void CGameContext : : ConLockTeam ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
int Team = ( ( CGameControllerDDRace * ) pSelf - > m_pController ) - > m_Teams . m_Core . Team ( pResult - > m_ClientID ) ;
2014-04-28 15:02:39 +00:00
bool Lock = ( ( CGameControllerDDRace * ) pSelf - > m_pController ) - > m_Teams . TeamLocked ( Team ) ;
if ( pResult - > NumArguments ( ) > 0 )
Lock = ! pResult - > GetInteger ( 0 ) ;
2013-11-15 23:58:31 +00:00
if ( Team > TEAM_FLOCK & & Team < TEAM_SUPER )
2013-11-15 23:44:49 +00:00
{
2014-06-25 23:33:10 +00:00
char aBuf [ 512 ] ;
2014-04-28 15:02:39 +00:00
if ( Lock )
2013-11-15 23:44:49 +00:00
{
( ( CGameControllerDDRace * ) pSelf - > m_pController ) - > m_Teams . SetTeamLock ( Team , false ) ;
2014-07-04 07:22:21 +00:00
str_format ( aBuf , sizeof ( aBuf ) , " '%s' unlocked your team. " , pSelf - > Server ( ) - > ClientName ( pResult - > m_ClientID ) ) ;
2014-06-25 23:33:10 +00:00
2013-11-15 23:58:31 +00:00
for ( int i = 0 ; i < MAX_CLIENTS ; i + + )
if ( ( ( CGameControllerDDRace * ) pSelf - > m_pController ) - > m_Teams . m_Core . Team ( i ) = = Team )
2014-06-25 23:33:10 +00:00
pSelf - > SendChatTarget ( i , aBuf ) ;
2013-11-15 23:44:49 +00:00
}
else
{
( ( CGameControllerDDRace * ) pSelf - > m_pController ) - > m_Teams . SetTeamLock ( Team , true ) ;
2014-07-04 07:22:21 +00:00
str_format ( aBuf , sizeof ( aBuf ) , " '%s' locked your team. After the race started killing will kill everyone in your team. " , pSelf - > Server ( ) - > ClientName ( pResult - > m_ClientID ) ) ;
2014-06-25 23:33:10 +00:00
2013-11-15 23:58:31 +00:00
for ( int i = 0 ; i < MAX_CLIENTS ; i + + )
if ( ( ( CGameControllerDDRace * ) pSelf - > m_pController ) - > m_Teams . m_Core . Team ( i ) = = Team )
2014-06-25 23:33:10 +00:00
pSelf - > SendChatTarget ( i , aBuf ) ;
2013-11-15 23:44:49 +00:00
}
}
2013-11-15 23:58:31 +00:00
else
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" print " ,
" This team can't be locked " ) ;
2013-11-15 23:44:49 +00:00
}
2011-08-27 15:11:39 +00:00
void CGameContext : : ConJoinTeam ( IConsole : : IResult * pResult , void * pUserData )
{
2011-12-25 13:51:04 +00:00
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
2011-08-27 15:11:39 +00:00
2012-04-11 13:36:11 +00:00
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
2014-04-23 23:02:03 +00:00
if ( ! pPlayer )
return ;
2012-04-11 13:36:11 +00:00
2011-12-25 13:51:04 +00:00
if ( pSelf - > m_VoteCloseTime & & pSelf - > m_VoteCreator = = pResult - > m_ClientID )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" join " ,
" You are running a vote please try again after the vote is done! " ) ;
2011-08-27 15:11:39 +00:00
return ;
}
2013-12-19 22:04:01 +00:00
else if ( g_Config . m_SvTeam = = 0 | | g_Config . m_SvTeam = = 3 )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " join " ,
" Admin has disabled teams " ) ;
2011-08-27 15:11:39 +00:00
return ;
}
2014-01-05 22:29:19 +00:00
else if ( g_Config . m_SvTeam = = 2 & & pResult - > GetInteger ( 0 ) = = 0 & & pPlayer - > GetCharacter ( ) & & pPlayer - > GetCharacter ( ) - > m_LastStartWarning < pSelf - > Server ( ) - > Tick ( ) - 3 * pSelf - > Server ( ) - > TickSpeed ( ) )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" join " ,
2012-04-11 13:36:11 +00:00
" You must join a team and play with somebody or else you can \' t play " ) ;
pPlayer - > GetCharacter ( ) - > m_LastStartWarning = pSelf - > Server ( ) - > Tick ( ) ;
2011-08-27 15:11:39 +00:00
}
2011-12-25 13:51:04 +00:00
if ( pResult - > NumArguments ( ) > 0 )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
if ( pPlayer - > GetCharacter ( ) = = 0 )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " join " ,
" You can't change teams while you are dead/a spectator. " ) ;
2011-08-27 15:11:39 +00:00
}
else
{
2011-12-25 13:51:04 +00:00
if ( pPlayer - > m_Last_Team
+ pSelf - > Server ( ) - > TickSpeed ( )
* g_Config . m_SvTeamChangeDelay
> pSelf - > Server ( ) - > Tick ( ) )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " join " ,
2012-04-11 13:36:11 +00:00
" You can \' t change teams that fast! " ) ;
2011-12-25 11:20:10 +00:00
}
2014-01-01 21:34:10 +00:00
else if ( pResult - > GetInteger ( 0 ) > 0 & & pResult - > GetInteger ( 0 ) < MAX_CLIENTS & & ( ( CGameControllerDDRace * ) pSelf - > m_pController ) - > m_Teams . TeamLocked ( pResult - > GetInteger ( 0 ) ) )
2013-11-15 23:44:49 +00:00
{
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " join " ,
" This team is locked using /lock. Only members of the team can unlock it using /lock. " ) ;
}
2014-01-01 21:34:10 +00:00
else if ( pResult - > GetInteger ( 0 ) > 0 & & pResult - > GetInteger ( 0 ) < MAX_CLIENTS & & ( ( CGameControllerDDRace * ) pSelf - > m_pController ) - > m_Teams . Count ( pResult - > GetInteger ( 0 ) ) > = g_Config . m_SvTeamMaxSize )
2013-08-05 01:43:58 +00:00
{
char aBuf [ 512 ] ;
str_format ( aBuf , sizeof ( aBuf ) , " This team already has the maximum allowed size of %d players " , g_Config . m_SvTeamMaxSize ) ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " join " , aBuf ) ;
}
2011-12-25 13:51:04 +00:00
else if ( ( ( CGameControllerDDRace * ) pSelf - > m_pController ) - > m_Teams . SetCharacterTeam (
pPlayer - > GetCID ( ) , pResult - > GetInteger ( 0 ) ) )
2011-12-25 11:20:10 +00:00
{
char aBuf [ 512 ] ;
2011-12-25 13:51:04 +00:00
str_format ( aBuf , sizeof ( aBuf ) , " %s joined team %d " ,
pSelf - > Server ( ) - > ClientName ( pPlayer - > GetCID ( ) ) ,
pResult - > GetInteger ( 0 ) ) ;
2011-12-25 11:20:10 +00:00
pSelf - > SendChat ( - 1 , CGameContext : : CHAT_ALL , aBuf ) ;
pPlayer - > m_Last_Team = pSelf - > Server ( ) - > Tick ( ) ;
2011-08-27 15:11:39 +00:00
}
else
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " join " ,
" You cannot join this team at this time " ) ;
2011-08-27 15:11:39 +00:00
}
}
}
else
{
char aBuf [ 512 ] ;
2011-12-25 13:51:04 +00:00
if ( ! pPlayer - > IsPlaying ( ) )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" join " ,
" You can't check your team while you are dead/a spectator. " ) ;
2011-08-27 15:11:39 +00:00
}
else
{
2011-12-25 13:51:04 +00:00
str_format (
aBuf ,
sizeof ( aBuf ) ,
" You are in team %d " ,
( ( CGameControllerDDRace * ) pSelf - > m_pController ) - > m_Teams . m_Core . Team (
pResult - > m_ClientID ) ) ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " join " ,
aBuf ) ;
2011-08-27 15:11:39 +00:00
}
}
}
void CGameContext : : ConMe ( IConsole : : IResult * pResult , void * pUserData )
{
2011-12-25 13:51:04 +00:00
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
2011-08-27 15:11:39 +00:00
char aBuf [ 256 + 24 ] ;
2011-12-25 13:51:04 +00:00
str_format ( aBuf , 256 + 24 , " '%s' %s " ,
pSelf - > Server ( ) - > ClientName ( pResult - > m_ClientID ) ,
pResult - > GetString ( 0 ) ) ;
if ( g_Config . m_SvSlashMe )
2011-08-27 15:11:39 +00:00
pSelf - > SendChat ( - 2 , CGameContext : : CHAT_ALL , aBuf , pResult - > m_ClientID ) ;
else
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" me " ,
" /me is disabled on this server, admin can enable it by using sv_slash_me " ) ;
2011-08-27 15:11:39 +00:00
}
2013-10-18 09:42:35 +00:00
void CGameContext : : ConConverse ( IConsole : : IResult * pResult , void * pUserData )
{
// This will never be called
}
2013-08-09 13:04:20 +00:00
void CGameContext : : ConWhisper ( IConsole : : IResult * pResult , void * pUserData )
{
// This will never be called
}
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
void CGameContext : : ConSetEyeEmote ( IConsole : : IResult * pResult ,
2011-12-25 13:51:04 +00:00
void * pUserData )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
2011-08-27 15:11:39 +00:00
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
2011-12-25 13:51:04 +00:00
if ( ! pPlayer )
2011-08-27 15:11:39 +00:00
return ;
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
if ( pResult - > NumArguments ( ) = = 0 ) {
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" emote " ,
( pPlayer - > m_EyeEmote ) ?
" You can now use the preset eye emotes. " :
" You don't have any eye emotes, remember to bind some. (until you die) " ) ;
2011-08-27 15:11:39 +00:00
return ;
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
}
2011-12-30 14:31:06 +00:00
else if ( str_comp_nocase ( pResult - > GetString ( 0 ) , " on " ) = = 0 )
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
pPlayer - > m_EyeEmote = true ;
2011-12-30 14:31:06 +00:00
else if ( str_comp_nocase ( pResult - > GetString ( 0 ) , " off " ) = = 0 )
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
pPlayer - > m_EyeEmote = false ;
2011-12-30 14:31:06 +00:00
else if ( str_comp_nocase ( pResult - > GetString ( 0 ) , " toggle " ) = = 0 )
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
pPlayer - > m_EyeEmote = ! pPlayer - > m_EyeEmote ;
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" emote " ,
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
( pPlayer - > m_EyeEmote ) ?
2011-12-25 13:51:04 +00:00
" You can now use the preset eye emotes. " :
" You don't have any eye emotes, remember to bind some. (until you die) " ) ;
2011-08-27 15:11:39 +00:00
}
void CGameContext : : ConEyeEmote ( IConsole : : IResult * pResult , void * pUserData )
{
2011-12-25 13:51:04 +00:00
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( g_Config . m_SvEmotionalTees = = - 1 )
{
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " emote " ,
" Server admin disabled emotes. " ) ;
2011-11-08 12:04:57 +00:00
return ;
}
2011-12-25 13:51:04 +00:00
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
2011-08-27 15:11:39 +00:00
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
2011-12-25 13:51:04 +00:00
if ( ! pPlayer )
2011-08-27 15:11:39 +00:00
return ;
if ( pResult - > NumArguments ( ) = = 0 )
{
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" emote " ,
" Emote commands are: /emote surprise /emote blink /emote close /emote angry /emote happy /emote pain " ) ;
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" emote " ,
" Example: /emote surprise 10 for 10 seconds or /emote surprise (default 1 second) " ) ;
2011-08-27 15:11:39 +00:00
}
else
{
2011-12-27 10:19:02 +00:00
if ( pPlayer - > m_LastEyeEmote + g_Config . m_SvEyeEmoteChangeDelay * pSelf - > Server ( ) - > TickSpeed ( ) > = pSelf - > Server ( ) - > Tick ( ) )
return ;
2011-08-27 15:11:39 +00:00
if ( ! str_comp ( pResult - > GetString ( 0 ) , " angry " ) )
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
pPlayer - > m_DefEmote = EMOTE_ANGRY ;
2011-08-27 15:11:39 +00:00
else if ( ! str_comp ( pResult - > GetString ( 0 ) , " blink " ) )
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
pPlayer - > m_DefEmote = EMOTE_BLINK ;
2011-08-27 15:11:39 +00:00
else if ( ! str_comp ( pResult - > GetString ( 0 ) , " close " ) )
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
pPlayer - > m_DefEmote = EMOTE_BLINK ;
2011-08-27 15:11:39 +00:00
else if ( ! str_comp ( pResult - > GetString ( 0 ) , " happy " ) )
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
pPlayer - > m_DefEmote = EMOTE_HAPPY ;
2011-08-27 15:11:39 +00:00
else if ( ! str_comp ( pResult - > GetString ( 0 ) , " pain " ) )
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
pPlayer - > m_DefEmote = EMOTE_PAIN ;
2011-08-27 15:11:39 +00:00
else if ( ! str_comp ( pResult - > GetString ( 0 ) , " surprise " ) )
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
pPlayer - > m_DefEmote = EMOTE_SURPRISE ;
2011-08-27 15:11:39 +00:00
else if ( ! str_comp ( pResult - > GetString ( 0 ) , " normal " ) )
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
pPlayer - > m_DefEmote = EMOTE_NORMAL ;
2011-08-27 15:11:39 +00:00
else
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD ,
" emote " , " Unknown emote... Say /emote " ) ;
2011-08-27 15:11:39 +00:00
int Duration = 1 ;
if ( pResult - > NumArguments ( ) > 1 )
Duration = pResult - > GetInteger ( 1 ) ;
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
pPlayer - > m_DefEmoteReset = pSelf - > Server ( ) - > Tick ( )
2011-12-25 13:51:04 +00:00
+ Duration * pSelf - > Server ( ) - > TickSpeed ( ) ;
2011-12-27 10:19:02 +00:00
pPlayer - > m_LastEyeEmote = pSelf - > Server ( ) - > Tick ( ) ;
2011-08-27 15:11:39 +00:00
}
}
2014-01-11 12:59:20 +00:00
void CGameContext : : ConNinjaJetpack ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
if ( pResult - > NumArguments ( ) )
pPlayer - > m_NinjaJetpack = pResult - > GetInteger ( 0 ) ;
else
pPlayer - > m_NinjaJetpack = ! pPlayer - > m_NinjaJetpack ;
}
2011-09-02 22:28:56 +00:00
void CGameContext : : ConShowOthers ( IConsole : : IResult * pResult , void * pUserData )
2011-08-27 15:11:39 +00:00
{
2011-12-25 13:51:04 +00:00
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
2011-08-27 15:11:39 +00:00
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
2011-12-25 13:51:04 +00:00
if ( ! pPlayer )
2011-08-27 15:11:39 +00:00
return ;
2011-12-25 13:51:04 +00:00
if ( g_Config . m_SvShowOthers )
2011-08-27 15:11:39 +00:00
{
2013-11-27 17:00:22 +00:00
if ( pResult - > NumArguments ( ) )
pPlayer - > m_ShowOthers = pResult - > GetInteger ( 0 ) ;
2011-08-27 15:11:39 +00:00
else
2013-11-27 17:00:22 +00:00
pPlayer - > m_ShowOthers = ! pPlayer - > m_ShowOthers ;
2011-08-27 15:11:39 +00:00
}
else
2011-12-25 13:51:04 +00:00
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" showotherschat " ,
" Showing players from other teams is disabled by the server admin " ) ;
2011-08-27 15:11:39 +00:00
}
2014-02-02 18:56:10 +00:00
void CGameContext : : ConShowAll ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
if ( pResult - > NumArguments ( ) )
pPlayer - > m_ShowAll = pResult - > GetInteger ( 0 ) ;
else
pPlayer - > m_ShowAll = ! pPlayer - > m_ShowAll ;
}
2014-08-09 17:53:38 +00:00
void CGameContext : : ConSpecTeam ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
if ( pResult - > NumArguments ( ) )
pPlayer - > m_SpecTeam = pResult - > GetInteger ( 0 ) ;
else
pPlayer - > m_SpecTeam = ! pPlayer - > m_SpecTeam ;
}
2011-08-27 15:11:39 +00:00
bool CheckClientID ( int ClientID )
{
2011-12-25 13:51:04 +00:00
dbg_assert ( ClientID > = 0 | | ClientID < MAX_CLIENTS ,
" The Client ID is wrong " ) ;
if ( ClientID < 0 | | ClientID > = MAX_CLIENTS )
return false ;
2011-08-27 15:11:39 +00:00
return true ;
}
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
void CGameContext : : ConSayTime ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
2014-03-22 22:29:52 +00:00
int ClientID ;
char aBufname [ MAX_NAME_LENGTH ] ;
if ( pResult - > NumArguments ( ) > 0 )
{
for ( ClientID = 0 ; ClientID < MAX_CLIENTS ; ClientID + + )
if ( str_comp ( pResult - > GetString ( 0 ) , pSelf - > Server ( ) - > ClientName ( ClientID ) ) = = 0 )
break ;
if ( ClientID = = MAX_CLIENTS )
return ;
str_format ( aBufname , sizeof ( aBufname ) , " %s's " , pSelf - > Server ( ) - > ClientName ( ClientID ) ) ;
}
else
{
str_copy ( aBufname , " Your " , sizeof ( aBufname ) ) ;
ClientID = pResult - > m_ClientID ;
}
CPlayer * pPlayer = pSelf - > m_apPlayers [ ClientID ] ;
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
if ( ! pPlayer )
return ;
CCharacter * pChr = pPlayer - > GetCharacter ( ) ;
if ( ! pChr )
return ;
2011-12-29 12:35:14 +00:00
if ( pChr - > m_DDRaceState ! = DDRACE_STARTED )
return ;
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
char aBuftime [ 64 ] ;
int IntTime = ( int ) ( ( float ) ( pSelf - > Server ( ) - > Tick ( ) - pChr - > m_StartTime )
/ ( ( float ) pSelf - > Server ( ) - > TickSpeed ( ) ) ) ;
2014-03-22 22:29:52 +00:00
str_format ( aBuftime , sizeof ( aBuftime ) , " %s time is %s%d:%s%d " ,
aBufname ,
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
( ( IntTime / 60 ) > 9 ) ? " " : " 0 " , IntTime / 60 ,
( ( IntTime % 60 ) > 9 ) ? " " : " 0 " , IntTime % 60 ) ;
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " time " , aBuftime ) ;
}
void CGameContext : : ConSayTimeAll ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
CCharacter * pChr = pPlayer - > GetCharacter ( ) ;
if ( ! pChr )
return ;
2011-12-29 12:35:14 +00:00
if ( pChr - > m_DDRaceState ! = DDRACE_STARTED )
return ;
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
char aBuftime [ 64 ] ;
int IntTime = ( int ) ( ( float ) ( pSelf - > Server ( ) - > Tick ( ) - pChr - > m_StartTime )
/ ( ( float ) pSelf - > Server ( ) - > TickSpeed ( ) ) ) ;
str_format ( aBuftime , sizeof ( aBuftime ) ,
" %s \' s current race time is %s%d:%s%d " ,
pSelf - > Server ( ) - > ClientName ( pResult - > m_ClientID ) ,
( ( IntTime / 60 ) > 9 ) ? " " : " 0 " , IntTime / 60 ,
( ( IntTime % 60 ) > 9 ) ? " " : " 0 " , IntTime % 60 ) ;
pSelf - > SendChat ( - 1 , CGameContext : : CHAT_ALL , aBuftime , pResult - > m_ClientID ) ;
}
void CGameContext : : ConTime ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
CCharacter * pChr = pPlayer - > GetCharacter ( ) ;
if ( ! pChr )
return ;
char aBuftime [ 64 ] ;
int IntTime = ( int ) ( ( float ) ( pSelf - > Server ( ) - > Tick ( ) - pChr - > m_StartTime )
/ ( ( float ) pSelf - > Server ( ) - > TickSpeed ( ) ) ) ;
2014-03-22 22:29:52 +00:00
str_format ( aBuftime , sizeof ( aBuftime ) , " Your time is %s%d:%s%d " ,
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
( ( IntTime / 60 ) > 9 ) ? " " : " 0 " , IntTime / 60 ,
( ( IntTime % 60 ) > 9 ) ? " " : " 0 " , IntTime % 60 ) ;
pSelf - > SendBroadcast ( aBuftime , pResult - > m_ClientID ) ;
}
2012-02-14 18:25:34 +00:00
void CGameContext : : ConSetTimerType ( IConsole : : IResult * pResult , void * pUserData )
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
2012-02-14 18:25:34 +00:00
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
2012-02-14 18:25:34 +00:00
2014-02-02 21:07:20 +00:00
const char msg [ 3 ] [ 128 ] = { " game/round timer. " , " broadcast. " , " both game/round timer and broadcast. " } ;
2012-02-14 20:38:06 +00:00
char aBuf [ 128 ] ;
if ( pPlayer - > m_TimerType < = 2 & & pPlayer - > m_TimerType > = 0 )
2014-02-02 21:07:20 +00:00
str_format ( aBuf , sizeof ( aBuf ) , " Timer is displayed in " , msg [ pPlayer - > m_TimerType ] ) ;
2012-02-14 20:38:06 +00:00
else if ( pPlayer - > m_TimerType = = 3 )
str_format ( aBuf , sizeof ( aBuf ) , " Timer isn't displayed. " ) ;
if ( pResult - > NumArguments ( ) = = 0 ) {
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " timer " , aBuf ) ;
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
return ;
}
2012-02-14 18:25:34 +00:00
else if ( str_comp_nocase ( pResult - > GetString ( 0 ) , " gametimer " ) = = 0 ) {
pSelf - > SendBroadcast ( " " , pResult - > m_ClientID ) ;
2012-02-14 20:38:06 +00:00
pPlayer - > m_TimerType = 0 ;
2012-02-14 18:25:34 +00:00
}
else if ( str_comp_nocase ( pResult - > GetString ( 0 ) , " broadcast " ) = = 0 )
2012-02-14 20:38:06 +00:00
pPlayer - > m_TimerType = 1 ;
else if ( str_comp_nocase ( pResult - > GetString ( 0 ) , " both " ) = = 0 )
pPlayer - > m_TimerType = 2 ;
else if ( str_comp_nocase ( pResult - > GetString ( 0 ) , " none " ) = = 0 )
pPlayer - > m_TimerType = 3 ;
else if ( str_comp_nocase ( pResult - > GetString ( 0 ) , " cycle " ) = = 0 ) {
if ( pPlayer - > m_TimerType < 3 )
pPlayer - > m_TimerType + + ;
else if ( pPlayer - > m_TimerType = = 3 )
pPlayer - > m_TimerType = 0 ;
}
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " timer " , aBuf ) ;
Added the following settings to Close #123.
sv_time_in_broadcast, 1, 0, 1, CFGFLAG_SERVER, "Whether to display time in broadcast every interval or not by default, later the choice can be changed by players via chat commands"
sv_time_in_broadcast_interval, 1, 0, 60, CFGFLAG_SERVER, "How often to update the broadcast time"
sv_time_in_gametimer, 0, 0, 1, CFGFLAG_SERVER, "Whether to display time in the round/game timer or not by default, later the choice can be changed by players via chat commands"
Added the following Chat commands to give the player the choice over their settings:
"saytime", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTime, this, "Privately messages you your current time in this current running race"
"saytimeall", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSayTimeAll, this, "Publicly messages everyone your current time in this current running race"
"time", "", CFGFLAG_CHAT|CFGFLAG_SERVER, ConTime, this, "Privately shows you your current time in this current running race in the broadcast message"
"broadcasttime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetBroadcastTime, this, "Personal Setting of showing time in the broadcast, broadcasttime s, where s = on for on, off for off, toggle for toggle and nothing to show current status"
"servergametime", "?s", CFGFLAG_CHAT|CFGFLAG_SERVER, ConSetServerGameTime, this, "Personal Setting of showing time in the round/game timer, servergametime s, where s = on for on off for off, toggle for toggle and nothing to show current status"
Fixed Chat Command "eyeemote" and made it a set + toggle instead of just toggle for better bin techneques
Moved some vars from CCharacter to CPlayer to keep their status evern after death but not after disconnect.
So now players have the choice to see which timer they wanna see if any.
Note: These changes are all untested Stay away from this update on your main server until they are tested, i don't even know if they will compile propperly
2011-12-29 12:17:34 +00:00
}
2014-08-24 21:24:33 +00:00
void CGameContext : : ConProtectedKill ( IConsole : : IResult * pResult , void * pUserData ) {
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
CCharacter * pChr = pPlayer - > GetCharacter ( ) ;
if ( ! pChr )
return ;
2012-02-14 20:38:06 +00:00
2014-08-24 22:18:51 +00:00
int CurrTime = ( pSelf - > Server ( ) - > Tick ( ) - pChr - > m_StartTime ) / pSelf - > Server ( ) - > TickSpeed ( ) ;
if ( g_Config . m_SvKillProtection ! = 0 & & CurrTime > = ( 60 * g_Config . m_SvKillProtection ) & & pChr - > m_DDRaceState = = DDRACE_STARTED )
2014-08-24 21:24:33 +00:00
{
pPlayer - > KillCharacter ( WEAPON_SELF ) ;
2014-08-24 22:12:20 +00:00
//char aBuf[64];
//str_format(aBuf, sizeof(aBuf), "You killed yourself in: %s%d:%s%d",
// ((CurrTime / 60) > 9) ? "" : "0", CurrTime / 60,
// ((CurrTime % 60) > 9) ? "" : "0", CurrTime % 60);
//pSelf->SendChatTarget(pResult->m_ClientID, aBuf);
2014-08-24 21:24:33 +00:00
}
}
2013-07-21 02:52:23 +00:00
# if defined(CONF_SQL)
void CGameContext : : ConPoints ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
if ( pSelf - > m_apPlayers [ pResult - > m_ClientID ] & & g_Config . m_SvUseSQL )
if ( pSelf - > m_apPlayers [ pResult - > m_ClientID ] - > m_LastSQLQuery + pSelf - > Server ( ) - > TickSpeed ( ) > = pSelf - > Server ( ) - > Tick ( ) )
return ;
CPlayer * pPlayer = pSelf - > m_apPlayers [ pResult - > m_ClientID ] ;
if ( ! pPlayer )
return ;
if ( pResult - > NumArguments ( ) > 0 )
if ( ! g_Config . m_SvHideScore )
pSelf - > Score ( ) - > ShowPoints ( pResult - > m_ClientID , pResult - > GetString ( 0 ) ,
true ) ;
else
pSelf - > Console ( ) - > Print (
IConsole : : OUTPUT_LEVEL_STANDARD ,
" points " ,
" Showing the global points of other players is not allowed on this server. " ) ;
else
pSelf - > Score ( ) - > ShowPoints ( pResult - > m_ClientID ,
pSelf - > Server ( ) - > ClientName ( pResult - > m_ClientID ) ) ;
if ( pSelf - > m_apPlayers [ pResult - > m_ClientID ] & & g_Config . m_SvUseSQL )
pSelf - > m_apPlayers [ pResult - > m_ClientID ] - > m_LastSQLQuery = pSelf - > Server ( ) - > Tick ( ) ;
}
# endif
# if defined(CONF_SQL)
void CGameContext : : ConTopPoints ( IConsole : : IResult * pResult , void * pUserData )
{
CGameContext * pSelf = ( CGameContext * ) pUserData ;
if ( ! CheckClientID ( pResult - > m_ClientID ) )
return ;
if ( pSelf - > m_apPlayers [ pResult - > m_ClientID ] & & g_Config . m_SvUseSQL )
if ( pSelf - > m_apPlayers [ pResult - > m_ClientID ] - > m_LastSQLQuery + pSelf - > Server ( ) - > TickSpeed ( ) > = pSelf - > Server ( ) - > Tick ( ) )
return ;
if ( g_Config . m_SvHideScore )
{
pSelf - > Console ( ) - > Print ( IConsole : : OUTPUT_LEVEL_STANDARD , " toppoints " ,
" Showing the global top points is not allowed on this server. " ) ;
return ;
}
if ( pResult - > NumArguments ( ) > 0 & & pResult - > GetInteger ( 0 ) > = 0 )
pSelf - > Score ( ) - > ShowTopPoints ( pResult , pResult - > m_ClientID , pUserData ,
pResult - > GetInteger ( 0 ) ) ;
else
pSelf - > Score ( ) - > ShowTopPoints ( pResult , pResult - > m_ClientID , pUserData ) ;
if ( pSelf - > m_apPlayers [ pResult - > m_ClientID ] & & g_Config . m_SvUseSQL )
pSelf - > m_apPlayers [ pResult - > m_ClientID ] - > m_LastSQLQuery = pSelf - > Server ( ) - > Tick ( ) ;
}
# endif