Teleport per onMapClick

  • Hallo liebe ArmA World Community,


    ich habe gerade einen Gedanken hänger... aber zunächst erstmal mein Code, um einen Spieler per onMapClick zu seiner gewünschten Position teleportieren zu lassen:



    Ich habe folgendes Problem mit dem Code:
    Ich möchte, dass die Map sich nach 1 Sekunde, nachdem der Spieler teleportiert wurde, selbst schließt, damit der Effekt ['#(argb,8,8,3)color(0,0,0,1)', [safeZoneX, safeZoneY, safeZoneW, safeZoneH], [5,5], 2, 1] spawn BIS_fnc_textTiles richtig zur Geltung kommt. Daher auch diese _bool Geschichte...


    Leider ist es so, dass die variable nicht von onMapClick weiter gegeben wird, und ich möchte nur ungern eine globale Variable verwenden (womit es funktionieren würde).
    Das Script soll von mehr als ein Spieler benutzt werden und ich habe Angst vor hängern von ArmA, wenn eine globale Variable von vielen Spielern verwendet wird.


    Wie schaffe ich es, dass openMap [false, false]; 1 sekunde nach dem OnMapClick ausgeführt wird?
    Ich bin mir sicher es gibt eine einfach Lösung, ich komme nur nicht drauf :P


    Vielen Lieben Dank im Vorraus


    Chibi

  • Also zunächst mal wäre es ratsam die "stapelbare" Variante des EHs zu verwenden. Das wäre dann sowas hier

    Code
    1. addMissionEventHandler ["MapSingleClick", {<SomeCode>}];


    Außerdem irritiert mich, dass du den EH in einer while Schleife hinzufügst. Warum nicht einmal hinzufügen und gut ist (Was du mit dem zweiten onMapSingleClick vorhast erschließt sich mir nicht ganz)?


    Um also deine eigentliche Frage zu beantworten bezüglich des Delays. Das könnte man so lösen:


    Das sollte das von dir beschriebene Problem lösen auch wenn ich mich dabei nur auf die Aussage bezüglich des Delays beziehe, da ich wie gesagt nicht verstehe was du mit dem restlichen Code versuchst zu erreichen :11_unknown:


    PS: Das Ganze über spawn zu regeln erlaubt es den delay einfach über einen sleep zu regeln, was die einfachste Möglichkeit ist, wenn man kein Per-Frame-Framework einsetzt


  • Außerdem irritiert mich, dass du den EH in einer while Schleife hinzufügst. Warum nicht einmal hinzufügen und gut ist (Was du mit dem zweiten onMapSingleClick vorhast erschließt sich mir nicht ganz)?

    Das entfernt den Eventhandler wieder. Falls man die Map schließt.


    Leider ist es so, dass die variable nicht von onMapClick weiter gegeben wird, und ich möchte nur ungern eine globale Variable verwenden (womit es funktionieren würde).
    Das Script soll von mehr als ein Spieler benutzt werden und ich habe Angst vor hängern von ArmA, wenn eine globale Variable von vielen Spielern verwendet wird.

    Lokale variablen propagieren nicht in neue Script Instanzen. Also das mit der Lokalen variable kannst du vergessen.
    Ich glaube du hast nicht verstanden wie globale Variablen funktionieren.
    Die kann überhaupt nicht "von vielen Spielern verwendet werden".

  • Ich glaube du hast nicht verstanden wie globale Variablen funktionieren.
    Die kann überhaupt nicht "von vielen Spielern verwendet werden".

    Da musste ich doch glatt noch mal an die Bücher, und wieder etwas gelernt ;)
    Also goblale Variable != public Variable.


    Damit kann ich nicht nur das Script zum laufen bringen, sondern habe auch wieder neues Grundwissen bekommen!
    Viel Dank dedmen! (Und natürlich auch Raven!)


    Es ist schön zu sehen, wie Ihr nicht nur mir, sondern auch vielen Anderen Leute hier im Forum helft :-)

  • Ich mache das so (nur mal als Beispiel)

    player addaction [format ["<t color='#F0E68C'>Teleport Spieler</t>"], drunkenport_single];

  • Ich mache das so (nur mal als Beispiel)

    player addaction [format ["<t color='#F0E68C'>Teleport Spieler</t>"], drunkenport_single];

    Die globale variable da macht keinen Sinn. addAction wandelt das Script in einen String um und speichert den String.