Ich geh jetzt mal einfach davon aus, dass du die Templates benutzt.

Wenn dein gegner getroffen wurde, also an der Stelle in der event-Funktion, an der auf event_shoot geprueft wird, schreibst du folgendes:

trace_mode = ignore_passable;
trace(gun_muzzle,gun_target);
emit(10,target,blut);

gun_muzzle wird von der weapons.wdl auf die Waffenmuendung gesetzt, gun_target auf den Zielpunkt. Wenn jetzt getraced wird, trifft der trace den gegner an der Stelle, an der auch der Schuss getroffen hat. Man koennte auch die ersten beiden Zeilen weglassen, da die weapons.wdl sowieso traced, aber so ist es sicherer.

Die Partikelfunktion koennte dann so aussehen:

function blut() {
if (my_age == 0) {
my_speed.y = random(3);
my_speed.x = random(360);
my_speed.z = my_speed.y * sin(my_speed.x);
my_speed.y = my_speed.y * cos(my_speed.x);
my_speed.x = random(4) - 2
my_size = 200;
my_map = blood1;
my_flare = ON;
END;
}
if (my_age > 9) {
MY_ACTION = NULL;
}
}

Dann kommt noch irgendwo an den Anfang:
BMAP blood1,<blood.bmp>;

Blood.bmp ist der Bluttropfen, den musst du natuerlich erst noch malen.
Wenn ich das neue Partikelsystem kennen wuerde, wuerde ich es auch verwenden, aber so geht es auch.

Nu will ich aber Sterne...

mfg
Dirk