aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/server/entity_tools_server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'mp/src/game/server/entity_tools_server.cpp')
-rw-r--r--mp/src/game/server/entity_tools_server.cpp36
1 files changed, 31 insertions, 5 deletions
diff --git a/mp/src/game/server/entity_tools_server.cpp b/mp/src/game/server/entity_tools_server.cpp
index e1888123..5032ca04 100644
--- a/mp/src/game/server/entity_tools_server.cpp
+++ b/mp/src/game/server/entity_tools_server.cpp
@@ -409,13 +409,39 @@ void CC_Ent_Keyvalue( const CCommand &args )
return;
}
- int nID = atoi( args[1] );
+ CBasePlayer *pPlayer = ToBasePlayer( UTIL_GetCommandClient() );
+ CBaseEntity *pEnt;
+ if ( FStrEq( args[1], "" ) || FStrEq( args[1], "!picker" ) )
+ {
+ if (!pPlayer)
+ return;
+
+ extern CBaseEntity *FindPickerEntity( CBasePlayer *pPlayer );
+ pEnt = FindPickerEntity( pPlayer );
- CBaseEntity *pEnt = g_ServerTools.FindEntityByHammerID( nID );
- if ( !pEnt )
+ if ( !pEnt )
+ {
+ ClientPrint( pPlayer, HUD_PRINTCONSOLE, "No entity in front of player.\n" );
+ return;
+ }
+ }
+ else if ( FStrEq( args[1], "!self" ) || FStrEq( args[1], "!caller" ) || FStrEq( args[1], "!activator" ) )
{
- Msg( "Entity ID %d not found.\n", nID );
- return;
+ if (!pPlayer)
+ return;
+
+ pEnt = pPlayer;
+ }
+ else
+ {
+ int nID = atoi( args[1] );
+
+ pEnt = g_ServerTools.FindEntityByHammerID( nID );
+ if ( !pEnt )
+ {
+ Msg( "Entity ID %d not found.\n", nID );
+ return;
+ }
}
int nArg = 2;