grad_linearSD_fnc_startLinearSD - gruppe-adler/TvT_Template.VR GitHub Wiki

Aktiviert den Linear-Sectordefense Spielmodus. Funktion muss sowohl auf Clients als auch auf Server ausgeführt werden.

Syntax

[firstActiveSectorID,roundLength,opforDirection,datesAndTimes] call grad_linearSD_fnc_startLinearSD;

Parameter

Parameter Erklärung
firstActiveSectorID number - Die ID der Sektoren, die zuerst angegriffen werden sollen.
roundLength number - Dauer in Sekunden einer Runde.
opforDirection number (-1/1) - Angriffsrichtung von Opfor. Beispiel: Blufor besitzt bei Spielstart die Sektoren mit den IDs 0,1 und 2. Opfor besitzt die Sektoren 3,4 und 5. Opfors Angriffsrichtung ist also -1.
datesAndTimes (optional) array - Daten und Uhrzeiten der Runden. Erster Eintrag entspricht Datum und Uhrzeit der zweiten Runde. Erste Runde in 3den einstellen!
weather (optional) array - Wetter der Runden. Erster Eintrach entspricht dem Wetter der zweiten Runde. Erste Runde in 3den einstellen!

datesAndTimes

Um das datesAndTimes Array zu füllen, stellen wir in 3den ein gewünschtes Datum ein und öffnen die Konsole (Strg + D). Dort führen wir den Befehl date aus und kopieren uns das Ergebnis in unser Array, sodass es am Ende wie im Beispiel unten aussieht.

Achtung: Die jeweils nächste Runde muss immer in der Zukunft liegen!

weather

Um das weather Array zu füllen, stellen wir in 3den ein gewünschtes Wetter ein und öffnen die Konsole (Strg + D). Dort führen wir call grad_linearSD_fnc_getWeather aus und kopieren uns das Ergebnis in unser Array, sodass es am Ende wie im Beispiel unten aussieht.

Achtung: Es werden derzeit nur Bewölkung und Nebel übertragen. Von der Bewölkung ist gleichzeitig auch der Niederschlag abhängig.
Achtung: Damit die getWeather Funktion funktioniert, muss die Mission einmal gestartet worden sein.

Beispiel

Sinnvoll ist diese Funktion in der userInit.sqf.

Um den restlichen Systemen etwas Zeit zur Initialisierung zu geben, führen wir sie zeitverzögert aus (CBA_fnc_waitAndExecute), allerdings nur, wenn der ausführende Spieler nicht JIP ist.
([10,0] select didJIP)

Die Sektoren mit der ID 2 gehören Opfor. DIe Sektoren mit der ID 3 gehören Blufor. Die ID der ersten Agriffssektoren, und damit die Seite die zuerst angreift, soll zufällig ausgewählt werden.
(selectRandom [2,3])

Die Rundenlänge beträgt eine halbe Stunde.
(1800)

[{
    _firstActiveSectorID = selectRandom [2,3];
    _roundLength = 1800;
    _opforDirection = 1;

    _dateAndTimeArray = [
        [2035,5,28,4,60],
        [2035,5,30,10,31],
        [2035,6,4,7,35]
    ];

    _weatherArray = [
        [0,[0,0.014,0]],
        [0.736327,[0.28973,0.014,0]],
        [0.319941,[0.132027,0.014,0]]
    ];

    [_firstActiveSectorID, _roundLength, _opforDirection, _dateAndTimeArray, _weatherArray] call grad_linearSD_fnc_startLinearSD;

},[],[10,0] select didJIP] call CBA_fnc_waitAndExecute;