[/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]