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
So: 08 Juni 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

    AddAction in Skript

    • NiceKype
    • 14. März 2019 um 18:16
    • Erledigt
    • NiceKype
      Profi
      Reaktionen
      554
      Trophäen
      9
      Beiträge
      996
      Dateien
      1
      Bilder
      62
      • 14. März 2019 um 18:16
      • #1

      Moin zusammen,

      ich habe eine Frage. Aktuell habe ich ein Objekt (Laptop) mit dem man per Mausrad Interaktion per addaction die Textur ändern kann. Das ganze möchte ich aber in eine Skriptdatei exportieren und von dort laden.

      Das hat den Grund dass ich dieses Skript mehrfach in verschiedenen Objekten drin habe und bei neuen Texturen oder Änderungen nur einmal das ganze einfügen oder ändern möchte und nicht bei jedem Laptop einzelnt.

      Jetzt weiß ich nur nicht genau wie ich das machen soll. Hier wäre es schön wenn mir jemand weiter helfen könnte.

      Also wie gesagt soll dann im Objekt nur das Skript eingetragen werden, in der Datei stehen dann die addactions sodass wenn ich jetzt eine neue Textur einfüge und in die Datei schreibe, diese bei jedem Objekt wo das Skript eingetragen ist das auch angezeigt wird.

      Ich hoffe ich hab das etwas verständlich erklärt und jemand kann mir da aushelfen.

      Mit freundlichen Grüßen

      Timo | NiceKype

      𝗡𝗜𝗖𝗘𝗞𝗬𝗣𝗘 // 𝗧𝗜𝗠𝗢

      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
      MEINE LINKS:

      Have Fun, stay Nice
      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄

    • Alice Kingsleigh
      Profi
      Reaktionen
      329
      Trophäen
      8
      Beiträge
      1.141
      • 14. März 2019 um 18:28
      • #2
      Code
      {
      _npcNameString = format["npc_Script_%1", _x];
      _npc = missionNamespace getVariable [_npcNameString, objNull];
      if (!isNull _npc) then {
      player addAction ["Dinge tun", {[vehicle player] spawn fnc_meinScript}, nil, 50, true, false, "", format["(%1 distance2d player) < 10", _npcNameString]];
      };
      } forEach [1,2,3,4,5,6,7,8,9,10];

      Hab ich mal eben aus einem Kaufscript geborgt :) Das Script, wo du es rein tust, musst du natürlich auch initialisieren.

    • NiceKype
      Profi
      Reaktionen
      554
      Trophäen
      9
      Beiträge
      996
      Dateien
      1
      Bilder
      62
      • 14. März 2019 um 18:30
      • #3

      Und das funktioniert bei einem Objekt? Es geht ja um einen Laptop und keinen NPC an sich

      𝗡𝗜𝗖𝗘𝗞𝗬𝗣𝗘 // 𝗧𝗜𝗠𝗢

      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
      MEINE LINKS:

      Have Fun, stay Nice
      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄

    • Alice Kingsleigh
      Profi
      Reaktionen
      329
      Trophäen
      8
      Beiträge
      1.141
      • 14. März 2019 um 18:34
      • #4

      Das geht auch an einem Objekt, hab das besagte Kaufscript grad auf einem Schild laufen.

    • NiceKype
      Profi
      Reaktionen
      554
      Trophäen
      9
      Beiträge
      996
      Dateien
      1
      Bilder
      62
      • 14. März 2019 um 18:36
      • #5

      Ah okey ich probiere das ganze gleich mal. Danke schonmal ^^

      𝗡𝗜𝗖𝗘𝗞𝗬𝗣𝗘 // 𝗧𝗜𝗠𝗢

      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
      MEINE LINKS:

      Have Fun, stay Nice
      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄

    • Alice Kingsleigh
      Profi
      Reaktionen
      329
      Trophäen
      8
      Beiträge
      1.141
      • 14. März 2019 um 18:37
      • #6

      Ist ja nur eine Variable die der Übersicht halber mit irgendwat mit NPC benannt wurde, hat keine Auswirkungen auf das genutzte Objekt.

    • NiceKype
      Profi
      Reaktionen
      554
      Trophäen
      9
      Beiträge
      996
      Dateien
      1
      Bilder
      62
      • 14. März 2019 um 19:24
      • #7

      Also bei mir funktioniert das irgendwie nicht. Es kommt keine AddAction

      𝗡𝗜𝗖𝗘𝗞𝗬𝗣𝗘 // 𝗧𝗜𝗠𝗢

      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
      MEINE LINKS:

      Have Fun, stay Nice
      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄

    • NiceKype
      Profi
      Reaktionen
      554
      Trophäen
      9
      Beiträge
      996
      Dateien
      1
      Bilder
      62
      • 14. März 2019 um 20:00
      • #8

      Okey funktioniert doch, hatte nen Schreibfehler. Aber wenn ich mehrere Laptops benutze mit fortlaufenden Namen laptop_1, laptop_2...... dann steht nur bei jedem das 4 mal und der Texturwechsel geht nicht.

      Aktuell habe ich das so:

      Code
      {
      _npcNameString = format["laptop_%1", _x];
      _npc = missionNamespace getVariable [_npcNameString, objNull];
      if (!isNull _npc) then {
      player addAction ["Home", {%1 setObjectTextureGlobal [0, "screen1.paa"]}, _npcNameString];
      player addAction ["Screen", {%1 setObjectTextureGlobal [0, "screen2.paa"]}, _npcNameString];
      };
      } forEach [1,2,3,4,5,6,7,8,9,10];

      Und dann geht das garnicht mehr

      𝗡𝗜𝗖𝗘𝗞𝗬𝗣𝗘 // 𝗧𝗜𝗠𝗢

      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
      MEINE LINKS:

      Have Fun, stay Nice
      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄

    • Alice Kingsleigh
      Profi
      Reaktionen
      329
      Trophäen
      8
      Beiträge
      1.141
      • 14. März 2019 um 21:30
      • #9

      Hupsi mein Fehler, da über muss noch ein [] spawn { :D Ich Schussel. Man könnte auch noch waitUntil {!isNull player}; waitUntil {!isNull (findDisplay 46)}; rein machen, um sicher zu gehen das es dann erst geht bla Keks... Das Ding ist aber, dass eine addAction an sich keine Textur so setzen kann, sondern halt selbst auch nur Scripts aufruft. https://community.bistudio.com/wiki/addAction d. h. das müsstest du dann darüber machen. Ist ja nicht wie eine Init vom NPC, in der du das einfach reinsetzen kannst.

    • NiceKype
      Profi
      Reaktionen
      554
      Trophäen
      9
      Beiträge
      996
      Dateien
      1
      Bilder
      62
      • 21. März 2019 um 01:21
      • #10

      Doch das geht. Aktuell habe ich das so. Per Addaction wird einfach die Textur mit mit setObjectTextureGlobal geändert. Aber ich möchte halt nicht bei 18 Monitoren diese Texturen einfügen und bei Änderungen ändern. Daher meine Frage. :)

      𝗡𝗜𝗖𝗘𝗞𝗬𝗣𝗘 // 𝗧𝗜𝗠𝗢

      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
      MEINE LINKS:

      Have Fun, stay Nice
      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄

    • Alice Kingsleigh
      Profi
      Reaktionen
      329
      Trophäen
      8
      Beiträge
      1.141
      • 21. März 2019 um 22:22
      • #11

      Das wirst du sicher in die init geschrieben haben so in etwa this setObjectTextureGlobal [0,"irgendeineTextur.jpg"];, aber nicht als addAction. D.h. wenn du es so nutzen möchtest brauchst du noch eine Funktion, in der du dann die Texturen aufrufst.

      D.h.

      Code
      {
      _npcNameString = format["npc_Script_%1", _x];
      _npc = missionNamespace getVariable [_npcNameString, objNull];
      if (!isNull _npc) then {
      player addAction ["Home", {[vehicle player] spawn fnc_deinScript}, home, 50, true, false, "", format["(%1 distance2d player) < 10", _npcNameString]]; //Homebild
      player addAction ["Screen", {[vehicle player] spawn fnc_deinScript}, screen, 50, true, false, "", format["(%1 distance2d player) < 10", _npcNameString]]; //Screenbild 1
      player addAction ["Irgendwas", {[vehicle player] spawn fnc_deinScript}, irgendwas, 50, true, false, "", format["(%1 distance2d player) < 10", _npcNameString]]; //Irgendein anderes Bild
      };
      } forEach [1,2,3,4,5,6,7,8,9,10]; //kann auf bis zu 10 Bildschirmen gemacht werden

      Dann brauchst du das besagt Script, in meinem Beispiel heißt es "fn_deinScript"

      Code
      private _Texturen = {
          ["home"[this setObjectTextureGlobal [0,"textures\home.jpg"]],
          ["screen"[this setObjectTextureGlobal [0,"textures\screen.jpg"]],
          ["irgendwas"[this setObjectTextureGlobal [0,"textures\irgendwas.jpg"]] //hier kein Komma
      };

      Das sollte so gehen. Ist allerdings ungetestet und so nur von der Fedcam abgeschaut

    • NiceKype
      Profi
      Reaktionen
      554
      Trophäen
      9
      Beiträge
      996
      Dateien
      1
      Bilder
      62
      • 21. März 2019 um 23:30
      • #12

      Nur kurz zur Erklärung:

      Doch ich hatte das alles als AddAction in der init Feldes des Objektes stehen.

      Code
      this addAction ["Home", {briefing_screen setObjectTextureGlobal [0, "Images\briefing-screen.paa"]}];

      Aber, wenn ich das von dir richtig verstehe, muss ich den Laptops die Namen "npc_Script_1 - 10" geben oder unten bei forEach erweitern und beides was du geschrieben hast als Scripte einfügen und initialisieren korrekt?

      𝗡𝗜𝗖𝗘𝗞𝗬𝗣𝗘 // 𝗧𝗜𝗠𝗢

      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
      MEINE LINKS:

      Have Fun, stay Nice
      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄

    • Alice Kingsleigh
      Profi
      Reaktionen
      329
      Trophäen
      8
      Beiträge
      1.141
      • 22. März 2019 um 00:01
      • #13

      In die Init des Objektes muss NPC_Script_X (x halt mit jeweiliger Zahl austauschen)

      Ja okay wenn du das so kompliziert eingetragen hast in die addAction kannst du es natürlich auch ohne weiteres Script machen. Dann müsste es irgendwie sowas sein:

      Code
      player addAction ["Home", {briefing_screen setObjectTextureGlobal [0, "Images\briefing-screen.paa"]}, _npcNameString];

      Mit der anderen Version könntest du es aber dann eben auch auf allen Objekten machen, also auch z. B. auf dem Laptop, Tablet usw. wie es grad genehm ist. Klar musst du den Kram noch initialisieren und in die funtions.hpp eintragen.

    • NiceKype
      Profi
      Reaktionen
      554
      Trophäen
      9
      Beiträge
      996
      Dateien
      1
      Bilder
      62
      • 22. März 2019 um 00:05
      • #14

      Nene ich hab das aktuell so wollte aber eine externe Möglichkeit dass ich halt, wie gesagt, nicht bei den 20 Laptops eine neue Textur eintragen muss sondern das einmal machen kann ^^

      𝗡𝗜𝗖𝗘𝗞𝗬𝗣𝗘 // 𝗧𝗜𝗠𝗢

      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
      MEINE LINKS:

      Have Fun, stay Nice
      ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von NodeZone.net? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Registrieren

    Ähnliche Themen

    • theoretische Führerscheinprüfungen

      • ProteusSpectrum
      • 28. April 2018 um 21:57
      • Tutorials & Releases
    • Kavala Krankenhaus Aufzug

      • Dennis2002
      • 10. Dezember 2018 um 22:25
      • Hilfeforum
    • Schießplatz-System

      • ProteusSpectrum
      • 29. April 2018 um 10:48
      • Tutorials & Releases
    • Ich nerve direkt mit 3 Problemen :o | Map Error, Missions Datum und Ace Animationen

      • Dargozino
      • 25. September 2018 um 12:19
      • Hilfeforum
    • Objekt- Command geht nicht

      • Retch
      • 19. Juli 2018 um 01:04
      • Hilfeforum
    • civInteractionMenu Funktioniert Nicht

      • Lucifer Lucius
      • 7. Mai 2018 um 19:47
      • Hilfeforum

    Benutzer online in diesem Thema

    • 2 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. Datenschutzerklärung
    3. Impressum
    4. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™