DEFINE _animframe, skill26;
DEFINE _angle, skill46; var stand_speed = 2;
var walk_speed = 12;
var innocent_speed = 2;
var follow_speed = 10;
var stand_speed = 2;
action follower
{
my.enable_click = on;
while (player == null) { wait(1); }
while(1)
{
you = null;
trace_mode = ignore_me + ignore_models;
temp = trace(my.x, player.x);
if (you != null)
{
if (you.transparent == on)
{
trace_mode += ignore_you;
temp = trace(my.x, player.x);
}
}
if (temp != 0)
{
my._animframe += time * stand_speed;
ent_cycle("stand", my._animframe);
}
else
{
vec_set (temp, nullvector);
temp.x = 1;
vec_rotate (temp, player.pan);
vec_set (temp, my.x);
vec_sub (temp, player.x);
if (my.skill10 < 200) // player comes closer than 200 quants to the npc
{
my._animframe += time * innocent_speed;
ent_cycle("innocent", my._animframe);
}
if (vec_dist (my.x, player.x) > 100)
{
temp.x = player.x - my.x;
temp.y = player.y - my.y;
temp.z = 0;
vec_to_angle(my.pan, temp); // rotate towards the player
my._animframe += time * walk_speed;
ent_cycle("run", my._animframe);
vec_set (temp, nullvector);
temp.x = time * follow_speed;
ent_move (temp, nullvector);
}
}
wait(1);
}
}