Mal schauen ob ich dir nicht helfen kann. laugh

Fang am besten mal damit an ihn auf schüsse oder wände reagieren zu lassen:

Click to reveal..
STRING* gegner;
var anim_speed;
action dummy_gegner() /////action die du deinem gegner gibst
{
gegner = me;
my.leben = 6;
while(my != NULL)
{
if(my.leben > 0) ////// sobald gegner mehr als 0 leben hat macht er das:
{
anim_speed += 8*time_step;
if(anim_speed >= 100) anim_speed = 0;
ent_animate(my, "walk", anim_speed, ANM_CYCLE);
my.tilt = 0;
c_move(my, vector(4, 0, 0), nullvector, GLIDE | IGNORE_ME | IGNORE_PASSABLE);
if(trace_hit)
{
vec_to_angle(my.pan,bounce);
my.pan += random(4)-2;
}
}
else ////// wenn er weniger leben hat das:
{
anim_speed += 10*time_step;
ent_animate(my, "death", anim_speed, ANM_CYCLE);
if(anim_speed >= 90) ent_remove(me);
}
wait(1);
}
}



STRING* player_shoot;
function hero_fire() /////function für deine geschosse
{
player_shoot = me;
my.emask |= ENABLE_ENTITY;
my.event = fire_react;
my.pan = player.pan;
my.tilt = player.tilt;
vec_set(my.x, player.x);
while (you != NULL)
{
c_move(my, vector(8, 0, 0), nullvector, IGNORE_YOU | IGNORE_ME | IGNORE_PASSABLE);
wait(1);
}
}



function fire_react() /////reaktion deiner geschosse auf gegenstände oder mauern usw...
{
if(event_type == EVENT_ENTITY)
{
if(you == gegner)
{
your.leben -= 1;
}
}
wait(1);
ent_remove(me);
}


Du musst nur noch deiner Player action einige zeilen hinzufügen, die so aussiehen:

if(key_space == 1)
{
ent_create (geschoss_mdl, my.x, hero_fire);
while(key_space == 1){wait(1);}
}

der geger müsste jetzt durch den raum laufen, von den wänden abprallen und sterben wenn du ihn 6x triffst.

du müsstest auch noch einige skills neu definieren z.B.:
#define leben skill20

dann müsste eigentlich alles funktionieren und du hast eine gute basis für deine "experimente" wink


Be my UBB-Buddy, without any reason!