So nach langem Hin und Her und stundenlangem Rumprobieren bin ich auf eine Lösung gekommen!

Und woran lag es letztendlich? Die Funktionen you = ent_next(null); zu Beginn und you = ent_next(you); am Ende der Funktion waren einfach falsch belegt.

Sobald ich einen Tower gebaut hab, ist dieser ja als neues Entity selber auf sich gesprungen und somit war you == me!

Nun sieht meine Funktion folgendermaßen aus:

Code:
function tower_schiesse()
{
	my.z = 50;
	my.scale_x = 0.3;
	my.scale_y = 0.3;
	my.scale_z = 0.3;
	
	you = ent_next(NULL); //außerhalb der Schleife!!!!
	
	while(1)
	{
		you = ent_next(you); //erstes entity aussuchen
		
		//Ausschau halten nach Entitys mit Skill12 == 1
		if(you)
		{
			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
					{
						goto neuesEntity;
					}		
					//hiermit wird die angriffsgeschwindigkeit bzw die verzögerung festgelegt
					sleep(geschw_tower001*time);
					wait(1);
				}
			}
		}
		

		neuesEntity: //SPRUNGMARKE Für Innere Schleife, um eine neue Entity auszusuchen!
		
		wait(1);
	}
}



Ich weiß, die GOTO ist immer noch drin, aber jetzt funktioniert es ersteinmal einwandfrei und jeder Tower greift anständig sein eigenes Creep an und sie bündeln ihren Angriff... laugh

Hab zwar auch ne Weile grübeln müssen, bis ich auf die banale Lösung kam, aber trotzdem vielen Dank für alle Hilfestellungen eurerseits laugh

Edit: Achja, die leeren Parameterklammern haben auch gefehlt, deswegen hats auch nich geklappt! (function tower_schiesse() )

Last edited by dice; 12/30/10 16:58.