Skip to content

winconditions Presets

McDiod edited this page Apr 29, 2018 · 11 revisions

Presets sind gängige Siegbedingungen, die im TvT Template mitgelieferte Funktionen benutzen. Die Parameter nehmen dabei Einfluss auf das Verhalten der Presets. In den Tabellen bedeutet Parameter 0, dass dieser Parameter im presetParams Array an erster Stelle stehen muss. Parameter 1 an zweiter Stelle, Parameter 2 an dritter Stelle usw.

ELIMINATION

Das Elimination Preset löst aus, sobald keine Einheiten der als Parameter übergebenen Seiten mehr leben.

Parameter Typ Erklärung
0 side (string) Seite, die eliminiert sein muss. (WEST / EAST / INDEPENDENT / CIVILIAN).
1 side (string) optional - Seite, die eliminiert sein muss. (WEST / EAST / INDEPENDENT / CIVILIAN).
2 side (string) optional - Seite, die eliminiert sein muss. (WEST / EAST / INDEPENDENT / CIVILIAN).
3 side (string) optional - Seite, die eliminiert sein muss. (WEST / EAST / INDEPENDENT / CIVILIAN).

Beispiel:
Missionsende, wenn OPFOR und INDEPENDENT ausgeschaltet sind.

class bluforWinElimination {
    preset = "ELIMINATION";
    presetParams[] = {"EAST","INDEPENDENT"};

    condition = "";
    checkInterval = 0;

    winners[] = {"WEST"};
    winText = "BLUFOR wins by elimination!";
    winTextParams[] = {};    
};

TIMEOUT

Das Timeout Preset löst aus, nachdem eine feste Zeit abgelaufen ist. Dieses Preset ist zum Beispiel nützlich, um in einem Verteidigungsszenario den Verteidiger nach einer bestimmten Zeit zum Sieger zu erklären. Das Preset unterstützt außerdem eine zweite, optionale Bedingung, die zusätzlich zur abgelaufenen Zeit erfüllt sein muss.

Parameter Typ Erklärung
0 number Zeit in Sekunden
1 code (string) optional - Zusätzliche Bedingung
2 array of numbers optional - Array von Restzeiten in Sekunden, zu denen alle Spieler informiert werden

Beispiel 1:
Das Spiel dauert eine halbe Stunde und wartet am Ende darauf, dass keine Bluforeinheiten mehr in der Zone "AREA1" sind. 10 Minuten, 5 Minuten und eine Minute vor Spielende erhalten die Spieler eine kurze Nachricht über die Restzeit.

class opforWinDefense {
    preset = "TIMEOUT";
    presetParams[] = {1800,"{side _x == WEST && {_x inArea 'AREA1'}} count playableUnits",{600,300,60}};

    condition = "";
    checkInterval = 0;

    winners[] = {"EAST"};
    winText = "OPFOR has defended AREA1!";
    winTextParams[] = {};
};

Beispiel 2:
Das Spiel endet nach einer halben Stunde, egal was ist.

class timeoutDraw {
    preset = "TIMEOUT";
    presetParams[] = {1800};

    condition = "";
    checkInterval = 0;

    winners[] = {};
    winText = "Time is up. No winner.";
    winTextParams[] = {};    
};

DESTROY

Das Destroy Preset löst aus, wenn alle Objekte / Einheiten, die in den presetParams übergeben wurden, zerstört oder tot sind.

Parameter Typ Erklärung
0 object (string) Objekt oder Einheit, die zerstört werden muss.
1 object (string) optional - Objekt oder Einheit, die zerstört werden muss.
2 object (string) optional - Objekt oder Einheit, die zerstört werden muss.
... object (string) ...

Beispiel:
Das Spiel endet, wenn die Soldaten soldier1und soldier2 getötet wurden.

class agentsKilled {
    preset = "DESTROY";
    presetParams[] = {"soldier1","soldier2"};

    condition = "";
    checkInterval = 0;

    winners[] = {"WEST"};
    winText = "BLUFOR eliminated the agents!";
    winTextParams[] = {};    
};

POINTS

Das Points Preset löst aus, wenn eine Seite einen bestimmten Punktestand erreicht hat, oder die Zeit abgelaufen ist.

Parameter Typ Erklärung
0 side (string) Seite, deren Punktestand geprüft werden soll.
1 number or code (string) Punkte, die erreicht werden müssen, um zu gewinnen.
2 number optional - Zeit, nach der die Mission endet.

Beispiel:
Das Spiel endet, wenn BLUFOR 30 Punkte erreicht hat oder die Mission seit 30 Minuten läuft.

class bluforWinPoints {
    preset = "POINTS";
    presetParams[] = {"WEST",30,1800};

    condition = "";
    checkInterval = 0;

    winners[] = {"WEST"};
    winText = "BLUFOR wins with 30 points!<br/>OPFOR only had %1 points.";
    winTextParams[] = {"[EAST] call grad_common_fnc_getPoints"};    
};

CONTROL

Das Control Preset löst aus, sobald die angegebene Seite für die angegebene Zeit am Stück die angegebene Zone kontrolliert. Für dieses Preset definieren wir zunächste die Zone mit einem Trigger. Dem Trigger geben wir einen Variablennamen (bspw. "AREA1") und setzen den Haken bei Server Only.

Parameter Typ Erklärung
0 string Variablenname des Triggers, der die Zone definiert.
1 side (string) Seite, die die Zone einnehmen muss. (WEST / EAST / INDEPENDENT)
2 number optional - Zeit in Sekunden, die die angegebene Seite die angegebene Zone halten muss. Default: 0

Beispiel:
BLUFOR muss die Zone "AREA1" für 30 Sekunden kontrollieren.

class bluforCapturedArea1 {
    preset = "CONTROL";
    presetParams[] = {"AREA1","WEST",30};

    condition = "";
    checkInterval = 0;

    winners[] = {"WEST"};
    winText = "BLUFOR captured AREA1!";
    winTextParams[] = {};    
};

Clone this wiki locally