1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Do: 15 Mai 2025
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Forum
    3. Gameserver & Hosting
    4. ArmA Series - ArmA 3 / Reforger
    5. Hilfeforum

    Netzzauntor per Addaction (Dann ein Script ausführen lassen) öffnen. Und standardgemäß aber "verriegeln" lassen

    • YouDi
    • 9. Oktober 2016 um 02:21
    • Geschlossen
    • Erledigt
    • YouDi
      Schüler
      Reaktionen
      10
      Trophäen
      9
      Beiträge
      129
      • 9. Oktober 2016 um 02:21
      • #1

      Moin moin liebe NN - Community,

      ich versuche nun schon seit längerem für meine Aufbewahrungsstelle der Polizei Zauntore standardmäßig über's Scrollmenü nutzlos zu machen.

      Sodass nur Cops über ein Addaction an einem Bildschirm ein Script ausführen und damit die Zauntore öffnen können.

      Ich habe soweit schon n Script rausgefuxt aber es funkt net so wie ich will.

      Hier die Addaction für den Bildschirm:

      Spoiler anzeigen


      this allowDamage false;
      this enableSimulation false;
      this addAction["<t color='#ADFF2F'>Tore öffnen</t>",life_fnc_aufbestelle,"1",0,FALSE,FALSE,"",' playerside == west && player distance _target < 8 '];
      this addAction["<t color='#ADFF2F'>Tore schließen</t>",life_fnc_aufbestelle,"2",0,FALSE,FALSE,"",' playerside == west && player distance _target < 8 '];

      //Das ist der Bildschirm für die Rechte Einfahrt,daher auch nur 2 der insgesamt 4 Modi vertreten

      Hier die fn_aufbestelle.sqf:

      Spoiler anzeigen


      _mode = _this select 3;


      if (_mode == "1")then{
      {
      _x animate ["Door_1_rot", 1];
      _x animate ["Door_2_rot", 1];
      } forEach (nearestObjects [getMarkerPos "cop_aufbestelle_1", ["Land_Net_Fence_Gate_F"], 10]);
      };
      if (_mode == "2")then{
      {
      _x animate ["Door_1_rot", 0];
      _x animate ["Door_2_rot", 0];
      } forEach (nearestObjects [getMarkerPos "cop_aufbestelle_1", ["Land_Net_Fence_Gate_F"], 10]);
      };
      if (_mode == "3")then{
      {
      _x animate ["Door_1_rot", 1];
      _x animate ["Door_2_rot", 1];
      } forEach (nearestObjects [getMarkerPos "cop_aufbestelle_2", ["Land_Net_Fence_Gate_F"], 10]);
      };
      if (_mode == "4")then{
      {
      _x animate ["Door_1_rot", 0];
      _x animate ["Door_2_rot", 0];
      } forEach (nearestObjects [getMarkerPos "cop_aufbestelle_2", ["Land_Net_Fence_Gate_F"], 10]);
      };

      Und hier die fn_factionDoors.sqf zum disablen der öffnen funktion:

      Spoiler anzeigen


      ((nearestobject[[3092.821,4.3772812,11327.396],["Land_Net_Fence_Gate_F"]) select 0) setVariable["bis_disabled_Door_1",1,true];
      ((nearestobject[[3092.821,4.3772812,11327.396],["Land_Net_Fence_Gate_F"]) select 0) setVariable["bis_disabled_Door_2",1,true];
      ((nearestobject[[3184.3096,4.4837704,11327.597],["Land_Net_Fence_Gate_F"]) select 0) setVariable["bis_disabled_Door_1",1,true];
      ((nearestobject[[3184.3096,4.4837704,11327.597],["Land_Net_Fence_Gate_F"]) select 0) setVariable["bis_disabled_Door_2",1,true];
      ((nearestobject[[3092.8154,6.274406,11327.394],["Land_Net_Fence_Gate_F"]) select 0) setVariable["bis_disabled_Door_1",1,true];
      ((nearestobject[[3092.8154,6.274406,11327.394],["Land_Net_Fence_Gate_F"]) select 0) setVariable["bis_disabled_Door_2",1,true];
      ((nearestobject[[3184.3064,6.3449564,11327.599],["Land_Net_Fence_Gate_F"]) select 0) setVariable["bis_disabled_Door_1",1,true];
      ((nearestobject[[3184.3064,6.3449564,11327.599],["Land_Net_Fence_Gate_F"]) select 0) setVariable["bis_disabled_Door_2",1,true];

      Fehler bekomme ich diese im Client rpt log:

      Spoiler anzeigen


      1:32:00 Error in expression <812,11327.396],["Land_Net_Fence_Gate_F"]) select 0) setVariable["bis_disabled_Do>
      1:32:00 Error position: <) select 0) setVariable["bis_disabled_Do>
      1:32:00 Error Fehlende ]
      1:32:00 File c:\users\user\documents\arma 3 - other profiles\fuku%20shima\mpmissions\altis_life.altis\core\functions\fn_faction_doors.sqf, line 30
      1:32:01 Error in expression <ors.sqf"


      ((nearestobject[[3092.821,4.3772812,11327.>
      1:32:01 Error position: <nearestobject[[3092.821,4.3772812,11327.>
      1:32:01 Error 1 Elemente angegeben, 3 erwartet
      1:32:01 File c:\users\user\documents\arma 3 - other profiles\fuku%20shima\mpmissions\altis_life.altis\core\functions\fn_faction_doors.sqf, line 30

      //Zeile 30 Weil ich vor den Zeilen alles weg makiert habe d.h nur die geschriebenen Zeilen stehen da.


      Ich hoffe ich konnte ganz gut rüber bringen,was mein Ziel ist.

      Wäre ganz nice,wenn mir jemand helfen könnte.


      MFG Jascha aka YouDi aka Fuku Shima aka Cher Nobyl aka Gor Leben

      //Meine ganzen Namen :D xD

    • Barney
      Schüler
      Reaktionen
      33
      Trophäen
      11
      Beiträge
      105
      Bilder
      2
      • 9. Oktober 2016 um 02:41
      • #2

      In der fn_factiondoors hast du eine eckige Klammer zu wenig.

      Deins:
      ((nearestobject[[3092.821,4.3772812,11327.396],["Land_Net_Fence_Gate_F"]) select 0) setVariable["bis_disabled_Door_1",1,true];

      Korrektur:
      ((nearestobject[[3092.821,4.3772812,11327.396],["Land_Net_Fence_Gate_F"]]) select 0) setVariable["bis_disabled_Door_1",1,true];

      view?username=B4rn3y_&style=normal 76561198018512569.png

      Arbeitsnachweis - BasenBau

    • YouDi
      Schüler
      Reaktionen
      10
      Trophäen
      9
      Beiträge
      129
      • 9. Oktober 2016 um 02:47
      • #3
      Zitat von Barney

      In der fn_factiondoors hast du eine eckige Klammer zu wenig.

      Deins:
      ((nearestobject[[3092.821,4.3772812,11327.396],["Land_Net_Fence_Gate_F"]) select 0) setVariable["bis_disabled_Door_1",1,true];

      Korrektur:
      ((nearestobject[[3092.821,4.3772812,11327.396],["Land_Net_Fence_Gate_F"]]) select 0) setVariable["bis_disabled_Door_1",1,true];

      Danke. Damit ist ein Fehler weg. Doch einer bleibt noch.


      Und zwar auch in Zeile 30:

      Spoiler anzeigen

      Typ Array, erwartet Zahl

      Auch bekannt als:

      Spoiler anzeigen


      2:40:56 Error in expression <ors.sqf"


      ((nearestobject[[3092.821,4.3772812,11327.>
      2:40:56 Error position: <nearestobject[[3092.821,4.3772812,11327.>
      2:40:56 Error select: Typ Array, erwartet Zahl
      2:40:56 File C:\Users\User\Documents\Arma 3 - Other Profiles\Fuku%20Shima\mpmissions\Altis_Life.altis\core\functions\fn_faction_doors.sqf, line 30

      Dafür villeicht noch n Fix perrat?

    • Barney
      Schüler
      Reaktionen
      33
      Trophäen
      11
      Beiträge
      105
      Bilder
      2
      • 9. Oktober 2016 um 02:51
      • #4

      Ich sehe aber auch grad, du benutzt den Command nearestObject, dieser gibt dir allerdings ein objekt zurück, d.h. mit dem select würde es dann wieder einen Error geben.

      Mach es so:

      Benutze nearestobjects um die Tore zu finden und lass dann über das zurückgegebene Array eine forEACH SChleife laufen die dann folgendes macht:

      {
      _x setvariable["bis_disabled_Door_1",1,true];
      _x setvariable["bis_disabled_Door_2",1,true];

      } foreach _returnedObjects;


      PS: Ich habe keine Ahnung ob du mit "bis_disabled_Door" überhaupt eine Art Zaun locken kannst.
      PPS: Du benutzt auch die Syntax von nearestObject falsch, du hast in der 2. Position im Array ein Array mit dem Classname drin, da muss ein String hin.

      view?username=B4rn3y_&style=normal 76561198018512569.png

      Arbeitsnachweis - BasenBau

    • YouDi
      Schüler
      Reaktionen
      10
      Trophäen
      9
      Beiträge
      129
      • 9. Oktober 2016 um 03:02
      • #5
      Zitat von Barney

      Ich sehe aber auch grad, du benutzt den Command nearestObject, dieser gibt dir allerdings ein objekt zurück, d.h. mit dem select würde es dann wieder einen Error geben.

      Mach es so:

      Benutze nearestobjects um die Tore zu finden und lass dann über das zurückgegebene Array eine forEACH SChleife laufen die dann folgendes macht:

      {
      _x setvariable["bis_disabled_Door_1",1,true];
      _x setvariable["bis_disabled_Door_2",1,true];

      } foreach _returnedObjects;


      PS: Ich habe keine Ahnung ob du mit "bis_disabled_Door" überhaupt eine Art Zaun locken kannst.
      PPS: Du benutzt auch die Syntax von nearestObject falsch, du hast in der 2. Position im Array ein Array mit dem Classname drin, da muss ein String hin.

      Alles anzeigen

      Könntest du mir das villeicht als Beispiel an dieser Zeile ziegen?

      ((nearestobject[[3092.821,4.3772812,11327.396],["Land_Net_Fence_Gate_F"]) select 0) setVariable["bis_disabled_Door_1",1,true];


      Bin grad total übermüdet sry. Wäre nice

    • Barney
      Schüler
      Reaktionen
      33
      Trophäen
      11
      Beiträge
      105
      Bilder
      2
      • 9. Oktober 2016 um 03:15
      • #6

      OK.


      Spoiler anzeigen

      _returnedObjects = nearestObjects [[2716,2949,0], ["Land_Net_Fence_Gate_F"], 50];

      {
      _x setvariable["bis_disabled_Door_1",1,true];
      _x setvariable["bis_disabled_Door_2",1,true];
      } foreach _returnedObjects;

      view?username=B4rn3y_&style=normal 76561198018512569.png

      Arbeitsnachweis - BasenBau

    • YouDi
      Schüler
      Reaktionen
      10
      Trophäen
      9
      Beiträge
      129
      • 9. Oktober 2016 um 03:36
      • #7
      Zitat von Barney

      OK.


      Spoiler anzeigen

      _returnedObjects = nearestObjects [[2716,2949,0], ["Land_Net_Fence_Gate_F"], 50];

      {
      _x setvariable["bis_disabled_Door_1",1,true];
      _x setvariable["bis_disabled_Door_2",1,true];
      } foreach _returnedObjects;

      Können wir uns villeicht ma im TS treffen?

      Wäre nice,da ich so müde bin,dass ich nicht mal das Beispiel raffe ^^ Sryyyyy

      //EDIT: Grade die Konversation gesehen :D xD

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 9. Oktober 2016 um 13:10
      • #8

      Also... nearestObject gibt kein Array sondern ein Object zurück wodurch das select 0 obligatorisch wegfällt. Wie gesagt dann noch die letzte Eckige Klammer und der Type als String angegeben und das sollte laufen, etwa so:
      (nearestobject[[3184.3064,6.3449564,11327.599],"Land_Net_Fence_Gate_F"]) setVariable["bis_disabled_Door_1",1,true];

      #MakeArmaNotWar

      Kein Support via PN & Steam! / No Support via DM & Steam!


      Mit freundlichen Grüßen
      blackfisch
      ______________________

      Web: blackfisch.me

      GitHub: GitHub.com/blackfisch

      Mail: [email protected]

      ______________________
      Wichtige Links:
      [Erklärung|Leitfaden] Code Optimierung

      [Tutorial] life_fnc_MP zu remoteExec

      Ohne Logs & entsprechende Dateien kein Support!

      ______________________

    • YouDi
      Schüler
      Reaktionen
      10
      Trophäen
      9
      Beiträge
      129
      • 9. Oktober 2016 um 15:10
      • #9
      Zitat von blackfisch

      Also... nearestObject gibt kein Array sondern ein Object zurück wodurch das select 0 obligatorisch wegfällt. Wie gesagt dann noch die letzte Eckige Klammer und der Type als String angegeben und das sollte laufen, etwa so:
      (nearestobject[[3184.3064,6.3449564,11327.599],"Land_Net_Fence_Gate_F"]) setVariable["bis_disabled_Door_1",1,true];

      Barney und ich haben das Script zum öffnen soweit jz schon fertig:

      Spoiler anzeigen


      _mode = _this select 3;


      if(_mode) then {
      {
      if(_x getvariable["YouDi",false]) then {
      _x animate ["Door_1_rot", 1];
      _x animate ["Door_2_rot", 1];
      };
      } forEach (nearestObjects [player, ["Land_Net_Fence_Gate_F"], 20]);


      } else {
      {
      if(_x getvariable["YouDi",false]) then {
      _x animate ["Door_1_rot", 0];
      _x animate ["Door_2_rot", 0];
      };
      } forEach (nearestObjects [player, ["Land_Net_Fence_Gate_F"], 20]);


      };

      Jetzt fehlt nur noch,dass die Tore standartgemäß geschlossen sind und nicht geöffnet werden können.

      Uns kam die Idee die Tore als Simples Objekt hinzustellen,da dann die Option weg ist. Das Script von der Addaction funktioniert dadurch halt auch net mehr.


      Also haben wir die Idee das ganze immer durch das Addaction Script ersetzen zu lassen. Und halt immer so hin und her.


      Hast du da ne Idee für?


      Die Variable bis_disabled_door_1 funktioniert bei den Toren halt net. Daher brauchen wir halt nen anderen Weg.

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 9. Oktober 2016 um 16:01
      • #10

      Einfach this enableSimulation false in die init der Tore setzen, sollte klappen

      #MakeArmaNotWar

      Kein Support via PN & Steam! / No Support via DM & Steam!


      Mit freundlichen Grüßen
      blackfisch
      ______________________

      Web: blackfisch.me

      GitHub: GitHub.com/blackfisch

      Mail: [email protected]

      ______________________
      Wichtige Links:
      [Erklärung|Leitfaden] Code Optimierung

      [Tutorial] life_fnc_MP zu remoteExec

      Ohne Logs & entsprechende Dateien kein Support!

      ______________________

    • YouDi
      Schüler
      Reaktionen
      10
      Trophäen
      9
      Beiträge
      129
      • 9. Oktober 2016 um 17:26
      • #11

      @blackfisch ne geht nicht.

    • YouDi
      Schüler
      Reaktionen
      10
      Trophäen
      9
      Beiträge
      129
      • 12. Oktober 2016 um 03:06
      • #12

      Geschafft!

      In die aufbestelle.sqf muss folgendes rein:

      Spoiler anzeigen


      _mode = _this select 3;


      if(_mode) then {
      {
      life_open = true;
      publicVariable "life_open";
      if(_x getvariable["YouDi",false]) then {
      _x animate ["Door_1_rot", 1];
      _x animate ["Door_2_rot", 1];
      };


      } forEach (nearestObjects [player, ["Land_Net_Fence_Gate_F"], 20]);


      } else {
      life_open = false;
      publicVariable "life_open";
      {
      if(_x getvariable["YouDi",false]) then {
      _x animate ["Door_1_rot", 0];
      _x animate ["Door_2_rot", 0];
      };
      } forEach (nearestObjects [player, ["Land_Net_Fence_Gate_F"], 20]);


      };

      Darauf hin platziert man in einen Auslöser,welcher die Zauntore "beinhaltet".

      Typ: Wegpunkt überspringen
      Aktivierung: Jeder
      Aktivierungstyp: Vorhanden
      Wiederhohlbar: Ja

      Bei Bedingung kommt dann das:

      Spoiler anzeigen

      this && (local player) && (vehicle player in thisList)

      In den kommt dann bei Aktivierung folgendes:

      Spoiler anzeigen


      nul = [] spawn {
      _objects = nearestObjects [player, ["Land_Net_Fence_Gate_F"], 50];
      life_trigger = true;
      while{life_trigger} do {
      if(isnil "life_open") then {
      {
      _phase = _x animationPhase "Door_1_rot" ;
      _phase1 = _x animationPhase "Door_2_rot" ;
      if((_phase != 0 && _x getvariable["YouDi",false]) || (_phase1 != 0 && _x getvariable["YouDi",false])) then {
      _x animate ["Door_1_rot", 0];
      _x animate ["Door_2_rot", 0];


      };


      } foreach _objects;


      } else {
      {
      _phase = _x animationPhase "Door_1_rot" ;
      _phase1 = _x animationPhase "Door_2_rot" ;
      if((_phase != 0 && !life_open && _x getvariable["YouDi",false]) || (_phase1 != 0 && !life_open && _x getvariable["YouDi",false])) then {
      _x animate ["Door_1_rot", 0];
      _x animate ["Door_2_rot", 0];


      };


      } foreach _objects;


      };


      sleep 0.125;


      if(player distance (_objects select 0) > 50) exitWith {life_trigger = false;};


      };
      };

      Bei Deaktivierung:

      Spoiler anzeigen

      life_trigger = false;

      Dann sollte es in etwa so aussehen:

      Man kann die Action mit dem Tor öffnen zwar nicht entfernen aber der Trigger überprüft, ob das Tor per Addaction (Dem Monitor) oder per Hand geöffnet wird.

      Durch den Auslöser wird alle 0.125 Sekunden überprüft, ob das Tor per Hand geöffnet wurde. Wenn dieß der Fall ist schließt sich das Tor wieder automatisch.

      Somit kann das Thema geschlossen werden ^^ gamerico :)

      Vielen Dank nochmal an @Barney der mir dabei geholfen hat dieses Script so zu machen ^^ =)

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von Native-Servers.com? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Benutzerkonto erstellen

    Tags

    • script
    • schließen
    • Netzzauntor
    • Tor
    • disabled door

    Benutzer online in diesem Thema

    • 1 Besucher

    Wichtige Links & Informationen

    Server & Hosting-Ressourcen

      Server Administration & Hosting Basics

      Windows Server Support & Guides

      Linux Server Configuration & Help

      Setting up TeamSpeak 3 & VoIP Servers

      Domains & Web Hosting for Beginners & Professionals

      Cloud Hosting, Docker & Kubernetes Tutorials

    Gameserver & Modding-Ressourcen

      ArmA 3 Tutorials & Script Collection

      Renting & Operating Gameservers

      DayZ Server Management & Help

      FiveM (GTA V) Server & Script Development

      Rust Server Modding & Administration

      Setting up & Optimizing ARK Survival Servers

    NodeZone.net – Deine Community für Gameserver, Server-Hosting & Modding

      NodeZone.net ist dein Forum für Gameserver-Hosting, Rootserver, vServer, Webhosting und Modding. Seit 2015 bietet unsere Community eine zentrale Anlaufstelle für Server-Admins, Gamer und Technikbegeisterte, die sich über Server-Management, Hosting-Lösungen und Spielemodding austauschen möchten.


      Ob Anleitungen für eigene Gameserver, Hilfe bei Root- und vServer-Konfigurationen oder Tipps zu Modding & Scripting – bei uns findest du fundiertes Wissen und praxisnahe Tutorials. Mit einer stetig wachsenden Community findest du hier Antworten auf deine Fragen, Projektpartner und Gleichgesinnte für deine Gaming- und Serverprojekte. Schließe dich NodeZone.net an und werde Teil einer aktiven Community rund um Server-Hosting, Gameserver-Management und Modding-Ressourcen.

    Wer jetzt nicht teilt ist selber Schuld:
    1. Nutzungsbestimmungen
    2. Verhaltensregeln
    3. Datenschutzerklärung
    4. Impressum
    5. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™