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
Di: 20 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. Tutorials & Releases

    [Tutorial] DE100-Benachrichtigungssystem

      • Altis Life
    • Lucian
    • 18. September 2016 um 14:35
    • Lucian
      Amateur
      Reaktionen
      172
      Trophäen
      11
      Beiträge
      204
      Bilder
      5
      • 18. September 2016 um 14:35
      • #1

      Hallo NN,
      heute stelle ich der Öffentlichkeit das DE100-Benachrichtigungssystem zur Verfügung, welches ich für DE100 entwickelt habe.
      Über den Sinn eines solchen Skripts kann man sich streiten. Ich habe das Skript eigentlich nur entwickelt, da mich die Hints abgefuckt haben und ich Langeweile hatte.
      Hier eine kleine Vorschau:

      Wie man auf dem GIF sieht, kann man zwei verschiedene Arten von Meldungen anzeigen.
      Grün(UserFarbe) = Normale Meldung.
      Rot(ErrorFarbe) = Fehler/Error Meldung.
      Es werden auch verschiedene Sounds, je nach Art der Meldung, abgespielt.
      Desweiteren kann man die Meldungen langsam("slow") oder schnell("fast") ausblenden lassen.
      Skript (Funktioniert mit allen Life Versionen, solange man die script_macros von 4.x einfügt):

      C: fn_notification_system.sqf
      #include "..\..\script_macros.hpp"
      /*
          File:    fn_notification_system.sqf
          Date:   2016-07-23 18:15:17
          Author: Patrick "Lucian" Schmidt
          Description:
          Arguments:
              0: Text <STRING>
              1: Type <BOOLEAN>
              2: Speed <STRING>
      */
      params[
          "_text",
          ["_error",false,[false]],
          ["_speed","",[""]]
      ];
      if (isServer || !hasInterface) exitWith {};
      disableSerialization;
      _display = finddisplay 46;
      if (profileNamespace getVariable ["de100_notify",true]) then {
          if (_error) then {
              playSound "3DEN_notificationWarning";
          } else {
              playSound "HintExpand";
          };
      };
      private _headerColor = if (_error) then {
          [0.538433,0,0,0.8];
      } else {
          [(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843]),(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019]),(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862]),(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])];
      };
      if (_text isEqualType "") then {
          _text = parseText _text;
      };
      private _Header = _display ctrlCreate ["RscText", -1];
      _Header ctrlSetPosition [0.005 * safezoneW + safezoneX, 0.01 * safezoneH + safezoneY, 0.2 * safezoneW, 0.011 * safezoneH];
      _Header ctrlSetBackgroundColor _headerColor;
      _Header ctrlSetFade 1;
      _Header ctrlCommit 0;
      _Header ctrlSetFade 0;
      _Header ctrlCommit 0.4;
      private _TextField = _display ctrlCreate ["RscStructuredText", -1];
      _TextField ctrlSetStructuredText _text;
      _TextField ctrlSetPosition [0.005 * safezoneW + safezoneX, 0.021 * safezoneH + safezoneY,0.2 * safezoneW, 0.5];
      _TextField ctrlCommit 0;
      _TextField ctrlSetPosition [0.005 * safezoneW + safezoneX, 0.021 * safezoneH + safezoneY,0.2 * safezoneW, ((ctrlTextHeight _TextField)+ (0.005 * safezoneH))];
      _TextField ctrlSetBackgroundColor [0,0,0,0.75];
      _TextField ctrlSetFade 1;
      _TextField ctrlCommit 0;
      _TextField ctrlSetFade 0;
      _TextField ctrlCommit 0.4;
      [_TextField,_Header,_speed] spawn {
          disableSerialization;
          if (_this select 2 isEqualTo "fast") then {
              uiSleep 5;
          } else {
              uiSleep 15;
          };
          private _TextField = _this select 0;
          private _Header = _this select 1;
          _TextField ctrlSetFade 1;
          _TextField ctrlCommit 0.3;
          _Header ctrlSetFade 1;
          _Header ctrlCommit 0.3;
          uiSleep 0.3;
          ctrlDelete _Header;
          ctrlDelete _TextField;
      };
      private _posText = (ctrlPosition (_TextField)) select 1;
      private _posHeader = (ctrlPosition (_Header)) select 1;
      private _textHigh = (ctrlPosition (_TextField)) select 3;
      if (count life_open_notifications > 0) then {
          private _activeNotifications = 0;
          {
              private _ctrlHeader = _x select 0;
              private _ctrlText = _x select 1;
              if (!isNull _ctrlHeader && !isNull _ctrlText) then {
                  _ctrlHeader ctrlSetPosition [0.005 * safezoneW + safezoneX, (_posHeader + _textHigh + 1.5*(0.011 * safezoneH))];
                  _ctrlText ctrlSetPosition [0.005 * safezoneW + safezoneX, (_posText + _textHigh + 1.5*(0.011 * safezoneH))];
                  _ctrlHeader ctrlCommit 0.25;
                  _ctrlText ctrlCommit 0.25;
                  _posText = (_posText + _textHigh + 1.5*(0.011 * safezoneH));
                  _posHeader = (_posHeader + _textHigh + 1.5*(0.011 * safezoneH));
                  _textHigh = (ctrlPosition (_ctrlText)) select 3;
                  if (_activeNotifications > 3) then {
                      _ctrlText ctrlSetFade 1;
                      _ctrlHeader ctrlSetFade 1;
                      _ctrlText ctrlCommit 0.2;
                      _ctrlHeader ctrlCommit 0.2;
                  };
                  _activeNotifications = _activeNotifications + 1;
              };
          } forEach life_open_notifications;
      };
      life_open_notifications = ([[_Header,_TextField]] + life_open_notifications) select {!isNull (_x select 0) && !isNull (_x select 1)}; // Add the Element to the Front of the Array and remove the deleted Arrays
      Alles anzeigen

      In der configuration.sqf muss noch eine Zeile eingefügt werden:
      life_open_notifications = [];


      Usage:

      ["TEXT",false,"fast"] call life_fnc_notification_system;
      0: Text <STRING>
      1: Type <BOOLEAN> false = noError true = Error
      2: Speed <STRING> fast = fadeout nach 5 sek, slow = fadeout nach 15 sek

      2 Mal editiert, zuletzt von blackfisch (22. Juni 2017 um 14:39) aus folgendem Grund: kleiner define Fehler ;)

    • br1zey
      Meister
      Reaktionen
      881
      Trophäen
      11
      Beiträge
      2.458
      Dateien
      2
      Bilder
      58
      • 18. September 2016 um 15:15
      • #2

      Nette Sache wenn ich jetzt Verwendung dafür hatte würde ich aber

      Den 2 Parameter ändern das man die zeit beim aufrufen einstellt :D

      ReallifeRPG Admin, Scripter, Technischer Helfer, und Manchmal auch Spieler

      realliferpg128x128.png?resize=128%2C128&ssl=1

    • Lucian
      Amateur
      Reaktionen
      172
      Trophäen
      11
      Beiträge
      204
      Bilder
      5
      • 18. September 2016 um 15:24
      • #3
      Zitat von br1zey

      Nette Sache wenn ich jetzt Verwendung dafür hatte würde ich aber

      Den 2 Parameter ändern das man die zeit beim aufrufen einstellt :D

      Ja klar, habe noch überlegt, ob ich die NN Version von dem Skript so mache, dass man direkt die Zeit eingeben kann. An sich ist das auch nur eine kleine Änderung, die eigentlich jeder selber machen kann.
      Bei DE100 brauchen wir das nicht. Da reicht lang und kurz.

    • The C Stands for Cheese
      Gast
      • 18. September 2016 um 20:54
      • #4
      Zitat von Lucian

      2: Speed <STRONG>

      Zitat von Lucian

      2: Speed <STRONG> fast = fadeout nach 5 sek, slow = fadeout nach 15 sek

      STRONG also, ja? :D

    • Lucian
      Amateur
      Reaktionen
      172
      Trophäen
      11
      Beiträge
      204
      Bilder
      5
      • 18. September 2016 um 21:24
      • #5
      Zitat von MrKek

      STRONG also, ja? :D

      :D

    • Reen36
      Fortgeschrittener
      Reaktionen
      11
      Trophäen
      9
      Beiträge
      294
      • 20. September 2016 um 00:12
      • #6

      Kann man es auch per zeit so einstellen das es zu bestimmten Uhrzeiten angezeigt wird? Würde gerne damit 2x am tag ein event starten.

    • AustrianNoob
      Kenner
      Reaktionen
      501
      Trophäen
      10
      Beiträge
      563
      • 20. September 2016 um 07:01
      • #7

      ich schätze schon, versuch einen serverseitigen sleep zu machen und dann das script per remoteexec ausführen^^

    • Draxprod
      Frischling
      Trophäen
      9
      Beiträge
      21
      • 22. September 2016 um 18:29
      • #8

      Dieses Tutorial ist nicht funktionsfähig in 4.5? Es ist nicht für mich arbeiten

    • SirFluffyVonKitten
      Nerd
      Reaktionen
      407
      Trophäen
      11
      Beiträge
      798
      Bilder
      3
      • 22. September 2016 um 18:30
      • #9
      Zitat von Draxprod

      Dieses Tutorial ist nicht funktionsfähig in 4.5? Es ist nicht für mich arbeiten

      You can speak english to here :)


      Solltest du aus dem deutsch sprachingen Bereich kommen überarbeitest den Beitrag bitte und schreib was sinnvolles rein :D

    • Lucian
      Amateur
      Reaktionen
      172
      Trophäen
      11
      Beiträge
      204
      Bilder
      5
      • 22. September 2016 um 18:53
      • #10

      Das Skript funktioniert auf Arma 3 Vanilla, wenn man GVAR_PNAS durch profileNamespace getVariable ersetzt...

      This script works with Arma 3 Vannilla. Just replace GVAR_PNAS with profileNamespace getVariable. And define the script in CfgFunction.

    • Draxprod
      Frischling
      Trophäen
      9
      Beiträge
      21
      • 22. September 2016 um 19:08
      • #11

      @sebi1106
      Okey, thanks you!

      @Lucian
      But I do not see how, I am new in development, but I do not see, for example, I replace
      if (_price > CASH) exitWith {hint localize "STR_NOTF_NotEnoughMoney"};

      by
      if (_price > CASH) exitWith {["Pas assez d'argent",false,"fast"] call life_fnc_notification_system;};

      and nothing I can not even buy my vehicle or withdraw

    • Lucian
      Amateur
      Reaktionen
      172
      Trophäen
      11
      Beiträge
      204
      Bilder
      5
      • 22. September 2016 um 20:08
      • #12

      You need to add the script as a file in your mission.
      For Example you add the script in core/functions/fn_notification_system.sqf. After that you will need to define the function in the Functions.hpp

      Extract from Functions.hpp:

      Code: Functions.hpp
      class Functions {
              file = "core\functions";
              class AAN {};
              class accType {};
              class actionKeyHandler {};
              class animSync {};
              class calWeightDiff {};
              class notification_system {}; //<<<<<- Added line
          };

      After you did this the function should work fine.

    • Draxprod
      Frischling
      Trophäen
      9
      Beiträge
      21
      • 23. September 2016 um 06:42
      • #13
      Zitat von Lucian

      You need to add the script as a file in your mission.
      For Example you add the script in core/functions/fn_notification_system.sqf. After that you will need to define the function in the Functions.hpp

      Extract from Functions.hpp:

      Code: Functions.hpp
      class Functions {
              file = "core\functions";
              class AAN {};
              class accType {};
              class actionKeyHandler {};
              class animSync {};
              class calWeightDiff {};
              class notification_system {}; //<<<<<- Added line
          };

      After you did this the function should work fine.

      Oh thanks !
      But, it's not fonctionnal I have a error

      core\script_macros.hpp not found

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 23. September 2016 um 06:47
      • #14

      If you're using 4.0 or older or you're using 4.4 or newer try this one:

      C
      /*
      	File: fn_notification_system.sqf
      	Date: 2016-07-23 18:15:17
      	Author: Patrick "Lucian" Schmidt
      	Modified by: blackfisch
      
      	Description:
      		Arguments:
      		0: Text <STRING>
      		1: Type <BOOLEAN>
      		2: Speed <STRING>
      */
      params[
      	"_text",
      	["_error",false,[false]],
      	["_speed","",[""]]
      ];
      if (isServer || !hasInterface) exitWith {};
      disableSerialization;
      _display = finddisplay 46;
      if (playerNamespace getVariable ["de100_notify",true]) then {
      	if (_error) then {
      		playSound "3DEN_notificationWarning";
      	} else {
      		playSound "HintExpand";
      	};
      };
      private _headerColor = if (_error) then {
      	[0.538433,0,0,0.8];
      } else {
      	[(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843]),(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019]),(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862]),(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])];
      };
      if (_text isEqualType "") then {
      	_text = parseText _text;
      };
      private _Header = _display ctrlCreate ["RscText", -1];
      _Header ctrlSetPosition [0.005 * safezoneW + safezoneX, 0.01 * safezoneH + safezoneY, 0.2 * safezoneW, 0.011 * safezoneH];
      _Header ctrlSetBackgroundColor _headerColor;
      _Header ctrlSetFade 1;
      _Header ctrlCommit 0;
      _Header ctrlSetFade 0;
      _Header ctrlCommit 0.4;
      private _TextField = _display ctrlCreate ["RscStructuredText", -1];
      _TextField ctrlSetStructuredText _text;
      _TextField ctrlSetPosition [0.005 * safezoneW + safezoneX, 0.021 * safezoneH + safezoneY,0.2 * safezoneW, 0.5];
      _TextField ctrlCommit 0;
      _TextField ctrlSetPosition [0.005 * safezoneW + safezoneX, 0.021 * safezoneH + safezoneY,0.2 * safezoneW, ((ctrlTextHeight _TextField)+ (0.005 * safezoneH))];
      _TextField ctrlSetBackgroundColor [0,0,0,0.75];
      _TextField ctrlSetFade 1;
      _TextField ctrlCommit 0;
      _TextField ctrlSetFade 0;
      _TextField ctrlCommit 0.4;
      [_TextField,_Header,_speed] spawn {
      	disableSerialization;
      	if (_this select 2 isEqualTo "fast") then {
      		uiSleep 5;
      	} else {
      		uiSleep 15;
      	};
      	private _TextField = _this select 0;
      	private _Header = _this select 1;
      	_TextField ctrlSetFade 1;
      	_TextField ctrlCommit 0.3;
      	_Header ctrlSetFade 1;
      	_Header ctrlCommit 0.3;
      	uiSleep 0.3;
      	ctrlDelete _Header;
      	ctrlDelete _TextField;
      };
      private _posText = (ctrlPosition (_TextField)) select 1;
      private _posHeader = (ctrlPosition (_Header)) select 1;
      private _textHigh = (ctrlPosition (_TextField)) select 3;
      if (count life_open_notifications > 0) then {
      	private _activeNotifications = 0;
      	{
      		private _ctrlHeader = _x select 0;
      		private _ctrlText = _x select 1;
      		if (!isNull _ctrlHeader && !isNull _ctrlText) then {
      			_ctrlHeader ctrlSetPosition [0.005 * safezoneW + safezoneX, (_posHeader + _textHigh + 1.5*(0.011 * safezoneH))];
      			_ctrlText ctrlSetPosition [0.005 * safezoneW + safezoneX, (_posText + _textHigh + 1.5*(0.011 * safezoneH))];
      			_ctrlHeader ctrlCommit 0.25;
      			_ctrlText ctrlCommit 0.25;
      			_posText = (_posText + _textHigh + 1.5*(0.011 * safezoneH));
      			_posHeader = (_posHeader + _textHigh + 1.5*(0.011 * safezoneH));
      			_textHigh = (ctrlPosition (_ctrlText)) select 3;
      			if (_activeNotifications > 3) then {
      				_ctrlText ctrlSetFade 1;
      				_ctrlHeader ctrlSetFade 1;
      				_ctrlText ctrlCommit 0.2;
      				_ctrlHeader ctrlCommit 0.2;
      			};
      			_activeNotifications = _activeNotifications + 1;
      		};
      	} forEach life_open_notifications;
      };
      life_open_notifications = ([[_Header,_TextField]] + life_open_notifications) select {!isNull (_x select 0) && !isNull (_x select 1)}; // Add the Element to the Front of the Array and remove the deleted Arrays
      Alles anzeigen

      #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!

      ______________________

    • br1zey
      Meister
      Reaktionen
      881
      Trophäen
      11
      Beiträge
      2.458
      Dateien
      2
      Bilder
      58
      • 6. Oktober 2016 um 01:30
      • #15

      Ich sage noch mal coole Sache und habe jetzt eine Verwendung werde alle Hints dadurch ersetzen ^^

      ReallifeRPG Admin, Scripter, Technischer Helfer, und Manchmal auch Spieler

      realliferpg128x128.png?resize=128%2C128&ssl=1

    • ForceGaming4k
      Anfänger
      Reaktionen
      6
      Trophäen
      9
      Beiträge
      82
      • 6. Oktober 2016 um 12:10
      • #16

      Moin. schöne arbeit :) wie wird den die Meldung Genau Ausgeführt ?

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      9
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 6. Oktober 2016 um 12:53
      • #17

      Die Frage ist ungünstig formuliert. Meinst du den Scriptaufruf?

      Zitat von Lucian

      Usage:

      ["TEXT",false,"fast"] call life_fnc_notification_system;
      0: Text <STRING>
      1: Type <BOOLEAN> false = noError true = Error
      2: Speed <STRING> fast = fadeout nach 5 sek, slow = fadeout nach 15 sek

      #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!

      ______________________

    • ForceGaming4k
      Anfänger
      Reaktionen
      6
      Trophäen
      9
      Beiträge
      82
      • 6. Oktober 2016 um 13:28
      • #18
      Zitat von blackfisch

      Die Frage ist ungünstig formuliert. Meinst du den Scriptaufruf?

      Ne wie die Meldung Kommt, Durch SMS oder wie Kommt die Meldung genau? und wie lässt man die Meldung auf dem Server Erscheinen?

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

      Wenn man sich den Thread durchliest, treten diese Fragen nicht auf. Da ist ein Gif, wo gezeigt wird wie es aussieht (ist die linke obere Bildschirmecke) und unten ein Aufruf (den habe ich dir sogar zitiert)

      #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!

      ______________________

    • MILLER CONTROLS
      Gast
      • 13. Februar 2017 um 20:09
      • #20

      Wie gebe ich das ein wenn ich z.B. das habe:

      PHP
      hint localize "STR_Session_SyncData";


      ?

    Registrieren oder Einloggen

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

    Registrieren

    Tags

    • DE100
    • benachrichtigungssystem

    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™