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
Fr: 18 Juli 2025
  • Anmelden oder registrieren
  • Suche
Alles
  • Alles
  • 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. Mitglieder
    3. Lucian

    Beiträge von Lucian

    • Intel Xeon E5-1650 v3 oder Intel i7 7700k​ für Arma3 Altis Life-Server

      • Lucian
      • 13. März 2017 um 09:31

      Also wir laufen mit einem 7700k, da Arma die Single Core Power braucht. Allerdings wird das erst bei größeren Spielerzahlen wichtig.

    • Sound geht nicht

      • Lucian
      • 13. März 2017 um 09:28

      Poste mal die SoundCfg, wo die Sounds Lokal in der Mission definiert werden.

    • ARMA 3 LIFE | UI Design

      • Lucian
      • 12. März 2017 um 23:42

      Würde niemals ein ganzes Bild nehmen. Würde mehrere Elemente als einzelne Bilder nehmen. Grund dafür, sind verschiedene Auflösungen.

    • Sound geht nicht

      • Lucian
      • 12. März 2017 um 22:20

      say3D muss über remoteExec ausgeführt werden.

    • Tazer animation ragdoll callen lassen?

      • Lucian
      • 12. März 2017 um 21:50

      Probiere es aus.

      Habe das auch einfach gemacht und es geht.

    • Tazer animation ragdoll callen lassen?

      • Lucian
      • 10. März 2017 um 10:04

      Versuche mal den Befehl. Da wird auch ragdoll geforced

      https://community.bistudio.com/wiki/setUnconscious

    • [Miller-Controls] GUI Farbe automatisch setzen | Alle Versionen

      • Lucian
      • 15. Februar 2017 um 10:05
      Zitat von Montylein

      mal als anhang das mann weniger testen muss, eine kleine Tabelle der Farben mit den Werten für RGBA

      Das wird nicht gehen. Da Arma zwar RGBA hat aber nur von 0-1.
      Benutzt dann lieber KK's blog – HEX 2 ArmA GUI Colour Converter

    • [Tutorial] DE100-Benachrichtigungssystem

      • Lucian
      • 14. Februar 2017 um 19:49
      Zitat von BitDr0p_

      Alo an jedes der gewünschten meldungen  call life_fnc_notification_system; anfügen?

      NEIN, mein Gott.
      Wenn ihr die Basics nicht versteht lasst es.
      Jede Funktion/Befehl in Arma hat Parameter.
      Und bei meiner Funktion sind es die Folgenden:

      Code
      0: Text <STRING>
      1: Type <BOOLEAN> false = noError true = Error
      2: Speed <STRING> fast = fadeout nach 5 sek, slow = fadeout nach 15 sek

      Wenn ihr die nicht versteht kann ich euch nur Empfehlen evt. nicht gleich mit einem Framework wie Altis Life anzufangen.

      Ich erkläre jetzt einmal was, wo und wie die Parameter genau sind.

      Was ist ein Parameter?
      Ein Parameter ist ein Wert, der die Funktionsweise einer Funktion verändert, ähnlich wie in der Mathematik.
      Bei meiner Funktion haben wir drei Parameter.

      Wo ist ein Parameter?
      Einen Parameter schreibt man meistens bei Funktionen in einen Array (WAS IST EIN VERDAMMTER ARRAY ????!!??) an den angegebenen Index, außer es handelt sich um eine Funktion, die nur einen Parameter hat dann kann es vorkommen das man den Parameter direkt schreibt. Danach wird ein Call oder Spawn kommen je nachdem, wie man die Funktion ausführen will. Und zu guter letzt kommt die Funktion.
      Bei meiner Funktion haben wir drei Parameter. D.h. einen Array mit drei Feldern, die die Indexe 0,1,2 haben. Wie man anhand meines ersten Postes sieht, ist auf dem Index 0 der Text, welcher als Datentyp ein String sein muss (UND WAS BITTE IST JETZT EIN STRING !?). Darauf folgt der Type als Boolean(...???) mit dem Index 1, bei mir ist true eine Error MSG und false eine normale MSG. Und auf dem Index 3 kommt der Speed ebenfalls als String, "fast" für schnelles Fadeout "slow" für langsames.
      Danach kommt ein call, warum? weil das so ist und ich jetzt kb. habe euch zu erklären was der Unterschied zwischen Call und Spawn ist.
      Und dann kommt schon life_fnc_notification_system.
      Bsp:
      Wir haben eine Fehler/Error Meldung die wir LANGE anzeigen wollen mit dem Text "Ey, du hast da was falsch gemacht".
      Also sollte die Funktion so aussehen ["Ey, du hast da was falsch gemacht",true,"slow"] call life_fnc_notification_system

      WIE PARAMETER TEXT, ICH HABE DA SO PAAR BEFEHLE?
      Yay, du bist auf String-Befehle gestoßen, die Werte an einer bestimmten Stelle einfügen wie format oder die Strings aus der Stringtabel raussuchen wie localize.
      Es gibt noch viele weitere String-Befehle, wichtig ist nur das diese Befehle einen String als Rückgabewert haben.


      Soooooooooooooooooooooooooooooooooo
      Wer es immer noch nicht verstanden hat, sollte erstmal ein "Hello, World" oder so machen oder sich einfach mal das BI Wiki anschauen und bei den DatenTypen, Strukturelementen etc. anfangen. Oder hier schauen
      Smart Tactics
      DevTeam Paxton
      Feuerex

    • RGB Farben ( GUI )

      • Lucian
      • 14. Februar 2017 um 17:01
      Code
      BSP. 1
      
      
      
      
      private _headerColor = if (_error) then {
      	[0.538433,0,0,0.8];//<--- ERROR FARBE HIER ROT
      } 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])]; //<-- DEF. FARBE, HIER DIE FARBE DES CLIENTS
      };
      
      
      
      
      
      
      
      BSP. 2
      private _headerColor = if (_error) then {
      	[0.538433,0,0,0.8];//<--- ERROR FARBE HIER ROT
      } else {
      	[1,1,0,1]; //<-- DEF. FARBE, HIER GELB
      };
      Alles anzeigen
    • RGB Farben ( GUI )

      • Lucian
      • 14. Februar 2017 um 16:52
      Code
      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])];
      };

      _headerColor gibt an welche Farbe der Header hat.
      Einmal als error Farbe Rot und einmal als standard Farbe die User-Color.
      Wenn du jetzt eine andere standard Farbe willst, änderst du den Array.

    • RGB Farben ( GUI )

      • Lucian
      • 14. Februar 2017 um 16:44

      Finde ich sinnlos und auch etwas fragwürdig, da man entweder die Profil-Datei schreibgeschützt machen kann und somit kann Arma das nicht ändern oder man ändert es nach dem man auf dem Server ist wieder um.
      Zu dem, kann man man auch einfach die Farbe in den entsprechenden Dialogen einstellen.

    • [Tutorial] DE100-Benachrichtigungssystem

      • Lucian
      • 14. Februar 2017 um 11:17
      Zitat von Saturin78

      Wirklich ne schöne Sache :) Funktioniert mit @blackfisch seiner Änerung hervorragend in der Version 4.0!

      Besten Dank für das System.

      Kleine Frage hätte ich. Ich bin mit den Dialogen absolut nicht fitt. Und würde gerne die Nachrichten nicht links auf dem Monitor haben sondern rechts. Was muß ich denn da ändern, so dass die Nachrichten rechts erscheinen?

      Du musst die X Kord raus finden und in ctrlSetPosition  ändern.
      Aber kp was die X Kord für rechts ist, habe das System eh neu geschrieben, da kann man das Teil verschieben und der Client kann sich die Position aussuchen wo er die MSGs haben will.

    • [Tutorial] DE100-Benachrichtigungssystem

      • Lucian
      • 13. Februar 2017 um 21:18

      Weil das im GIF mehrere Nachrichten auf einmal sind.

    • Hänge im Ladebildschirm

      • Lucian
      • 10. Februar 2017 um 16:40

      Allerdings ist das von Gestern ^^

    • battleye kickt alle Spieler mit "Client not Responding"

      • Lucian
      • 4. Januar 2017 um 12:02

      Bin auf eurem LYL Ts

    • battleye kickt alle Spieler mit "Client not Responding"

      • Lucian
      • 4. Januar 2017 um 11:03
      Code: basic.cfg
      language = "German";
      MaxMsgSend = 1024;
      MaxSizeGuaranteed = 1224;
      MaxSizeNonguaranteed = 512;
      MinBandwidth = 768000;
      MaxBandwidth = 12582912;
      MinErrorToSend = 0.005;
      MinErrorToSendNear = 0.05;
      MaxCustomFileSize = 0;
      class sockets{maxPacketSize = 1400;};
      adapter=-1;
      3D_Performance=1;
      Resolution_W=0;
      Resolution_H=0;
      Resolution_Bpp=32;
      terrainGrid=50.0;
      viewDistance=2000;
      Windowed=0;
      Alles anzeigen

      MissionObjekte:
      count allMissionObjects "All"; = 5122
      ASM Screenshot werde ich versuchen heute Abend zu machen.

    • battleye kickt alle Spieler mit "Client not Responding"

      • Lucian
      • 3. Januar 2017 um 23:21

      Da ich faul bin :P
      Hardware:
      Dedicated Server MC-64-OC | Reihe GAME - OVH
      Anbindung:
      1 Gbit/s

    • battleye kickt alle Spieler mit "Client not Responding"

      • Lucian
      • 3. Januar 2017 um 21:51

      Hallo NN,
      wir haben seit einigen Tagen das Problem, dass BE bei ca. 120+ Spielern anfängt alle Spieler mit "Client not Responding" zu kicken.
      Meine Vermutung ist, dass die Netzwerkauslastung für den ArmaServer zu groß ist und Arma an einem bestimmten Punkt die Verbindung zu allen Spielern verliert, was dazu führt, dass BE alle mit "Client not Responding" kickt.
      In den RPT Logs des Servers sind vermehrt diese Einträge zu finden, wenn BE anfängt die Spieler zu kicken:

      Code
      18:15:47 Server: Network message 2855ff8 is pending
      18:15:47 Server: Network message 2855ff9 is pending
      18:15:47 Server: Network message 2855ff9 is pending
      18:15:47 Server: Network message 2855ff9 is pending
      18:15:47 Server: Network message 2856420 is pending
      18:15:49 Server: Network message 2856a70 is pending
      18:15:49 Server: Network message 2856a70 is pending
      18:15:49 Server: Network message 2856a71 is pending
      18:15:49 Server: Network message 2856a72 is pending
      18:15:58 Server: Network message 28586fb is pending
      18:15:58 Server: Network message 2858955 is pending
      18:15:58 Server: Network message 2858955 is pending
      18:15:58 Server: Network message 2858955 is pending
      18:15:58 Server: Network message 2858956 is pending
      18:15:58 Server: Network message 2858956 is pending
      18:15:58 Server: Network message 2858956 is pending
      18:15:58 Server: Network message 285895d is pending
      18:15:58 Server: Network message 285895d is pending
      18:15:58 Server: Network message 285895d is pending
      Alles anzeigen


      und diese etwas später:


      Code
      18:15:59 NetServer::SendMsg: cannot find channel #1960263011, users.card=50
      18:15:59 NetServer: users.get failed when sending to 1960263011
      18:15:59 Message not sent - error 0, message ID = ffffffff, to 1960263011 (Tracy Miller)
      18:15:59 NetServer::SendMsg: cannot find channel #1960263011, users.card=50
      18:15:59 NetServer: users.get failed when sending to 1960263011
      18:15:59 Message not sent - error 0, message ID = ffffffff, to 1960263011 (Tracy Miller)
      18:16:01 Client [CBH] Sir BenSon - client's ticket has become invalid. Code: 6
      18:16:01 Client [TLS]Costa - client's ticket has become invalid. Code: 6
      18:16:03 NetServer::SendMsg: cannot find channel #900801400, users.card=49
      18:16:03 NetServer: users.get failed when sending to 900801400
      18:16:03 Message not sent - error 0, message ID = ffffffff, to 900801400 ([TLS]Costa)
      18:16:03 NetServer::SendMsg: cannot find channel #900801400, users.card=49
      18:16:03 NetServer: users.get failed when sending to 900801400
      18:16:03 Message not sent - error 0, message ID = ffffffff, to 900801400 ([TLS]Costa)
      18:16:03 NetServer::SendMsg: cannot find channel #900801400, users.card=49
      18:16:03 NetServer: users.get failed when sending to 900801400
      18:16:03 Message not sent - error 0, message ID = ffffffff, to 900801400 ([TLS]Costa)
      18:16:03 NetServer::SendMsg: cannot find channel #60244854, users.card=49
      18:16:03 NetServer: users.get failed when sending to 60244854
      18:16:03 Message not sent - error 0, message ID = ffffffff, to 60244854 ([CBH] Sir BenSon)
      18:16:03 NetServer::SendMsg: cannot find channel #60244854, users.card=49
      18:16:03 NetServer: users.get failed when sending to 60244854
      18:16:03 Message not sent - error 0, message ID = ffffffff, to 60244854 ([CBH] Sir BenSon)
      18:16:03 NetServer::SendMsg: cannot find channel #60244854, users.card=49
      18:16:03 NetServer: users.get failed when sending to 60244854
      Alles anzeigen

      Die Arma3Server.exe stürzt dabei jedoch nie ab.
      Vielleicht hat einer von euch eine Idee woran das liegt/wie man das fixen kann oder ob es schon reicht einfach die Logs des Servers mal abzuschalten.

      ASM gibt leider auch keine klaren Daten von sich.

    • [Codeschnipsel] Fade-IN Dialog by Lucian

      • Lucian
      • 29. Dezember 2016 um 12:40

      Hallo NN,
      heute zeige ich euch meine neue Deathscreen GUI.
      Das Thema hier soll kein Tutorial werden, sondern euch nur zeigen, wie man eine GUI effektiv animieren kann und wie das dann aussehen kann.
      Aus diesem Zweck habe ich euch mal meinen Dialog und die dazugehörige Funktion mit in das Thema gepostet.
      Die fertige GUI sieht ungefähr so aus: ShadowOfKlon - DE100 NEW DEATH SCREEN IN ACTION V2 - Plays.tv
      Wichtig ist, dass es einige CTRLs gibt die man nicht animieren kann, bzw. die man nicht faden kann, wie z.B. die Map Ctrl.

      Mfg.
      Lucian

      PS:
      Das Thema habe ich in Alits Life/Tutorials erstellt, da die im Beitrag gepostete GUI sowie die Funktion für Altis Life entwickelt wurden. Sollte ein Moderator/Admin das Thema verschieben wollen, soll er das gerne machen.

      C: Dialog.hpp
      class Respawn_Screen
      {
      	idd = 7000;
      	movingEnabled = false;
      	enableSimulation = true;
      	onLoad = "(_this + [0,0]) spawn life_fnc_deathScreen;";
      	onKeyDown = "if((_this select 1) == 1) then {true;};";
      	class controlsBackground
      	{
      		class logo: RscPicture
      		{
      			idc = 1;
      			text = "images\ui\ui_logo_full.paa";
      			x = 0.412344 * safezoneW + safezoneX;
      			y = 0.181 * safezoneH + safezoneY;
      			w = 0.175313 * safezoneW;
      			h = 0.297 * safezoneH;
      		};
      		class BG: Life_RscText
      		{
      			idc = 2;
      			colorBackground[] = {0.9,0.9,0.9,0.85};
      			x = 0.386562 * safezoneW + safezoneX;
      			y = 0.412 * safezoneH + safezoneY;
      			w = 0.226875 * safezoneW;
      			h = 0.363 * safezoneH;
      		};
      	};
      	class Controls
      	{
      		class THR_COUNT: Life_RscText
      		{
      			idc = 3;
      			colorText[] = {0, 0, 0, 1};
      			colorShadow[] = {1, 1, 1, 0.2};
      			shadow = 1;
      			text = "THR-Mitglieder im Spiel: 1 Spieler"; //--- ToDo: Localize;
      			x = 0.391719 * safezoneW + safezoneX;
      			y = 0.434 * safezoneH + safezoneY;
      			w = 0.216563 * safezoneW;
      			h = 0.026 * safezoneH;
      			sizeEx = 0.026 * safeZoneH;
      		};
      		class THR_REQ: THR_COUNT
      		{
      			idc = 4;
      			text = "THR-Mitglied ist auf dem Weg: Nein"; //--- ToDo: Localize;
      			x = 0.391719 * safezoneW + safezoneX;
      			y = 0.458 * safezoneH + safezoneY;
      			w = 0.216563 * safezoneW;
      			h = 0.026 * safezoneH;
      		};
      		class RESPAWN_INFO: THR_COUNT
      		{
      			idc = 5;
      			style = 0x02;
      			text = "Respawn verfügbar in: 05:30"; //--- ToDo: Localize;
      			x = 0.391719 * safezoneW + safezoneX;
      			y = 0.5 * safezoneH + safezoneY;
      			w = 0.216563 * safezoneW;
      			h = 0.054 * safezoneH;
      			sizeEx = 0.033 * safeZoneH;
      		};
      		class RESPAWN_BTN: Life_RscButtonMenu
      		{
      			onButtonClick = "[findDisplay 7000,1,0] spawn life_fnc_deathScreen;";
      			idc = 6;
      			text = "Neues Leben"; //--- ToDo: Localize;
      			colorText[] = {0, 0, 0, 1};
      			x = 0.391719 * safezoneW + safezoneX;
      			y = 0.566 * safezoneH + safezoneY;
      			w = 0.216563 * safezoneW;
      			h = 0.055 * safezoneH;
      			size = 0.042 * safeZoneH;
      			colorBackground[] = {0,0,0,0};
      			colorBackgroundActive[] = {0,0,0,0};
      			colorDisabled[] = {0.5,0.5,0.5,1};
      			color[] = {0,0,0,1};
      			color2[] = {0,0,0,1};
      			colorFocused[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])",1};
      			animTextureOver = "#(argb,8,8,3)color(0,0,0,0)";
      			animTextureFocused = "#(argb,8,8,3)color(0,0,0,0)";
      			animTexturePressed = "#(argb,8,8,3)color(0,0,0,0)";
      			animTextureDisabled = "#(argb,8,8,3)color(0.5,0.5,0.5,1)";
      			class Attributes : Attributes {
      				align = "center";
      			};
      		};
      		class THR_REQ_BTN: RESPAWN_BTN
      		{
      			idc = 7;
      			onButtonClick = "[0] call life_fnc_thrRequest;";
      			text = "THR rufen"; //--- ToDo: Localize;
      			x = 0.391719 * safezoneW + safezoneX;
      			y = 0.632 * safezoneH + safezoneY;
      			w = 0.216563 * safezoneW;
      			h = 0.055 * safezoneH;
      		};
      		class DISCONNECT: RESPAWN_BTN
      		{
      			idc = 8;
      			onButtonClick = "[findDisplay 7000,1,1] spawn life_fnc_deathScreen;";
      			text = "Verlassen"; //--- ToDo: Localize;
      			x = 0.391719 * safezoneW + safezoneX;
      			y = 0.698 * safezoneH + safezoneY;
      			w = 0.216563 * safezoneW;
      			h = 0.055 * safezoneH;
      		};
      	};
      };
      Alles anzeigen
      JavaScript: Funktion.sqf
      #include "..\..\script_macros.hpp"
      /*
      	File:	fn_deathScreen.sqf
      	Date:   2016-07-15 13:50:45
      	Author: Patrick "Lucian" Schmidt
      	Description:
      	Take a look for yourself.
      */
      
      
      
      
      #define FADEIN 0
      #define FADEOUT 1
      
      
      
      
      #define RESPAWN 0
      #define DISCONNECT 1
      #define REVIVED 2
      
      
      
      
      disableSerialization;
      params[
      	["_display", displayNull, [displayNull]],
      	["_mode", 0, [0]],
      	["_exit", 0, [0]],
      	"_ctrls",
      	"_handle",
      	"_confirm"
      ];
      if (_display getVariable ["exit",false]) exitwith {};
      _ctrls = allControls _display;
      switch (_mode) do { 
      	case FADEIN : {
      		life_deathScreen = true;
      		_handle = ppEffectCreate ["DynamicBlur", 401]; 
      		_handle ppEffectForceInNVG true;
      		_handle ppEffectEnable true; 
      		_handle ppEffectAdjust [4];
      		_handle ppEffectCommit 1.5;
      
      
      
      
      		_display setVariable ["Blur",_handle];
      
      
      
      
      		{
      			_x ctrlSetFade 1;
      			_x ctrlCommit 0;
      		} forEach _ctrls;
      
      
      
      
      		[] spawn {
      			disableSerialization;
      			private _display = findDisplay 7000;
      			private _time = time + (2 * 60);
      			private _called = false;
      			private _finished = false;
      			life_thr_request = false;
      			(_display displayCtrl 6) ctrlEnable false;
      			(_display displayCtrl 8) ctrlEnable false;
      			while {!isNull _display} do {
      				if (life_thr_request && !_called) then {
      					if (_time <= 0) then {
      						_time = time + (5*60);
      					} else {
      						_time = _time + (3*60);
      					};
      					_called = true;
      					_finished = false;
      				};
      				private _txt = if (!isNull (player getVariable ["thrClerk",objNull])) then {
      					"Ja";
      				} else {
      					"Nein";
      				};
      			  	(_display displayCtrl 3) ctrlSetText format["THR-Mitglieder im Spiel: %1 Spieler",{side _x isEqualTo independent && _x getVariable["isAlive",true]} count allPlayers];
      			  	(_display displayCtrl 4) ctrlSetText format["THR-Mitglied auf dem Weg: %1",_txt];
      			  	if (round(_time - time) > 0) then {
      			  		(_display displayCtrl 5) ctrlSetText format["Respawn verfügbar in: %1",[round(_time - time),"MM:SS"] call BIS_fnc_secondsToString];
      			  	} else {
      			  		if (!_finished) then {
      				  		(_display displayCtrl 5) ctrlSetText "Du kannst nun respawnen";
      						(_display displayCtrl 6) ctrlEnable true;
      						(_display displayCtrl 8) ctrlEnable true;
      						_finished = true;
      			  		};
      			  	};
      			  	if (!isNull ((missionNamespace getVariable["life_corpse",player]) getVariable ["reviver",objNull])) then {
      					(_display displayCtrl 5) ctrlSetText "Du wirst wiederbelebt...";
      					(_display displayCtrl 6) ctrlEnable false;
      					(_display displayCtrl 8) ctrlEnable false;
      					_finished = false;
      			  	};
      			  	uiSleep 1;
      			};
      		};
      		uiSleep 2;
      		{
      			_x ctrlSetFade 0;
      			_x ctrlCommit 1;
      			uiSleep 0.25;
      		} forEach _ctrls;
      	};
      	case FADEOUT : {
      		if (_display getVariable ["exit",false]) exitwith {};//DoubleCheck to be SURE that it cant be executed 2 times
      		_display setVariable ["exit",true];
      		reverse _ctrls;
      		{
      			_x ctrlSetFade 1;
      			_x ctrlCommit 1;
      			uiSleep 0.35;
      		} forEach _ctrls;
      		waitUntil {ctrlCommitted (_ctrls select (count _ctrls -1))};
      		uiSleep 0.3;
      		_handle = _display getVariable ["Blur",0];
      		_display closeDisplay 2;
      		switch (_exit) do {
      			case RESPAWN : {
      				life_respawned = true;
      				[] call life_fnc_spawnMenu;
      			}; 
      			case DISCONNECT : {
      				if (!isNil "_handle") then {
      					_handle ppEffectAdjust [0];
      					_handle ppEffectCommit 3;
      				};
      				life_firstSpawn = true;
      				bank_obj setVariable [(format["DE100_UID_%2_%1",(getPlayerUID player),playerSide]),nil,true];
      				if (!isNull (missionNamespace getVariable ["life_corpse",objNull])) then {
      					hideBody life_corpse;
      				};
      				[]spawn life_fnc_logout;
      				(findDisplay 49)closeDisplay 2;
      			};
      			case REVIVED : {
      				if (!isNil "_handle") then {
      					_handle ppEffectAdjust [0];
      					_handle ppEffectCommit 3;
      				};
      			};
      		};
      		life_deathScreen = false;
      		if (!isNil "_handle") then {
      			waitUntil {ppEffectCommitted _handle};
      			_handle ppEffectEnable false;
      			ppEffectDestroy _handle;
      		};
      	};
      };
      Alles anzeigen
    • Array-Pattern

      • Lucian
      • 24. Dezember 2016 um 22:05

      Hallo NN,
      da ich zur Zeit viel mit PHP arbeite und mich sehr in die PHP-Arrays verliebt habe und seit geraumer Zeit mal meine queryRequest Funktion neu schreiben wollte, habe ich gestern mir ein "Array-Pattern" System geschrieben, wo man auf die einzelnen Felder durch KeyWords zugreifen kann.
      Der Vorteil des Systems ist, ich kann auf die Daten zugreifen ohne ihren Index wissen zu müssen und ich kann neue Felder dynamisch hinzufügen und muss nicht darauf achten, dass z.B. die Lizenzen immer den Index 6 haben.

      fn_applyPattern.sqf (life_fnc_applyPattern)
      Parameter:
      0: Pattern <ARRAY>
      1: Data <ARRAY>

      Beschreibung:
      Das Pattern wird auf die Daten angelegt.
      Pattern und Data müssen gleich lang sein, da das KeyWord über den aktuellen Index ausgelesen wird.

      Bsp.:

      Code
      _pattern = ["cash",""bankacc","copLevel"];
      _data = [0,1000,4];
      _patternArray = [_patern,_data ] call life_fnc_applyPattern;

      _patternArray sollte dann so aussehen [["cash",0],["bankacc",1000],["copLevel",4]]

      fn_dataFromKey.sqf (life_fnc_dataFromKey)
      Parameter:
      0: Key <STRING>
      1: Stack <ARRAY>

      Beschreibung:
      Gibt den Wert eines KeyWords aus einem Stack(Array) aus.
      Sollte der Key nicht im Stack(Array) zu finden sein, wird false ausgegeben.

      Bsp.:
      Wir nehmen mal den Stack von oben _patternArray.
      ["bankacc",_patternArray] call life_fnc_dataFromKey sollte 1000 ausgeben.

      fn_setDataAtKey.sqf (life_fnc_setDataAtKey)
      Parameter:
      0: Key <STRING>
      1: Stack <ARRAY>
      2: Neuer Wert <ANY>

      Beschreibung:
      Ersetzt die Daten eines KeyWords.
      Sollte das KeyWord nicht im Array sein, wird das KeyWord und der neue Wert einfach in den Stack(Array) übernommen.

      Bsp. ersetzen:
      Wir nehmen wieder den Stack von oben _patternArray.
      ["cash",_patternArray,100000] call life_fnc_setDataAtKey; sollte den alten Wert der KeyWords "cash", also 0 durch 100000 ersetzen.

      Bsp. neuen Wert einfügen:
      Wir nehmen wieder den Stack von oben _patternArray.
      ["adminlevel",_patternArray,5] call life_fnc_setDataAtKey; fügt dem Stack(Array) den neuen Datensatz hinzu.
      Der _patternArray sollte dann so aussehen: [["bankacc",1000],["copLevel",4],["cash",100000],["adminlevel",5]]

      fn_applyCodeAtKey.sqf (life_fnc_applyCodeAtKey)
      Parameter:
      0: Key <STRING>
      1: Stack <ARRAY>
      2: Code <CODE>

      Beschreibung:
      Man kann Code injecten wodurch der Wert des KeyWords verändert wird.

      Bsp.:
      Wir nehmen wieder den Stack von oben _patternArray.
      ["cash",_patternArray,{_this - 1000;}] call life_fnc_applyCodeAtKey;
      Dadurch sollte der wert des KeyWords "cash" nur noch 99000 sein. Der Stack(Array) _patternArray sollte dann so aussehen: [["bankacc",1000],["copLevel",4],["adminlevel",5],["cash",99000]]

      Ich hoffe einige können damit was anfangen :D

      Dateien

      pattern_array.zip 1,9 kB – 271 Downloads

    Registrieren oder Einloggen

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

    Registrieren

    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™