Mir fällt da gerade noch auf, dass der you-Pointer eigentlich nicht auf den dazugehörigen Körper verweist. Das macht er IMO nur in dem Frame, in dem der Kopf erstellt wurde.

Diese Funktion brauchen wir so nicht:

Code:

function ent_headshot()
{
ent_create(Head_entity,nullvector,Entity_Bewegen);
}



Statt dessen schreiben wir die ent_create-Zeile in die aiFPS01-Action und zwar vor der letzten Zeile:

Code:


my.handle_ID = handle(my); //erstelle eine unique Nummer und speicher sie in Skill70
you = ent_create(Head_entity, my.x, Entity_Bewegen); //erstelle den Kopf und weise ihm den Pointer "You" zu
you.handle_ID = my.handle_ID; //übergebe die unique Nummer an den erstellten Kopf


// Call the update loop
AIFPS01_Guard_Update();



Die "handle_ID" definieren wir am Anfang des Skriptes.

Code:

DEFINE handle_ID, skill70 //Skill70 könnte noch frei sein, ich kenne mich bei den Templates nicht so aus.



Jetzt modifizieren wir noch die "entity_bewegen"-Funktion
Code:

function entity_bewegen()
{
proc_late(); //Diese Funktion wird am Ende ausgeführt, nach der erstellenden Entity
my.health = 1; //Pseudowert
my.passable = off; //Falls passable Objekte vom c_trace ignoriert werden (was, glaube ich, in den Templates der Fall ist)
my.enable_shoot = on; //Ich bin empfänglich für das Shoot-Event
//my.enable_scan = on;
my.event = headshotkill; //Falls ich von dem Shoot-Event getroffen werde, führe mein Event "headshotkill" aus
my.invisible = off; //ich bin sichtbar
while(my.health > 0) // Solange meine Gesundheit größer als 0 ist
{
you = ptr_for_handle(my.handle_ID); // Wir ordnen dem You-Pointer das entsprechende Parent-Modell zu
vec_set(my.x,you.x);
vec_set(my.pan,you.pan);
my.frame = you.frame; // Koordinieren der Animationen
my.next_frame = you.next_frame; // Koordinieren der Animationen
wait(1);
}
ent_remove(my); // Löschen der Entity
}



Versuche es mal mit diesen Änderungen. Ich glaube, dass das Passable-Flag daran schuld war, dass es nicht ging.
Bevor du die ganzen Handle-Änderungen durchführst kannst du ja mal versuchen nur das Passable-Flag der Head-Entity auf "off" zu stellen.

Last edited by LordRathan; 07/06/06 04:38.