Error nicht defenierte Variable im Ausdruck!

  • Hallo erstmal!


    Ich habe vor 3 Tagen angefangen Arma 3 Mission zu machen (Sehr Simple).
    Jetzt wollte ich mal versuchen ein Script zuschreiben, was dafür sorgt wenn 4 Squads Neutralisiert wurden das die Mission beendet wird.
    Aber jetzt kam die Fehlermeldung : "Error nicht definierte Variable im Ausdruck: alpha1".
    Wie kann ich diese Problem lösen?
    Was im Script drin steht:


    !alive Alpha1;
    !alive Alpha2;
    !alive Alpha3;
    !alive Alpha4;
    ----------------
    Wie schon gesagt ich bin sehr Unerfahren ;D


    LG,
    X. Maverric

  • Darüber hinausgehend: Wenn dein Skript nur das enthält, was du hier gepostet hast, wird es auch nach der Definition von Alpha1 nichts tun.


    Ist das wirklich ein Skript, das die Mission dann beenden soll, oder ist das die Bedingung für einen Trigger?

  • Wenn es ein Auslöser wäre, dann sollte der nicht über undefinierte Variablen meckern. Die Auslöserbedingung wird in der Unscheduled Environment ausgeführt wenn ich mich nicht sehr irre, und da wird nicht jede Variable daraufhin überprüft, ob ihr Wert nil oder undefiniert ist.

  • Darüber hinausgehend: Wenn dein Skript nur das enthält, was du hier gepostet hast, wird es auch nach der Definition von Alpha1 nichts tun.


    Ist das wirklich ein Skript, das die Mission dann beenden soll, oder ist das die Bedingung für einen Trigger?

    Das ist die Bedingung für einen Trigger. Dazu muss ich sagen, ich habe noch kein Tutorial geguckt, wo gezeigt wird wie man eigenltich richtig in Arma scriptet.
    Das was ich da probiert habe war einfach ein Test ob es Funktioniert ;D.

  • Dann musst du das so schreiben:

    Code
    1. !alive Alpha1 && !alive Alpha2 && !alive Alpha3 && !alive Alpha4;

    Dieser Ausruck liefert genau dann True zurück (und aktiviert somit den Trigger), wenn alle aufgeführten Einheiten tot sind.
    In der Variante, die du geschrieben hast, bekommt der Trigger nur den return-Wert des letzten Statements mit (!alive Alpha4), sodass der Trigger aktiviert wird, sobald Alpha4 gestorben ist. Und das unabhängig davon, ob die anderen Alphas noch leben oder nicht.


    P.S.: Zum Einstieg in die Materie des Skriptens in Arma, kann ich nur immer wieder die Videoreihe von Smart Tactics empfehlen: https://www.youtube.com/playli…6jgrNBgHTQ-ueaXSIP2HkX42K

  • Wie Raven schon sagte, die Bedingungen aller 4 Alphas einfügen und in die Aktivierungszeile dein gewünschtes Skript aufrufen.


    Ich empfehle dir in deinem Missionsordner einen Ordner Namens "scripts" anzulegen, wo du alle möglichen Skripte reinschmeißt, um den Überblick später zu bewahren.


    Das Skript rufst du dann wie folgt auf: nul = [] execVM "scripts\DeinSkriptname.sqf"


    Um die Mission via Skript zu beenden füge einfach folgende Zeile ein:


    "end1" call BIS_fnc_endMission;


    Wenn du nach der Eliminierung der 4 Alphas noch eine gewisse Zeit verstreichen lassen willst, kannst du einen sleep Befehl davor setzen, musst du aber nicht. Das würde dann so aussehen:


    sleep 5;
    "end1" call BIS_fnc_endMission;


    Damit würde sich das Missionsende um 5 Sekunden verzögern.