Es soll ein Asteroidenfeld werden.
Also es wird ein Modell ins Level gesetzt von der aus das Feld erzeugt wird. In angegebenen xyz Richtungen.
In diesem Bereich werden die Asteroiden erzeugt.
Mein Prob ist jetzt das ganze zu Steuern also wenn der Player garnicht im Feld ist sollen natürlich auch keine erzeugt werden.
Und wenn der Player im Feld ist sollen Sie erzeugt werden zufällig und unterschiedliche Grössen aber auch nur um denn Player herum nicht das ganze Feld.
MFG Thomas
Hier nochmal der Code
string asteroid1_mdl = <asteroid1.mdl>;
string asteroid2_mdl = <asteroid2.mdl>;
string asteroid3_mdl = <asteroid3.mdl>;
function move_asteroid()
{
var meteor_angle;
var meteor_speed;
my.enable_impact = on;
my.enable_entity = on;
//my.event = destroy_asteroid;
my.scale_x = 1 + random(0.5);
my.scale_y = my.scale_x;
my.scale_z = my.scale_x;
my.skill10 = my.scale_x; // store the scale in skill10 - we will use it to adjust the size of the explosion later
meteor_angle.x = 3 - random(6); // random pan speed
meteor_angle.y = 3 - random(6); // random tilt speed
meteor_angle.z = 3 - random(6); // random roll speed
meteor_speed.x = 0;
meteor_speed.y = 0;
meteor_speed.z = 0;
while (my.x+my.y+my.z > -1000)
{
my.pan += meteor_angle.x * time;
my.tilt += meteor_angle.y * time;
my.roll += meteor_angle.z * time;
move_mode = ignore_you + ignore_passable;
ent_move (nullvector, meteor_speed);
wait (1);
}
sleep (1);
ent_remove (my);
}
material mat_Asteroid
{
//effect="NormalShader.fx";
flags=TRANSLUCENT;
ambient_red=30;
ambient_green=30;
ambient_blue=30;
diffuse_red=155;
diffuse_green=155;
diffuse_blue=155;
specular_red=155;
specular_green=155;
specular_blue=155;
}
action asteroid_maker
{
my.material=mat_Asteroid;
var temp_var;
my.passable = on;
my.invisible = off;
while (1)
{
temp.x = 5000 - random(5200);
temp.y = 5000 - random(5200); // -5,000 to 5,000
temp.z = 1000 - random(1200);
temp_var = random(100);
if (temp_var < 0.33)
{
ent_create (asteroid1_mdl, temp, move_asteroid);
}
if ((temp_var >= 0.33) && (temp_var < 0.16))
{
ent_create (asteroid2_mdl, temp, move_asteroid);
}
if (temp_var > 0.66)
{
ent_create (asteroid3_mdl, temp, move_asteroid);
}
wait (2);
}
}