Hi:
Try this code maybe can help you. Set the skill51 when player is looking at the target enemy, otherwise reset skill51 to 0;
It's a simple solution, a more elaborate one must be done.
Code:
[/code]
function act_player();
function act_enemy();

entity* front;

font standard_font = "c:/windows/fonts/arial", 1, 22;

PANEL PanData   // show data on screen
{
  layer = 5;
  digits = 0,450,"Data:%3.0f",standard_font,1,front.skill51;
  flags = TRANSLUCENT,VISIBLE;
}

function main()
{
   fps_max = 50;
   level_load (NULL);
   wait(5);
// load the (player entity, assign position, and default function) 
   ent_create ("player.mdl", vector(40,0,0), act_player);   
   ent_create ("enemy.mdl", vector(100,0,0), act_enemy);   
   ent_create ("enemy.mdl", vector(100,50,0), act_enemy); 
   ent_create ("enemy.mdl", vector(100,-50,0), act_enemy);   
}

function act_player()
{
  var speed = 5;
  var rotation_speed = 3;
  my.scale_x = .5; 
  my.scale_y = .5;
  my.scale_z = .5;
  my.passable = on;
  player = my;
	
  while(1)      
  {
     move_mode = IGNORE_PASSABLE + USE_BOX;  
      
     if(key_w == 1)
     { 
        // perform movement
        c_move (my,vector(speed * time_step,0,0), nullvector, move_mode);
     }
     
     if(key_s == 1)
     {
       c_move (my,vector(-speed * time_step,0,0), nullvector,move_mode);
     }
     // perform rotation
     if(key_a == 1) { my.pan += rotation_speed * time_step; };
     if(key_d == 1) { my.pan -= rotation_speed * time_step; };
     if(key_q == 1) { my.tilt += 1; }
     if(key_z == 1) { my.tilt -= 1; }
    
     // set/reset skill51
     if ((c_scan(my.x, my.pan, vector(45, 60, 60), ignore_me) > 0))     
     {
       you.skill51 = 1;
       front = you;
     }
     else
     {
      	if(front)
        { 
          front.skill51 = 0;
        }
     }  
     wait(1);
  }
}

function act_enemy()
{
  var percent;
  
  my.scale_x = .5; 
  my.scale_y = .5;
  my.scale_z = .5;
	
  while(1) // see me moonwalk if skill51 active (player looking at me)     
  {
     if(my.skill51 == 1) 
     {
       percent += 3 * time_step;
       ent_animate(my,"walk", percent, ANM_CYCLE);
       percent %= 100;
     }
     wait(1);
  }
}
[code]