Einen Wunderschönen!

Folgendes Problem:
Ich habe ein Raumschiff und flieg damit durch die Gegend. Wenn einer der Laserschüsse mit c_move ein Entity trifft, wird dieser Partikel aufgelöst und ein kleiner Explosionseffekt (schusstreffer) wird aufgerufen. Wie kann ich nun den Entitiy darauf reagieren lassen? In dem Beispiel: Wie kann ich den Skill4 (in den Fall als HP) nun reduzieren. So das er erkennt das der schuss a. von einem Spieler kommt. Und b. das er überhaupt erkennt das es ein Schuss war. Ich habe etwas über event_shoot gelesen. Allerdings funktioniert es nicht so wie ich mir in etwa vorgestellt habe, eventuell auch einfach falsch interpretiert. Seht selber:

Schuss Funktion:

Code:
function Waffenschuss_01()
{
	var lifetimer = 350;
	
	me.flags |= TRANSLUCENT | BRIGHT;
	//you = player;
	vec_set(my.pan, you.pan);
	
	
	
	while(1)
	{
		effect(PartikelWaffenschuss_01,1,vector(me.x,me.y,me.z),nullvector);		
		// KOLLISION DES SCHUSSES
		if(c_move(me,vector(350*time_step,0,0),nullvector,IGNORE_PASSABLE | IGNORE_YOU | IGNORE_SPRITES | ACTIVATE_SHOOT ) <= 0)
		{
			effect(PartikelPlasmaExplosion_01,10,vector(me.x,me.y,me.z),nullvector);
			ent_remove(me);
			return;
		}
		
		lifetimer -= 1;
		
		if(lifetimer <= 0)
		{
			ent_remove(me);
			return;
		}
		
		wait(1);
	}
}



Und die Action (In dem Fall ein Asteroid) die Bspw darauf reagieren soll:

Code:
action Asteroid()
{
	me.skill1 = random(3)-5; // PanSpeed
	me.skill2 = random(3)-5; // TiltSpeed
	me.skill3 = random(5)-10; // RollSpeed
	
	me.skill4 = 100; // Lebensenergie
	
	while(me)
	{
		
		//Debugtest = me.skill4;
		
		me.pan += me.skill1*time_step;
		me.tilt += me.skill2*time_step;
		
		if(event_type == EVENT_SHOOT)
		{
			me.skill4 -= 20;
		}
		
		if(me.skill4 <= 0)
		{
			ptr_remove(me);
		}
		
		
		wait(1);
	}
	
}



Last edited by Neoxit; 03/05/11 12:56.