Binary files trem901-original-wraths-tmp1/src/game/.DS_Store and trem901-original-wraths-tmp/src/game/.DS_Store differ
diff -Nru trem901-original-wraths-tmp1/src/game/g_admin.c trem901-original-wraths-tmp/src/game/g_admin.c
--- trem901-original-wraths-tmp1/src/game/g_admin.c	2007-08-18 07:10:30.000000000 +0200
+++ trem901-original-wraths-tmp/src/game/g_admin.c	2007-08-18 07:11:12.000000000 +0200
@@ -2784,19 +2784,42 @@
   if( cmd && *cmd == '!' )
     cmd++;
   G_SayArgv( 1 + skiparg, name, sizeof( name ) );
-  if( G_ClientNumbersFromString( name, pids ) != 1 )
+  
+  if ( !Q_stricmp( name, "target_in_aim" ) )
+  {
+    vec3_t      forward, end;
+    trace_t     tr;
+
+    // trace a (team)mate
+    AngleVectors( ent->client->ps.viewangles, forward, NULL, NULL );
+    VectorMA( ent->client->ps.origin, 8192 * 16, forward, end );
+
+    trap_Trace( &tr, ent->client->ps.origin, NULL, NULL, end, ent->s.number, MASK_PLAYERSOLID );
+    vic = &g_entities[ tr.entityNum ];
+
+    if( tr.fraction >= 1.0f || !vic->client )
+    {
+      trap_SendServerCommand( ent-g_entities,
+        va( "print \"!slap: aim at a victem to slap.\n\"") );
+      return qfalse;
+    }
+  }
+  else if( G_ClientNumbersFromString( name, pids ) != 1 )
   {
     G_MatchOnePlayer( pids, err, sizeof( err ) );
     ADMP( va( "^3!slap: ^7%s\n", err ) );
     return qfalse;
   }
-  if( !admin_higher( ent, &g_entities[ pids[ 0 ] ] ) )
+  else
+  {
+	vic = &g_entities[ pids[ 0 ] ];
+  }
+  if( !admin_higher( ent, vic ) )
   {
     ADMP( "^3!slap: ^7sorry, but your intended victim has a higher admin"
         " level than you\n" );
     return qfalse;
   }
-  vic = &g_entities[ pids[ 0 ] ];
 
   // cant slap spectators
   if( vic->client->pers.teamSelection == PTE_NONE ||
@@ -2823,7 +2846,7 @@
   if( vic != ent )
     trap_SendServerCommand( vic-g_entities,
       va( "cp \"%s^7 is ^1not amused!\n\"",
-      ent ? ent->client->pers.netname : "console" ) );
+      ent ? ent->client->pers.netname : "Console" ) );
 
   if( g_slapDamage.integer > 0 ) {
 
