Hallo Leute,
ich versuche eine Gegner-Ai, nach dem Tutorial aus dem 3DGS-Magazin zu scripten, die in Deckung geht wenn sie getroffen wird. Leider fuktioniert das ganze noch nicht sauber..
Zum einen werden die Zielpunkte nicht immer richtig gesetzt, zum anderen "hängen" die meissten Gegner fest und "flackern" sobald sie ihren Zielpunkt erreichen!
Hier der entsprechende Codeteil:

Code:
  
.
.
.
// MY.action_state=4: ENEMIE SUCHT DECKUNG
while (my.action_state == 4)
{
if (my.hint_counter <= 360)
{
my.hint_counter += 36;
temp.x = my.x + fsin(my.hint_counter, 300);
temp.y = my.y + fcos(my.hint_counter, 300);
temp.z = my.z;

c_trace(my.x, temp.x, Ignore_me | Ignore_passable);
result = c_trace(target.x, plBiped01_entity.x, Ignore_me | Ignore_passable);

if((result != 0) && (you != plBiped01_entity))
{
My.move_pos_x = target.x;
My.move_pos_y = target.y;
My.move_pos_z = my.z;

while(1)
{
ent_animate(me, "Run", my.skill46, ANM_CYCLE);
my.skill46 += 10 * time_step;
vec_set (temp.x, my.move_pos_x);
vec_sub (temp.x, my.x);
vec_to_angle (my.pan, temp);
my.tilt = 0;
my.skill53 = 20 * time_step;
my.skill54 = 0;
my.skill55 = 0;
result = c_move (my, my.skill53, nullvector, ignore_passable | glide);

if ((result < (0.5 * my.skill53 * time_step)) || (vec_dist(my.x, My.move_pos_x) < 20))
{
my.action_state = 0;
break;
}
wait (1);
}
}
}
else
{
my.hint_counter = 0;
}
wait(1);
}
.
.
.



Weiss jemand Hilfe oder hat einen Tip? Auch würde ich mich über einen anderen Ansatz freuen, die Gegner Deckung suchen zu lassen...
Dex


A8-Com-v 8.47.1