1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Di: 19 August 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. moeck

    Beiträge von moeck

    • Init Vehicle

      • moeck
      • 12. Januar 2017 um 01:07

      Moin,

      heute habe ich mal eine Frage. Ist es möglich eine if - Anweisung in die Fahrzeug Init beim Spawn zu schreiben? Meine Idee ist das Gewicht von Fahrzeugen zu senken wenn ein bestimmter Heli in der Nähe ist.

      Gruß,
      moeck

    • Neue Map

      • moeck
      • 11. Januar 2017 um 14:31

      Moin,

      ein paar mehr Infos wären schon schön. Welche Fehlermeldung kommt? Kannst du mal die Logs anhängen? Ohne die Infos können wir dir auch nicht helfen!

      Gruß,
      moeck

    • Polizei Sirenen

      • moeck
      • 11. Januar 2017 um 14:26

      das einfachste du ersetzt einfach die Datei im mission ordner

    • Altis life 4.4R4 - Reparatur System

      • moeck
      • 10. Januar 2017 um 16:34

      Moin,

      nein bisher noch nicht. Ich bin momentan auch an anderen Themen dran ;-). Du könntest ja erstmal mit einer

      Code
      { hint format["Test: %1", _x }foreach getallHitPointsdamage _vehicle;

      anfangen und dich dann langsam weiter vor arbeiten.


      Gruß,
      moeck

    • [Tutorial] Umlackierungsshop

      • moeck
      • 10. Januar 2017 um 14:51

      Update Punkt 7 MPMission. Beim Testen mit Taru, Xian und Blackfish habe ich festgestellt, dass die fn_colorVehicle.sqf nur mit 3 Texturen umgehen kann. Daher habe ich Funktion mal erweitert, dass man die Fahrzeuge wieder komplett skinnen kann.

    • [QuickTipp] Arma³ - Blauchlichtkoordinatensammlung

      • moeck
      • 10. Januar 2017 um 11:29

      Moin,

      es hat nicht schon jemand rein zufällig die Koords für Xian und Blackfish rausgesucht?

      Gruß,
      moeck

    • Altis life 4.4R4 - Reparatur System

      • moeck
      • 10. Januar 2017 um 08:38

      Moin,

      schau mal hier getallHitPointsdamage bzw. hier getHintindex
      Damit bekommst Du alle notwendigen Infos raus ;-).

      Gruß,
      moeck

    • Arma 3 Australia + Housing problehm

      • moeck
      • 10. Januar 2017 um 08:18

      schau mal in die /core/functions/fn_keyhandler.sqf

    • Umgang mit lbdata

      • moeck
      • 9. Januar 2017 um 16:47

      hier findet ihr die Lösung TuT Umlackierungsshop

    • [Tutorial] Umlackierungsshop

      • moeck
      • 9. Januar 2017 um 16:42

      Moin,

      so ich habe mir das TuT mal genauer angeschaut und ein paar kleinere bzw. größere Änderungen vorgenommen. Jetzt ist es möglich nicht nur Fahrzeuge mit einer neuen Farbe (Skins) auszustatten sondern auch Heli, Flugzeuge und Boote. Des Weiteren kann man für jede Fahrzeug(klasse) den Preis festlegen was das umlackieren kostet. Zusätzlich kann man auch per Lizenzen steuern welche Skins/Farben beim Lackierer zur Verfügung verfügung stehen.

      Grundsätzlich unterscheidet sich die Installation nicht vom Orginalpost, bis auf ein oder zwei Kleinigkeiten.

      Gut fangen wir mal an ;)

      MPMission

      1. Geht in den Ordner core und erstellt dort den Ordner repaint
      2. Erstellt nun eine neue sqf namens fn_Repaintcolor.sqf und kopiert diese Datei in eueren repaint Ordner mit folgendem Inhallt:

      C: fn_Repaintcolor.sqf
      #include <macro.h>
      /*
      File: fn_Repaintcolor.sqf
      Author: MooN-Gaming modified by moeck (http://www.lostofparadise.de)
      
      
      
      
      
      
      
      Description: Opens the display to recolor the vehicle
      
      
      
      
      
      
      
      */
      #define Repaint 37457
      private["_index","_veh","_c_arr","_id","_colorcost","_i","_text","_Repaint"];
      if(!isNull (findDisplay 2300)) then {
      _index = lbCurSel 2302;
      lbClear 2303;
      _veh = lbData[2302,_index];
      _id = [];
      _c_arr = [_veh] call life_fnc_vehicleColorCfg;
      switch(playerSide) do {
      	case civilian: {
      		_id pushBack "civ";
      		if (license_civ_rebel) then {_id pushBack "reb"};
      		if (license_civ_rebel2) then {_id pushBack "reb"};
      		if (license_civ_donator1) then {_id pushBack "donator1"};
      		//Hier weitere Lizenzen einfügen falls notwendig
      	}; 
      	case west:{
      		_id pushback "cop";
      		if (license_civ_swat) then {_id pushBack "swat"};
      		if (license_cop_zoll) then {_id pushBack "zoll"};
      	};
      	case independent:{_id pushBack "med";};
      	default {_id pushBack "civ";};
      };
      
      
      
      
      
      
      
      _colorcost = 100;
      for "_i" from 0 to (count _c_arr)-1 do
      {
      	if((_c_arr select _i) select 1 in _id) then
      	{
      		_text = [_veh,_i] call life_fnc_vehicleColorStr;
      		lbAdd[2303,format["%1",_text]];
      		lbSetValue [2303,(lbSize 2303)-1,_i];
      		//lbSetData[2303, [_colorcost] call life_fnc_numberText];
      	};
      };
      lbSetCurSel [2303,0];
      if((lbSize 2303)-1 != -1) then
      {
       ctrlShow[2303,true];
       _Repaint ctrlEnable true;
      }
       else
      {
       ctrlShow[2303,false];
       _Repaint ctrlEnable false;
      };
      
      
      
      
      
      
      
      };
      _haha = typeOf _x;
      _vehicles lbSetData [(lbSize _vehicles)-1,_haha];
      Alles anzeigen


      3. Erstellt eine neue sqf namens fn_RepaintVehicle.sqf und kopiert diese Datei in eueren repaint Ordner mit folgendem Inhallt:

      C: fn_RepaintVehicle.sqf
      #include <macro.h>
      /*
      File: fn_RepaintVehicle.sqf
      Author: MooN-Gaming modified by moeck (http://www.lostofparadise.de)
      
      
      
      
      
      
      
      Description: Does the active repaint man....read the title!
      */
      private["_index","_veh","_color","_color_index","_vehicle"];
      if(!isNull (findDisplay 2300)) then {
      
      
      
      
      _vehicle=lbdata [2302,lbcursel 2302];
      _veh = nearestObject [position player, _vehicle];
      _color = lbcursel 2303;
      _color_index = lbValue[2303,_color];
      if ((lbSize 2303)-1 == -1) exitWith {hint format["Du willst ernsthaft ein Fahrzeug ohne Farbe lackieren? Das lassen wir mal lieber!"];};
      closeDialog 0;
      
      
      
      
      
      
      
      //_baseprice = 20000;
      _baseprice = [_vehicle,__GETC__(life_repaint_prices)] call TON_fnc_index;
      if(_baseprice == -1) then {_baseprice = 1000;} else {_baseprice = (__GETC__(life_repaint_prices) select _baseprice) select 1;};
      _vehicleData = _veh getVariable["vehicle_info_owners",[]];
      _vehOwner = (_vehicleData select 0) select 0;
      if(life_cash < _basePrice) exitWith {hint format["Du hast keine %1$ um den Lackierer zu bezahlen.",_baseprice];};
      
      
      
      
      
      
      
      if(isNil {_vehicleData}) exitWith {hint "Es gibt keine Infos zu diesem Fahrzeug, es ist entweder gemietet oder gecheated."};
      if ((getPlayerUID player) != _vehOwner) exitWith {hint "Du bist nicht der Besitzer des Fahrzeugs das lackiert werden soll."};
      
      
      
      
      
      
      
      life_action_inUse = true;
      
      
      
      
      
      
      
      //[player,"spraycan"] call life_fnc_globalSound;
      
      
      
      
      
      
      
      _displayName = getText(configFile >> "CfgVehicles" >> (typeOf _veh) >> "displayName");
      _upp = format["Lackiere %1",_displayName];
      //Setup our progress bar.
      disableSerialization;
      5 cutRsc ["life_progress","PLAIN"];
      _ui = uiNameSpace getVariable "life_progress";
      _progress = _ui displayCtrl 38201;
      _pgText = _ui displayCtrl 38202;
      _pgText ctrlSetText format["%2 (1%1)...","%",_upp];
      _progress progressSetPosition 0.01;
      _cP = 0.01;
      
      
      
      
      
      
      
      while{true} do
      {
      if(animationState player != "AinvPknlMstpSnonWnonDnon_medic_1") then {
      [[player,"AinvPknlMstpSnonWnonDnon_medic_1"],"life_fnc_animSync",true,false] spawn life_fnc_MP;
      player playMoveNow "AinvPknlMstpSnonWnonDnon_medic_1";
      }; 
      sleep 0.29;
      
      
      
      
      
      
      
      _cP = _cP + 0.01;
      _progress progressSetPosition _cP;
      _pgText ctrlSetText format["%3 (%1%2)...",round(_cP * 100),"%",_upp]; 
      if(_cP >= 1) exitWith {};
      if(!alive player) exitWith {};
      if(player != vehicle player) exitWith {};
      if(life_interrupted) exitWith {};
      };
      
      
      
      
      
      
      
      life_action_inUse = false;
      5 cutText ["","PLAIN"];
      player playActionNow "stop";
      if(life_interrupted) exitWith {life_interrupted = false; titleText["Abgebrochen!","PLAIN"]; life_action_inUse = false;};
      if(player != vehicle player) exitWith {titleText["Du musst aus dem Fahrzeug aussteigen, um es lackieren zu können!","PLAIN"];};
      
      
      
      
      
      
      
      life_cash = life_cash - _basePrice;
      //Send toDB
      [[_veh,_color_index],"TON_fnc_vehicleRepaint",false,false] spawn life_fnc_MP;
      
      
      
      
      
      
      
      //Color vehicle locally
      [_veh,_color_index] call life_fnc_colorVehicle;
      
      
      
      
      
      
      
      [] call SOCK_fnc_updateRequest; //Sync silently because it's obviously silently..
      
      
      
      
      
      
      
      hint format["Dein Fahrzeug hat jetzt einen neuen Lack. Bitte parke das Fahrzeug zum trockenen nochmal mal ein und wieder aus! Der neue Lack wird erst nach dem Ausparken für alle sichtbar."];
      
      
      
      
      
      
      
      };
      Alles anzeigen

      4. Erstellt eine neue sqf namens fn_RepaintMenu.sqf und kopiert diese Datei in eueren repaint Ordner mit folgendem Inhallt:

      Code: fn_RepaintMenu.sqf
      #include <macro.h>
      /*
      File: fn_RepaintMenu.sqf
      Author: MooN-Gaming modified by moeck (http://www.lostofparadise.de)
      
      
      
      
      
      
      
      Description: What could it do bro?!
      
      
      
      
      
      
      
      */
      
      
      
      
      
      
      
      private["_display","_vehicles","_objects","_color","_haha","_pic","_text","_owners","_price"];
      createDialog "Life_vehicle_repaint";
      disableSerialization;
      if(!isNull (findDisplay 2300)) then {
      _display = findDisplay 2300;
      _vehicles = _display displayCtrl 2302;
      
      
      
      
      
      
      
      _objects = nearestObjects[getPos (_this select 0),["Car","Air","Ship"],20];
      //_objects = nearestObject [position player, "LandVehicle"];
      _xx = _objects select 0;
      
      
      
      
      
      
      
      //List vehicles
      {
       if(vehicle player != _x) then {
       _color = [(typeOf _xx),(_xx getVariable "Life_VEH_color")] call life_fnc_vehicleColorStr;
       _pic = getText(configFile >> "CfgVehicles" >> typeOf _x >> "picture"); 
       _text = format["(%1)",_color];
       _haha = typeOf _x;
       _price = [_haha,__GETC__(life_repaint_prices)] call TON_fnc_index;
       if(_price == -1) then {_price = 1000;} else {_price = (__GETC__(life_repaint_prices) select _price) select 1;};
      	if(_text == "()") then
      	{
      		_text = "";
      	}; 
       _vehicles lbAdd format ["%1 || %2 || %3$", getText(configFile >> "cfgVehicles" >> typeOf _x >> "DisplayName"), _text,_price]; 
       _vehicles lbSetPicture [(lbSize _vehicles)-1,_pic]; 
       _vehicles lbSetData [(lbSize _vehicles)-1,_haha];
       }; 
       } foreach _objects;
      };
      Alles anzeigen

      5. Erstellt oder kopiert die Datei macro.h in den repaint Ordner.

      Code: macro.h
      #define __CONST__(var1,var2) var1 = compileFinal (if(typeName var2 == "STRING") then {var2} else {str(var2)}) //Quick macro for creating a constant variable
      #define __GETC__(var) (call var) //Quick clean macro for getting a value of a constant / compileFinal variable. i.e if(__GETC__(numberone) == 1) then {}
      #define __SUB__(var1,var2) var1 = var1 - var2
      
      
      
      
      //Control Macros
      #define getControl(disp,ctrl) ((findDisplay ##disp) displayCtrl ##ctrl)
      #define getSelData(ctrl) (lbData[##ctrl,(lbCurSel ##ctrl)])
      
      
      
      
      //Player based quick macros
      #define grpPlayer group player
      #define steamid getPlayerUID player
      Alles anzeigen

      6. Erstellt eine neue hpp namens veh_repaint.hpp und kopiert diese datei in eueren dialog Ordner mit folgendem Inhallt:

      C: veh_repaint.hpp
      class Life_vehicle_repaint {
       idd = 2300;
       name= "life_vehrepaint_menu";
       movingEnable = false;
       enableSimulation = true;
       //onLoad = "[] execVM 'core\client\keychain\init.sqf'";
       class controlsBackground {
       class Life_RscTitleBackground:Life_RscText {
       colorBackground[] = {0.141,0.18,0.71,1};
       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.6 - (22 / 250);
       };
       };
       class controls {
      
      
      
      
      
      
      
       class Title : Life_RscTitle {
       colorBackground[] = {0, 0, 0, 0};
       idc = 2301;
       text = "Fahrzeug umlackieren";
       x = 0.1;
       y = 0.2;
       w = 0.8;
       h = (1 / 25);
       };
       class VehicleList : Life_RscListBox 
       {
       idc = 2302;
       text = "";
       sizeEx = "(			(			(			((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 0.8)";
       colorBackground[] = {0,0,0,0};
       onLBSelChanged = "[_this] call life_fnc_Repaintcolor";
       x = 0.12; y = 0.26;
       w = 0.76; h = 0.4;
       };
       class ColorList : Life_RscCombo
       {
       idc = 2303;
       x = 0.42; y = 0.68;
       w = 0.275; h = 0.03;
       };
      
      
      
      
      
      
      
       class CloseButtonKey : Life_RscButtonMenu {
       idc = -1;
       text = "$STR_Global_Close";
       onButtonClick = "closeDialog 0;";
       x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
       y = 0.8 - (1 / 25);
       w = (6.25 / 40);
       h = (1 / 25);
       }; 
       class RepaintCar : life_RscButtonMenu {
       idc = 37458;
       text = "Repaint";
       onButtonClick = "[_this] spawn life_fnc_RepaintVehicle;";
       x = 0.26 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
       y = 0.8 - (1 / 25);
       w = (10 / 40);
       h = (1 / 25);
       };
      
      
      
      
      
      
      
       };
      };
      Alles anzeigen

      7. Ersetzt eure core/vehicle/fn_colorVehicle.sqf durch folgenden Code

      C: fn_colorVehicle.sqf
      /*
      	File: fn_colorVehicle.sqf
      	Author: Bryan "Tonic" Boardwine modified by moeck (www.lostofparadise.de)
      	Description:
      	Reskins the vehicle
      */
      private["_vehicle","_index","_texture","_texture2","_texture3","_texture4"];
      _vehicle = [_this,0,Objnull,[Objnull]] call BIS_fnc_param;
      _index = [_this,1,-1,[0]] call BIS_fnc_param;
      if(isNull _vehicle OR !alive _vehicle OR _index == -1) exitWith {};
      //Does the vehicle already have random styles? Halt till it's set.
      if(local _vehicle) then {
      	switch (typeOf _vehicle) do
      	{
      		case "C_Offroad_01_F": {[[_vehicle,"color",3,true],"TON_fnc_setObjVar",false,false] spawn life_fnc_MP;};
      		case "C_Hatchback_01_F": {[[_vehicle,"color",1,true],"TON_fnc_setObjVar",false,false] spawn life_fnc_MP;};
      		case "C_Hatchback_01_sport_F": {[[_vehicle,"color",1,true],"TON_fnc_setObjVar",false,false] spawn life_fnc_MP;};
      		case "C_SUV_01_F": {[[_vehicle,"color",1,true],"TON_fnc_setObjVar",false,false] spawn life_fnc_MP;};
      		case "C_Van_01_box_F": {[[_vehicle,"color",1,true],"TON_fnc_setObjVar",false,false] spawn life_fnc_MP;};
      		case "C_Van_01_transport_F": {[[_vehicle,"color",1,true],"TON_fnc_setObjVar",false,false] spawn life_fnc_MP;};
      	};
      };
      //Fetch texture from our present array.
      _texture = [(typeOf _vehicle)] call life_fnc_vehicleColorCfg;
      if(isNil "_texture") exitWith {};
      if(count _texture == 0) exitWith {};
      if(count (_texture select _index) > 2) then {_texture2 = (_texture select _index) select 2;};
      if(count (_texture select _index) > 3) then {_texture3 = (_texture select _index) select 3;};
      if(count (_texture select _index) > 4) then {_texture4 = (_texture select _index) select 4;};
      _texture = _texture select _index;
      if(typeName _texture == "ARRAY") then { _texture = _texture select 0;};
      //Local to us? Set it's color.
      if(local _vehicle) then
      {
      	_vehicle setVariable["Life_VEH_color",_index,true];
      };
      waitUntil{!isNil {_vehicle getVariable "Life_VEH_color"}};
      _vehicle setObjectTexture[0,_texture];
      _vehicle setObjectTextureGlobal [0,_texture];
      if(!isNil "_texture2") then
      {
      	_vehicle setObjectTexture[1,_texture2];
      	_vehicle setObjectTextureGlobal [1,_texture2];
      };
      if(!isNil "_texture3") then
      {
      	_vehicle setObjectTexture[2,_texture3];
      	_vehicle setObjectTextureGlobal [2,_texture3];
      };
      if(!isNil "_texture4") then
      {
      	_vehicle setObjectTexture[3,_texture4];
      	_vehicle setObjectTextureGlobal [3,_texture4];
      };
      if(typeOf _vehicle == "C_Offroad_01_F") then
      {
      	if(_index < 5) then
      	{
      		_vehicle setObjectTexture[1,_texture];
      	};
      };
      Alles anzeigen


      8. Öffnet eure core/configuration.sqf und fügt unter den Ausparkpreisen folgenden Zeilen ein.

      C: configuration.sqf
      life_repaint_prices =
      [
      	["B_QuadBike_01_F",1950],
      	["C_Hatchback_01_F",2400],
      	["C_Offroad_01_F",3000],
      	["B_G_Offroad_01_F",3500],
      	["C_SUV_01_F",5250],
      	["C_Van_01_transport_F",6000],
      	["C_Hatchback_01_sport_F",60000],
      	["C_Van_01_fuel_F",10000],
      	["I_Heli_Transport_02_F",405000],
      	["O_Heli_Transport_04_medevac_F",50000], //Medic
      	["O_Heli_Transport_04_F",75000], //ADAC
      	["O_Heli_Transport_04_bench_F",600000], // Rebellen
      	["O_Heli_Transport_04_fuel_F",570000], // Tanker
      	["O_Heli_Transport_04_box_F",540000], // Fracht
      	["B_Heli_Transport_03_unarmed_F",502500], //CIV Chainok
      	["B_Heli_Transport_03_F",75000], // Cop Chainok
      	["C_Kart_01_Blu_F",3750],
      	["C_Kart_01_Fuel_F",3750],
      	["C_Kart_01_Red_F",3750],
      	["C_Kart_01_Vrana_F",3750],
      	["C_Kart_01_F",3750],
      	["C_Van_01_box_F",9000],
      	["I_Truck_02_transport_F",26250],
      	["I_Truck_02_covered_F",30000],
      	["B_Truck_01_transport_F",25650],
      	["B_Truck_01_covered_F",52500],
      	["O_Truck_03_repair_F",540000],
      	["C_Offroad_02_unarmed_F",4500],
      	["B_T_LSV_01_unarmed_F",15000],
      	["O_T_LSV_02_unarmed_F",16500],
      	["C_Plane_Civil_01_F",300000],
      	["B_T_VTOL_01_infantry_F",750000],
      	["B_T_VTOL_01_vehicle_F",800000],
      	["O_T_VTOL_02_infantry_F",900000],
      	["I_C_Boat_Transport_02_F",22500],
      	["C_Scoooter_Transport_01_F",7500],
      	["O_Truck_03_device_F",999999],
      	["O_Plane_CAS_02_F",999999],
      	["O_Truck_03_ammo_F",999999],
      	["B_Truck_01_box_F",210000],
      	["O_MRAP_02_F",630000],
      	["B_Heli_Light_01_F",90000],
      	["C_Heli_Light_01_civil_F",90000],
      	["B_MRAP_01_hmg_F",10000],
      	["O_Heli_Light_02_unarmed_F",225000],
      	["C_Rubberboat",675],
      	["C_Boat_Civil_01_F",22500],
      	["B_Boat_Transport_01_F",450],
      	["C_Boat_Civil_01_police_F",3500],
      	["B_Boat_Armed_01_minigun_F",16500],
      	["B_SDV_01_F",25000],
      	["B_Truck_01_fuel_F",550000],
      	["B_Truck_01_ammo_F",225000],
      	["B_Truck_01_medical_F",30000],
      	["O_Truck_03_fuel_F",300000],
      	["O_Truck_03_transport_F",525000],
      	["I_Truck_02_fuel_F",28500],
      	["I_MRAP_03_F",999999],
      	["I_Heli_light_03_unarmed_F",30000],
      	["B_Heli_Transport_01_camo_F",10000],
      	["B_Heli_Transport_01_F",999999],
      	["O_Truck_03_covered_F",999999],
      	["B_MRAP_01_F",999999]
      ];
      __CONST__(life_repaint_prices,life_repaint_prices);
      Alles anzeigen

      9. Geht in eure dialog/MasterHandler.h und fügt folgendes ein:

      Code
      #include "veh_repaint.hpp"

      10. Öffnet eure Functions.h und fügt eine neue class hinzu:


      Code
      class anstrich
       {
       file = "core\repaint";
       class RepaintMenu;
       class Repaintcolor;
       class RepaintVehicle; 
       };

      11. Wer möchte kann noch Punkt 8 aus dem Ursprungstut übernehmen. Ich habe den Sound weggelassen.

      life_server
      1. Geht in eure config.cpp und sucht nach class MySQL und fügt folgendes darunter:

      Code
      class repaintVehicle {};

      Sucht weiter nach in Class Systems und fügt das noch ein:


      Code
      class vehicleRepaint {};

      2. Erstellt eine neue sqf namens fn_repaintVehicle.sqf und kopiert diese datei in euer Functions/MySQL Ordner mit folgendem Inhallt:


      C: fn_repaintVehicle.sqf
      /*
      
      
      
      
      
      
      
      Author: MooN-Gaming
      
      
      
      
      
      
      
      Thanks to Black lagoon developing
      
      
      
      
      
      
      
      */
      
      
      
      
      
      
      
      private["_uid","_side","_type","_className","_color","_plate","_query","_sql"];
      _uid = [_this,0,"",[""]] call BIS_fnc_param;
      _plate = [_this,1,-1,[0]] call BIS_fnc_param;
      _color = [_this,2,0,[0]] call BIS_fnc_param;
      //Stop bad data being passed.
      if(_uid == "" OR _color == -1 OR _plate == -1) exitWith {diag_log "repaintVehicle canceled!";};
      _query = format["UPDATE vehicles SET color='%1' WHERE plate='%2' AND pid='%3'",_color, _plate, _uid];
      
      
      
      
      
      
      
      waitUntil {sleep (random 0.3); !DB_Async_Active};
      _queryResult = [_query,1] call DB_fnc_asyncCall;
      Alles anzeigen

      3. Erstellt eine neue sqf namens fn_vehicleRepaint.sqf und kopiert diese datei in euer Functions/Systems Ordner mit folgendem Inhallt:

      Code: fn_vehicleRepaint.sqf
      /*
      Author: MooN-Gaming
      
      
      
      
      
      
      
      Thanks to Black lagoon Developing
      */
      private["_uid","_type","_classname","_color","_plate","_vInfo"];
      _vehicle = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param;
      _color = [_this,1,-1,[0]] call BIS_fnc_param;
      //Error checks
      if(isNull _vehicle) exitWith {diag_log "Tried to repaint null vehicle. Canceled.";};
      if(!alive _vehicle) exitWith {diag_log "Tried to repaint non alive vehicle. Canceled.";};
      _vInfo = _vehicle getVariable["dbInfo",[]];
      if(count _vInfo == 0) exitWith
      {
      diag_log "Tried to repaint a non persistent vehicle. Canceled.";
      };
      _plate = _vInfo select 1;
      _uid = _vInfo select 0;
      diag_log "Vehicle repainted.";
      [_uid,_plate,_color] call DB_fnc_repaintVehicle;
      Alles anzeigen

      Editor


      Zuletzt noch sucht ihr euch ein plätzchen aus, wo ihr gerne diesen Shop haben wollt.
      Erstellt einen neuen NPC mit folgendem INIT Befehl:

      Code
      this allowDamage false; this enableSimulation false; this addAction ["Auto umlackieren", life_fnc_RepaintMenu];


      So damit hätten wir es auch geschafft. Ich habe Euch mal die Dateien angehängt. Ich hoffe ihr könnt damit was anfangen. :thumbup:

      Gruß,
      moeck

      Dateien

      Repaint.zip 9,06 kB – 379 Downloads
    • Preis der Ausrüstung

      • moeck
      • 9. Januar 2017 um 15:21

      doch haben wir auch, z.b. beim medic haben wir zum teil die selben uniformen aber einen anderen preis ;-). Das mit der eigenen Konfig ist die einfachste lösung.

    • Huron wird nicht gespeichert

      • moeck
      • 9. Januar 2017 um 14:47

      Hast Du mal versucht einen Huron per DB in die Garage zustellen? Wird er dir dort angezeigt?

    • Huron wird nicht gespeichert

      • moeck
      • 9. Januar 2017 um 14:25

      also die vehicleStore sieht ok aus, aber ja in der vehiclecfg sollte der huron auch drin sein.

    • Zivilisten Toolkit permanent

      • moeck
      • 9. Januar 2017 um 10:58
      Code
      /*
      	File: fn_repairTruck.sqf
      	Author: Bryan "Tonic" Boardwine
      	Modified by: Play Germany
      
      	Description:
      	Main functionality for toolkits, to be revised in later version.
      */
      private["_veh","_upp","_ui","_progress","_pgText","_cP","_displayName","_test"];
      _veh = cursorTarget;
      life_interrupted = false;
      if(isNull _veh) exitwith {};
      if((_veh isKindOf "Car") OR (_veh isKindOf "Ship") OR (_veh isKindOf "Air")) then
      {
      	if("ToolKit" in (items player)) then
      	{
      		life_action_inUse = true;
      		_displayName = getText(configFile >> "CfgVehicles" >> (typeOf _veh) >> "displayName");
      		_upp = format[localize "STR_NOTF_Repairing",_displayName];
      		//Setup our progress bar.
      		disableSerialization;
      		5 cutRsc ["life_progress","PLAIN"];
      		_ui = uiNameSpace getVariable "life_progress";
      		_progress = _ui displayCtrl 38201;
      		_pgText = _ui displayCtrl 38202;
      		_pgText ctrlSetText format["%2 (1%1)...","%",_upp];
      		_progress progressSetPosition 0.01;
      		_cP = 0.01;
      
      		while{true} do
      		{
      			if(animationState player != "Acts_carFixingWheel") then {
      				player playMoveNow "Acts_carFixingWheel";
      			};
      			uiSleep 0.27;
      			_cP = _cP + 0.01;
      			_progress progressSetPosition _cP;
      			_pgText ctrlSetText format["%3 (%1%2)...",round(_cP * 100),"%",_upp];
      			if(_cP >= 1) exitWith {};
      			if(!alive player) exitWith {};
      			if(player != vehicle player) exitWith {};
      			if(life_interrupted) exitWith {};
      		};
      
      		life_action_inUse = false;
      		5 cutText ["","PLAIN"];
      		player playMoveNow "AinvPknlMstpSnonWnonDnon_medic_1";
      		uiSleep 0.1;
      		player playActionNow "Stop";
      		if(life_interrupted) exitWith {life_interrupted = false; titleText[localize "STR_NOTF_ActionCancel","PLAIN"]; life_action_inUse = false;};
      		if(player != vehicle player) exitWith {titleText[localize "STR_NOTF_RepairingInVehicle","PLAIN"];};
      		if(playerSide in [civilian,east]) then {player removeItem "ToolKit"}; <<<---- Hier wird das Toolkit gelöscht ;-)
      		_veh setDamage 0;
      		titleText[localize "STR_NOTF_RepairedVehicle","PLAIN"];
      	};
      };
      Alles anzeigen

      hab die Stelle mal markiert ;)

    • Signature check timed out

      • moeck
      • 9. Januar 2017 um 10:49

      it is a client problem. maybe they have to restart the game or reinstall battleeye.

    • datenbank probleme

      • moeck
      • 9. Januar 2017 um 10:47
      Zitat von SmokeTV

      2017-01-06 16:31:56 3556 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.

      Also Du solltest auf jeden Fall mal die Konfig der DB anpassen und den Speicher von 16MB auf 20 erhöhen. Dann sieht es für mich erstmal auch so aus als ob da noch ein Fehler in der DB Konfig ist. Du startest die DB ohne IP und Port. Hast Du schon mal versucht mit einen DB-Tool an die DB ranzukommen? Normalerweise ist bei der Installation ein PHPMyAdmin dabei zum anlegen von DBs.

    • Preis der Ausrüstung

      • moeck
      • 9. Januar 2017 um 10:36

      Naja ich glaube es geht eher darum, dass es unterschiedliche Shops mit unterschiedlichen Preis für das selbe Item gibt. Eventuell musste noch eine Prüfung der Lizenzen mit einbauen, damit er einen bestimmten Preis herausholt ;)

    • Custom Rucksack Load

      • moeck
      • 9. Januar 2017 um 10:31

      Du solltest mal notepad++ oder einen anderen Texteditor verwenden. Mit Word oder einem anderem Schreibprogramm (OpenOffice, ...) solltest Du auf keinen Fall die Dateien modifizieren.

      Code
      #include "..\..\script_macros.hpp"
      /*
       File: fn_loadGear.sqf
       Author: Bryan "Tonic" Boardwine
      
      
      
      
       Description:
       Loads saved civilian gear, this is limited for a reason and that's balance.
      */
      private ["_itemArray","_handle"];
      _itemArray = life_gear;
      waitUntil {!(isNull (findDisplay 46))};
      
      
      
      
      _handle = [] spawn life_fnc_stripDownPlayer;
      waitUntil {scriptDone _handle};
      
      
      
      
      if (count _itemArray isEqualTo 0) exitWith {
       switch (playerSide) do {
       case west: {
       [] call life_fnc_copLoadout;
       };
      
      
      
      
       case civilian: {
       [] call life_fnc_civLoadout;
       };
      
      
      
      
       case independent: {
       [] call life_fnc_medicLoadout;
       };
       };
      };
      
      
      
      
      _itemArray params [
       "_uniform",
       "_vest",
       "_backpack",
       "_goggles",
       "_headgear",
       ["_items",[]],
       "_prim",
       "_seco",
       ["_uItems",[]],
       ["_uMags",[]],
       ["_bItems",[]],
       ["_bMags",[]],
       ["_vItems",[]],
       ["_vMags",[]],
       ["_pItems",[]],
       ["_hItems",[]],
       ["_yItems",[]]
      ];
      
      
      
      
      if (!(_goggles isEqualTo "")) then {_handle = [_goggles,true,false,false,false] spawn life_fnc_handleItem; waitUntil {scriptDone _handle};};
      if (!(_headgear isEqualTo "")) then {_handle = [_headgear,true,false,false,false] spawn life_fnc_handleItem; waitUntil {scriptDone _handle};};
      if (!(_uniform isEqualTo "")) then {_handle = [_uniform,true,false,false,false] spawn life_fnc_handleItem; waitUntil {scriptDone _handle};};
      if (!(_vest isEqualTo "")) then {_handle = [_vest,true,false,false,false] spawn life_fnc_handleItem; waitUntil {scriptDone _handle};};
      if (!(_backpack isEqualTo "")) then {_handle = [_backpack,true,false,false,false] spawn life_fnc_handleItem; waitUntil {scriptDone _handle};};
      
      
      
      
      /* Hotfix for losing virtual items on login */
      if (!isNil {(_this select 0)}) then {
       life_maxWeight = life_maxWeight + (round(FETCH_CONFIG2(getNumber,"CfgVehicles",(backpack player),"maximumload") / 4));
      };
      
      
      
      
      {_handle = [_x,true,false,false,false] spawn life_fnc_handleItem; waitUntil {scriptDone _handle};} forEach _items;
      
      
      
      
      {player addItemToUniform _x;} forEach (_uItems);
      {(uniformContainer player) addItemCargoGlobal [_x,1];} forEach (_uMags);
      {player addItemToVest _x;} forEach (_vItems);
      {(vestContainer player) addItemCargoGlobal [_x,1];} forEach (_vMags);
      {player addItemToBackpack _x;} forEach (_bItems);
      {(backpackContainer player) addItemCargoGlobal [_x,1];} forEach (_bMags);
      life_maxWeight = 100;
      
      
      
      
      {
       [true,(_x select 0),(_x select 1)] call life_fnc_handleInv;
      } forEach (_yItems);
      
      
      
      
      life_maxWeight = LIFE_SETTINGS(getNumber,"total_maxWeight");
      /* Réglage de la capacité en fonction des sac à dos */
      [] spawn
      {
       while{true} do
       {
       waitUntil {!(EQUAL(backpack player,""))};
       _bp = backpack player;
       _cfg = FETCH_CONFIG2(getNumber,CONFIG_VEHICLES,_bp,"maximumload");
       _load = round(_cfg / 4);
       if(EQUAL(backpack player,"B_OutdoorPack_blk")) then { _load = 20; };
       if(EQUAL(backpack player,"B_AssaultPack_khk")) then { _load = 30; }; 
       if(EQUAL(backpack player,"B_AssaultPack_dgtl")) then { _load = 30; };
       if(EQUAL(backpack player,"B_AssaultPack_rgr")) then { _load = 30; }; 
       if(EQUAL(backpack player,"B_AssaultPack_sgg")) then { _load = 30; };
       if(EQUAL(backpack player,"B_AssaultPack_blk")) then { _load = 30; };
       if(EQUAL(backpack player,"B_AssaultPack_cbr")) then { _load = 30; };
       if(EQUAL(backpack player,"B_AssaultPack_mcamo")) then { _load = 30; };
       if(EQUAL(backpack player,"B_AssaultPack_tna_f")) then { _load = 30; };
       if(EQUAL(backpack player,"B_TacticalPack_oli")) then { _load = 35; };
       if(EQUAL(backpack player,"B_Kitbag_mcamo")) then { _load = 40; };
       if(EQUAL(backpack player,"B_Kitbag_ssg")) then { _load = 40; };
       if(EQUAL(backpack player,"B_Kitbag_cbr")) then { _load = 40; };
       if(EQUAL(backpack player,"B_FieldPack_blk")) then { _load = 45; };
       if(EQUAL(backpack player,"B_FieldPack_ocamo")) then { _load = 45; };
       if(EQUAL(backpack player,"B_FieldPack_oucamo")) then { _load = 45; };
       if(EQUAL(backpack player,"B_FieldPack_ghex_f")) then { _load = 45; };
       if(EQUAL(backpack player,"B_Bergen_sgg")) then { _load = 50; };
       if(EQUAL(backpack player,"B_Bergen_mcamo")) then { _load = 50; }; 
       if(EQUAL(backpack player,"B_Bergen_rgr")) then { _load = 50; }; 
       if(EQUAL(backpack player,"B_Bergen_blk")) then { _load = 50; }; 
       if(EQUAL(backpack player,"B_Carryall_ocamo")) then { _load = 60; };
       if(EQUAL(backpack player,"B_Carryall_oucamo")) then { _load = 60; }; 
       if(EQUAL(backpack player,"B_Carryall_mcamo")) then { _load = 60; };
       if(EQUAL(backpack player,"B_Carryall_oli")) then { _load = 60; };
       if(EQUAL(backpack player,"B_Carryall_khk")) then { _load = 60; };
       if(EQUAL(backpack player,"B_Carryall_cbr")) then { _load = 60; };
       if(EQUAL(backpack player,"B_Carryall_ghex_f")) then { _load = 60; };
       if(EQUAL(backpack player,"B_Bergen_dgtl_f")) then { _load = 75; };
       if(EQUAL(backpack player,"B_Bergen_tna_f")) then { _load = 75; };
       life_maxWeight = life_minWeight + _load;
       waitUntil {!(EQUAL(backpack player,_bp))};
       if(EQUAL(backpack player,"")) then {
       life_maxWeight = life_minWeight;
       };
       };
      };
      
      
      
      
      //Primary & Secondary (Handgun) should be added last as magazines do not automatically load into the gun.
      if (!(_prim isEqualTo "")) then {_handle = [_prim,true,false,false,false] spawn life_fnc_handleItem; waitUntil {scriptDone _handle};};
      if (!(_seco isEqualTo "")) then {_handle = [_seco,true,false,false,false] spawn life_fnc_handleItem; waitUntil {scriptDone _handle};};
      
      
      
      
      {
       if (!(_x isEqualTo "")) then {
       player addPrimaryWeaponItem _x;
       };
      } forEach (_pItems);
      {
       if (!(_x isEqualTo "")) then {
       player addHandgunItem _x;
       };
      } forEach (_hItems);
      
      
      
      
      [] call life_fnc_playerSkins;
      Alles anzeigen

      anbei mal die Korrektur.

    • Huron wird nicht gespeichert

      • moeck
      • 9. Januar 2017 um 10:29

      Moin,

      ich kann erstmal keinen Fehler im Log sehen. Hast Du schon mal in den Client Logs geschaut? Normalerweise macht es keinen Unterschied welches Fahrzeug Du in die Garage stellst. Das Script ist immer das selbe.
      Schau mal in life_server\Functions\Systems\fn_vehicleStore.sqf ob da eventuell was zum Huron drin steht.

      Gruß,
      moeck

    • [Tutorial] Umlackierungsshop

      • moeck
      • 8. Januar 2017 um 02:42

      Moin,

      so ich haben den PaintShop mal komplett überarbeitet, so dass man alle Fahrzeuge neulackieren kann. Den einen oder anderen Bugfix gab es gleich mit dazu ;-). Ich werde das Ganze in den nächsten Tagen mal aufbereiten und hier zur Verfügung stellen sofern Interesse besteht.

      Gruß,
      moeck

    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™