Skip to content

winconditions Presets

McDiod edited this page May 15, 2017 · 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 Erklärung
0 Seite, die eliminiert sein muss. (WEST / EAST / INDEPENDENT / CIVILIAN).
1 optional - Seite, die eliminiert sein muss. (WEST / EAST / INDEPENDENT / CIVILIAN).
2 optional - Seite, die eliminiert sein muss. (WEST / EAST / INDEPENDENT / CIVILIAN).
3 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 Erklärung
0 Zeit in Sekunden
1 optional - Zusätzliche Bedingung

Beispiel 1:
Das Spiel dauert eine halbe Stunde und wartet am Ende darauf, dass keine Bluforeinheiten mehr in der Zone "AREA1" sind.

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

    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 Erklärung
0 Objekt oder Einheit, die zerstört werden muss.
1 optional - Objekt oder Einheit, die zerstört werden muss.
2 optional - Objekt oder Einheit, die zerstört werden muss.
... ...

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 Erklärung
0 Seite, deren Punktestand geprüft werden soll.
1 Punkte, die erreicht werden müssen, um zu gewinnen.
2 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 Erklärung
0 Variablenname des Triggers, der die Zone definiert.
1 Seite, die die Zone einnehmen muss. (WEST / EAST / INDEPENDENT)
2 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[] = {};    
};


Weiter geht's mit der scopeWeapons.hpp.

Clone this wiki locally