Einzelnen Beitrag anzeigen
Alt 30.10.2011, 00:52   #12 (permalink)
Asso-Loki
50 Beiträge100 Beiträge
 
Registriert seit: 01.06.2009
Beiträge: 103
Standard

Bei Deinem Eventhandler in der config.cpp müsste vermutlich ein "this" und nicht ein "_this" verwendet werden. Check das mal ab, indem Du zu Beginn des Scripts folgende Zeile setzt (Viennas Tipp)
Code:
player groupChat format ["%1", (typeOf _this)];
. Wird tatsächlich das benötigte Objekt übergeben? (typeOf liefert den Class- Namen des Objekts zurück. Da Du die Classe ja selbst erstellt hast in der config.cpp, wirst Du sofort wissen, ob dass übergebene Objekt tatsächlich Jenes ist welches Du brauchst).
Nachdem Du sicher bist dass das klappt, kannst Du dieses Zeile wieder aus dem Script löschen.

Verwende sqf statt sqs, sonst klappt es mit den im Script verwendeten Befehlen nicht (siehe Psychobastards Hinweis).
Code:
class Eventhandlers
    {
    init = "this execVM '\polizei\data\garagenlicht.sqf';";
    };
garagenlicht.sqf
Code:
hint "los gehts";
//das Tor ist zu Beginn ja geschlossen, daher ist die Ampel zu beginn auch auf rot
_this setobjecttexture [0, "\polizei\grafik\lichtrot.paa"];
//für Dauerbetrieb wird eine while- Schlaufe gestartet.
// "true" ist eine sehr heikle Bedingung für eine Schlaufe, aber hier sollte es klappen und was anders kommt mir gerade jetzt nicht in den Sinn...es ist schon spät
while {true} do
    {
    // warten bis das Tor ganz offen ist, erst dann wird auf grün geschalten
    waitUntil {(_this animationPhase "door_pb_aussenhof") == 1};
    _this setobjecttexture [0, "\polizei\grafik\lichtgruen.paa"];
    // warten bis sich das Tor beginnt zu schliessen um auf rot zu schalten
    waitUntil {(_this animationPhase "door_pb_aussenhof") < 1};
    _this setobjecttexture [0, "\polizei\grafik\lichtrot.paa"];
    //nun springt das Script wieder an den Beginn der while- Schlaufe und wartet wieder darauf dass das Tor ganz offen ist.
    };
Asso-Loki ist offline