Trigger wird nicht ausgelöst

  • Hi,

    ich habe folgendes Problem das der Trigger nicht auslöst. Ich habe es so gemacht das der Task abgeschlossen wird wenn ein Turm, und ein Generator per Hold Action zerstört werden. Funktioniert auch alles im Singelplayer wie ich es haben möchte. Nur auf einem Dedicated Server wird der Trigger nicht ausgelöst. Hier ich habe euch mal ein paar Bilder zugepackt. Ich weiß echt nicht mehr weiter.


    Ich bedanke mich bei jeder Hilfe. Gruß



  • KillerEsel

    Habs nur kurz überflogen. Vermute das deine Variable "destroy_collected" nur dem Spieler nicht aber dem Server bekannt ist. Probier mals mal mit setVariable (nur true zwecks globaler Bekanntmachung) und dazu kombiniert getVariable um die Variable wieder einzusammeln auf der anderen Seite. Das würde erklären warum es im Single Player funktioniert, nicht aber sobald du mehrere Instanzen (einmal player, einmal dedicated Server) nutzt um das Setting zu testen.

  • KillerEsel

    Habs nur kurz überflogen. Vermute das deine Variable "destroy_collected" nur dem Spieler nicht aber dem Server bekannt ist. Probier mals mal mit setVariable (nur true zwecks globaler Bekanntmachung) und dazu kombiniert getVariable um die Variable wieder einzusammeln auf der anderen Seite. Das würde erklären warum es im Single Player funktioniert, nicht aber sobald du mehrere Instanzen (einmal player, einmal dedicated Server) nutzt um das Setting zu testen.

    Danke für die Antwort :D

    Wo muss ich das eintragen mit dem getVariable und setVariable ?

    Ich bin noch in der Lernphase und weiß es leider nicht direkt.

    Danke Gruß

  • Du hast unter "Code beendet" den Befehl "destroy_collected = true;" stehen. Ich glaube was Schmitt vorschlägt ist, dass du diesen Wert synchronisieren sollst mit Hilfe von setVariable (setVariable - Bohemia Interactive Community). Du würdest dann also stattdessen schreiben:


    Code
    1. missionNamespace setVariable ["destroy_collected", true, true];


    Und bei der Abfrage, die aktuell !alive && destroy_collected lautet, machst du:


    Code
    1. !alive && missionNamespace getVariable "destroy_collected"
  • Du hast unter "Code beendet" den Befehl "destroy_collected = true;" stehen. Ich glaube was Schmitt vorschlägt ist, dass du diesen Wert synchronisieren sollst mit Hilfe von setVariable (setVariable - Bohemia Interactive Community). Du würdest dann also stattdessen schreiben:


    Code
    1. missionNamespace setVariable ["destroy_collected", true, true];


    Und bei der Abfrage, die aktuell !alive && destroy_collected lautet, machst du:


    Code
    1. !alive && missionNamespace getVariable "destroy_collected"

    Danke, Danke, Danke hat funktionert. Hast die Mission gerettet.

  • KillerEsel

    Habs nur kurz überflogen. Vermute das deine Variable "destroy_collected" nur dem Spieler nicht aber dem Server bekannt ist. Probier mals mal mit setVariable (nur true zwecks globaler Bekanntmachung) und dazu kombiniert getVariable um die Variable wieder einzusammeln auf der anderen Seite. Das würde erklären warum es im Single Player funktioniert, nicht aber sobald du mehrere Instanzen (einmal player, einmal dedicated Server) nutzt um das Setting zu testen.

    Danke :D


  • nur auf dem server

    Code
    1. [WEST, "meinTask", "Zerstöre den Turm und Generator", nil, "ASSIGNED",0, true, "destroy",] call BIS_fnc_taskCreate
    2. waituntil { sleep 5; !alive Turm && destroy_collected};
    3. ["meinTask", "SUCCEEDED", true;] call BIS_fnc_taskSetState
  • oder aber nur auf dem Server, wenn einfach nur beide kaputt sein müssen

    Code
    1. [WEST, "meinTask", "Zerstöre den Turm und Generator", nil, "ASSIGNED",1, true, "destroy",] call BIS_fnc_taskCreate;
    2. {_x addEventhandler ["killed", { if (!alive turm && !alive Generator) then {["meinTask", "SUCCEEDED", true;] call BIS_fnc_taskSetState} }] } forEach [Turm, Generator];