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: 05 Oktober 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. DerL30N

    Beiträge von DerL30N

    • [Tutorial][VIS V2 BETA] Vehicle Information System | Multi-kompatibel & Database Synchronisation

      • DerL30N
      • 12. Oktober 2016 um 23:10

      1. Am Besten, du checkst noch mal, ob du wirklich alles gemacht hast, wie im Tutorial, oder ob du vlt. einen Schritt ausgelassen hast.
      2. Häng mir mal bitte deine Server RPG Log und deine Client RPG Log an, du solltest wissen wo du beides findest, da aber die meisten nicht wissen wo man die Client Log finded, sag ich es dir netterweise mal.

      C:\Users\Dein User\AppData\Local\Arma 3 Suche nach %appdata%

      Demnächst bitte etwas freundlicher, sonst war das meine letzte Antwort für dich.

      Schönen Abend

    • [Tutorial][VIS V2 BETA] Vehicle Information System | Multi-kompatibel & Database Synchronisation

      • DerL30N
      • 12. Oktober 2016 um 18:37

      Kleines Update!


      Sollten nur die Mietwagen bei euch nicht funktionieren, dann liegt es daran, dass in der fn_vis_setup.sqf noch eine alte Funktion hinterlegt ist, warum auch immer.

      Geht in die fn_vis_setup.sqf, dort in Line 20 steht folgendes :

      [0,false] spawn life_fnc_vis_vehInfo;

      warum auch immer ist das die alte Variante, die neue sieht so aus :

      [0,false] spawn life_fnc_visVehInfo;

      Altis Life 4.5 Kompatibel

    • [Tutorial][VIS V2 BETA] Vehicle Information System | Multi-kompatibel & Database Synchronisation

      • DerL30N
      • 12. Oktober 2016 um 16:35
      Zitat von AmaZiinG

      Eine Frage, wo füge ich die Spalte bei Navicat ein ?

      Uff, ich kenne mich nur mit MySQL aus, da sollte sich am besten mal einer aus der Community Melden, wenn er das hier zufällig liest und er weiß wie es geht oder gehen könnte. Da muss ich leider passen, sry.
      Ich bin aber auch zuversichtlich, dass Tante Google eine Antwort parat haben könnte, frag sie mal, kostet ja nichts :D .

    • [Tutorial][VIS V2 BETA] Vehicle Information System | Multi-kompatibel & Database Synchronisation

      • DerL30N
      • 12. Oktober 2016 um 15:47

      @Cetrux Ganz Simpel, ist im Tut schon geupdatet, du musst zwei Dinge machen : Erstens, den Spoiler im Zitat öffnen und Zweitens, die Anleitung befolgen. :D Und dann da zwei Dinge Abändern.


      Zitat von DerL30N

      Update No.1 (08.10.16 22:55)[spoiler]Behebt das Problem, dass das HUD nach einiger Zeit oder durch Unfälle verschwindet


      Geht dazu in das Missionsverzeichnis und öffnet die Datei fn_fisVehInfo.sqf im Ordner derleon und dann vis


      Ersetzt dort die Zeile 86 mit 18 cutRsc["vehInfo","PLAIN"]; und die Zeile 274 mit 18 cutText ["","PLAIN"];[/spoiler

    • [Tutorial][Message System][V1.1] Alternative für Hints & Co.

      • DerL30N
      • 12. Oktober 2016 um 15:39

      Info

      Ich habe eine kleine Ergänzung zum Thema remoteExec angeschlossen, für den Fall, das wir vom Server aus Nachrichten an x-beliebige Personen senden wollen.

      Hier eine Zusammenfassung des neuen Unterbeitrags in meinem Tutorial:

      Dieser Code [_text,_title,_size,_color] remoteExec ["MSG_fnc_handle",_target]; erfüllt exakt den selben Zeck wie folgender [_text,_title,_size,_color] call MSG_fnc_handle; mit dem kleinen Unterschied, dass man mit der remoteExec Funktion zwischen Clienten und dem Server springen kann, so kann man das Ziel, welches die Nachricht bekommen soll, beliebig ansprechen, oder gar alle.

      Die remoteExec Funktion (o.A. remoteExecCall) wird verwendet, um den Ausführungsort der Funktion zu wechseln. Beispiel :

      Leon möchte Peter eine Nachricht schicken, so wird die Variable _target mit dem Integer des Owners gefüllt, d.h. um die Owner ID herauszufinden, falls sie nicht schon bekannt sein sollte, muss folgendes gemacht werden :

      Code
      _ownerID = owner _target;


      Man kann es auch an sich selbst testen, wenn man dies im Singleplayer tut, wird die ID immer 0 sein, da null der Server ist, bzw. der Host der Mission.
      Dazu muss man lediglich folgendes in die Console eingeben, um sich seine ID in der Praxis ansehen zu können, oder auch x-beliebige IDs von anderen Spielern in der Mission.

      Code
      // Hier als Beispiel setzten wir uns selber gleich
      //jetzt lassen wir es uns ganz simpel anzeigen
      hint format["Meine Owner ID\n%1",(owner player)];
      
      
      
      
      //Das wäre auch mit der Funktion MSG_fnc_handle möglich


      Die Owner ID erfährt man über den Befehl owner, ich habe hier mal die Wiki verlinkt.

      Ich hoffe ich konnte es einigermaßen verständlich erklären.
      Mir ist nachträglich aufgefallen, dass es ein kleines "Problem" wäre ohne diese remoteExec den Besitzer der Funktion zu wechseln und wollte meine Lösung mit euch teilen.

    • [Tutorial][Message System][V1.1] Alternative für Hints & Co.

      • DerL30N
      • 12. Oktober 2016 um 14:55

      @Flyyying_nflug Ja, ich arbeite generell mit Safezones, sollte man dem obigen Quellcode entnehmen können.
      Und die Farbseite ging gestern noch ?( Habe sie gerade noch einmal getestet und bei mir ist die Seite da !?

      @Lucian ja, das mit der Dynamik, da musste ich einen Kompromiss eingehen, mit der Größe, aber ich bin bereit neues zu Lernen, könntest du mir vlt per PN mal den einen oder anderen Tipp geben ? Ich wäre dir sehr dankbar :saint: .

    • [Tutorial][Message System][V1.1] Alternative für Hints & Co.

      • DerL30N
      • 12. Oktober 2016 um 00:00
      Zitat von Kuchenplatte

      Auf jedenfall finde ich toll das es jemanden gibt wie @DerL30N der das noch so "freizügig" macht und seine scripte for free published ;)
      Nice ;)

      Ich mache es gerne, das Scripten macht mir sehr viel Spaß und es freut mich, wenn ich sehe, dass meine Arbeit auch geschätzt und verwendet wird. Außerdem möchte ich zur Arma Community beitragen und die Scriptvielfalt weiter ausbauen. Und ja ^^ meine Signatur ist nicht nur deshalb so, wie sie ist. Ich bekomme immer wieder anfragen, von Projekten oder ähnlichem, die versuchen Leute für ihr Projekt zu werden und schreiben dann immer brav rein, dass man Scripte NUR für den Server schreiben solle und co. Aber genau da ist das Problem, wenn man immer nur extravagant und exclusiv denkt, dann sollen sich die Leute nicht wundern, wenn man ihre Missionsfiles auseinander baut und man ihre Scripts klaut!, aber...deshalb bin ich der Meinung, mach sie öffentlich, nach dem Motto "sharing instead of stealing", dann sind alle glücklich, denn jeder kann von jedem profitieren. :thumbup:


      Zitat von Kuchenplatte

      Glaube seine Signatur sagt alles, oder?

      Glaube ich auch, dass sie eine gewisse Stellung preis gibt :D (Die Signatur du Schwein werderw )

    • [Tutorial][Message System][V1.1] Alternative für Hints & Co.

      • DerL30N
      • 11. Oktober 2016 um 19:41
      Zitat von Flyyying_nflug

      Kann micht nicht entscheiden...
      Entweder die oder die von DE100 :D?!?

      Jetzt hast du die Qual der Wahl :thumbup:
      Ich kann dir nur sagen, bei dem hier wirst du keine Nachricht mehr verpassen :D

    • [Tutorial][Message System][V1.1] Alternative für Hints & Co.

      • DerL30N
      • 11. Oktober 2016 um 19:08

      Guten Tag,

      heute möchte ich euch mein "Message System" vorstellen.

      Kennt ihr das, wenn ihr einen Hint (Nachricht oben rechts in der Ecke) bekommt und dieser dann direkt durch den Nächsten ersetzt wird ?
      Möchtest du etwas dagegen unternehmen ?, dann lies dieses Tutorial!
      ÜBRIGENS : DAS SCRIPT IST GENERELL FÜR ALLES KOMPATIBEL IN ARMA 3!

      (links die Normale Variante und rechts die Simple ( vereinfachte ) Version, wo sich die Colorbar ( Farbbalken ) ausblenden lässt
      Unbenannt-2.jpgUnbenannt-1.jpg

      (Hier auch zwei Bilder von meinem Testserver, wo ich alle relevanten hints umgebaut habe, alles unwichtige kann man mit titletext Lösen ;) )
      Unbenannt-3.jpgUnbenannt-4.jpg


      Major Update V1.1

      Was ist Neu ?

      Dynamische Dialog-Größe ( passt sich an die Größe und Länge des Textes an )
      Überarbeitete Optik ( primär und sekundär Dialog, unten mehr )
      Einfache - und erweiterte Konfiguration durch das Verwenden einer Hpp file


      Die Version 1.1

      Durch die sich dynamisch anpassende Dialog-Größe haben sich neue Möglichkeiten für ein neues Design entwickelt, dieses fällt wie gewohnt, mit Titel, Text und Colorbar (Farbbalken), aus, sowie in neuem Style ganz schlicht und einfach.
      Auch bei dem neuen Design sind weitere Konfigurationsmöglichkeiten vorhanden, z.B. lässt sich die Colorbar beliebig aktivieren und deaktivieren.
      Außerdem lässt sich der Sound beim einblenden des Nachrichtenfenster´ beliebig für beide Varianten unterschiedlich einstellen, oder gar deaktivieren.
      Auch kann die Eingangsüberleitung, dass sogenannte faceIn, anpassen.
      Durch die Hpp Datei können auch weitere Farben bequem und mühelos geändert werden, ohne alle möglichen SQF Dateien zu durchsuchen.

      Mit den Neuerungen hat sich auch die Funktion MSG_fnc_handle geändert, sie verfügt jetzt über mehr Dynamik, und es können Parameter beliebig genutzt werden, ohne vorläufige angeben zu müssen. (Unten mehr)

      Installation V1.1

      Zunächst sollte eine alte Version des Scriptes vollständig deinstalliert werden, um Fehler zu vermeiden.

      Beginnen wir nun in der description.ext in eurem Missions-Hauptverzeichnis, öffnet diese zunächst, um folgendes zu ergänzen : ( für Life Versionen ist das #include für die Functions.hpp nicht relevant )

      C: description.ext
      #include "derleon\Scripts_Master.hpp"
      
      
      
      
      class RscTitles {
      #include "derleon\msg\msg.hpp"
      };
      
      
      
      
      class CfgFunctions {
      #include "Functions.hpp"
      };
      Alles anzeigen

      Nun öffnen wir die Functions.hpp und ergänzen folgendes am ende der Datei : ( Hierbei zu beachten ist, dass die class MSG_SYSTEM einen eigenständigen Tag hat und deshalb NICHT in eine andere Class angefügt werden kann )

      Code
      class MSG_SYSTEM {
      tag = "MSG";
      class Master {
      file = "derleon\msg";
      class ctrl {};
      class handle {};
      };
      };

      Nun erstellen wir den Ordner derleon im Mission-Hauptverzeichnis und erstellen darin folgende Datei : ( Sollte diese bei euch schon vorhanden sein, dann müsst ihr folgendes ergänzen )

      C: Scripts_Master.hpp
      #define true 1
      #define false 0
      #include "msg\common.hpp"
      #include "msg\msg.hpp"
      class Message_Settings {
      //overlap = true; // TRUE -> simpl messages can be overlapped
      /*Stuff you can edit on your own*/
      noBar = false; // TRUE -> colorbar not visible in simple messages
      sound = "Hint"; // Here you can change the normal message sound with the name of your sound class
      soundSec = "Hint"; // Here you can change the simple message sound with the name of your sound class
      noSound = false; // TRUE -> disables the sound on normal messages
      noSoundSec = true; // TRUE -> disables the sound on simple messages
      rscLayer = 20; // 20 -> the layer on hud the dialog will create
      kindOfCutRsc = "PLAIN"; // "PLAIN" -> the kind of CutRsc
      fadein = 0.2; // 0.2 -> The fadein duration | default hint could be 0
      baseTitel = "Notification"; // The standart text for the case that no titel param is given
      baseColor = "lightblue"; // The standart color for the case that no color param is given
      };
      class Colors {
      /*Example:
      define class as name of your color
      class nameOfColour {
      rgba[] = { x, x, x, 0.7 }; Important is that you ceep the last number in this array at 0.7, these is the alpha channel
      };Replace X with numbers
      */
      //Colors for colorbar
      class red {
      rgba[] = { 0.92, 0, 0.51, 0.7 };
      };
      class orange {
      rgba[] = { 0.92, 0.51, 0, 0.7 };
      };
      class yellow {
      rgba[] = { 0.96, 0.9, 0, 0.7 };
      };
      class green {
      rgba[] = { 0.16, 0.95, 0, 0.7 };
      };
      class turquoise {
      rgba[] = { 0.79, 0, 0, 0.7 };
      };
      class lightblue {
      rgba[] = { 0, 0.49, 0.8, 0.7 };
      };
      class blue {
      rgba[] = { 0, 0.11, 0.74, 0.7 };
      };
      class darkblue {
      rgba[] = { 0.05, 0.03, 0.38, 0.7 };
      };
      class purple {
      rgba[] = { 0.37, 0.06, 0.56, 0.7 };
      };
      class pink {
      rgba[] = { 0.7, 0.22, 0.46, 0.7 };
      };
      };
      Alles anzeigen

      Nun erstellen wir den Ordner msg in dem Ordner derleon und erstellen darin zuletzt die folgenden vier Dateien :

      Code: common.hpp
      class msg_text {
      type = 0;
      style = 0;
      shadow = 1;
      colorShadow[] = {0, 0, 0, 0.5};
      font = "PuristaSemibold";
      SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
      text = "";
      colorText[] = { 1 , 1 , 1 , 1 };
      colorBackground[] = {0, 0, 0, 0};
      };
      class msg_sText {
      type = 13;
      style = 0;
      shadow = 1;
      colorShadow[] = {0, 0, 0, 0.5};
      //font = "PuristaMedium";
      font = "PuristaSemibold";
      text = "";
      size = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1)";
      colorText[] = {1, 1, 1, 1.0};
      colorBackground[] = {0, 0, 0, 0};
      
      
      
      
      class Attributes {
      color = "#ffffff";
      align = "center";
      shadow = 1;
      };
      };
      Alles anzeigen
      Code: msg.hpp
      class msg {
      idd = -1;
      duration = 180;
      movingEnable = 0;
      fadein = 1;
      fadeout = 3;
      name = "msg";
      onLoad="uiNamespace setVariable ['msg',_this select 0]";
      objects[] = {};
      class controlsBackground {
      class background: msg_sText
      {
      idc = 9004;
      x = 0.840312 * safezoneW + safezoneX;
      y = 0.104 * safezoneH + safezoneY;
      w = 0.149531 * safezoneW;
      h = 0.132 * safezoneH;
      colorBackground[] = {-1,-1,-1,0.7};
      };
      };
      class controls {
      class titel: msg_sText
      {
      idc = 9001;
      text = "";
      x = 0.842468 * safezoneW + safezoneX;
      y = 0.115 * safezoneH + safezoneY;
      w = 0.142219 * safezoneW;
      h = 0.033 * safezoneH;
      };
      class colorbar: msg_text
      {
      idc = 9002;
      x = 0.845469 * safezoneW + safezoneX;
      y = 0.148 * safezoneH + safezoneY;
      w = 0.139219 * safezoneW;
      h = 0.0055 * safezoneH;
      };
      class messagebox: msg_sText
      {
      idc = 9003;
      text = "";
      x = 0.845469 * safezoneW + safezoneX;
      y = 0.159 * safezoneH + safezoneY;
      w = 0.139219 * safezoneW;
      h = 0.066 * safezoneH;
      };
      };
      };
      class msg_simpl {
      idd = -1;
      duration = 180;
      movingEnable = 0;
      fadein = 1;
      fadeout = 3;
      name = "msg_simpl";
      onLoad="uiNamespace setVariable ['msg_simpl',_this select 0]";
      objects[] = {};
      class controlsBackground {
      class background: msg_sText
      {
      idc = 9003;
      x = 0.840312 * safezoneW + safezoneX;
      y = 0.104 * safezoneH + safezoneY;
      w = 0.149531 * safezoneW;
      h = 0.132 * safezoneH;
      colorBackground[] = {-1,-1,-1,0.7};
      };
      };
      class controls {
      class colorbar: msg_text
      {
      idc = 9001;
      x = 0.845469 * safezoneW + safezoneX;
      y = 0.104 * safezoneH + safezoneY;
      w = 0.139219 * safezoneW;
      h = 0.0055 * safezoneH;
      };
      class messagebox: msg_sText
      {
      idc = 9002;
      x = 0.845469 * safezoneW + safezoneX;
      y = 0.115 * safezoneH + safezoneY;
      w = 0.139219 * safezoneW;
      h = 0.066 * safezoneH;
      };
      };
      };
      Alles anzeigen
      Code: fn_ctrl.sqf
      #define CONFIG(TYPE,SETTING) TYPE(missionConfigFile >> "Message_Settings" >> SETTING)
      /*
          File: fn_ctrl.sqf
          Author: Leon "DerL30N" Beeser"
      
      
      
      
          Description:
          Controles the players hud
      */
      if (!(count msg_array > 0)) exitWith { msg_active = false; };
      
      
      
      
      disableSerialization;
      
      
      
      
      while {count msg_array >= 1} do {
      	_msg = msg_array select 0;
      	_text = _msg select 0;
      	_title = _msg select 1;
      	_color = _msg select 2;
      	_simpl = _msg select 3;
      	_color = getArray (missionConfigFile >> "Colors" >> _color >> "rgba");
      	if ((CONFIG(getNumber,"killHint")) isEqualto 1) then { hint ""; };
      	private "_display";
      	if (_simpl) then {
      		(CONFIG(getNumber,"rscLayer")) cutRsc["msg_simpl",(CONFIG(getText,"kindOfCutRsc")),(CONFIG(getNumber,"fadein"))];
      		if ((CONFIG(getNumber,"noSoundSec")) isEqualTo 0) then { playSound [(CONFIG(getText,"soundSec")),true]; };
      		_display = uiNamespace getVariable "msg_simpl";
      		_lic1 = _display displayCtrl 9001;
      		_lic2 = _display displayCtrl 9002;
      		_lic3 = _display displayCtrl 9003;
      		if ((CONFIG(getNumber,"noBar")) isEqualTo 0) then { _lic1 ctrlSetBackgroundColor [(_color select 0),(_color select 1),(_color select 2),0.7]; } else { _lic1 ctrlSetBackgroundColor [-1,-1,-1,-1]; };
      		_lic2 ctrlSetStructuredText parseText format["<t size='0.9px'>%1</t>",_text];
      		_lic2 ctrlSetPosition [0.845469 * safezoneW + safezoneX,0.115 * safezoneH + safezoneY,0.139219 * safezoneW,ctrlTextHeight _lic2];
      		_lic2 ctrlCommit 0;
      		_lic3 ctrlSetPosition [0.840312 * safezoneW + safezoneX,0.104 * safezoneH + safezoneY,0.149531 * safezoneW,((((ctrlPosition _lic2) select 1) + ((ctrlPosition _lic2) select 3)) - (0.104 * safezoneH + safezoneY)) + 0.011 * safezoneH];
      		_lic3 ctrlCommit 0;
      	} else {
      		(CONFIG(getNumber,"rscLayer")) cutRsc["msg",(CONFIG(getText,"kindOfCutRsc")),(CONFIG(getNumber,"fadein"))];
      		if ((CONFIG(getNumber,"noSound")) isEqualTo 0) then { playSound [(CONFIG(getText,"sound")),true]; };
      		_display = uiNamespace getVariable "msg";
      		_lic1 = _display displayCtrl 9001;
      		_lic2 = _display displayCtrl 9002;
      		_lic3 = _display displayCtrl 9003;
      		_lic4 = _display displayCtrl 9004;
      		_lic1 ctrlSetStructuredText parseText format["<t size='1.1px'>%1</t>",_title];
      		_lic1 ctrlSetPosition [0.842468 * safezoneW + safezoneX,0.115 * safezoneH + safezoneY,0.142219 * safezoneW,ctrlTextHeight _lic1];
      		_lic1 ctrlCommit 0;
      		_lic2 ctrlSetPosition [0.845469 * safezoneW + safezoneX,((ctrlPosition _lic1) select 1) + ((ctrlPosition _lic1) select 3) + (0.00325 * safezoneH),0.139219 * safezoneW,0.0055 * safezoneH];
      		_lic2 ctrlCommit 0;
      		_lic2 ctrlSetBackgroundColor [(_color select 0),(_color select 1),(_color select 2),0.7];
      		_lic3 ctrlSetStructuredText parseText format["<t size='0.9px'>%1</t>",_text];
      		_lic3 ctrlSetPosition [0.845469 * safezoneW + safezoneX,((ctrlPosition _lic1) select 1) + ((ctrlPosition _lic1) select 3) + (2 * (0.0055 * safezoneH)),0.139219 * safezoneW,ctrlTextHeight _lic3];
      		_lic3 ctrlCommit 0;
      		_lic4 ctrlSetPosition [0.840312 * safezoneW + safezoneX,0.104 * safezoneH + safezoneY,0.149531 * safezoneW,((((ctrlPosition _lic3) select 1) + ((ctrlPosition _lic3) select 3)) - (0.104 * safezoneH + safezoneY)) + 0.011 * safezoneH];
      		_lic4 ctrlCommit 0;
      	};
      	waitUntil { sleep 0.1; (!isNull _display) };
      	waitUntil { sleep 0.1; (isNull _display) };
      	msg_array = msg_array - [_msg];
      };
      //if ((!_simpl) && ((CONFIG(getNumber,"overlap")) isEqualTo 0)) then { msg_active = false; };
      msg_active = false;
      Alles anzeigen
      Code: fn_handle.sqf
      #define CONFIG(TYPE,SETTING) TYPE(missionConfigFile >> "Message_Settings" >> SETTING)
      /*
          File: fn_handle.sqf
          Author: Leon "DerL30N" Beeser"
      
      
      
      
          Description:
          Handles incoming messages and creates a array
      */
      private["_param1","_param2","_param3","_param4","_error","_text","_title","_color","_simpl"]; _error = false;
      
      
      
      
      _param1 = [_this, 0, nil] call BIS_fnc_param;
      _param2 = [_this, 1, nil] call BIS_fnc_param;
      _param3 = [_this, 2, nil] call BIS_fnc_param;
      _param4 = [_this, 3, nil] call BIS_fnc_param;
      
      
      
      
      if (isNil "_param1") exitWith {};
      
      
      
      
      if ((_param1 isEqualType "") OR (_param1 isEqualType text "")) then	
      {
      	_text = _param1;
      	if (!(isNil "_param2")) then 
      	{
      		if ((_param2 isEqualType "") OR (_param2 isEqualType text "")) then	
      		{
      			if (isClass (missionConfigFile >> "Colors" >> _param2)) then
      			{
      				_title = (CONFIG(getText,"baseTitel"));
      				_color = _param2;
      				if (!(isNil "_param3")) then 
      				{
      					if (_param3 isEqualType true) then 
      					{
      						_simpl = _param3;
      					} else {
      						_error = true; diag_log format["MSG Error : Parameter No.3 erwartet Bool | Parameter : %1",[_param1,_param2,_param3]];
      					};
      				} else {
      					_simpl = false;
      				};
      			} else {
      				_title = _param2;
      				if (!(isNil "_param3")) then 
      				{
      					if ((_param3 isEqualType "") OR (_param3 isEqualType text "")) then	
      					{
      						if (isClass (missionConfigFile >> "Colors" >> _param3)) then
      						{
      							_color = _param3;
      							if (!(isNil "_param4")) then 
      							{
      								if (_param4 isEqualType true) then 
      								{
      									_simpl = _param4;
      								} else {
      									_error = true; diag_log format["MSG Error : Parameter No.4 erwartet Bool | Parameter : %1",[_param1,_param2,_param3,_param4]];
      								};
      							} else {
      								_simpl = false;
      							};
      						} else {
      							_error = true; diag_log format["MSG Error : Parameter No.3 erwartet String oder Text | Parameter : %1",[_param1,_param2,_param3]];
      						};
      					} else {
      						if (_param3 isEqualType true) then 
      						{
      							_color = (CONFIG(getText,"baseColor"));
      							_simpl = _param3;
      						} else {
      							_error = true; diag_log format["MSG Error : Parameter No.3 erwartet String oder Text oder Bool | Parameter : %1",[_param1,_param2,_param3]];
      						};
      					};
      				} else {
      					_color = (CONFIG(getText,"baseColor"));
      					_simpl = false;
      				};
      			};
      		} else {
      			if (_param2 isEqualType true) then 
      			{
      				_title = "";
      				_color = (CONFIG(getText,"baseColor"));
      				_simpl = _param2;
      			} else {
      				_error = true; diag_log format["MSG Error : Parameter No.2 erwartet Bool oder Text oder String | Parameter : %1",[_param1,_param2]];
      			};
      		};
      	} else {
      		_title = (CONFIG(getText,"baseTitel"));
      		_color = (CONFIG(getText,"baseColor"));
      		_simpl = false;
      	};
      } else {
      	_error = true; diag_log format["MSG Error : Parameter No.1 erwartet String oder Text | Parameter : %1",[_param1]];
      };
      if (_error) exitWith {};
      if ((isNil "msg_array") OR (isNil "msg_active")) then { msg_array = []; msg_active = false; };
      msg_array = msg_array + [[_text,_title,_color,_simpl]];
      
      
      
      
      /*if ((_simpl) && ((CONFIG(getNumber,"overlap")) isEqualTo 1)) then {
      	if (!msg_active) exitWith { [] spawn MSG_fnc_ctrl;
      } else {
      	if (!msg_active) exitWith { [] spawn MSG_fnc_ctrl; msg_active = true; };
      };*/
      if (!msg_active) exitWith { [] spawn MSG_fnc_ctrl; msg_active = true; };
      /*
      [_text,_title,_color,_simpl] call MSG_fnc_handle;
      [_text,_title,_color,_simpl] remoteExec ["MSG_fnc_handle",_target];
      
      
      
      
      1.[Text]
      
      
      
      
      2.[Text],[Titel] OR [Text],[Color] OR [Text],[Simple]
      
      
      
      
      3.[Text],[Titel],[Color] OR [Text],[Titel],[Simple] OR [Text],[Color],[Simple]
      
      
      
      
      4.[Text],[Titel],[Color],[Simple]
      */
      Alles anzeigen


      Wenn alle befolgt wurde, dann wurde die Version 1.1 erfolgreich installiert, nun kann sie noch in der Scripts_Master.hpp konfiguriert werden.

      Info zur Verwendung

      [] call MSG_fnc_handle oder doch eher [] remoteExec ["MSG_fnc_handle",_target]; ? Informationen findest du dazu weiter unten unter dem Punkt "Alternative remoteExec"

      Parameter

      In dieser Version stehen vier sogenannter Parameter zur Verfügung :

      [_text,_title,_color,_simpl] call MSG_fnc_handle; oder [_text,_title,_color,_simpl] remoteExec ["MSG_fnc_handle",_target];

      _text ist der erste Parameter, dieser geht IMMER vorweg, er steht für euren Text
      _titel ist der Parameter für euren Titel, dieser muss nicht angegeben werden, wird er aber angeben, so muss er nach dem ersten Parameter ( _text ) stehen.
      _color ist der Parameter für die Colorbar, mit ihm könnt ihr die Farbe dessen verändern. Auch dieser Parameter muss nicht angegeben werden, wird er angegeben, so muss er nach dem zweiten Parameter ( _titel ) stehen.
      _simpl ist der Parameter, der zwischen der normalen und der vereinfachten Dialogform wechseln kann. Auch dieser Parameter muss nicht angegeben werden, wird er angegeben, so muss er nach dem dritten Parameter ( _color ) stehen.

      Der Standardwert der Parameter

      _text hat keinen Standardwert, da ihr einen Text angeben müsst, welchen ihr ausgeben wollt.
      _titel hat den Standardwert "Notification" ( dieser kann geändert werden in der HPP), wird kein Parameter angegeben, so wird dieser Wert verwendet.
      _color hat den Standardwert "lightblue" ( dieser kann geändert werden in der HPP), wird kein Parameter angegeben, so wird dieser Wert verwendet.
      _simpl hat den Standardwert "false" ( dieser kann geändert werden in der HPP), wird kein Parameter angegeben, so wird dieser Wert verwendet.

      Wenn man diese Regel beachtet, sind folgende Parameter möglich :

      1 Parameter : [Text]

      2 Parameter : [Text,Titel] OR [Text,Color] OR [Text,Simple]

      3 Parameter : [Text,Titel,Color] OR [Text,Titel,Simple] OR [Text,Color,Simple]

      4 Parameter : [Text,Titel,Color,Simple]


      Colors / Farben

      Rot : case "red" : { _color = [0.79,0,0,0.7]; };
      Orange : case "orange" : { _color = [0.92,0.51,0.7]; };
      Gelb : case "yellow" : { _color = [0.96,0.9,0,0.7]; };
      Grün : case "green" : { _color = [0.16,0.95,0,0.7]; };
      Türkis : case "turquoise" : { _color = [0.79,0,0,0.7]; };
      Hellblau : case "lightblue" : { _color = [0,0.49,0.8,0.7]; };
      Blau : case "blue" : { _color = [0,0.11,0.74,0.7]; };
      Dunkelblau : case "darkblue" : { _color = [0.05,0.03,0.38,0.7]; };
      Lila : case "purple" : { _color = [0.37,0.06,0.56,0.7]; };
      Pink : case "pink" : { _color = [0.7,0.22,0.46,0.7]; };

      Wichtig! Wenn weitere Farben hinzugefügt werden, muss auf den Alpha Wert geachtet werden, dieser Beträgt 70% somit 0.7
      Hinweis! Hier findet ihr eine Farbtabelle für Arma 3 RGB Farbcodes
      Info! Wenn weitere Farben hinzugefügt werden wollen, müssen sie mit dem String namen "red" in die Switch Funktion eingesetzt (ich empfehle unterhalb der schon bestehenden cases) und in Zeile 21 ergänzt werden.

      Alternative remoteExec

      Ich habe eine kleine Ergänzung zum Thema remoteExec angeschlossen, für den Fall, das wir vom Server aus Nachrichten an x-beliebige Personen senden wollen.

      Hier eine Zusammenfassung des neuen Unterbeitrags in meinem Tutorial:

      Dieser Code [_text,_title,_size,_color] remoteExec ["MSG_fnc_handle",_target]; erfüllt exakt den selben Zeck wie folgender [_text,_title,_size,_color] call MSG_fnc_handle; mit dem kleinen Unterschied, dass man mit der remoteExec Funktion zwischen Clienten und dem Server springen kann, so kann man das Ziel, welches die Nachricht bekommen soll, beliebig ansprechen, oder gar alle.

      Die remoteExec Funktion (o.A. remoteExecCall) wird verwendet, um den Ausführungsort der Funktion zu wechseln. Beispiel :

      Leon möchte Peter eine Nachricht schicken, so wird die Variable _target mit dem Integer des Owners gefüllt, d.h. um die Owner ID herauszufinden, falls sie nicht schon bekannt sein sollte, muss folgendes gemacht werden :

      Code
      _ownerID = owner _target;

      Man kann es auch an sich selbst testen, wenn man dies im Singleplayer tut, wird die ID immer 0 sein, da null der Server ist, bzw. der Host der Mission.
      Dazu muss man lediglich folgendes in die Console eingeben, um sich seine ID in der Praxis ansehen zu können, oder auch x-beliebige IDs von anderen Spielern in der Mission.

      Code
      // Hier als Beispiel setzten wir uns selber gleich
      //jetzt lassen wir es uns ganz simpel anzeigen
      hint format["Meine Owner ID\n%1",(owner player)];
      
      
      
      
      //Das wäre auch mit der Funktion MSG_fnc_handle möglich

      Die Owner ID erfährt man über den Befehl owner, ich habe hier mal die Wiki verlinkt.

      Ich hoffe ich konnte es einigermaßen verständlich erklären.

      Spoiler anzeigen

      Erläuterung (alte Version)

      Nachrichten die vorher mit dem Befehl hint "your hint"; aufs Hud gebracht wurden, können jetzt wie folgt aufs Hud : [_text,_title,_size,_color] call MSG_fnc_handle;

      Hierbei ist es völlig egal, in welcher Text Form, Hauptsache als String!
      Die Variablen _title, _text und _size müssen mit Strings befüllt werden, wobei die Variable _size auch einfach nicht Definiert werden muss. Die Variable _size ist ein Integer, der Reelle Zahlen von 1-5 erwartet.

      Beispiel : ["In Sofia ist ein Helikopter abgeschossen worden, es befanden sich wertfolle Gegenstände in ihm","Side Mission",1,"red"] call MSG_fnc_handle;
      oder mit remoteExec (unten dazu mehr)
      ["In Sofia ist ein Helikopter abgeschossen worden, es befanden sich wertfolle Gegenstände in ihm","Side Mission",1,"red"] remoteExec ["MSG_fnc_handle",0]

      Da wir in unserem Beispiel die Farbe rot eingetragen haben, brauchen wir diesen Parameter nicht einzutragen, also :
      ["In Sofia ist ein Helikopter abgeschossen worden, es befanden sich wertfolle Gegenstände in ihm","Side Mission",1] call MSG_fnc_handle;
      oder mit remoteExec
      ["In Sofia ist ein Helikopter abgeschossen worden, es befanden sich wertfolle Gegenstände in ihm","Side Mission",1] remoteExec ["MSG_fnc_handle",0]
      Merke : Dies ist nur bei der Farbe Rot möglich!

      Da wir aber auch die Größe 1 weitergeben wollen, benötigen wir diese auch nicht anzugeben.
      ["In Sofia ist ein Helikopter abgeschossen worden, es befanden sich wertfolle Gegenstände in ihm","Side Mission"] call MSG_fnc_handle;
      oder mit remoteExec
      ["In Sofia ist ein Helikopter abgeschossen worden, es befanden sich wertfolle Gegenstände in ihm","Side Mission"] remoteExec ["MSG_fnc_handle",0]
      Merke : Dies ist nur bei der Größe 1 möglich!

      Wenn wir keinen Titel vergeben wollen, dann können wir dieses auch weg lassen, dann wird der Standard Titel : Notification verwendet.
      ["In Sofia ist ein Helikopter abgeschossen worden, es befanden sich wertfolle Gegenstände in ihm"] call MSG_fnc_handle;
      oder mit remoteExec
      ["In Sofia ist ein Helikopter abgeschossen worden, es befanden sich wertfolle Gegenstände in ihm"] remoteExec ["MSG_fnc_handle",0]


      Ich wünsche euch noch einen schönen Abend,

      DerL30N

    • [Tutorial][VIS V2 BETA] Vehicle Information System | Multi-kompatibel & Database Synchronisation

      • DerL30N
      • 8. Oktober 2016 um 18:30

      Wenn du magst kannst du es ja etwas umbauen, das sind ja eigentlich nur die calls und dann diese ini Sache, wo ich ehrlich gesagt keine Ahnung habe wie das läuft ^^

      Eine der wichtigsten Angelegenheiten war, dass ich es schaffe die Rechenleistung und co. zu verringern, was ich entgültig auch geschafft habe, wenn du dir den Code ansiehst, wird deutlich, dass ich komplett auf Globale und Public Vars verzichtet habe, nur Mietwagen haben eine Public Var. Lediglich zum Triggern des Scripts habe ich zwei Globale Vars verbaut.

      Es hat mich ziemlich viel Zeit gekostet es so umzuschreiben, wie es jetzt aussieht, vor allem weil ich sooo wenig Zeit gehabt habe daran zu arbeiten.

      Ich werde in den nächsten Tagen mal ein Tutorial schreiben, in dem ich erkläre, wie man auf Daten zugreift, da alle Daten in einer Var gespeichert sind. Diese Var wird beim Start des Scriptes einmal aufgebrochen und beim beenden wieder zusammen gesetzt. Bei der Datenbank Variante ist es ähnlich, nur das die Daten in die DB gehen und nicht auf dem Fahrzeug gespeichert werden.

    • [Tutorial] VIS Vehicle Information System | Script für Infos über Tankinformationen, Reichweite, Ø Verbrauch, etc.

      • DerL30N
      • 8. Oktober 2016 um 17:49

      Hier geht es zur V2

    • [Tutorial][VIS V2 BETA] Vehicle Information System | Multi-kompatibel & Database Synchronisation

      • DerL30N
      • 8. Oktober 2016 um 17:47

      Nachträglich noch ein paar Bilder aus der alten Version, aber am HUD hat sich nichts geänder

    • [Tutorial][VIS V2 BETA] Vehicle Information System | Multi-kompatibel & Database Synchronisation

      • DerL30N
      • 8. Oktober 2016 um 17:41

      Die VIS V2 Beta ist da!

      [progressbar=85,#00b00d,-1,45,1][/progressbar]


      Features / Funktionen

      Spoiler anzeigen



      Neuerungen :

      • Datenbank synchronisation
      • Verbesserte Performance
      • Optimiertes Broadcasting von Variablen ( verringerter Datentraffic )
      • Überarbeitete Rechenwege und Kalkulationen
      • Speichern aller wichtigen Daten durch Punkt No.1 & No.3
      • Kompatibel für weitere Verwendungszwecke für z.B. beim ChopShop
      • Einstellungsoption zum manuellen aktivieren und deaktivieren während der Fahrt des VIS
      • Auch Leihwagen sind kompatibel, Datensätze gehen beim Löschen des Wagens verloren
      • Einfacher Zugriff auf die Daten für weitere Entwicklungszwecke, z.B. Systemfehler bei höherer Laufdistanz
      • Kompatibel mit einer FuelConsumption Mod, Einstellungen über eine HPP File erreichbar
      • Kleinere neue Spielereien

      Basic Features :

      • Das VIS Hud

        • Kilometerzähler
        • Durchschnittsverbrauch
        • Aktueller Tankfüllstand
        • Gesamte zurückgelegte Distanz & zurückgelegte Distanz seit dem letzten Tanken

        -

      • Mögliche Erweiterungen durch die Community

        • Änderung des Verkaufspreises je nach Kilometerstand
        • Mögliche Systemstörungen bei hohem Kilometerstand -> Wartungen um das KFZ Fahrtauglich zu halten

      Wichtige Infos für Developer

      Spoiler anzeigen

      Coming soon!

      Installationsanleitung

      Spoiler anzeigen

      Bitte vorerst die PASSENDE .Zip herunterladen oder auf die Versionsnummer klicken!

      Version : v2.b.0.1.zip

      Spoiler anzeigen

      Wir fangen mit der life_server an

      Spoiler anzeigen



      Öffnet die config.cpp und setzt folgendes unter tag = "life"; ein

      Code: config.cpp
      class Visdb {
                  file = "\life_server\Functions\Vis";
      			class vehicleInfoUpdate {};
              };

      Geht nun in den Ordner Functions und weiter in MySQL

      Öffnet die fn_insertVehicle.sqf und ändert folgendes ab, wenn ihr keine Veränderungen an der vehicles Table vorgenommen hab

      Code: fn_insertVehicle.sqf
      _query = format["INSERT INTO vehicles (side, classname, type, pid, alive, active, inventory, color, plate, gear, damage) VALUES ('%1', '%2', '%3', '%4', '1','1','""[[],0]""', '%5', '%6','""[]""','""[]""')",_side,_className,_type,_uid,_color,_plate];

      Ihr könnt den Original Code durch folgenden ersetzte

      Code: fn_insertVehicle.sqf
      //Original
      //_query = format["INSERT INTO vehicles (side, classname, type, pid, alive, active, inventory, color, plate, gear, damage) VALUES ('%1', '%2', '%3', '%4', '1','1','""[[],0]""', '%5', '%6','""[]""','""[]""')",_side,_className,_type,_uid,_color,_plate];
      
      
      
      
      //Modified
      _vis = [0,[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],0,0,0];
      _query = format["INSERT INTO vehicles (side, classname, type, pid, alive, active, inventory, color, plate, gear, damage, vis) VALUES ('%1', '%2', '%3', '%4', '1','1','""[[],0]""', '%5', '%6','""[]""','""[]""','%7')",_side,_className,_type,_uid,_color,_plate,_vis];


      und nun fügt ihr bitte oben bei private["_query","_sql"]; ein ,"_vis" in die Klammer ein

      Sollte dann bei euch so aussehen

      Code: fn_insertVehicle.sqf
      private["_query","_sql","_vis"];
      params [
          "_uid",
          "_side",
          "_type",
          "_className",
          ["_color",-1,[0]],
          ["_plate",-1,[0]]
      ];
      
      
      
      
      //Stop bad data being passed.
      if (_uid isEqualTo "" || _side isEqualTo "" || _type isEqualTo "" || _className isEqualTo "" || _color isEqualTo -1 || _plate isEqualTo -1) exitWith {};
      
      
      
      
      //Original
      //_query = format["INSERT INTO vehicles (side, classname, type, pid, alive, active, inventory, color, plate, gear, damage) VALUES ('%1', '%2', '%3', '%4', '1','1','""[[],0]""', '%5', '%6','""[]""','""[]""')",_side,_className,_type,_uid,_color,_plate];
      
      
      
      
      //Modified
      _vis = [0,[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],0,0,0];
      _query = format["INSERT INTO vehicles (side, classname, type, pid, alive, active, inventory, color, plate, gear, damage, vis) VALUES ('%1', '%2', '%3', '%4', '1','1','""[[],0]""', '%5', '%6','""[]""','""[]""','%7')",_side,_className,_type,_uid,_color,_plate,_vis];
      
      
      
      
      [_query,1] call DB_fnc_asyncCall;
      Alles anzeigen

      Zu guter letzt noch den Ordner Vis aus der .Zip aus dem Verzeichnis life_server und Functions in den Ordner Functions kopieren

      Jetzt könnt ihr den Spoiler life_server wieder schließen und im Installations Tut fortfahren, indem ihr den nächsten Spoiler öffnet.

      Weiter geht es mit der Mission File

      Spoiler anzeigen

      Geht dazu in das Verzeichnis eurer Mission und öffnet die Datei CfgRemoteExec.hpp

      Fügt jetzt bei den /* Client only functions */ folgendes ein

      Spoiler anzeigen
      Code: CfgRemoteExec.hpp
      F(life_fnc_visVehInfo,CLIENT)

      Fügt jetzt bei den /* Server only functions */ folgendes ein

      Code: CfgRemoteExec.hpp
      F(life_fnc_vehicleInfoUpdate,SERVER)

      Öffnet nun die description.ext und fügt dort folgendes entsprechend ein

      Code: description.ext
      #include "derleon\Scripts_Master.hpp"
      
      
      
      
      class RscTitles {
      	#include "derleon\vis\vehInfo.hpp"
      	class Default 
               {
                  idd = -1;
                  fadein = 0;
                  fadeout = 0;
                  duration = 0;
               };
      };
      Alles anzeigen

      Öffnet nun die Functions.hpp und fügt unter tag = "life" folgendes ein

      Code: Functions.hpp
      class vis
      	{
      		file = "derleon\vis";
      		class visVehInfo {};
      		class vis_setup {};
      	};

      Öffnet nun die stringtable.xml und fügt dort am ende folgendes ein

      Code: stringtable.xml
      <Package name="derleon">
      		<Key ID="STR_VIS_SU_ignitionOn">
                  <Original>Ignition on</Original>
                  <Czech>zapalování zapnuto</Czech>
                  <French></French>
                  <Spanish>ignición</Spanish>
                  <Italian></Italian>
                  <Polish></Polish>
                  <Portuguese>ignição</Portuguese>
                  <Russian>при включенном зажигании</Russian>
                  <German>Zuendung an</German>
              </Key>
      		<Key ID="STR_VIS_SU_ignitionOff">
                  <Original>Ignition off</Original>
                  <Czech>zapalování</Czech>
                  <French></French>
                  <Spanish>ignición</Spanish>
                  <Italian></Italian>
                  <Polish></Polish>
                  <Portuguese>ignição</Portuguese>
                  <Russian>Выключить зажигание</Russian>
                  <German>Zuendung aus</German>
              </Key>
      		<Key ID="STR_VIS_SU_visOn">
                  <Original>VIS activate</Original>
                  <Czech>povolit VIS</Czech>
                  <French></French>
                  <Spanish>activar VIS</Spanish>
                  <Italian></Italian>
                  <Polish></Polish>
                  <Portuguese>VIS ativar</Portuguese>
                  <Russian>включить VIS</Russian>
                  <German>VIS aktivieren</German>
              </Key>
      		<Key ID="STR_VIS_SU_visOff">
                  <Original></Original>
                  <Czech>zakázat VIS</Czech>
                  <French></French>
                  <Spanish>desactivar VIS</Spanish>
                  <Italian></Italian>
                  <Polish></Polish>
                  <Portuguese>desativar o VIS</Portuguese>
                  <Russian>отключить VIS</Russian>
                  <German>VIS deaktivieren</German>
              </Key>
      	</Package>
      Alles anzeigen

      Geht nun in das Verzeichnis core und öffnet die Datei fn_setupEVH.sqf und fügt folgendes unten an

      Code: fn_setupEVH.sqf
      player addEventHandler["GetInMan", {_this call life_fnc_vis_setup}];
      player addEventHandler["GetOutMan", {vis_saveNow = true}];
      player addEventHandler["Killed", {vis_saveNow = true}];

      Öffnet nun die init.sqf (WICHTIG: ICH MEINE DIE IM CORE VERZEICHNIS) und fügt dort folgendes kurz vor dem diag_log ein

      Code: init.sqf
      [] execVM "derleon\vis\Setup.sqf";


      Erstellt nun den Ordner derleon in eurem Missionshauptverzeichnis, falls noch nicht vorhanden

      Falls noch nicht vorhanden, kann der gesamte Inhalt des Ordner' derleon aus der .Zip Datei aus dem Verzeichnis missionfile in das Verzeichnis derleon kopiert werden

      Falls schon vorhanden, bitte den Ordner vis aus der .Zip Datei aus dem Verzeichnis missionfile in das Verzeichnis derleon kopieren und die beiden .hpp Dateien anpassen.

      Wenn du jeden Punkt des Tutorials korrekt bewerkstelligt hast, sollte das Script bei dir Fehlerfrei laufen, falls nicht, bitte ich dich bei der Reklamation des Fehlers die Server Log und deine Arma 3 Log anzuhängen. Deine arma 3 Log findest du unter : C:\Users\Dein User name\AppData\Local\Arma 3

      Datenbank

      Spoiler anzeigen

      Nun müsst ihr eure vehicles Table in der Datenbank bearbeiten, dazu öffnet ihr eure vehicles Table und geht oben auf Struktur

      Nu geht ihr auf eine Spalte einfügen nach damage und klick auf ok

      Nun folgendes ausfüllen mit ( Name : vis, Typ : TEXT, Standart : NULL ) Und klickt dann auf Speichern

      Jetzt müsst ihr bei allen Fahrzeugen ( Wenn welche vorhanden ) folgendes einfügen anstelle von Null

      SQL
      [0,[0,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]],0,0,0]

      Updates

      Update No.1 (08.10.16 22:55)

      Spoiler anzeigen

      Behebt das Problem, dass das HUD nach einiger Zeit oder durch Unfälle verschwindet


      Geht dazu in das Missionsverzeichnis und öffnet die Datei fn_fisVehInfo.sqf im Ordner derleon und dann vis


      Ersetzt dort die Zeile 86 mit 18 cutRsc["vehInfo","PLAIN"]; und die Zeile 274 mit 18 cutText ["","PLAIN"];

      2.

      Geht in die fn_vis_setup.sqf, dort in Line 20 steht folgendes :

      [0,false] spawn life_fnc_vis_vehInfo;

      warum auch immer ist das die alte Variante, die neue sieht so aus :

      [0,false] spawn life_fnc_visVehInfo;


      Ich wünsche euch viel Spaß mit dem Script und wenn ihr es eingebaut habt, lasst bitte mal eine Server Ip da, ich möchte mir das Script gerne mal ansehen, wie es auf anderen Servern läuft!

    • [Tutorial] VIS Vehicle Information System | Script für Infos über Tankinformationen, Reichweite, Ø Verbrauch, etc.

      • DerL30N
      • 8. Oktober 2016 um 01:52

      Die V2 Beta kommt!

      Was ist Neu ?

      1. Datenbank synchronisation
      2. Verbesserte [lexicon]Performance[/lexicon]
      3. Optimiertes Broadcasting von Variablen ( verringerter Datentraffic )
      4. Überarbeitete Rechenwege und Kalkulationen
      5. Speichern aller wichtigen Daten durch Punkt No.1 & No.3
      6. Kompatibel für weitere Verwendungszwecke für z.B. beim ChopShop
      7. Einstellungsoption zum manuellen aktivieren und deaktivieren während der Fahrt des VIS
      8. Auch Leihwagen sind kompatibel, Datensätze gehen beim Löschen des Wagens verloren
      9. Einfacher Zugriff auf die Daten für weitere Entwicklungszwecke, z.B. Systemfehler bei höherer Laufdistanz
      10. Kompatibel mit einer FuelConsumption Mod, Einstellungen über eine HPP File erreichbar
      11. Kleinere neue Spielereien

      Info

      Die Beta wird im laufe des Wochenendes hier im Forum veröffentlicht
      Installationsanleitung & Anleitung zum Zugriff auf die Daten für Weiterentwicklungen werden auch kommen!

      Kompatible Life Versionen

      Altis Life 4.X
      Programmiert auf 4.4r3
      Kompatibel mit neuem Arma 3 Update
      Minimale Life Version : 4.0


    • Spielerspawn an der Stelle wo man ausgeloggt ist.

      • DerL30N
      • 14. September 2016 um 23:03

      Mein Vorschlag : Guck dir die config.cpp der 4.4 an, Erweiter deine config.cpp, geh in die init.sqf IM CORE VERZEICHNIS ABER!, gleich die beiden da mal ab, bzgl. der []spawns, dann geh in die dialog\functions\ und check dort mal die ganzen fn_spawn.sqf´s. Dann musst du noch in die Life_Server und ggf. in die DB und dort dafür sorgen, dass die Daten auch rüber kommen.

      Ich habe das letztens erst bei einem Server nachgerüstet, weil die ein Combat Logging Problem hatten und dann habe ich denen da mal geholfen.

      Ich bin mir nicht sicher, aber du solltest die die extDB_conf.ini(keine Ahnung ob sie jetzt genau so geschrieben wird) mal checken und dort ggf. bei den player table reads and writes darüberschauen, sprich eigentlich nur zwei Aktionen.

      Hoffe das Hilft dir, LG Leon

    • [Tutorial] AutoSave Script - Einstellbares und Intelligentes automatisches Speichern der Spieler-Daten

      • DerL30N
      • 13. September 2016 um 22:25

      Hallo Leute,

      ich habe an einem AutoSave Script für Altis Life gearbeitet, welches ich für jeden Admin ansprechend seien soll, da man es nach Belieben konfigurieren kann!

      Wär sich jetzt vielleicht fragt, "warum bringt der jetzt ein neues Script raus, obwohl er doch am VIS am entwickeln ist ?"
      Die Antwort auf diese Frage ist ganz simpel, dieses Script habe ich quasi parallel zum VIS entwickelt und es hat mittlerweile einen Status erreicht, bei dem ich finde, dass man es veröffentlichen sollte. Jetzt aber zu den Features !

      Features :

      • Individuell Einstellbar, entspannt in einer Master.hpp, in folgenden Bereichen :
        • Beliebiges Einstellen des automatischen Speicherintervalls, das Minimum liegt bei zwei Minuten.
          (Ich empfehle aber nicht unter 10 oder 15 Minuten zu gehen)
        • Sperren des manuellen Speichern, nach jedem automatischen Speichern
        • Dauer des Sperren des manuellen Speichern, sprich die Zeit, die der Spieler nach einem "Autosave" nicht mehr manuell speichern kann.
          Nur möglich, wenn die Funktion des Sperren des manuellen Speichern aktiviert wurde.
        • Deaktivieren und Aktivieren einer kurzen; Oder informativen "Autospeicherinformation" im SystemChat.
          (SystemChat = Dort wo ihr immer die BattleEye nachrichten seht, oder seht wenn ein Spieler den Server betritt oder verlässt)
        • Intelligentes Speichern : Sollte ein Spieler manuell seine Daten Speichern/Synchronisieren, so wartet das Script bis dieser Vorgang abgeschlossen ist UND wartet zudem 5 Minuten, bis es seine Arbeit wieder aufnimmt. Dieses Feature soll den Datenverkehr schonen.
          Die 5 Minuten ergeben sich aus der Zeit, die der Speiler warten muss, bis er das nächste mal, nach einem manuellen speichern, manuell Speichern kann.


      Wichtige Informationen :

      • Entwickelt in der Version 4.4r3 (Daher empfehle ich es auf niedrigeren Versionen erst einmal zu testen. Das entfernen macht keine Umstände, da keine Life Dateien modifiziert werden, außer eines Eintrages in der init.sqf und der descriptin.ext)
      • Schätzungsweise kompatibel bis Version 4.0 (Bitte um Tests und vor allem Feedback)

      Im Dateianhang befinden sich Screenshots und das Script, befolge bitte die Installation HIER IM FORUM unter Installation.

      Installation :

      1. Füge folgenden Code unter #include "config\Config_Master.hpp" ein :

      Code: Altis_Life.Altis\description.ext
      #include "derleon\Scripts_Master.hpp"

      2. Füge folgenden Code im tag = "life"; unten ein :

      Code: Alits_Life.Altis\Functions.hpp
      class autosave
      	{
      		file = "derleon\autosave";
      		class autoSaveInv {};
      	};

      3. Füge folgenden Code am Ende unten ein :

      Code: Altis_Life.Altis\core\init.sqf
      [] spawn life_fnc_autoSaveInv;



      3. Kopiere nun den Heruntergeladenen Ordner derleon aus der AutoSave_Scrip.zip in das Verzeichnis Altis_Life.Altis


      Ich wünsch euch viel Spaß mit dem Script und lasst bitte Feedback da!!

      Bilder

      • advancedSave.jpg
        • 42,7 kB
        • 539 × 237
        • 1.105
      • normalSave.jpg
        • 59 kB
        • 539 × 237
        • 800

      Dateien

      AutoSave_Scrip.zip 1,97 kB – 914 Downloads
    • [Tutorial] VIS Vehicle Information System | Script für Infos über Tankinformationen, Reichweite, Ø Verbrauch, etc.

      • DerL30N
      • 12. September 2016 um 19:18

      @Kuchenplatte sehr schön zu hören, dass es läuft, lässt du uns Teilhaben, welche Version du benutzt ?

    • [Tutorial] VIS Vehicle Information System | Script für Infos über Tankinformationen, Reichweite, Ø Verbrauch, etc.

      • DerL30N
      • 12. September 2016 um 18:03

      @Kuchenplatte okay, falls nicht, die class Default musst du mit bei den RSCTitles reinpacken, sonst wird es nie laufen.

    • [Tutorial] VIS Vehicle Information System | Script für Infos über Tankinformationen, Reichweite, Ø Verbrauch, etc.

      • DerL30N
      • 11. September 2016 um 11:58
      Zitat von BlubberBerndLP

      2 Sachen.

      1 . Wenn ich einen Unfall baue verschwindet das HUD. Und wenn es aktualisiert ist VIS auch weg.

      2. Ich sehe meine Hunger / Leben / Durst nicht.

      Also erstmal zum Verständnis, welche Life Version nutzt du ? Dann hätte ich noch eine Frage vzgl. deines Life HUDs, ist es das originale ? Wie auch immer du es geschafft hast, durch einen Unfall das HUD auszublenden (faktisch Unmöglich, sei denn du bist gestorben oder ähnliches). Bitte definiere "wenn es aktualisiert". Zur not einfach einmal aus und einsteigen nach dem Unfall, dann stimmt aber irgendwas mit deiner Life Version nicht ( solltest du nicht gestorben sein oder Ähnliches bei deinem Problem bei Punkt 1).

      LG Leon

      PS: Bzgl. deines nicht vorhandenen HUDs tippe ich auf einen Fehler in der descripotion.ext unter class RSCTitiles.
      Hier einmal ein Beispiel, nicht erschrecken, wenn der Pfad ein anderer ist, dies ist auch eine neuere Version des Scripts, die noch in entwicklung ist.

      Code: description.ext
      class RscTitles {
          #include "dialog\progress.hpp"
          #include "dialog\hud_nameTags.hpp"
          #include "dialog\hud_stats.hpp"
      	#include "leonbeeser\vis\vehInfo.hpp"
      	class Default 
               {
                  idd = -1;
                  fadein = 0;
                  fadeout = 0;
                  duration = 0;
               };
      };
      Alles anzeigen
    • [Tutorial] VIS Vehicle Information System | Script für Infos über Tankinformationen, Reichweite, Ø Verbrauch, etc.

      • DerL30N
      • 10. September 2016 um 22:03

      @BlubberBerndLP ich habe ein paar Screenshots angehängt

    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™