Danke für eure geopferte Zeit wink

Ich halte mich mal an deiner Gliederung:
zu 1.) Da hast du recht, hab ich jetzt auch so realisiert!
zu 2.) Stimmt, kann weg, ist aber nur nen Schönheitsfehler laugh
zu 3.) Bei C-Skript gibt es doch diese "Skript Fallen", die auf einen Empty Pointer verweisen! Dieser Ausdruck sorgt nur dafür dass am Anfang keine Fehlermeldung kommt, dass der Tower noch nicht da steht. In diesem Fall kann der Ausdruck aber auch entfallen, da ich den Tower garnicht mehr so anspreche! (war noch aus den vorigen Versionen)
zu 4.) show Angriff funzt einwandfrei, sorgt nur dafür dass ich sehe, dass etwas passiert (leben abgezogen wird vom Entity)

zum GOTO: Ich weiß, GOTO's sind nicht ganz sauber und man sollte es vermeiden diese zu benutzen, aber in diesem Fall funktioniert es und irgendwie muss ich ja aus dieser Schleife rausspringen, wenn die Entfernung über den angegebenen Wert ist! Das Entity muss ja nich zwangsläufig weg sein, sondern "while(you)" ist ja immer noch gültig! Jedenfalls liegt mein Problem woanders:

Das Problem besteht nämlich weiterhin. Die Tower, die ich erstelle, kennen jeweils nur alle den "YOU" Pointer und greifen nur ein und dasselbe Entity an! Bzw sie bündeln nichtmal ihren Angriff (bei 3 Tower zusammen im gleichen Radius müsste ja 3 mal soviel HP abgezogen werden bei den Monstern, klappt aber nich)

Deswegen auch zu erst die Frage, ob man ein lokales Entity mit übertragen kann, damit jede Funktion ihre eigene entity angreift! Wie kann ich das mit handle() und ptr_for_handle() realisieren?!

Hier mal die "neue" Funktion tower_schiesse:
Code:
function tower_schiesse
{	
	while(1)
	{
		you = ent_next(NULL); //erstes entity aussuchen
		
		
		
		//Ausschau halten nach Entitys mit Skill12 == 1
		if (you.skill12 > 0)
		{
			//jetzt auf ein Entity festlegen!
			while(you)
			{
				if (vec_dist(my.x,you.x) < my.skill51)
				{
					//Angreifen!
					you.skill12 -= my.skill50;
					show_angriff(my.skill50);
				}
				else
				{
					//wenn die distanz überschritten wird, oder noch nicht erreicht ist, dann soll er sich ein neues entity suchen:
					goto neuesEntity;
					
				}
				
				//hiermit wird die angriffsgeschwindigkeit bzw die verzögerung festgelegt
				sleep(geschw_tower001*time);
				wait(1);
			}
		}
		else
		{
			neuesEntity: //SPRUNGMARKE Für Innere Schleife, um eine neue Entity auszusuchen!
			//wenn ds entity kein Skill == 1 hat, dann nächstes Entity auswählen!
			you = ent_next(you);
		}
		
		wait(1);
	}
}



Gruß, dice