mirror of
https://github.com/alliedmodders/hl2sdk.git
synced 2025-09-20 12:36:05 +08:00
Update from SDK 2013
This commit is contained in:

committed by
Nicholas Hastings

parent
6d5c024820
commit
94b660e16e
@ -1,62 +1,88 @@
|
||||
//========= Copyright <20> 1996-2005, Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#include "cbase.h"
|
||||
#include "convar.h"
|
||||
#include "tier0/dbg.h"
|
||||
#include "player.h"
|
||||
#include "world.h"
|
||||
|
||||
// memdbgon must be the last include file in a .cpp file!!!
|
||||
#include "tier0/memdbgon.h"
|
||||
|
||||
void Test_CreateEntity( const CCommand &args )
|
||||
{
|
||||
if ( args.ArgC() < 2 )
|
||||
{
|
||||
Error( "Test_CreateEntity: requires entity classname argument." );
|
||||
}
|
||||
|
||||
const char *pClassName = args[ 1 ];
|
||||
|
||||
if ( !CreateEntityByName( pClassName ) )
|
||||
{
|
||||
Error( "Test_CreateEntity( %s ) failed.", pClassName );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Test_RandomPlayerPosition()
|
||||
{
|
||||
CBasePlayer *pPlayer = UTIL_GetLocalPlayer();
|
||||
CWorld *pWorld = GetWorldEntity();
|
||||
if ( !pPlayer )
|
||||
{
|
||||
Error( "Test_RandomPlayerPosition: no local player entity." );
|
||||
}
|
||||
else if ( !pWorld )
|
||||
{
|
||||
Error( "Test_RandomPlayerPosition: no world entity." );
|
||||
}
|
||||
|
||||
|
||||
|
||||
Vector vMin, vMax;
|
||||
pWorld->GetWorldBounds( vMin, vMax );
|
||||
|
||||
Vector vecOrigin;
|
||||
vecOrigin.x = RandomFloat( vMin.x, vMax.x );
|
||||
vecOrigin.y = RandomFloat( vMin.y, vMax.y );
|
||||
vecOrigin.z = RandomFloat( vMin.z, vMax.z );
|
||||
pPlayer->ForceOrigin( vecOrigin );
|
||||
}
|
||||
|
||||
|
||||
ConCommand cc_Test_CreateEntity( "Test_CreateEntity", Test_CreateEntity, 0, FCVAR_CHEAT );
|
||||
ConCommand cc_Test_RandomPlayerPosition( "Test_RandomPlayerPosition", Test_RandomPlayerPosition, 0, FCVAR_CHEAT );
|
||||
|
||||
|
||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||||
//
|
||||
// Purpose:
|
||||
//
|
||||
// $NoKeywords: $
|
||||
//=============================================================================//
|
||||
|
||||
#include "cbase.h"
|
||||
#include "convar.h"
|
||||
#include "tier0/dbg.h"
|
||||
#include "player.h"
|
||||
#include "world.h"
|
||||
|
||||
// memdbgon must be the last include file in a .cpp file!!!
|
||||
#include "tier0/memdbgon.h"
|
||||
|
||||
void Test_CreateEntity( const CCommand &args )
|
||||
{
|
||||
CBasePlayer *pPlayer = UTIL_GetCommandClient();
|
||||
|
||||
// Require a player entity or that the command was entered from the dedicated server console
|
||||
if ( !pPlayer && UTIL_GetCommandClientIndex() > 0 )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if ( args.ArgC() < 2 )
|
||||
{
|
||||
Error( "Test_CreateEntity: requires entity classname argument." );
|
||||
}
|
||||
|
||||
const char *pClassName = args[ 1 ];
|
||||
|
||||
// Don't allow regular users to create point_servercommand entities for the same reason as blocking ent_fire
|
||||
if ( pPlayer && !Q_stricmp( pClassName, "point_servercommand" ) )
|
||||
{
|
||||
if ( engine->IsDedicatedServer() )
|
||||
{
|
||||
// We allow people with disabled autokick to do it, because they already have rcon.
|
||||
if ( pPlayer->IsAutoKickDisabled() == false )
|
||||
return;
|
||||
}
|
||||
else if ( gpGlobals->maxClients > 1 )
|
||||
{
|
||||
// On listen servers with more than 1 player, only allow the host to create point_servercommand.
|
||||
CBasePlayer *pHostPlayer = UTIL_GetListenServerHost();
|
||||
if ( pPlayer != pHostPlayer )
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if ( !CreateEntityByName( pClassName ) )
|
||||
{
|
||||
Error( "Test_CreateEntity( %s ) failed.", pClassName );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Test_RandomPlayerPosition()
|
||||
{
|
||||
CBasePlayer *pPlayer = UTIL_GetLocalPlayer();
|
||||
CWorld *pWorld = GetWorldEntity();
|
||||
if ( !pPlayer )
|
||||
{
|
||||
Error( "Test_RandomPlayerPosition: no local player entity." );
|
||||
}
|
||||
else if ( !pWorld )
|
||||
{
|
||||
Error( "Test_RandomPlayerPosition: no world entity." );
|
||||
}
|
||||
|
||||
|
||||
|
||||
Vector vMin, vMax;
|
||||
pWorld->GetWorldBounds( vMin, vMax );
|
||||
|
||||
Vector vecOrigin;
|
||||
vecOrigin.x = RandomFloat( vMin.x, vMax.x );
|
||||
vecOrigin.y = RandomFloat( vMin.y, vMax.y );
|
||||
vecOrigin.z = RandomFloat( vMin.z, vMax.z );
|
||||
pPlayer->ForceOrigin( vecOrigin );
|
||||
}
|
||||
|
||||
|
||||
ConCommand cc_Test_CreateEntity( "Test_CreateEntity", Test_CreateEntity, 0, FCVAR_CHEAT );
|
||||
ConCommand cc_Test_RandomPlayerPosition( "Test_RandomPlayerPosition", Test_RandomPlayerPosition, 0, FCVAR_CHEAT );
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user