Trigger läd Bild nicht :(

  • Hi,


    ich habe einen Trigger gebastelt, welcher beim betreten ein Bild als Overlay anzeigen soll. Leider wird das Bild nicht geladen.
    Log ist sauber und das Script wird auch geladen.


    Kurz zur Funktionsweise.
    Der Trigger wird, ganz normal, mit dem GE auf der Map verbaut.
    Wenn der Spiele diesen zu Fuß betritt, soll ein Bild angezeigt werden, welches im Script angegeben ist.
    Verläst der Spieler den Trigger, soll auch das Bild wieder ausgeblendet werden.


    Nach dem Spielstart wird in der Log angezeigt, das das Script geladen wurde aber beim betreten des Triggers erscheint kein Bild.
    Die Log ist nach wie vor sauber.


    Hier mal das Script soweit wie ich es bis jetzt habe (Wird überings über die Map modDesc.xml aufgerufen!):
    [expander]
    [lua]
    MyPicTrigger ={};


    local MyPicTrigger_mt = Class(MyPicTrigger, Object);


    function onCreate(self, id)
    local instance = MyPicTrigger:new(g_server ~= nil, g_client ~= nil);
    local index = g_currentMission:addOnCreateLoadedObject(instance);
    instance:load(id);
    instance:register(true);
    end;


    function MyPicTrigger:new(isServer, isClient)
    local self = Object:new(isServer, isClient, MyPicTrigger_mt);
    self.className = "MyPicTrigger";
    return self;
    end;


    function MyPicTrigger:load(name)

    self.triggerId = name;
    addTrigger(name, "triggerCallback", self);

    self.hudInfoPosX = 0.5;
    self.hudInfoWidth = 0.4-0.012;
    self.hudInfoPosY = 0.5;
    self.hudInfoHeight = 0.4;


    self.infoPanelInfoPath = Utils.getFilename("test.dds", self.baseDirectory); -- Das Bild liegt im selben Verzeichnis wie das Script.
    sefl.hudInfoOverlay = Overlay:new("hudInfoOverlay", self.infoPanelInfoPath, self.hudInfoPosX, self.hudInfoPosY, self.hudInfoWidth, self.hudInfoHeight);


    self.showhudInfo = false;
    end;


    function MyPicTrigger:delete()
    removeTrigger(self.triggerId);
    end;


    function MyPicTrigger:update(dt)


    end;


    function MyPicTrigger:triggerCallback(triggerId, otherId, onEnter, onLeave, onStay, otherShapeId)
    if onEnter then
    if (g_currentMission.player ~= nil and otherId == g_currentMission.player.rootNode) then
    self.hudInfoOverlay:render();
    self.showhudInfo = true;
    end;
    end;
    end;
    print("MyPicTrigger v1.0 loaded!")
    g_onCreateUtil.addOnCreateFunction("MyPicTriggerOnCreate", MyPicTrigger.onCreate);
    [/lua]
    [/expander]


    Der Aufruf im Trigger erfolgt so:

    Code
    modOnCreate.MyPicTriggerOnCreate


    Hat da jemand eine Idee, wie ich das Ganze ans Laufen bekomme?


    LG
    Webby

  • Wenn du dir das HUD nicht anzeigen lässt wirst du es auch nie sehen. Das ist bei dem geposteten Code nämlich der Fall.
    Beim Trigger Callback musst du nur die Variable setzen, ob das HUD angezeigt werden soll, oder nicht. Das rendern selbst passiert dann in der update-Funktion.

  • Hmm


    ok ich habe den
    [lua]self.hudInfoOverlay:render();[/lua]
    aus dem triggerCallBack raus genommen.


    Ich weiß jetzt nur nicht wie es in
    [lua]function MyPicTrigger:update(dt)[/lua]
    aussehen muss.


    Ich denke ich brauche eine IF Abfrage dafür?

  • Also...


    ich habs jetzt so geschrieben:
    [lua]
    function MyPicTrigger:update(dt)
    if self.showhudInfo then
    self.hudInfoOverlay:render();
    end;
    end;
    [/lua]


    Log bleibt sauber aber das Bild wird nicht angezeigt :/
    Ich habe es auch schon mit == true versucht, selbes Ergebnis :(

  • Zitat

    CollisionMask des Triggers überprüft.


    Ist die selbe wie beim Map Sound Trigger, wüsste auch nicht was ich sonst wählen sollte.


    Zitat

    Und erstmal überprüft ob das Callback aufgerufen wird?


    Wenn du mir verrätst wie man das macht, kann ich es prüfen ;)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!