mirror of
https://github.com/YGGverse/hlsdk-portable.git
synced 2025-01-23 05:04:17 +00:00
allow min_bots=0 #421
This commit is contained in:
parent
32a022d416
commit
9f6a976898
@ -1,9 +1,9 @@
|
|||||||
/***
|
/***
|
||||||
*
|
*
|
||||||
* Copyright (c) 1996-2002, Valve LLC. All rights reserved.
|
* Copyright (c) 1996-2002, Valve LLC. All rights reserved.
|
||||||
*
|
*
|
||||||
* This product contains software technology licensed from Id
|
* This product contains software technology licensed from Id
|
||||||
* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc.
|
* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc.
|
||||||
* All Rights Reserved.
|
* All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Use, distribution, and modification of this source code and/or resulting
|
* Use, distribution, and modification of this source code and/or resulting
|
||||||
@ -12,7 +12,7 @@
|
|||||||
* without written permission from Valve LLC.
|
* without written permission from Valve LLC.
|
||||||
*
|
*
|
||||||
****/
|
****/
|
||||||
// Robin, 4-22-98: Moved set_suicide_frame() here from player.cpp to allow us to
|
// Robin, 4-22-98: Moved set_suicide_frame() here from player.cpp to allow us to
|
||||||
// have one without a hardcoded player.mdl in tf_client.cpp
|
// have one without a hardcoded player.mdl in tf_client.cpp
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -79,7 +79,7 @@ void LinkUserMessages( void );
|
|||||||
* ROBIN: Moved here from player.cpp, to allow multiple player models
|
* ROBIN: Moved here from player.cpp, to allow multiple player models
|
||||||
*/
|
*/
|
||||||
void set_suicide_frame( entvars_t *pev )
|
void set_suicide_frame( entvars_t *pev )
|
||||||
{
|
{
|
||||||
if( !FStrEq( STRING( pev->model ), "models/player.mdl" ) )
|
if( !FStrEq( STRING( pev->model ), "models/player.mdl" ) )
|
||||||
return; // allready gibbed
|
return; // allready gibbed
|
||||||
|
|
||||||
@ -117,7 +117,7 @@ BOOL ClientConnect( edict_t *pEntity, const char *pszName, const char *pszAddres
|
|||||||
|
|
||||||
// if there are currently more than the minimum number of bots running
|
// if there are currently more than the minimum number of bots running
|
||||||
// then kick one of the bots off the server...
|
// then kick one of the bots off the server...
|
||||||
if( ( min_bots != 0 ) && ( count > min_bots ) )
|
if( count > min_bots )
|
||||||
{
|
{
|
||||||
for( i = 0; i < 32; i++ )
|
for( i = 0; i < 32; i++ )
|
||||||
{
|
{
|
||||||
@ -169,7 +169,7 @@ void ClientDisconnect( edict_t *pEntity )
|
|||||||
|
|
||||||
CSound *pSound = CSoundEnt::SoundPointerForIndex( CSoundEnt::ClientSoundIndex( pEntity ) );
|
CSound *pSound = CSoundEnt::SoundPointerForIndex( CSoundEnt::ClientSoundIndex( pEntity ) );
|
||||||
|
|
||||||
// since this client isn't around to think anymore, reset their sound.
|
// since this client isn't around to think anymore, reset their sound.
|
||||||
if( pSound )
|
if( pSound )
|
||||||
{
|
{
|
||||||
pSound->Reset();
|
pSound->Reset();
|
||||||
@ -450,7 +450,7 @@ void Host_Say( edict_t *pEntity, int teamonly )
|
|||||||
// so check it, or it will infinite loop
|
// so check it, or it will infinite loop
|
||||||
|
|
||||||
client = NULL;
|
client = NULL;
|
||||||
while( ( ( client = (CBasePlayer*)UTIL_FindEntityByClassname( client, "player" ) ) != NULL ) && ( !FNullEnt( client->edict() ) ) )
|
while( ( ( client = (CBasePlayer*)UTIL_FindEntityByClassname( client, "player" ) ) != NULL ) && ( !FNullEnt( client->edict() ) ) )
|
||||||
{
|
{
|
||||||
if( !client->pev )
|
if( !client->pev )
|
||||||
continue;
|
continue;
|
||||||
@ -497,8 +497,8 @@ void Host_Say( edict_t *pEntity, int teamonly )
|
|||||||
// team match?
|
// team match?
|
||||||
if( g_teamplay )
|
if( g_teamplay )
|
||||||
{
|
{
|
||||||
UTIL_LogPrintf( "\"%s<%i><%s><%s>\" %s \"%s\"\n",
|
UTIL_LogPrintf( "\"%s<%i><%s><%s>\" %s \"%s\"\n",
|
||||||
STRING( pEntity->v.netname ),
|
STRING( pEntity->v.netname ),
|
||||||
GETPLAYERUSERID( pEntity ),
|
GETPLAYERUSERID( pEntity ),
|
||||||
GETPLAYERAUTHID( pEntity ),
|
GETPLAYERAUTHID( pEntity ),
|
||||||
g_engfuncs.pfnInfoKeyValue( g_engfuncs.pfnGetInfoKeyBuffer( pEntity ), "model" ),
|
g_engfuncs.pfnInfoKeyValue( g_engfuncs.pfnGetInfoKeyBuffer( pEntity ), "model" ),
|
||||||
@ -507,8 +507,8 @@ void Host_Say( edict_t *pEntity, int teamonly )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UTIL_LogPrintf( "\"%s<%i><%s><%i>\" %s \"%s\"\n",
|
UTIL_LogPrintf( "\"%s<%i><%s><%i>\" %s \"%s\"\n",
|
||||||
STRING( pEntity->v.netname ),
|
STRING( pEntity->v.netname ),
|
||||||
GETPLAYERUSERID( pEntity ),
|
GETPLAYERUSERID( pEntity ),
|
||||||
GETPLAYERAUTHID( pEntity ),
|
GETPLAYERAUTHID( pEntity ),
|
||||||
GETPLAYERUSERID( pEntity ),
|
GETPLAYERUSERID( pEntity ),
|
||||||
@ -547,7 +547,7 @@ void ClientCommand( edict_t *pEntity )
|
|||||||
}
|
}
|
||||||
else if( FStrEq( pcmd, "fullupdate" ) )
|
else if( FStrEq( pcmd, "fullupdate" ) )
|
||||||
{
|
{
|
||||||
GetClassPtr( (CBasePlayer *)pev )->ForceClientDllUpdate();
|
GetClassPtr( (CBasePlayer *)pev )->ForceClientDllUpdate();
|
||||||
}
|
}
|
||||||
else if( FStrEq(pcmd, "give" ) )
|
else if( FStrEq(pcmd, "give" ) )
|
||||||
{
|
{
|
||||||
@ -590,7 +590,7 @@ void ClientCommand( edict_t *pEntity )
|
|||||||
}
|
}
|
||||||
else if( FStrEq( pcmd, "drop" ) )
|
else if( FStrEq( pcmd, "drop" ) )
|
||||||
{
|
{
|
||||||
// player is dropping an item.
|
// player is dropping an item.
|
||||||
GetClassPtr( (CBasePlayer *)pev )->DropPlayerItem( (char *)CMD_ARGV( 1 ) );
|
GetClassPtr( (CBasePlayer *)pev )->DropPlayerItem( (char *)CMD_ARGV( 1 ) );
|
||||||
}
|
}
|
||||||
else if( FStrEq( pcmd, "fov" ) )
|
else if( FStrEq( pcmd, "fov" ) )
|
||||||
@ -729,7 +729,7 @@ void ClientCommand( edict_t *pEntity )
|
|||||||
CBasePlayer *pBot = NULL;
|
CBasePlayer *pBot = NULL;
|
||||||
char botname[BOT_NAME_LEN + 1];
|
char botname[BOT_NAME_LEN + 1];
|
||||||
int index;
|
int index;
|
||||||
|
|
||||||
botname[0] = 0;
|
botname[0] = 0;
|
||||||
|
|
||||||
if( CMD_ARGC() > 1 ) // is there an argument to the command?
|
if( CMD_ARGC() > 1 ) // is there an argument to the command?
|
||||||
@ -738,7 +738,7 @@ void ClientCommand( edict_t *pEntity )
|
|||||||
strcpy( botname, CMD_ARGV( 1 ) );
|
strcpy( botname, CMD_ARGV( 1 ) );
|
||||||
else
|
else
|
||||||
sscanf( CMD_ARGV( 1 ), "\"%s\"", &botname[0] );
|
sscanf( CMD_ARGV( 1 ), "\"%s\"", &botname[0] );
|
||||||
|
|
||||||
index = 0;
|
index = 0;
|
||||||
|
|
||||||
while( index < 32 )
|
while( index < 32 )
|
||||||
@ -859,20 +859,20 @@ void ClientUserInfoChanged( edict_t *pEntity, char *infobuffer )
|
|||||||
// team match?
|
// team match?
|
||||||
if( g_teamplay )
|
if( g_teamplay )
|
||||||
{
|
{
|
||||||
UTIL_LogPrintf( "\"%s<%i><%s><%s>\" changed name to \"%s\"\n",
|
UTIL_LogPrintf( "\"%s<%i><%s><%s>\" changed name to \"%s\"\n",
|
||||||
STRING( pEntity->v.netname ),
|
STRING( pEntity->v.netname ),
|
||||||
GETPLAYERUSERID( pEntity ),
|
GETPLAYERUSERID( pEntity ),
|
||||||
GETPLAYERAUTHID( pEntity ),
|
GETPLAYERAUTHID( pEntity ),
|
||||||
g_engfuncs.pfnInfoKeyValue( infobuffer, "model" ),
|
g_engfuncs.pfnInfoKeyValue( infobuffer, "model" ),
|
||||||
g_engfuncs.pfnInfoKeyValue( infobuffer, "name" ) );
|
g_engfuncs.pfnInfoKeyValue( infobuffer, "name" ) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
UTIL_LogPrintf( "\"%s<%i><%s><%i>\" changed name to \"%s\"\n",
|
UTIL_LogPrintf( "\"%s<%i><%s><%i>\" changed name to \"%s\"\n",
|
||||||
STRING( pEntity->v.netname ),
|
STRING( pEntity->v.netname ),
|
||||||
GETPLAYERUSERID( pEntity ),
|
GETPLAYERUSERID( pEntity ),
|
||||||
GETPLAYERAUTHID( pEntity ),
|
GETPLAYERAUTHID( pEntity ),
|
||||||
GETPLAYERUSERID( pEntity ),
|
GETPLAYERUSERID( pEntity ),
|
||||||
g_engfuncs.pfnInfoKeyValue( infobuffer, "name" ) );
|
g_engfuncs.pfnInfoKeyValue( infobuffer, "name" ) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -887,7 +887,7 @@ void ServerDeactivate( void )
|
|||||||
//ALERT( at_console, "ServerDeactivate()\n" );
|
//ALERT( at_console, "ServerDeactivate()\n" );
|
||||||
|
|
||||||
// It's possible that the engine will call this function more times than is necessary
|
// It's possible that the engine will call this function more times than is necessary
|
||||||
// Therefore, only run it one time for each call to ServerActivate
|
// Therefore, only run it one time for each call to ServerActivate
|
||||||
if( g_serveractive != 1 )
|
if( g_serveractive != 1 )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@ -1767,7 +1767,7 @@ int AddToFullPack( struct entity_state_s *state, int e, edict_t *ent, edict_t *h
|
|||||||
if( ( hostflags & 1 ) && ( ent->v.owner == host ) )
|
if( ( hostflags & 1 ) && ( ent->v.owner == host ) )
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( host->v.groupinfo )
|
if( host->v.groupinfo )
|
||||||
{
|
{
|
||||||
UTIL_SetGroupTrace( host->v.groupinfo, GROUP_OP_AND );
|
UTIL_SetGroupTrace( host->v.groupinfo, GROUP_OP_AND );
|
||||||
@ -1803,7 +1803,7 @@ int AddToFullPack( struct entity_state_s *state, int e, edict_t *ent, edict_t *h
|
|||||||
state->entityType = ENTITY_BEAM;
|
state->entityType = ENTITY_BEAM;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Copy state data
|
// Copy state data
|
||||||
//
|
//
|
||||||
|
|
||||||
@ -1833,8 +1833,8 @@ int AddToFullPack( struct entity_state_s *state, int e, edict_t *ent, edict_t *h
|
|||||||
// make sure that we interpolate it's position on the client if it moves
|
// make sure that we interpolate it's position on the client if it moves
|
||||||
if( !player &&
|
if( !player &&
|
||||||
ent->v.animtime &&
|
ent->v.animtime &&
|
||||||
ent->v.velocity[0] == 0 &&
|
ent->v.velocity[0] == 0 &&
|
||||||
ent->v.velocity[1] == 0 &&
|
ent->v.velocity[1] == 0 &&
|
||||||
ent->v.velocity[2] == 0 )
|
ent->v.velocity[2] == 0 )
|
||||||
{
|
{
|
||||||
state->eflags |= EFLAG_SLERP;
|
state->eflags |= EFLAG_SLERP;
|
||||||
@ -1860,7 +1860,7 @@ int AddToFullPack( struct entity_state_s *state, int e, edict_t *ent, edict_t *h
|
|||||||
}
|
}
|
||||||
|
|
||||||
state->rendermode = ent->v.rendermode;
|
state->rendermode = ent->v.rendermode;
|
||||||
state->renderamt = (int)ent->v.renderamt;
|
state->renderamt = (int)ent->v.renderamt;
|
||||||
state->renderfx = ent->v.renderfx;
|
state->renderfx = ent->v.renderfx;
|
||||||
state->rendercolor.r = (byte)ent->v.rendercolor.x;
|
state->rendercolor.r = (byte)ent->v.rendercolor.x;
|
||||||
state->rendercolor.g = (byte)ent->v.rendercolor.y;
|
state->rendercolor.g = (byte)ent->v.rendercolor.y;
|
||||||
@ -1880,7 +1880,7 @@ int AddToFullPack( struct entity_state_s *state, int e, edict_t *ent, edict_t *h
|
|||||||
// Only care if owned by a player
|
// Only care if owned by a player
|
||||||
if( owner >= 1 && owner <= gpGlobals->maxClients )
|
if( owner >= 1 && owner <= gpGlobals->maxClients )
|
||||||
{
|
{
|
||||||
state->owner = owner;
|
state->owner = owner;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2011,7 +2011,7 @@ void Entity_FieldInit( struct delta_s *pFields )
|
|||||||
==================
|
==================
|
||||||
Entity_Encode
|
Entity_Encode
|
||||||
|
|
||||||
Callback for sending entity_state_t info over network.
|
Callback for sending entity_state_t info over network.
|
||||||
FIXME: Move to script
|
FIXME: Move to script
|
||||||
==================
|
==================
|
||||||
*/
|
*/
|
||||||
@ -2083,7 +2083,7 @@ void Player_FieldInit( struct delta_s *pFields )
|
|||||||
==================
|
==================
|
||||||
Player_Encode
|
Player_Encode
|
||||||
|
|
||||||
Callback for sending entity_state_t for players info over network.
|
Callback for sending entity_state_t for players info over network.
|
||||||
==================
|
==================
|
||||||
*/
|
*/
|
||||||
void Player_Encode( struct delta_s *pFields, const unsigned char *from, const unsigned char *to )
|
void Player_Encode( struct delta_s *pFields, const unsigned char *from, const unsigned char *to )
|
||||||
@ -2165,7 +2165,7 @@ void Custom_Entity_FieldInit( struct delta_s *pFields )
|
|||||||
==================
|
==================
|
||||||
Custom_Encode
|
Custom_Encode
|
||||||
|
|
||||||
Callback for sending entity_state_t info ( for custom entities ) over network.
|
Callback for sending entity_state_t info ( for custom entities ) over network.
|
||||||
FIXME: Move to script
|
FIXME: Move to script
|
||||||
==================
|
==================
|
||||||
*/
|
*/
|
||||||
@ -2261,7 +2261,7 @@ int GetWeaponData( struct edict_s *player, struct weapon_data_s *info )
|
|||||||
if( II.iId >= 0 && II.iId < MAX_WEAPONS )
|
if( II.iId >= 0 && II.iId < MAX_WEAPONS )
|
||||||
{
|
{
|
||||||
item = &info[II.iId];
|
item = &info[II.iId];
|
||||||
|
|
||||||
item->m_iId = II.iId;
|
item->m_iId = II.iId;
|
||||||
item->m_iClip = gun->m_iClip;
|
item->m_iClip = gun->m_iClip;
|
||||||
|
|
||||||
@ -2550,7 +2550,7 @@ AllowLagCompensation
|
|||||||
The game .dll should return 1 if lag compensation should be allowed ( could also just set
|
The game .dll should return 1 if lag compensation should be allowed ( could also just set
|
||||||
the sv_unlag cvar.
|
the sv_unlag cvar.
|
||||||
Most games right now should return 0, until client-side weapon prediction code is written
|
Most games right now should return 0, until client-side weapon prediction code is written
|
||||||
and tested for them ( note you can predict weapons, but not do lag compensation, too,
|
and tested for them ( note you can predict weapons, but not do lag compensation, too,
|
||||||
if you want.
|
if you want.
|
||||||
================================
|
================================
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user