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
Sa: 24 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

    Fahrzeug Lautsprecherdurchsagen via say3D, JIP & Actions

      • Altis Life
    • pentoxide
    • 7. Februar 2021 um 19:36
    • Erledigt
    1. offizieller Beitrag
    • pentoxide
      Fortgeschrittener
      Reaktionen
      243
      Trophäen
      11
      Beiträge
      363
      • 7. Februar 2021 um 19:36
      • Offizieller Beitrag
      • #1

      Hallooooo,

      zum Grundprinzip. Über das eine Action soll innerhalb eines Fahrzeuges via say3D eine Durchsage gespielt werden. Funktioniert nach mehreren Anläufen nicht.

      Größtes Problem, Log gibt mir keine Fehler.

      Serverlog:

      arma3server_x64_2021-02-07_16-02-27.rpt

      Clientlog:

      Arma3_x64_2021-02-07_16-02-46.rpt


      Files:

      Code: fn_cop_ansg_re_feuer.sqf
      #include "..\..\script_macros.hpp"
      
      
      if (playerSide in [west] && {vehicle player != player} && {!life_ansg_re_feuer_active} && {((driver vehicle player) isEqualTo player)}) then {
              [] spawn {
                  life_ansg_re_feuer_active = true;
                  sleep 6.138;
                  life_ansg_re_feuer_active = false;
                  };
      
              private _veh = vehicle player;
                  if (isNil {_veh getVariable "ansg_re_feuer"}) then {_veh setVariable ["ansg_re_feuer",false,true];};
                  if ((_veh getVariable "ansg_re_feuer")) then {
                      hint "Ansage aus - Testmode";
                      _veh setVariable ["ansg_re_feuer",false,true];
                      if !(isNil {(_veh getVariable "sirenJIP")}) then {
                          private _jip = _veh getVariable "sirenJIP";
                          _veh setVariable ["sirenJIP",nil,true];
                          remoteExec ["",_jip]; //remove from JIP queue
                      };
                  } else {
                      hint "Ansage an - Testmode";
                      _veh setVariable ["ansg_re_feuer",true,true];
                      private "_jip";
                      if (playerSide isEqualTo west) then {
                          _jip = [_veh] remoteExec ["life_fnc_ansg_re_feuers",RCLIENT,true];
                  };
              _veh setVariable ["sirenJIP",_jip,true];
          };
      };
      Alles anzeigen
      Code: fn_cop_ansg_re_feuers.sqf
      #include "..\..\script_macros.hpp"
      /*
          File: fn_copSiren.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Starts the cop siren sound for other players.
      */
      private ["_vehicle"];
      _vehicle = param [0,objNull,[objNull]];
      
      if (isNull _vehicle) exitWith {};
      if (isNil {_vehicle getVariable "ansg_re_feuer"}) exitWith {};
      
      for "_i" from 0 to 1 step 0 do {
          if (!(_vehicle getVariable "ansg_re_feuer")) exitWith {};
          if (count crew _vehicle isEqualTo 0) then {_vehicle setVariable ["ansg_re_feuer",false,true]};
          if (!alive _vehicle) exitWith {};
          if (isNull _vehicle) exitWith {};
          _vehicle say3D ["ansg_re_feuer",500,1]; //Class name specified in description.ext, max distance & pitch
          sleep 6.138;//Exactly matches the length of the audio file.
          if (!(_vehicle getVariable "ansg_re_feuer")) exitWith {};
          _vehicle setVariable ["ansg_re_feuer",false,true];
      };
      Alles anzeigen
      Code: fn_setupActions.sqf
          //Cop-Ansagen
          life_actions pushBack (player addAction["<t color = '#FF0000'>Ansage - Feuer eröffnen</t>",life_fnc_cop_ansg_re_feuer,"",0,false,false,"",' vehicle player != player ']);
          life_actions pushBack (player addAction["<t color = '#FF6600'>Ansage - Gebäude räumen</t>",life_fnc_cop_ansg_unbe_geb,"",0,false,false,"",' vehicle player != player ']);
          life_actions pushBack (player addAction["<t color = '#00FF00'>Ansage - rechts halten</t>",life_fnc_cop_ansg_re_halten,"",0,false,false,"",' vehicle player != player ']);

      Hatte es Anfangs, nur über die fn_cop_ansg_re_feuers.sqf aufgerufen, dann aber aus der KeyHandler die Codezeilen übernommen. Ist in der RemoteExec eingetragen:

      JIP(life_fnc_ansg_re_feuers,CLIENT)


      Vielleicht hat ja jemand, eine Idee. :)

      Grüße

      pentoxide/Jonas

      Allzeit zu erreichen unter:

      [email protected]

      • Nächster offizieller Beitrag
    • Deathman
      Profi
      Reaktionen
      259
      Trophäen
      10
      Beiträge
      676
      Dateien
      12
      Bilder
      106
      • 7. Februar 2021 um 20:37
      • #2

      Ich würde es über cases machen, weil es besser ist alles in einer Datei zu haben.

    • Deathman
      Profi
      Reaktionen
      259
      Trophäen
      10
      Beiträge
      676
      Dateien
      12
      Bilder
      106
      • 7. Februar 2021 um 20:40
      • #3

      Müsste du halt gucken Wenn du die Sirene aus machst das dann nur eine datei immer aufgrufen wird, um den sound auszumachen.

      Guck dir einfach mal das aus der KeyHandler an da kannst du bestimmt was schönes zusammen basteln.:)

    • pentoxide
      Fortgeschrittener
      Reaktionen
      243
      Trophäen
      11
      Beiträge
      363
      • 8. Februar 2021 um 01:03
      • Offizieller Beitrag
      • #4

      Danke für deine Antwort :)

      Das werde ich mir zu Herzen nehmen und meine Umsetzung nochmal überarbeiten.

      Jedoch finde ich leider grundsätzlich im obigen Code den Fehler nicht, so sollte die Umsetzung in der Basis doch funktionieren oder ist das grundlegend nicht möglich bzw. so nicht umsetzbar?

      Hätte vielleicht auch nochmal einen kleinen Lerneffekt für mich. Falls jemand einen Ansatz hat, bitte nicht den kompletten Code vorschreiben, da bin ich nicht der Fan von würde das lieber alles verstehen und dann selber umsetzen.

      Grüße

      pentoxide/Jonas

      Allzeit zu erreichen unter:

      [email protected]

      • Vorheriger offizieller Beitrag
      • Nächster offizieller Beitrag
    • Basti0208
      Schüler
      Reaktionen
      58
      Trophäen
      10
      Beiträge
      138
      Dateien
      1
      • 8. Februar 2021 um 14:37
      • #5

      Ich würde dir raten, das Skript ganz simpel mit diag_log zu debuggen und zu schauen, wie weit du kommst, in welcher Datei er abbricht und ob er überhaupt etwas ausführt.
      Das Problem ist auch, dass ich gerade nicht ganz nachvollziehen kann, was nicht geht. "Funktioniert nach mehreren Anläufen nicht." hilft mir beispielsweise überhaupt nicht weiter.
      Du kannst auch nochmal alle Dateinamen überprüfen. In deinem Beitrag sind beide Dateien "fn_cop_ansg_re_feuer.sqf" benannt, wobei das vermutlich nur ein Flüchtigkeitsfehler ist.

      Mit freundlichen Grüßen

      Basti

    • Deathman
      Profi
      Reaktionen
      259
      Trophäen
      10
      Beiträge
      676
      Dateien
      12
      Bilder
      106
      • 8. Februar 2021 um 16:05
      • #6

      Ich würde es auf jeden fall so machen das ein Skirpt immer das Stoppen des Sounds einleitet bzw. auch nur ein Sound immer Abgespielt werden kann.

      z.b

      Ausführung

      Code
      life_actions = life_actions + [player addAction["<t color='#00FF00'>Sirenamen An</t>",{
          titleText [localize "STR_MISC_SirensON","PLAIN"];
          (vehicle player) setVariable ["siren",true,true];
          private "_jip";
          _jip = [(vehicle player)] remoteExec ["life_fnc_copSiren",RCLIENT,true];
          (vehicle player) setVariable ["sirenJIP",_jip,true];
      },"",7,false,false,"",' vehicle player != player ']];

      Stoppen

      Code
      life_actions = life_actions + [player addAction["<t color='#00FF00'>Sirene Aus</t>",{
      titleText [localize "STR_MISC_SirensOFF","PLAIN"];
      (vehicle player) setVariable ["siren",false,true];
      if !(isNil {((vehicle player) getVariable "sirenJIP")}) then {
          private _jip = (vehicle player) getVariable "sirenJIP";
          (vehicle player) setVariable ["sirenJIP",nil,true];
          remoteExec ["",_jip]; //remove from JIP queue
      };
      },"",7,false,false,"",' vehicle player != player ']];

      Aber ich bin zurzeit dabei sowas viel einfacher zu gestalten so das alles nur per Config leuft also das mit den Sirenen hinzufügen

    • pentoxide
      Fortgeschrittener
      Reaktionen
      243
      Trophäen
      11
      Beiträge
      363
      • 8. Februar 2021 um 19:24
      • Offizieller Beitrag
      • #7
      Zitat von Basti0208

      Ich würde dir raten, das Skript ganz simpel mit diag_log zu debuggen und zu schauen, wie weit du kommst, in welcher Datei er abbricht und ob er überhaupt etwas ausführt.
      Das Problem ist auch, dass ich gerade nicht ganz nachvollziehen kann, was nicht geht. "Funktioniert nach mehreren Anläufen nicht." hilft mir beispielsweise überhaupt nicht weiter.
      Du kannst auch nochmal alle Dateinamen überprüfen. In deinem Beitrag sind beide Dateien "fn_cop_ansg_re_feuer.sqf" benannt, wobei das vermutlich nur ein Flüchtigkeitsfehler ist.

      Nabend,

      am debugging arbeite ich gerade. Danke dir schon einmal. Was letztendlich am o.g. nicht funktioniert ist tatsächlich die Wiedergabe der Audiodatei.

      Nein, es ist kein Fehler, ich habe einmal die File FN_COP_ANSG_RE_FEUER.SQF und einmal die FN_COP_ANSG_RE_FEUERS.SQF.


      Zitat von Deathman

      Ich würde es auf jeden fall so machen das ein Skirpt immer das Stoppen des Sounds einleitet bzw. auch nur ein Sound immer Abgespielt werden kann.

      z.b

      Ausführung

      Code
      life_actions = life_actions + [player addAction["<t color='#00FF00'>Sirenamen An</t>",{
          titleText [localize "STR_MISC_SirensON","PLAIN"];
          (vehicle player) setVariable ["siren",true,true];
          private "_jip";
          _jip = [(vehicle player)] remoteExec ["life_fnc_copSiren",RCLIENT,true];
          (vehicle player) setVariable ["sirenJIP",_jip,true];
      },"",7,false,false,"",' vehicle player != player ']];

      Stoppen

      Code
      life_actions = life_actions + [player addAction["<t color='#00FF00'>Sirene Aus</t>",{
      titleText [localize "STR_MISC_SirensOFF","PLAIN"];
      (vehicle player) setVariable ["siren",false,true];
      if !(isNil {((vehicle player) getVariable "sirenJIP")}) then {
          private _jip = (vehicle player) getVariable "sirenJIP";
          (vehicle player) setVariable ["sirenJIP",nil,true];
          remoteExec ["",_jip]; //remove from JIP queue
      };
      },"",7,false,false,"",' vehicle player != player ']];

      Aber ich bin zurzeit dabei sowas viel einfacher zu gestalten so das alles nur per Config leuft also das mit den Sirenen hinzufügen

      Schaue ich mir gerade mal an, danke dir :)

      pentoxide/Jonas

      Allzeit zu erreichen unter:

      [email protected]

      • Vorheriger offizieller Beitrag
      • Nächster offizieller Beitrag
    • Basti0208
      Schüler
      Reaktionen
      58
      Trophäen
      10
      Beiträge
      138
      Dateien
      1
      • 8. Februar 2021 um 19:51
      • #8
      Zitat von pentoxide

      Nein, es ist kein Fehler, ich habe einmal die File FN_COP_ANSG_RE_FEUER.SQF und einmal die FN_COP_ANSG_RE_FEUERS.SQF.

      Achso ok, das ist mir gar nicht aufgefallen :D

      Zitat von pentoxide

      Was letztendlich am o.g. nicht funktioniert ist tatsächlich die Wiedergabe der Audiodatei.

      Wird dir denn der Hint angezeigt?

      Mit freundlichen Grüßen

      Basti

    • Deathman
      Profi
      Reaktionen
      259
      Trophäen
      10
      Beiträge
      676
      Dateien
      12
      Bilder
      106
      • 9. Februar 2021 um 00:48
      • #9

      Wie schon gesagt ich bin, gerade drüber das ganze Sirenen hinzufügen zu vereinfachen durch eine Config so das du nur noch 2 Sachen machen musst, um alles einzustellen.

      Das System ist aber noch in der Testphase.

      Ich möchte es mit diesem System so einfach wie möglich den Leuten machen Sirenen hinzuzufügen und wenn all Fehler ausgemerzt sind auf das Framework auf Github hochladen bzw. meinen Antrag stellen ob dieser angenommen wird, liegt dort bei den Mods.

      Gruß Deathman:)

    • pentoxide
      Fortgeschrittener
      Reaktionen
      243
      Trophäen
      11
      Beiträge
      363
      • 9. Februar 2021 um 10:05
      • Offizieller Beitrag
      • #10
      Zitat von Basti0208

      Wird dir denn der Hint angezeigt?

      Hi Basti,

      das Skript läuft ohne Fehlermeldungen durch, der Hint wird so wie er aufgerufen wird auch angezeigt.

      Zitat von Deathman

      Wie schon gesagt ich bin, gerade drüber das ganze Sirenen hinzufügen zu vereinfachen durch eine Config so das du nur noch 2 Sachen machen musst, um alles einzustellen.

      Das System ist aber noch in der Testphase.

      Ich möchte es mit diesem System so einfach wie möglich den Leuten machen Sirenen hinzuzufügen und wenn all Fehler ausgemerzt sind auf das Framework auf Github hochladen bzw. meinen Antrag stellen ob dieser angenommen wird, liegt dort bei den Mods.

      Gruß Deathman:)

      Das klingt spannend, da kannst Du mich gerne auf dem laufenden halten. :)

      Grüße

      pentoxide/Jonas

      Allzeit zu erreichen unter:

      [email protected]

      • Vorheriger offizieller Beitrag
    • kruemelmonstaar
      Frischling
      Reaktionen
      3
      Beiträge
      10
      • 9. Februar 2021 um 14:55
      • #11

      Gude,

      also deine for Schleife macht so halt keinen Sinn. Die wird einmal durchlaufen und dann wieder geschlo0ssen.

      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_copSiren.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Starts the cop siren sound for other players.
      */
      private ["_vehicle"];
      _vehicle = param [0,objNull,[objNull]];
      
      if (isNull _vehicle) exitWith {};
      if (isNil {_vehicle getVariable "ansg_re_feuer"}) exitWith {};
      
      for "_i" from 0 to 1 step 0 do {
          if (!(_vehicle getVariable "ansg_re_feuer")) exitWith {};
          if (count crew _vehicle isEqualTo 0) then {_vehicle setVariable ["ansg_re_feuer",false,true]};
          if (!alive _vehicle) exitWith {};
          if (isNull _vehicle) exitWith {};
          _vehicle say3D ["ansg_re_feuer",500,1]; //Class name specified in description.ext, max distance & pitch
          sleep 6.138;//Exactly matches the length of the audio file.
          if (!(_vehicle getVariable "ansg_re_feuer")) exitWith {};
          _vehicle setVariable ["ansg_re_feuer",false,true];
      };
      Alles anzeigen

      Das Setzen am Ende von ansg_re_feuer beendet jedes mal den Loop das muss auf jedenfall raus. Und würde dir auch nahelegen erstmal den Sound zu testen ob der überhaupt hörbar ist (also ingame).

    Registrieren oder Einloggen

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

    Registrieren

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