Keine Garantie für Fehlerfreiheit, aber eigentlich sollte es so gehen. Getestet habe ich es nicht.

Code:
if(my.manner_of_death == 4) //// manner_of_death = art des todes
{
	var richtungsvektor[3];
	var geschwindigkeit;
	var explosionsstaerke = 200; //maximale Stärke der Explosionsauswirkung. Gleichzeitig Radius der Explosionsauswirkung
	var vektorenabstand = vec_dist(EGG.x,my.x); //Abstand zwischen Gegner (my) und explodierendem Ei (EGG) berechnen
	if(vektorenabstand > explosionsstaerke) { vektorenabstand = explosionsstaerke} //Radius der Explosionseinwirkung beschränken
	
	vec_diff(richtungsvektor,EGG.x,my.x) //Richtungsvektor berechnen durch Differenz zwischen Ei und Gegner
	geschwindigkeit = 0.2*(explosionsstaerke - vektorenabstand); //Auswirkung der Explosion berechnen. Die 0.2 davor ist der Faktor wie stark sich die Explosion auswirken soll. Kannst du ändern.
	vec_scale(richtungsvektor,geschwindigkeit); //Geschwindigkeit in den Richtungsvektor einrechnen
	
	while(c_move(my,NULL,richtungsvektor,IGNORE_PASSABLE)>0) //Während Entity in der Luft ist bzw. kein Hindernis trifft (hier bin ich mir nicht ganz sicher, Musst du mal testen)
	{
		c_move(my,NULL,richtungsvektor,IGNORE_PASSABLE);
		richtungsvektor[2] -= time_step; //Erdgravitation in die Flugbahn einrechnen.
		wait(1);
	}
	
	//Ab hier berührt die Entity den Boden. Jetzt kannst du die Entity z.B. abprallen lassen. Aber probier erstmal das oben aus.
}



Quote:

der erste vector von vec_diff, also die differenz zwischen 1 und 2 - ist das ergebnis ein abstand oder ein winkel? Ich blick da nicht ganz durch ...


Das ist ein Vektor. Pappenheimer erklärt das noch genauer. Schau mal in deinem Mathebuch oder Formelsammlung wenn du das noch /schon hast. In der Oberstufe Gymnasium macht man das ab der 12. soweit ich mich erinnern kann (BaWü)