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
Mo: 29 September 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. Risk

    Beiträge von Risk

    • [Tutorial] Server Restart via Script

      • Risk
      • 9. März 2019 um 13:19

      keine Ahnung was du machst, es ist jedenfalls falsch :D Bei mir ist der Fehler nicht. Hab es jetzt mehrmals kontrolliert. Hast du die Config richtg?

    • Info Menü mit RsclistnBox und StructuredText

      • Risk
      • 9. März 2019 um 13:05
      Zitat von Deathman

      Langsam finde ich es unhöfflich

      Ich auch von dir keine Geduld zu behalten.

      [Tutorial] Risk's Hilfe Menü

    • [Tutorial] Server Restart via Script

      • Risk
      • 9. März 2019 um 13:03

      Aufjedenfall richtig drine jetzt. Habs nochmal rein kopiert.

      Hab es jetzt auch mehrmals getestet. Geht aufjedenfall.

    • [Tutorial] Server Restart via Script

      • Risk
      • 9. März 2019 um 12:18

      Ich gucke gleich mal ob ich beim reinkopieren einen Fehler gemacht habe :p

    • [Tutorial] Server Restart via Script

      • Risk
      • 9. März 2019 um 12:09

      Schon was in der Config geändert und es falsch gemacht? Hab ihn nämlich nicht.

    • [Tutorial] Server Restart via Script

      • Risk
      • 9. März 2019 um 07:44

      Hab es jetzt mal geänder max.mm80

    • [Tutorial] Server Restart via Script

      • Risk
      • 9. März 2019 um 06:05

      Moin danke fürs Kommenta. War mir schon bewusst, wollte aber erstmal ein funktionierendes Ergebnis haben bevor ich es optimiere :)

    • [Tutorial] Server Restart via Script

      • Risk
      • 8. März 2019 um 20:40

      Hier ein kleines Restartscript welches ohne irgendwelche Programme läuft.

      Ich habe das ganze noch nicht testen können also bin ich auf eure Hilfe angewiesen.

      1. geht in eure description.exi und erstell bei CfgNotifications eine neue class.

      Code
      class restart
          {
              title = "RESTART";
              iconPicture = "\A3\ui_f\data\map\mapcontrol\taskIcon_ca.paa";
              color[] = {0,0.8,0,1};
              description = "%1";
              duration = 10;
              priority = 6;
          };

      2. geht in eure CfgRemoteExec.hpp und tragt folgendes ein

      Code
      F(bis_fnc_showNotification,ANYONE)

      3. erstellt eine neue config im Config Ordner und tragt diese mit #include "Config_Restart.hpp" in der Config Master ein

      Code
      class RestartTime 
      {
          class times
          {
              RestartTimeHours[] = {
                  6,
                  12,
                  18,
                  0    
              };
              /* Warn examples 5:00, 5:15, 5:30, 5:45, 5:55 */        
              WarnTimeHours[] = {
                  5,
                  11,
                  17,
                  23       
              };
              WarnTimeMinutes[] = {
                  0,
                  15,
                  30,
                  45,
                  55
              };                
          };
          text[] = {
              "Neustart in 60 Minuten! Zeiten 6 Uhr, 12 Uhr, 18 Uhr, 24Uhr",
              "Neustart in 45 Minuten! Zeiten 6 Uhr, 12 Uhr, 18 Uhr, 24Uhr",
              "Neustart in 30 Minuten! Zeiten 6 Uhr, 12 Uhr, 18 Uhr, 24Uhr",
              "Neustart in 15 Minuten! Zeiten 6 Uhr, 12 Uhr, 18 Uhr, 24Uhr",
              "Neustart in 5 Minuten! Zeiten 6 Uhr, 12 Uhr, 18 Uhr, 24Uhr"
          };
      };
      Alles anzeigen

      4. in eurem life_server tragt folgendes in eurer config.cpp in die class Systems ein

      Code
      class getRealTime {};
      class restart {};

      erstellt diese beiden Dateien unter life_server/Functions/Systems mit folgendem Inhalt

      fn_getRealTime.sqf

      Code
      /*
          Autor: ԄӏՖҚ 
          Written for Die-Sippe
      
          Gets the realtime if call it
      */
      for "_i" from 0 to 1 step 0 do {
          realTimeSippe = "extDB3" callExtension "9:LOCAL_TIME";
          realTimeSippe = call compile realTimeSippe;
          publicVariable "realTimeSippe";
          sleep 0.1;
      };
      Alles anzeigen

      fn_restart.sqf denkt hier bitte daran das ServerCommandPassword zu ändern da es sonst nicht geht.

      Code
      /*
          author: ԄӏՖҚ
          description: Regelt die Restarts.
          returns: nothing
      */
      waitUntil{!(realTimeSippe isEqualTo [])};
      //Set Vars once so they don't get called every time just once.
      private _configRestartHours = getArray(missionConfigFile >> "RestartTime" >> "times" >> "RestartTimeHours");
      private _configWarnTimeHours = getArray(missionConfigFile >> "RestartTime" >> "times" >> "WarnTimeHours");
      private _configWarnTimeMinutes = getArray(missionConfigFile >> "RestartTime" >> "times" >> "WarnTimeMinutes");
      private _configText = getArray(missionConfigFile >> "RestartTime" >> "text");
      _configRestartHours params [
          "_configRestartHoursOne",
          "_configRestartHoursTwo",
          "_configRestartHoursThree",
          "_configRestartHoursFour"
      ];
      _configWarnTimeHours params [
          "_warnTimeHourOne",
          "_warnTimeHourTwo",
          "_warnTimeHourThree",
          "_warnTimeHourFour"
      ];
      _configWarnTimeMinutes params [
          "_warnTimeMinuteOne",
          "_warnTimeMinuteTwo",
          "_warnTimeMinuteThree",
          "_warnTimeMinuteFour",
          "_warnTimeMinuteFive"
      ];
      _configText params[
          "_configTextOne",
          "_configTextTwo",
          "_configTextThree",
          "_configTextFour",
          "_configTextFive"
      ];
      life_warnOne = true;
      life_warnTwo = true;
      life_warnThree = true;
      life_warnFour = true;
      life_warnFive = true;
      for "_i" from 0 to 1 step 0 do {
          private _times = realTimeSippe select 1;
          private _Stunde = _times select 3;
          private _Minute = _times select 4;
          diag_log "---------------------------";
          diag_log format["_Stunde %1 - _Minute %2", _Stunde, _Minute];
          if(_Stunde in [_warnTimeHourOne, _warnTimeHourTwo, _warnTimeHourThree, _warnTimeHourFour])then{
              //Restart Warn 1
              if(_Minute isEqualTo _warnTimeMinuteOne && life_warnOne)then
              {
                  diag_log format["Warn 1: %1 Minute %2", _configTextOne, _warnTimeMinuteOne];
                  ["restart",[_configTextOne]] remoteExecCall ['bis_fnc_showNotification',0];
                  life_warnOne = false;
              };
              //Restart Warn 2
              if(_Minute isEqualTo _warnTimeMinuteTwo && life_warnTwo)then
              {
                  diag_log format["Warn 2: %1 Minute %2", _configTextTwo, _warnTimeMinuteTwo];
                  ["restart",[_configTextTwo]] remoteExecCall ['bis_fnc_showNotification',0];
                  life_warnTwo = false;
              };
              //Restart Warn 3
              if(_Minute isEqualTo _warnTimeMinuteThree && life_warnThree)then
              {
                  diag_log format["Warn 3: %1 Minute %2", _configTextThree, _warnTimeMinuteThree];
                  ["restart",[_configTextThree]] remoteExecCall ['bis_fnc_showNotification',0];
                  life_warnThree = false;
              };
              //Restart Warn 4
              if(_Minute isEqualTo _warnTimeMinuteFour && life_warnFour)then
              {
                  diag_log format["Warn 4: %1 Minute %2", _configTextFour, _warnTimeMinuteFour];
                  ["restart",[_configTextFour]] remoteExecCall ['bis_fnc_showNotification',0];
                  life_warnFour = false;
              };
              //Restart Warn 5
              if(_Minute isEqualTo _warnTimeMinuteFive && life_warnFive)then
              {
                  diag_log format["Warn 5: %1 Minute %2", _configTextFive, _warnTimeMinuteFive];
                  ["restart",[_configTextFive]] remoteExecCall ['bis_fnc_showNotification',0];
                  life_warnFive = false;
              };
          };    
          //Actual Restart
          if(_Stunde in[_configRestartHoursOne,_configRestartHoursTwo,_configRestartHoursThree,_configRestartHoursFour] && _Minute isEqualTo 0)then
          {
              "CE8C283FB8EDDA1F89B3BD5C7EBE8" serverCommand "#restartserver";
          };
          diag_log "---------------------------";    
          sleep 5;
      };
      Alles anzeigen

      5. geht in eurem life_server in die init.sqf und tragt vor EXTDB "9:LOCK"; folgendes ein

      Code
      [] spawn TON_fnc_getRealTime;
      [] spawn TON_fnc_restart;

      fertig. Bei Problemen einfach melden.

    • Altis life nummernschilder ( Zulassungsstelle)

      • Risk
      • 27. Januar 2019 um 13:30

      die impound.hpp aus der Mission

      Code
      class Life_impound_menu {
          idd = 2800;
          name="life_vehicle_shop";
          movingEnable = 0;
          enableSimulation = 1;
          onLoad = "ctrlShow [2330,false];";
      
          class controlsBackground {
              class Life_RscTitleBackground: Life_RscText    {
                  colorBackground[] = {"(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])"};
                  idc = -1;
                  x = 0.1;
                  y = 0.2;
                  w = 0.8;
                  h = (1 / 25);
              };
      
              class MainBackground: Life_RscText {
                  colorBackground[] = {0,0,0,0.7};
                  idc = -1;
                  x = 0.1;
                  y = 0.2 + (11 / 250);
                  w = 0.8;
                  h = 0.7 - (22 / 250);
              };
      
              class Title: Life_RscTitle {
                  idc = 2801;
                  text = "$STR_GUI_Garage";
                  x = 0.1;
                  y = 0.2;
                  w = 0.8;
                  h = (1 / 25);
              };
      
              class VehicleTitleBox: Life_RscText {
                  idc = -1;
                  text = "$STR_GUI_YourVeh";
                  colorBackground[] = {"(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])"};
                  x = 0.11;
                  y = 0.26;
                  w = 0.3;
                  h = (1 / 25);
              };
      
              class VehicleInfoHeader: Life_RscText {
                  idc = 2830;
                  text = "$STR_GUI_VehInfo";
                  colorBackground[] = {"(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])"};
                  x = 0.42;
                  y = 0.26;
                  w = 0.46;
                  h = (1 / 25);
              };
      
              class CloseBtn: Life_RscButtonMenu {
                  idc = -1;
                  text = "$STR_Global_Close";
                  onButtonClick = "closeDialog 0;";
                  x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
                  y = 0.9 - (1 / 25);
                  w = (6.25 / 40);
                  h = (1 / 25);
              };
      
              class RetrieveCar: Life_RscButtonMenu {
                  idc = -1;
                  text = "$STR_Global_Retrieve";
                  onButtonClick = "call life_fnc_unimpound;";
                  x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
                  y = 0.9 - (1 / 25);
                  w = (6.25 / 40);
                  h = (1 / 25);
              };
      
              class SellCar: Life_RscButtonMenu {
                  idc = -1;
                  text = "$STR_Global_Sell";
                  onButtonClick = "call life_fnc_sellGarage; closeDialog 0;";
                  x = 0.26 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
                  y = 0.9 - (1 / 25);
                  w = (6.25 / 40);
                  h = (1 / 25);
              };
              
              class InsureCar : life_RscButtonMenu
              {
                  idc = -1;
                  text = "Versichern";
                  onButtonClick = "call life_fnc_insureCar;";
                  x = 0.58;
                  y = 0.86;
                  w = 0.15625;
                  h = 0.04;
              };
      
              class kennzeichenButton: life_RscButtonMenu
              {
                  idc = -1;
                  text = "Kennzeichen"; //--- ToDo: Localize;
                  onButtonClick = "call TLG_Client_fnc_changePlate;";
                  x = 0.74;
                  y = 0.86;
                  w = 0.15625;
                  h = 0.04;
              };
          };
      
          class controls {
              class VehicleList: Life_RscListBox {
                  idc = 2802;
                  text = "";
                  sizeEx = 0.04;
                  colorBackground[] = {0.1,0.1,0.1,0.9};
                  onLBSelChanged = "_this call life_fnc_garageLBChange;";
                  x = 0.11;
                  y = 0.302;
                  w = 0.303;
                  h = 0.49;
              };
      
              class vehicleInfomationList: Life_RscStructuredText {
                  idc = 2803;
                  text = "";
                  sizeEx = 0.035;
                  x = 0.41;
                  y = 0.3;
                  w = 0.5;
                  h = 0.5;
              };
      
              class MainBackgroundHider: Life_RscText {
                  colorBackground[] = {0,0,0,1};
                  idc = 2810;
                  x = 0.1;
                  y = 0.2 + (11 / 250);
                  w = 0.8;
                  h = 0.7 - (22 / 250);
              };
      
              class MainHideText: Life_RscText {
                  idc = 2811;
                  text = "$STR_ANOTF_QueryGarage";
                  sizeEx = 0.06;
                  x = 0.24;
                  y = 0.5;
                  w = 0.6;
                  h = (1 / 15);
              };
      
              class RscEdit_1400: Life_RscEdit
              {
                  idc = 2812;
                  text = "erster Teil"; //--- ToDo: Localize;
                  x = 0.1125;
                  y = 0.8;
                  w = 0.15;
                  h = 0.04;
              };
              class RscEdit_1401: Life_RscEdit
              {
                  idc = 2813;
                  text = "zweiter Teil"; //--- ToDo: Localize;
                  x = 0.2625;
                  y = 0.8;
                  w = 0.15;
                  h = 0.04;
              };
          };
      };
      Alles anzeigen

      und nochmal 4 neue files für die Mission.

      Code
      /*    author: Risk    description: Fragt das Kennzeichen des Spielers ab und gibt den Namen wieder.    returns: Nothing
      */
      params[    "_vehicle"
      ];
      diag_log format["abfrageCop %1",_vehicle];
      [getPlateNumber _vehicle,player] remoteExecCall ["TLG_Client_fnc_getNamePlate",2];


      Code
      /*    author: Risk    description: Sends Plate to DB    returns: nothing
      */
      private _enteredPlate = ctrlText 50000;
      
      ["Schicke das Kennzeichen an die Leitstelle..","fast","blue"] spawn TLG_Client_fnc_msgHandle;
      
      [_enteredPlate,player] remoteExecCall ["TLG_Client_fnc_getNamePlate",2];
      Code
      /*    author: Risk    description: Ändert dein Kennzeichen in eines deiner Wünsche    returns: nothing
      */
      _vid = lbValue[2802,(lbCurSel 2802)];
      _Buchstabe = ctrlText 2812;
      _Zahl = ctrlText 2813;
      _zuAendern = format["TLG-%1-%2", _Buchstabe, _Zahl];
      _length = count (toArray(_zuAendern));
      _chrByte = toArray (_zuAendern);
      _allowed = toArray("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-");
      if (_length > 15) exitWith {["Du kannst das Kennzeichen nicht größer als 15 machen!","fast","red"] spawn TLG_Client_fnc_msgHandle;};
      _badChar = false;
      {    if (!(_x in _allowed)) exitWith {        _badChar = true;    };
      } forEach _chrByte;
      if (_badChar) exitWith {[localize "STR_GNOTF_IncorrectChar","fast","red"] spawn TLG_Client_fnc_msgHandle;};
      _uid = getPlayerUID player;
      closeDialog 0;
      [_zuAendern,_uid,_vid] remoteExec ["TLG_Server_fnc_Plate",2];
      Alles anzeigen
      Code
      /*    author: Risk    description: Fragt das Kennzeichen des Spielers ab und gibt den Namen wieder.    returns: Nothing
      */
      params[    "_vehicle"
      ];
      diag_log format["abfrageCop %1",_vehicle];
      [getPlateNumber _vehicle,player] remoteExecCall ["TLG_Client_fnc_getNamePlate",2];

      wenn ich dann nochmal lust hab mach ich ein richtiges tut draus.

    • Altis life nummernschilder ( Zulassungsstelle)

      • Risk
      • 27. Januar 2019 um 13:30

      Hier mein Part.

      das ganze ist für SQL_Custom gemacht worden.

      Code
      [changePlate]
      SQL1_1 = UPDATE vehicles SET plate = ? WHERE pid = ? AND id = ?
      SQL1_INPUTS = 1, 2, 3
      
      [getNamePlate]
      SQL1_1 = SELECT owner FROM vehicles WHERE plate = ?
      SQL1_INPUTS = 1
      OUTPUT = 1-STRING

      einmal die fn_vehicleShopBuy geändert.

      Spoiler anzeigen
      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_vehicleShopBuy.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Does something with vehicle purchasing.
      */
      
      params [["_mode",true,[true]]];
      
      if ((lbCurSel 2302) isEqualTo -1) exitWith {[localize "STR_Shop_Veh_DidntPick","fast","red"] spawn TLG_Client_fnc_msgHandle; closeDialog 0;};
      
      private _className = lbData[2302,(lbCurSel 2302)];
      private _vIndex = lbValue[2302,(lbCurSel 2302)];
      private _vehicleList = M_CONFIG(getArray,"CarShops",(life_veh_shop select 0),"vehicles");
      private _shopSide = M_CONFIG(getText,"CarShops",(life_veh_shop select 0),"side");
      
      
      private _initalPrice = M_CONFIG(getNumber,"LifeCfgVehicles",_className,"price");
      
      private "_buyMultiplier";
      private "_rentMultiplier";
      
      switch (playerSide) do {
          case civilian: {
              _buyMultiplier = LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_CIVILIAN");
              _rentMultiplier = LIFE_SETTINGS(getNumber,"vehicle_rental_multiplier_CIVILIAN");
          };
          case west: {
              _buyMultiplier = LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_COP");
              _rentMultiplier = LIFE_SETTINGS(getNumber,"vehicle_rental_multiplier_COP");
          };
          case independent: {
              _buyMultiplier = LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_MEDIC");
              _rentMultiplier = LIFE_SETTINGS(getNumber,"vehicle_rental_multiplier_MEDIC");
          };
          case east: {
              _buyMultiplier = LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_OPFOR");
              _rentMultiplier = LIFE_SETTINGS(getNumber,"vehicle_rental_multiplier_OPFOR");
          };
      };
      
      private "_purchasePrice";
      
      if (_mode) then {
          _purchasePrice = round(_initalPrice * _buyMultiplier);
      } else {
          _purchasePrice = round(_initalPrice * _rentMultiplier);
      };
      
      private _conditions = M_CONFIG(getText,"LifeCfgVehicles",_className,"conditions");
      
      if !([_conditions] call life_fnc_levelCheck) exitWith {[localize "STR_Shop_Veh_NoLicense","fast","red"] spawn TLG_Client_fnc_msgHandle;};
      
      private _colorIndex = lbValue[2304,(lbCurSel 2304)];
      
      if (_purchasePrice < 0) exitWith {closeDialog 0;}; //Bad price entry
      if (CASH < _purchasePrice) exitWith {[format [localize "STR_Shop_Veh_NotEnough",[_purchasePrice - CASH] call life_fnc_numberText],"fast","red"] spawn TLG_Client_fnc_msgHandle;closeDialog 0;};
      
      private _spawnPoints = life_veh_shop select 1;
      private _spawnPoint = "";
      
      if ((life_veh_shop select 0) == "med_air_hs") then {
          if (nearestObjects[(getMarkerPos _spawnPoints),["Air"],35] isEqualTo []) exitWith {_spawnPoint = _spawnPoints};
      } else {
          //Check if there is multiple spawn points and find a suitable spawnpoint.
          if (_spawnPoints isEqualType []) then {
              //Find an available spawn point.
              {
                  if ((nearestObjects[(getMarkerPos _x),["Car","Ship","Air"],5]) isEqualTo []) exitWith {_spawnPoint = _x};
                  true
              } count _spawnPoints;
          } else {
              if (nearestObjects[(getMarkerPos _spawnPoints),["Car","Ship","Air"],5] isEqualTo []) exitWith {_spawnPoint = _spawnPoints};
          };
      };
      
      
      if (_spawnPoint isEqualTo "") exitWith {[localize "STR_Shop_Veh_Block","fast","red"] spawn TLG_Client_fnc_msgHandle; closeDialog 0;};
      CASH = CASH - _purchasePrice;
      0 call SOCK_fnc_updatePartial;
      [format [localize "STR_Shop_Veh_Bought",getText(configFile >> "CfgVehicles" >> _className >> "displayName"),[_purchasePrice] call life_fnc_numberText],"fast","blue"] spawn TLG_Client_fnc_msgHandle;
      
      //Spawn the vehicle and prep it.
      
      private "_vehicle";
      
      if ((life_veh_shop select 0) == "med_air_hs") then {
          _vehicle = createVehicle [_className,[0,0,999],[], 0, "NONE"];
          waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait?
          _vehicle allowDamage false;
          _hs = nearestObjects[getMarkerPos _spawnPoint,["Land_Hospital_side2_F"],50] select 0;
          _vehicle setPosATL (_hs modelToWorld [-0.4,-4,12.65]);
          sleep 0.6;
      } else {
          _vehicle = createVehicle [_className, (getMarkerPos _spawnPoint), [], 0, "NONE"];
          waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait?
          _vehicle allowDamage false; //Temp disable damage handling..
          _vehicle setPos (getMarkerPos _spawnPoint);
          _vehicle setVectorUp (surfaceNormal (getMarkerPos _spawnPoint));
          _vehicle setDir (markerDir _spawnPoint);
      };
      
      _vehicle lock 2;
      
      [_vehicle,_colorIndex] call life_fnc_colorVehicle;
      [_vehicle] call life_fnc_clearVehicleAmmo;
      [_vehicle,"trunk_in_use",false,true] remoteExecCall ["TON_fnc_setObjVar",RSERV];
      [_vehicle,"vehicle_info_owners",[[getPlayerUID player,profileName]],true] remoteExecCall ["TON_fnc_setObjVar",RSERV];
      
      _vehicle disableTIEquipment true; //No Thermals.. They're cheap but addictive.
      
      //Side Specific actions.
      switch (playerSide) do {
          case west: {
              [_vehicle,"cop_offroad",true] spawn life_fnc_vehicleAnimate;
          };
          case civilian: {
              if ((life_veh_shop select 2) isEqualTo "civ" && {_className == "B_Heli_Light_01_F"}) then {
                  [_vehicle,"civ_littlebird",true] spawn life_fnc_vehicleAnimate;
              };
          };
          case independent: {
              [_vehicle,"med_offroad",true] spawn life_fnc_vehicleAnimate;
          };
      };
      _char1 = selectRandom ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
      _char2 = selectRandom ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"];
      _vehicle setPlateNumber format["TLG-%1%2-%3",_char1,_char2,round(random(1000000))];
      _vehicle allowDamage true;
      private _plate = getPlateNumber _vehicle;
      private _vehicleOwner = name player;
      life_vehicles pushBack _vehicle;
      
      //Always handle key management by the server
      [getPlayerUID player,playerSide,_vehicle,1] remoteExecCall ["TON_fnc_keyManagement",RSERV];
      
      if (_mode) then {
          if !(_className in LIFE_SETTINGS(getArray,"vehicleShop_rentalOnly")) then {
              if (life_HC_isActive) then {
                  [(getPlayerUID player),playerSide,_vehicle,_colorIndex,_plate,_vehicleOwner] remoteExecCall ["HC_fnc_vehicleCreate",HC_Life];
              } else {
                  [(getPlayerUID player),playerSide,_vehicle,_colorIndex,_plate,_vehicleOwner] remoteExecCall ["TON_fnc_vehicleCreate",RSERV];
              };
          };
      };
      
      if (LIFE_SETTINGS(getNumber,"player_advancedLog") isEqualTo 1) then {
          if (LIFE_SETTINGS(getNumber,"battlEye_friendlyLogging") isEqualTo 1) then {
              advanced_log = format [localize "STR_DL_AL_boughtVehicle_BEF",_className,[_purchasePrice] call life_fnc_numberText,[CASH] call life_fnc_numberText,[BANK] call life_fnc_numberText];
          } else {
              advanced_log = format [localize "STR_DL_AL_boughtVehicle",profileName,(getPlayerUID player),_className,[_purchasePrice] call life_fnc_numberText,[CASH] call life_fnc_numberText,[BANK] call life_fnc_numberText];
          };
          publicVariableServer "advanced_log";
      };
      ["VehiclePurchased"] spawn mav_ttm_fnc_addExp;
      closeDialog 0; //Exit the menu.
      true;
      Alles anzeigen

      die fn_garageLBChange

      Spoiler anzeigen
      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_garageLBChange.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Can't be bothered to answer it.. Already deleted it by accident..
      */
      disableSerialization;
      params[
          "_control",
          "_index"
      ];
      
      //Fetch some information.
      private _dataArr = CONTROL_DATAI(_control,_index);
      _dataArr = call compile format ["%1",_dataArr];
      private _className = (_dataArr select 0);
      private _classNameLife = _className;
      private _insurance = (_dataArr select 3);
      private _plate = (_dataArr select 2);
      
      if (!isClass (missionConfigFile >> "LifeCfgVehicles" >> _classNameLife)) then {
          _classNameLife = "Default"; //Use Default class if it doesn't exist
          diag_log format ["%1: LifeCfgVehicles class doesn't exist",_className];
      };
      
      private _vehicleColor = ((M_CONFIG(getArray,"LifeCfgVehicles",_classNameLife,"textures") select (_dataArr select 1)) select 0);
      if (isNil "_vehicleColor") then {_vehicleColor = "Default";};
      
      private _vehicleInfo = [_className] call life_fnc_fetchVehInfo;
      private _trunkSpace = [_className] call life_fnc_vehicleWeightCfg;
      
      private _price = M_CONFIG(getNumber,"LifeCfgVehicles",_classNameLife,"price");
      private _storageFee = LIFE_SETTINGS(getNumber,"vehicle_storage_fee_multiplier");
      private "_sellMultiplier";
      private "_insuranceMultiplier";
      private "_purchasePrice";
      switch (playerSide) do {
          case civilian: {
               _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_CIVILIAN");
               _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_CIVILIAN");
               _insuranceMultiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_CIVILIAN");
          };
          
          case west: {
              _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_COP");
              _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_COP");
              _insuranceMultiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_COP"); 
          };
          
          case independent: {
              _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_MEDIC");
              _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_MEDIC");
              _insuranceMultiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_MEDIC"); 
          };
          
          case east: {
              _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_OPFOR");
              _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_OPFOR");
              _insuranceMultiplier = LIFE_SETTINGS(getNumber,"vehicle_insurance_multiplier_OPFOR"); 
          };
      };
      
      private _retrievePrice = _purchasePrice * _storageFee;
      private _sellPrice = _purchasePrice * _sellMultiplier;
      private _insurancePrice = _purchasePrice * _insuranceMultiplier;
      
      if (!(_sellPrice isEqualType 0) || _sellPrice < 1) then {_sellPrice = 500;};
      if (!(_retrievePrice isEqualType 0) || _retrievePrice < 1) then {_retrievePrice = 500;};
      if (!(_insurancePrice isEqualType 0) || _insurancePrice < 1) then {_insurancePrice = 500;};
      
      (CONTROL(2800,2803)) ctrlSetStructuredText parseText format[
       (localize "STR_Shop_Veh_UI_RetrievalP")+ " <t color='#8cff9b'>$%1</t><br/>
       " +(localize "STR_Shop_Veh_UI_SellP")+ " <t color='#8cff9b'>$%2</t><br/>
       Preis der Versicherung: <t color='#8cff9b'>$%9</t><br/>
       Versicherungszustand: %10<br/>
       Kennzeichen: %12<br/>
       " +(localize "STR_Shop_Veh_UI_Color")+ " <t color='#8cff9b'>%8</t><br/>
       " +(localize "STR_Shop_Veh_UI_MaxSpeed")+ " <t color='#8cff9b'>%3 km/h</t><br/>
       " +(localize "STR_Shop_Veh_UI_HPower")+ " <t color='#8cff9b'>%4</t><br/>
       " +(localize "STR_Shop_Veh_UI_PSeats")+ " <t color='#8cff9b'>%5</t><br/>
       " +(localize "STR_Shop_Veh_UI_Trunk")+ " <t color='#8cff9b'>%6</t><br/>
       " +(localize "STR_Shop_Veh_UI_Fuel")+ " <t color='#8cff9b'>%7</t>
       ",
      
      [_retrievePrice] call life_fnc_numberText,
      [_sellPrice] call life_fnc_numberText,
      (_vehicleInfo select 8),
      (_vehicleInfo select 11),
      (_vehicleInfo select 10),
      if (_trunkSpace isEqualTo -1) then {"None"} else {_trunkSpace},
      (_vehicleInfo select 12),
      _vehicleColor,
      [_insurancePrice] call life_fnc_numberText,
      if(_insurance == 1) then {"<t color='#8cff9b'>Versichert</t>"} else {"<t color='#FF0000'>nicht Versichert</t>"},
      (_vehicleInfo select 9),
      _plate
      ];
      
      if(_insurance == 1) then {
      ctrlShow [97480,False];
      }else{
      ctrlShow [97480,True];
      };
      
      ctrlShow [2803,true];
      ctrlShow [2830,true];
      Alles anzeigen

      die fn_impoundMenu

      Spoiler anzeigen
      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_impoundMenu.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Not actually a impound menu, may act as confusion to some but that is what I wanted.
          The purpose of this menu is it is now called a 'Garage' where vehicles are stored (persistent ones).
      */
      disableSerialization;
      private _vehicles = param [0,[],[[]]];
      
      ctrlShow[2803,false];
      ctrlShow[2830,false];
      waitUntil {!isNull (findDisplay 2800)};
      
      if (count _vehicles isEqualTo 0) exitWith {
          ctrlSetText[2811,localize "STR_Garage_NoVehicles"];
      };
      
      private _control = CONTROL(2800,2802);
      lbClear _control;
      
      {
          _vehicleInfo = [(_x select 2)] call life_fnc_fetchVehInfo;
          _control lbAdd (_vehicleInfo select 3);
          _tmp = [(_x select 2),(_x select 8),(_x select 7),(_x select 9)];
          _tmp = str(_tmp);
          _control lbSetData [(lbSize _control)-1,_tmp];
          _control lbSetPicture [(lbSize _control)-1,(_vehicleInfo select 2)];
          _control lbSetValue [(lbSize _control)-1,(_x select 0)];
      } forEach _vehicles;
      
      ctrlShow[2810,false];
      ctrlShow[2811,false];
      Alles anzeigen

      neue Datei im life_server fn_Plate

      Spoiler anzeigen
      Code
      /*
          author: Risk
          description: Updatet das Kennzeichen
          returns: nothing
      */
      
      params[
          "_plate",
          "_uid",
          "_vid"
      ];
      
      private _query = format ["changePlate:%1:%2:%3", _plate, _uid, _vid];
      [_query, 1] call DB_fnc_asyncCall;
      Alles anzeigen

      die fn_vehicleCreate

      Spoiler anzeigen
      Code
      /*
          File: fn_vehicleCreate.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Answers the query request to create the vehicle in the database.
      */
      
      params [
          ["_uid", "", [""]],
          ["_side", sideUnknown, [west]],
          ["_vehicle", objNull, [objNull]],
          ["_color", -1, [0]],
          ["_plate", "", [""]],
          "_vehicleOwner"
      ];
      
      //Error checks
      if (_uid isEqualTo "" || {_side isEqualTo sideUnknown} || {isNull _vehicle}) exitWith {};
      if (!alive _vehicle) exitWith {};
      private _className = typeOf _vehicle;
      private _type = switch (true) do {
          case (_vehicle isKindOf "Car"): {"Car"};
          case (_vehicle isKindOf "Air"): {"Air"};
          case (_vehicle isKindOf "Ship"): {"Ship"};
      };
      
      _side = switch (_side) do {
          case west:{"cop"};
          case civilian: {"civ"};
          case independent: {"med"};
          case east: {"adac"};
          default {"Error"};
      };
      
      [_uid, _side, _type, _classname, _color, _plate, _vehicleOwner] call DB_fnc_insertVehicle;
      
      _vehicle setVariable ["dbInfo", [_uid, _plate], true];
      Alles anzeigen

      die fn_insertVehicle

      Spoiler anzeigen
      Code
      /*
          File: fn_insertVehicle.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Inserts the vehicle into the database
      */
      
      params [
          "_uid",
          "_side",
          "_type",
          "_className",
          ["_color",-1,[0]],
          ["_plate", "", [""]],
          "_vehicleOwner"
      ];
      
      //Stop bad data being passed.
      if (_uid isEqualTo "" || {_side isEqualTo ""} || {_type isEqualTo ""} || {_className isEqualTo ""} || {_color isEqualTo -1} || {_plate isEqualTo ""}) exitWith {};
      private _query = format ["insertVehicle:%1:%2:%3:%4:%5:%6:%7", _side, _className, _type, _uid, _color, _plate, _vehicleOwner];
      [_query, 1] call DB_fnc_asyncCall;
      Alles anzeigen
    • Altis life nummernschilder ( Zulassungsstelle)

      • Risk
      • 24. Januar 2019 um 19:36

      Kann meins hochladen wenn ich alles zusammen bekomme.

    • Scripter sucht Server

      • Risk
      • 16. Dezember 2018 um 20:19

      erstmal unter gekommen :)

    • Scripter sucht Server

      • Risk
      • 16. Dezember 2018 um 16:11
      Zitat von TaktischerSpeck

      viel glück

      Danke

    • Scripter sucht Server

      • Risk
      • 16. Dezember 2018 um 15:53

      Hallo liebes Forum.

      Ich suche wieder einen Server, auf dem ich mich austoben kann.

      Ich selber habe mittlerweile 3000 Arma Stunden und Scripte seit mehreren Jahren.

      Auf Anfrage kann ich euch auch einige Scripte zusammenbauen. Aber auch nicht alles.

      Da ich nicht weis was ich schreiben soll, fragt mich doch einfach was ihr wissen wollt.

      Der Server dem ich beitreten würde, sollte schon mindestens 20-30 Spieler haben. Möchte mir keine Mühe auf dem Server machen um dann am Ende das Projekt leer zu sehen :)

      Mir ist wichtig das dass ganze auf Mods aufgebaut ist.

      Rechtschreibung und Satzfehler einfach ignorieren :) :D

    • [Tutorial] [Altis Life 5.0] V- und I-Items nach dem Tod in einer Lootbox

      • Risk
      • 16. Dezember 2018 um 13:03
      Zitat von Lucifer Lucius

      So habe jetzt ne lösung gefunden, würde sie auch gerne posten aber ich habe sie aus dem de100 script credo und weiß deshalb nicht ob ich das darf also frage ich erst und den sende ich die lösung hier rein.

      Da es sowieso öffentlich ist..

    • Man kann nichts aus der Kiste nehmen..

      • Risk
      • 28. September 2018 um 17:10

      Jo passt danke dir :D Gar nicht dran gedacht.

    • Man kann nichts aus der Kiste nehmen..

      • Risk
      • 28. September 2018 um 16:55

      Teste ich mal, danke!

    • Man kann nichts aus der Kiste nehmen..

      • Risk
      • 28. September 2018 um 16:44

      Mahlzeit Leute!

      Ich habe auf der Karte eine Kiste platziert, welche Items bekommt wenn man fertig mit dem Craften ist..

      Code
      _backpack = backpack player;
      removeBackpack player;
      Schneiderei_Kiste addBackpackCargoGlobal [_backpack,1];
      player addBackpack _newItem;
      hint "Deine altes Item ist in der Kiste hinter dir.(Für Rucksäcke derzeit nicht funktionsfähig!)";

      Leider kann ich dort keine Rucksäcke raus nehmen.. vllt kennt jemand den Fehler und kann mir weiter helfen!

      Spoiler anzeigen
      Code
      Die Kiste class Item6072
              {
                  dataType="Object";
                  class PositionInfo
                  {
                      position[]={7274.002,174.29866,13969.356};
                      angles[]={0,1.0180855,0};
                  };
                  side="Empty";
                  class Attributes
                  {
                      name="Schneiderei_Kiste";
                      disableSimulation=1;
                  };
                  id=17560;
                  type="Land_PlasticCase_01_small_gray_F";
                  atlOffset=0.47877502;
                  class CustomAttributes
                  {
                      class Attribute0
                      {
                          property="ammoBox";
                          expression="[_this,_value] call bis_fnc_initAmmoBox;";
                          class Value
                          {
                              class data
                              {
                                  class type
                                  {
                                      type[]=
                                      {
                                          "STRING"
                                      };
                                  };
                                  value="[[[[],[]],[[],[]],[[],[]],[[],[]]],false]";
                              };
                          };
                      };
                      class Attribute1
                      {
                          property="allowDamage";
                          expression="_this allowdamage _value;";
                          class Value
                          {
                              class data
                              {
                                  class type
                                  {
                                      type[]=
                                      {
                                          "BOOL"
                                      };
                                  };
                                  value=0;
                              };
                          };
                      };
                      nAttributes=2;
                  };
              };
      Alles anzeigen
    • [Tutorial] Craftingsystem zum Herstellen von Items, Waffen usw.

      • Risk
      • 6. September 2018 um 19:42
      Zitat von br1zey

      Naja ist jetzt auch nicht wirklich sinnvoll sollte genau in dem Moment wo das Item auf den Boden Gedropt wurde das Cleanup Durchlaufen und die Objecte Löschen währe es halt auch Blöde

      Joa stimmt schon. Aber auch schon überlegt das ganze einfach in eine Kiste nebendran zu adden

    • [Tutorial] Craftingsystem zum Herstellen von Items, Waffen usw.

      • Risk
      • 6. September 2018 um 18:24

      Hab mal die fn_craftAction bearbeitet.

      Die Alten Rucksäcke und Kleidung fällt jetzt auf den Boden damit nichts im Konflikt mit den neuen Sachen steht.

      fn_craftAction.sqf

    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™