ACTION I_Warhound
{
var Gesundheit = 100;
var Bewegung;
var Gravitation;
var Distanz_zum_Boden;
var Laufgeschwindigkeit = 40; // Grundwert
var Drehgeschwindigkeit = 5; // Grundwert
var Animationsfortschritt = 0; // Grundwert
var Animationsgeschwindigkeit = 10; // Grundwert
my.shadow = on;
my.push = 10;
WHILE(1)
{
c_setminmax(me);
//Gravitation
Distanz_zum_Boden = c_trace(my.x,vector(0,0,-4000),ignore_me | ignore_sprites | ignore_models | use_box);
Gravitation.z = -Distanz_zum_Boden;
Gravitation.z = max (-250 * time, Gravitation.z);
// rennen
Bewegung.x = Laufgeschwindigkeit * (key_w - key_s) * time;
Bewegung.y = 0;
my.pan += Drehgeschwindigkeit * (key_a - key_d) * time;
if (Bewegung.x != 0)
{
Animationsgeschwindigkeit = 3;
ent_cycle("walk", Animationsfortschritt);
}
else
{
Animationsgeschwindigkeit = 6;
ent_cycle("stand", Animationsfortschritt);
}
Animationsfortschritt += Animationsgeschwindigkeit * time;
c_move(me,Bewegung, nullvector,glide | ignore_passable);
c_move(me,Gravitation,nullvector,glide);
vec_diff(temp,nullvector,sicht_dist);
vec_to_angle(sicht_ang,temp);
sicht_ang.tilt = -10;
vec_set(Sicht.x,sicht_dist);
vec_rotate(Sicht.x,my.pan);
vec_add(Sicht.x,my.x);
vec_set(Sicht.pan,sicht_ang);
ang_add(Sicht.pan,my.pan);
WAIT(1);
}
}
//////////////////////////////////
// Events
//////////////////////////////////
//////////////////////////////////
// Event Gegner
//////////////////////////////////
FUNCTION Gegner()
{
if(event_type == event_shoot ){
ent_remove(my);
}
if(event_type == event_push){
ent_remove(my);
}
}
ACTION Feind
{ my.push = 5;
var Gravitation;
var Distanz_zum_Boden;
WHILE(1){
Distanz_zum_Boden = c_trace(my.x,vector(0,0,-4000),ignore_me | ignore_sprites | ignore_models | use_box);
Gravitation.z = -Distanz_zum_Boden;
Gravitation.z = max (-250 * time, Gravitation.z);
c_move(me,Gravitation,nullvector,glide);
my.enable_push = on;
my.event = Gegner;
WAIT(1);
}
}