Einzelnen Beitrag anzeigen
Alt 02.04.2014, 09:34   #4 (permalink)
Vienna
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Ich habe dir gezeigt wie die "Schleife" gestaltet werden soll. Weiter prüfe ich dein Skript nicht.

Hier ein Skript als Beispiel, welches du nach deinen Wünschen abändern kannst:
Code:
//ArtillerieBeschuss.sqf
//
//Aufruf: temp = [Position, Serienanzahl, Granaten je Serie, Streuung, Schussabstand, Wartezeit zum 1.Einschlag] execVM "ArtillerieBeschuss.sqf"
//
//Beispiel für einen Auslöser über 3 Serien, mit je 15 Granaten, 100m Streuung, 3 Sekunden Schussabstand, 25 Sekunden Pause:
//  temp = [Position, 3, 15, 100, 3, 25] execVM "ArtillerieBeschuss.sqf"; 

Private ["_pos","_s","_z","_t","_a","_e","_m","_j","_i"];

//Parameter einlesen 
_pos = _this select 0;   // Position für den Beschuss
_s   = _this select 1;   // Anzahl der Artilleriebeschüsse
_z   = _this select 2;   // Granatenanzahl je Serie  
_t   = _this select 3;   // Streuung in Meter
_a   = _this select 4;   // Granatenabstand in Sekunden (mit 33% Schwankung)
_e   = _this select 5;   // Wartezeit bis zum 1. Einschlag einer Serie

_m   = "ARTY_Sh_122_HE"; // Granatenname

for "_j" from 1 to _s do //Schleife gemäß Artillerieanzahl _s
 {
  sleep _e;  //Pause bis zum 1. Einschlag einer Serie
  for "_i" from 1 to _z do  // Schleife gemäß Granatenanzahl _z
   {
    // Granateneinschlag an der "gestreuten" Position                         
    _m createVehicle [(_pos select 0) - _t + random _t*2,(_pos select 1) - _t + random _t*2];
    // Pause für den Schussabstand der Granaten mit 33% Schwankung 
    sleep (_a*0.66 + random(_a*0.33)) 
   }
 }
Beachte, dass eine Position dem Skript übergeben werden muss!

z.B. erstelle einen Tank mit Namen Tank1 und rufe das Skript dann so auf:

temp = [position Tank1, 3, 15, 100, 3, 25] execVM "ArtillerieBeschuss.sqf";
Vienna ist offline