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";