1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Fr: 16 Mai 2025
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Forum
    3. Gameserver & Hosting
    4. ArmA Series - ArmA 3 / Reforger
    5. Hilfeforum

    DR. Schild und Garge Frage

    • taker9999
    • 28. November 2017 um 13:06
    • Geschlossen
    • Erledigt
    • taker9999
      Nerd
      Reaktionen
      137
      Trophäen
      9
      Beiträge
      324
      Dateien
      1
      Bilder
      214
      • 28. November 2017 um 13:06
      • #1

      Moin. Ich habe 2 Frage und hoffe mir kann wer weiter helfen

      1. Wie bekomme ich DR Schild umgeschrieben das er ACE zurücksetzt? Habe davon schon mal was gelesen aber ich habe nicht verstanden wie ich den Kram nun einfügen muss. (Link)

      2. Mir Kamm eine Idee nur haperst es an der Umsetzung. Wie bekomme ich die Garage in eine 3d Ansicht? Wie beim Auto Laden.

      Ich verwende die Altis Life 5.0.0 Hier aus dem Forum. Wenn weiteres Benötigt wird einfach anfragen.

      Rechtschreibfehler bitte in einen sack diesen Gut verschließen und in eine Schlucht werfen.:saint:

    • Zeilord
      Fortgeschrittener
      Reaktionen
      71
      Trophäen
      8
      Beiträge
      333
      Bilder
      24
      • 28. November 2017 um 13:24
      • #2

      Hey zu eins schau mal bei Spieler hilft Spieler mal genau nach

      da gibt es zu deine Frage schon eine Antwort einfach ACE bei der suche eingeben

      und durch schauen

      wegen das zweite das änderst du in der Master Confi da musst du nur was von false auf True setzen musst mal schauen da musste

      was mit 3D setehen

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 28. November 2017 um 13:55
      • #3

      Zeilord und taker9999 für die Garage habe ich noch keinen "3D Shop" gesehen kann man aber bestimmt umsetzen. Dazu müsste man aber den Garagenkramm umschreiben

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • Arcasis
      Anfänger
      Reaktionen
      6
      Trophäen
      9
      Beiträge
      53
      • 28. November 2017 um 14:14
      • #4
      Zitat von Zeilord

      wegen das zweite das änderst du in der Master Confi da musst du nur was von false auf True setzen musst mal schauen da musste

      was mit 3D setehen

      nicht ganz, von True auf False ist nur für den autoshop, für die Garage ist es nicht vorgeschrieben.

    • Zeilord
      Fortgeschrittener
      Reaktionen
      71
      Trophäen
      8
      Beiträge
      333
      Bilder
      24
      • 28. November 2017 um 14:20
      • #5
      Zitat von moeck

      Zeilord und taker9999 für die Garage habe ich noch keinen "3D Shop" gesehen kann man aber bestimmt umsetzen. Dazu müsste man aber den Garagenkramm umschreiben

      Oh XD Kacke da habe ich mich verlessen XD Dachte mein denn SHop XD ok auch gut XD

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 28. November 2017 um 14:38
      • #6

      Wenn man das auch für die Garage nutzen möchte muss man zum einen den Garagen Dialog umschreiben und im Prinzip die 3D Sachen aus dem Shop integrieren. Hier stellt sich mir allerdings die Frage welchen Vorteil das bringen soll ;) . Leider habe ich momentan auch nicht die Zeit mir das ausführlich anzuschauen, aber schwer dürfte das eigentlich nicht sein.

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • taker9999
      Nerd
      Reaktionen
      137
      Trophäen
      9
      Beiträge
      324
      Dateien
      1
      Bilder
      214
      • 28. November 2017 um 14:53
      • #7

      Zu 1 am okay ich such mal weiter.

      Zu 2 Ich versuch heute Abend mal was. Ich weiß aber absolut nicht ob ich das hin bekomme. Aber wer nicht wagt der nicht verliert.

      Rechtschreibfehler bitte in einen sack diesen Gut verschließen und in eine Schlucht werfen.:saint:

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 28. November 2017 um 14:54
      • #8

      Nagut, das Ganze dürfte doch simpler sein als ich dachte. Allerdings übernehme ich mal keine Garantie da ich es nicht getestet habe ^^

      Ich habe baue das jetzt einfach mal ein, der Dialog muss dann aber noch angepasst werden, da er sich aktuell mittig befindet und wahrscheinlich das Ganze einwenig überdeckt

      So dann hier mal der Ansatz ^^

      1. impound.hpp

      C: \dialog\impound.hpp
      class Life_impound_menu {
          idd = 2800;
          name="life_vehicle_shop";
          movingEnable = 0;
          enableSimulation = 1;
          onLoad = "ctrlShow [2330,false];";
          onUnLoad = "[] call life_fnc_vehicleShopEnd3DPreview";
      
          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 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);
              };
          };
      };
      Alles anzeigen

      2. fn_impoundMenu.sqf

      C: \dialog\function\impoundMenu.hpp
      #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).
      */
      private ["_vehicles","_control"];
      disableSerialization;
      _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"];
      };
      
      _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)];
          _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;
      if (LIFE_SETTINGS(getNumber,"vehicleShop_3D") isEqualTo 1) then {
        [] call life_fnc_vehicleShopInit3DPreview;
      };
      ctrlShow[2810,false];
      ctrlShow[2811,false];
      Alles anzeigen

      3. fn_garageLBChange.sqf

      C: \dialog\function\garageLBChange.sqf
      #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;
      private ["_control","_index","_className","_classNameLife","_dataArr","_vehicleColor","_vehicleInfo","_trunkSpace","_sellPrice","_retrievePrice","_sellMultiplier","_price","_storageFee","_purchasePrice"];
      _control = _this select 0;
      _index = _this select 1;
      
      //Fetch some information.
      _dataArr = CONTROL_DATAI(_control,_index);
      _dataArr = call compile format ["%1",_dataArr];
      _className = (_dataArr select 0);
      _classNameLife = _className;
      
      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];
      };
      
      _vehicleColor = ((M_CONFIG(getArray,"LifeCfgVehicles",_classNameLife,"textures") select (_dataArr select 1)) select 0);
      if (isNil "_vehicleColor") then {_vehicleColor = "Default";};
      
      _vehicleInfo = [_className] call life_fnc_fetchVehInfo;
      _trunkSpace = [_className] call life_fnc_vehicleWeightCfg;
      
      _price = M_CONFIG(getNumber,"LifeCfgVehicles",_classNameLife,"price");
      _storageFee = LIFE_SETTINGS(getNumber,"vehicle_storage_fee_multiplier");
      
      switch (playerSide) do {
          case civilian: {
              _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_CIVILIAN");
              _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_CIVILIAN");
          };
          case west: {
              _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_COP");
              _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_COP");
          };
          case independent: {
              _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_MEDIC");
              _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_MEDIC");
          };
          case east: {
              _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_OPFOR");
              _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_OPFOR");
          };
      };
      _retrievePrice = _purchasePrice * _storageFee;
      _sellPrice = _purchasePrice * _sellMultiplier;
      
      if (!(_sellPrice isEqualType 0) || _sellPrice < 1) then {_sellPrice = 500;};
      if (!(_retrievePrice isEqualType 0) || _retrievePrice < 1) then {_retrievePrice = 500;};
      [_className] call life_fnc_vehicleShop3DPreview;
      (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/>
          " +(localize "STR_Shop_Veh_UI_Color")+ " %8<br/>
          " +(localize "STR_Shop_Veh_UI_MaxSpeed")+ " %3 km/h<br/>
          " +(localize "STR_Shop_Veh_UI_HPower")+ " %4<br/>
          " +(localize "STR_Shop_Veh_UI_PSeats")+ " %5<br/>
          " +(localize "STR_Shop_Veh_UI_Trunk")+ " %6<br/>
          " +(localize "STR_Shop_Veh_UI_Fuel")+ " %7
          ",
      [_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
      ];
      
      ctrlShow [2803,true];
      ctrlShow [2830,true];
      Alles anzeigen

      Also mit ein wenig Glück sollte das schon reichen und die Garage hat eine 3D Ansicht

      Gruß,

      moeck

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 28. November 2017 um 15:11
      • #9

      achso man könnte natürlich die Einstellungen aus dem Vehicle Shop übernehmen wenn man sich keine Arbeit machen möchte

      Da ich hier gerade nix zum testen habe könnte der Dialog komisch aussehen

      C: \dialog\impound.hpp
      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.809375 * safezoneW + safezoneX;
                  y = 0.06 * safezoneH + safezoneY;
                  w = 0.190781 * safezoneW;
                  h = 0.341 * safezoneH;
              };
      
              class MainBackground: Life_RscText {
                  colorBackground[] = {0,0,0,0.7};
                  idc = -1;
                  x = 0.0204687 * safezoneW + safezoneX;
                  y = 0.06 * safezoneH + safezoneY;
                  w = 0.149531 * safezoneW;
                  h = 0.638 * safezoneH;
              };
      
              class Title: Life_RscTitle {
                  idc = 2801;
                  text = "$STR_GUI_Garage";
                  x = 0.0204687 * safezoneW + safezoneX;
                  y = 0.027 * safezoneH + safezoneY;
                  w = 0.144375 * safezoneW;
                  h = 0.033 * safezoneH;
              };
      
              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.0204687 * safezoneW + safezoneX;
                  y = 0.06 * safezoneH + safezoneY;
                  w = 0.149531 * safezoneW;
                  h = 0.033 * safezoneH;
              };
      
              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.809375 * safezoneW + safezoneX;
                  y = 0.058 * safezoneH + safezoneY;
                  w = 0.190781 * safezoneW;
                  h = 0.022 * safezoneH;
              };
      
              class CloseBtn: Life_RscButtonMenu {
                  idc = -1;
                  text = "$STR_Global_Close";
                  onButtonClick = "closeDialog 0;";
                   x = 0.0204687 * safezoneW + safezoneX;
                  y = 0.669387 * safezoneH + safezoneY;
                  w = 0.0721724 * safezoneW;
                  h = 0.0219957 * safezoneH;
              };
      
              class RetrieveCar: Life_RscButtonMenu {
                  idc = -1;
                  text = "$STR_Global_Retrieve";
                  onButtonClick = "[] call life_fnc_unimpound;";
                  x = 0.0964687 * safezoneW + safezoneX;
                  y = 0.636393 * safezoneH + safezoneY;
                  w = 0.0721724 * safezoneW;
                  h = 0.0219957 * safezoneH;
              };
      
              class SellCar: Life_RscButtonMenu {
                  idc = -1;
                  text = "$STR_Global_Sell";
                  onButtonClick = "[] call life_fnc_sellGarage; closeDialog 0;";
                  x = 0.0204687 * safezoneW + safezoneX;
                  y = 0.636393 * safezoneH + safezoneY;
                  w = 0.0721724 * safezoneW;
                  h = 0.0219957 * safezoneH;
              };
          };
      
          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.023487 * safezoneW + safezoneX;
                  y = 0.095 * safezoneH + safezoneY;
                  w = 0.144375 * safezoneW;
                  h = 0.50 * safezoneH;
              };
      
              class vehicleInfomationList: Life_RscStructuredText {
                  idc = 2803;
                  text = "";
                  sizeEx = 0.035;
                  x = 0.819688 * safezoneW + safezoneX;
                  y = 0.104 * safezoneH + safezoneY;
                  w = 0.175313 * safezoneW;
                  h = 0.275 * safezoneH;
              };
      
              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);
              };
          };
      };
      Alles anzeigen

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • taker9999
      Nerd
      Reaktionen
      137
      Trophäen
      9
      Beiträge
      324
      Dateien
      1
      Bilder
      214
      • 28. November 2017 um 16:08
      • #10

      Ich teste das heute Abend und wenn ich es Hinbekommen. Dann melde ich mich. Ich werde auch Veränderungen dann mitteilen.

      Rechtschreibfehler bitte in einen sack diesen Gut verschließen und in eine Schlucht werfen.:saint:

    • C0kkie
      Anfänger
      Reaktionen
      8
      Trophäen
      9
      Beiträge
      37
      Bilder
      24
      • 28. November 2017 um 16:12
      • #11

      Dr Schild & Ace = fn_healhospital -> [player, player] call ACE_medical_fnc_treatmentAdvanced_fullHealLocal;

      im abteil wo if (_action) is

    • Zeilord
      Fortgeschrittener
      Reaktionen
      71
      Trophäen
      8
      Beiträge
      333
      Bilder
      24
      • 28. November 2017 um 16:37
      • #12

      Wegen das erste hier:

      In dein Schild in der Init machst du folgendes rein

      Code
      this enableSimulation false; this allowDamage false; this addAction[localize"STR_MAR_Medical_Assistance",life_fnc_healHospital,"",1.5,false,false,"",'isNull objectParent player && player distance _target < 5'];

      dann suchst du in deiner Misson PPO

      mal nach fn_healHospital

      und tauscht die mit das hier aus

      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_healHospital.sqf
          Author: Bryan "Tonic" Boardwine
          Reworked: Jesse "TKCJesse" Schultz
      
          Description:
          Prompts user with a confirmation dialog to heal themselves.
          Used at the hospitals to restore health to full.
          Note: Dialog helps stop a few issues regarding money loss.
      */
      private ["_healCost","_action","_medics"];
      if (life_action_inUse) exitWith {hint localize "STR_NOTF_HS_FullHealth"};
      
      if (independent countSide playableUnits >= 3) exitwith {hint localize "STR_NOTF_HS_ToManyMedics"};
      
      //if ((damage player) < 0.01) exitWith {hint localize "STR_NOTF_HS_FullHealth"};
      _healCost = LIFE_SETTINGS(getNumber,"hospital_heal_fee");
      if (CASH < _healCost) exitWith {hint format[localize "STR_NOTF_HS_NoCash",[_healCost] call life_fnc_numberText];};
      
      life_action_inUse = true;
      _action = [
          format [localize "STR_NOTF_HS_PopUp",[_healCost] call life_fnc_numberText],
          localize "STR_NOTF_HS_TITLE",
          localize "STR_Global_Yes",
          localize "STR_Global_No"
      ] call BIS_fnc_guiMessage;
      
      if (_action) then {
          titleText[localize "STR_NOTF_HS_Healing","PLAIN"];
          closeDialog 0;
          uiSleep 8;
          if (player distance (_this select 0) > 5) exitWith {life_action_inUse = false; titleText[localize "STR_NOTF_HS_ToFar","PLAIN"]};
          titleText[localize "STR_NOTF_HS_Healed","PLAIN"];
          player setDamage 0;
          [player,player] call ACE_medical_fnc_treatmentAdvanced_fullHealLocal;
          CASH = CASH - _healCost;
          life_action_inUse = false;
      } else {
          hint localize "STR_NOTF_ActionCancel";
          closeDialog 0;
          life_action_inUse = false;
      };
      Alles anzeigen

      und dann sollte es gehen

    • taker9999
      Nerd
      Reaktionen
      137
      Trophäen
      9
      Beiträge
      324
      Dateien
      1
      Bilder
      214
      • 18. Februar 2018 um 16:30
      • #13
      Zitat von moeck

      Nagut, das Ganze dürfte doch simpler sein als ich dachte. Allerdings übernehme ich mal keine Garantie da ich es nicht getestet habe ^^

      Ich habe baue das jetzt einfach mal ein, der Dialog muss dann aber noch angepasst werden, da er sich aktuell mittig befindet und wahrscheinlich das Ganze einwenig überdeckt

      So dann hier mal der Ansatz ^^

      1. impound.hpp

      C: \dialog\impound.hpp
      class Life_impound_menu {
          idd = 2800;
          name="life_vehicle_shop";
          movingEnable = 0;
          enableSimulation = 1;
          onLoad = "ctrlShow [2330,false];";
          onUnLoad = "[] call life_fnc_vehicleShopEnd3DPreview";
      
          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 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);
              };
          };
      };
      Alles anzeigen

      2. fn_impoundMenu.sqf

      C: \dialog\function\impoundMenu.hpp
      #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).
      */
      private ["_vehicles","_control"];
      disableSerialization;
      _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"];
      };
      
      _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)];
          _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;
      if (LIFE_SETTINGS(getNumber,"vehicleShop_3D") isEqualTo 1) then {
        [] call life_fnc_vehicleShopInit3DPreview;
      };
      ctrlShow[2810,false];
      ctrlShow[2811,false];
      Alles anzeigen

      3. fn_garageLBChange.sqf

      C: \dialog\function\garageLBChange.sqf
      #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;
      private ["_control","_index","_className","_classNameLife","_dataArr","_vehicleColor","_vehicleInfo","_trunkSpace","_sellPrice","_retrievePrice","_sellMultiplier","_price","_storageFee","_purchasePrice"];
      _control = _this select 0;
      _index = _this select 1;
      
      //Fetch some information.
      _dataArr = CONTROL_DATAI(_control,_index);
      _dataArr = call compile format ["%1",_dataArr];
      _className = (_dataArr select 0);
      _classNameLife = _className;
      
      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];
      };
      
      _vehicleColor = ((M_CONFIG(getArray,"LifeCfgVehicles",_classNameLife,"textures") select (_dataArr select 1)) select 0);
      if (isNil "_vehicleColor") then {_vehicleColor = "Default";};
      
      _vehicleInfo = [_className] call life_fnc_fetchVehInfo;
      _trunkSpace = [_className] call life_fnc_vehicleWeightCfg;
      
      _price = M_CONFIG(getNumber,"LifeCfgVehicles",_classNameLife,"price");
      _storageFee = LIFE_SETTINGS(getNumber,"vehicle_storage_fee_multiplier");
      
      switch (playerSide) do {
          case civilian: {
              _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_CIVILIAN");
              _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_CIVILIAN");
          };
          case west: {
              _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_COP");
              _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_COP");
          };
          case independent: {
              _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_MEDIC");
              _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_MEDIC");
          };
          case east: {
              _purchasePrice = _price * LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_OPFOR");
              _sellMultiplier = LIFE_SETTINGS(getNumber,"vehicle_sell_multiplier_OPFOR");
          };
      };
      _retrievePrice = _purchasePrice * _storageFee;
      _sellPrice = _purchasePrice * _sellMultiplier;
      
      if (!(_sellPrice isEqualType 0) || _sellPrice < 1) then {_sellPrice = 500;};
      if (!(_retrievePrice isEqualType 0) || _retrievePrice < 1) then {_retrievePrice = 500;};
      [_className] call life_fnc_vehicleShop3DPreview;
      (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/>
          " +(localize "STR_Shop_Veh_UI_Color")+ " %8<br/>
          " +(localize "STR_Shop_Veh_UI_MaxSpeed")+ " %3 km/h<br/>
          " +(localize "STR_Shop_Veh_UI_HPower")+ " %4<br/>
          " +(localize "STR_Shop_Veh_UI_PSeats")+ " %5<br/>
          " +(localize "STR_Shop_Veh_UI_Trunk")+ " %6<br/>
          " +(localize "STR_Shop_Veh_UI_Fuel")+ " %7
          ",
      [_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
      ];
      
      ctrlShow [2803,true];
      ctrlShow [2830,true];
      Alles anzeigen

      Also mit ein wenig Glück sollte das schon reichen und die Garage hat eine 3D Ansicht

      Gruß,

      moeck

      Alles anzeigen

      Ich habe nach langem mal wieder weiter machen können. Ich habe nun die Garage soweit eingebaut und es Funktioniert auch soweit das ich das Fahrzeug einmal Ausparken konnte. Danach gehst nicht mehr

      Zitat von moeck

      achso man könnte natürlich die Einstellungen aus dem Vehicle Shop übernehmen wenn man sich keine Arbeit machen möchte

      Da ich hier gerade nix zum testen habe könnte der Dialog komisch aussehen

      C: \dialog\impound.hpp
      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.809375 * safezoneW + safezoneX;
                  y = 0.06 * safezoneH + safezoneY;
                  w = 0.190781 * safezoneW;
                  h = 0.341 * safezoneH;
              };
      
              class MainBackground: Life_RscText {
                  colorBackground[] = {0,0,0,0.7};
                  idc = -1;
                  x = 0.0204687 * safezoneW + safezoneX;
                  y = 0.06 * safezoneH + safezoneY;
                  w = 0.149531 * safezoneW;
                  h = 0.638 * safezoneH;
              };
      
              class Title: Life_RscTitle {
                  idc = 2801;
                  text = "$STR_GUI_Garage";
                  x = 0.0204687 * safezoneW + safezoneX;
                  y = 0.027 * safezoneH + safezoneY;
                  w = 0.144375 * safezoneW;
                  h = 0.033 * safezoneH;
              };
      
              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.0204687 * safezoneW + safezoneX;
                  y = 0.06 * safezoneH + safezoneY;
                  w = 0.149531 * safezoneW;
                  h = 0.033 * safezoneH;
              };
      
              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.809375 * safezoneW + safezoneX;
                  y = 0.058 * safezoneH + safezoneY;
                  w = 0.190781 * safezoneW;
                  h = 0.022 * safezoneH;
              };
      
              class CloseBtn: Life_RscButtonMenu {
                  idc = -1;
                  text = "$STR_Global_Close";
                  onButtonClick = "closeDialog 0;";
                   x = 0.0204687 * safezoneW + safezoneX;
                  y = 0.669387 * safezoneH + safezoneY;
                  w = 0.0721724 * safezoneW;
                  h = 0.0219957 * safezoneH;
              };
      
              class RetrieveCar: Life_RscButtonMenu {
                  idc = -1;
                  text = "$STR_Global_Retrieve";
                  onButtonClick = "[] call life_fnc_unimpound;";
                  x = 0.0964687 * safezoneW + safezoneX;
                  y = 0.636393 * safezoneH + safezoneY;
                  w = 0.0721724 * safezoneW;
                  h = 0.0219957 * safezoneH;
              };
      
              class SellCar: Life_RscButtonMenu {
                  idc = -1;
                  text = "$STR_Global_Sell";
                  onButtonClick = "[] call life_fnc_sellGarage; closeDialog 0;";
                  x = 0.0204687 * safezoneW + safezoneX;
                  y = 0.636393 * safezoneH + safezoneY;
                  w = 0.0721724 * safezoneW;
                  h = 0.0219957 * safezoneH;
              };
          };
      
          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.023487 * safezoneW + safezoneX;
                  y = 0.095 * safezoneH + safezoneY;
                  w = 0.144375 * safezoneW;
                  h = 0.50 * safezoneH;
              };
      
              class vehicleInfomationList: Life_RscStructuredText {
                  idc = 2803;
                  text = "";
                  sizeEx = 0.035;
                  x = 0.819688 * safezoneW + safezoneX;
                  y = 0.104 * safezoneH + safezoneY;
                  w = 0.175313 * safezoneW;
                  h = 0.275 * safezoneH;
              };
      
              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);
              };
          };
      };
      Alles anzeigen

      Außerdem musste ich den Dialog etwas umschreiben.

      C: \dialog\impound.hpp
      class Life_impound_menu {
         idd = 2800;
         name = "Life_impound_menu";
         movingenable = 0;
         enablesimulation = 1;
         onload = "ctrlShow [2330,false];";
         onunload = "[] call life_fnc_vehicleShopEnd3DPreview";
         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.809375 * safezoneW + safezoneX;
                 y = 0.06 * safezoneH + safezoneY;
                 w = 0.190781 * safezoneW;
                 h = 0.341 * safezoneH;
             };
             class MainBackground : Life_RscText
             {
                 colorbackground[] = {0,0,0,0.7};
                 idc = -1;
                 x = 0.0204687 * safezoneW + safezoneX;
                 y = 0.06 * safezoneH + safezoneY;
                 w = 0.149531 * safezoneW;
                 h = 0.638 * safezoneH;
             };
             class Title : Life_RscTitle
             {
                 idc = 2801;
                 text = "$STR_GUI_Garage";
                 x = 0.0204687 * safezoneW + safezoneX;
                 y = 0.027 * safezoneH + safezoneY;
                 w = 0.144375 * safezoneW;
                 h = 0.033 * safezoneH;
             };
             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.0204687 * safezoneW + safezoneX;
                 y = 0.06 * safezoneH + safezoneY;
                 w = 0.149531 * safezoneW;
                 h = 0.033 * safezoneH;
             };
             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.809375 * safezoneW + safezoneX;
                 y = 0.058 * safezoneH + safezoneY;
                 w = 0.190781 * safezoneW;
                 h = 0.022 * safezoneH;
             };
             class CloseBtn : Life_RscButtonMenu
             {
                 text = "$STR_Global_Close";
                 onbuttonclick = "closeDialog 0;";
                 x = 0.0204687 * safezoneW + safezoneX;
                 y = 0.669387 * safezoneH + safezoneY;
                 w = 0.0721724 * safezoneW;
                 h = 0.0219957 * safezoneH;
             };
             class RetrieveCar : Life_RscButtonMenu
             {
                 text = "$STR_Global_Retrieve";
                 onbuttonclick = "[] call life_fnc_unimpound;";
                 x = 0.0964687 * safezoneW + safezoneX;
                 y = 0.636393 * safezoneH + safezoneY;
                 w = 0.0721724 * safezoneW;
                 h = 0.0219957 * safezoneH;
             };
             class SellCar : Life_RscButtonMenu
             {
                 text = "$STR_Global_Sell";
                 onbuttonclick = "[] call life_fnc_sellGarage; closeDialog 0;";
                 x = 0.0204687 * safezoneW + safezoneX;
                 y = 0.636393 * safezoneH + safezoneY;
                 w = 0.0721724 * safezoneW;
                 h = 0.0219957 * safezoneH;
             };
         };
         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.023487 * safezoneW + safezoneX;
                 y = 0.095 * safezoneH + safezoneY;
                 w = 0.144375 * safezoneW;
                 h = 0.50 * safezoneH;
             };
             class vehicleInfomationList : Life_RscStructuredText
             {
                 idc = 2803;
                 sizeex = 0.035;
                 x = 0.819688 * safezoneW + safezoneX;
                 y = 0.104 * safezoneH + safezoneY;
                 w = 0.175313 * safezoneW;
                 h = 0.275 * safezoneH;
             };
             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);
             };
         };
      };
      Alles anzeigen

      Meine RPT Log hänge ich mal an

      MFG

      taker

      Dateien

      arma3server_x64_2018-02-18_15-14-50.rpt 220,96 kB – 149 Downloads

      Rechtschreibfehler bitte in einen sack diesen Gut verschließen und in eine Schlucht werfen.:saint:

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 18. Februar 2018 um 19:09
      • #14

      Moin,

      Code
      Error in expression <,((_parts select 0) select _i)],_damage select _i];
      };
      };
      
      
      
      
      
      if ((_vInfo selec>
        Error position: <select _i];
      };
      };
      
      
      
      
      
      if ((_vInfo selec>
        Error Generic error in expression
      File \life_server\Functions\Systems\fn_spawnVehicle.sqf [TON_fnc_spawnVehicle], line 275
      Alles anzeigen

      da ist dein Garagenfehler. Da passt was im life_server (fn_spawnVehicle) nicht.

      Gruß,

      moeck

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • taker9999
      Nerd
      Reaktionen
      137
      Trophäen
      9
      Beiträge
      324
      Dateien
      1
      Bilder
      214
      • 18. Februar 2018 um 19:12
      • #15
      Zitat von moeck

      Moin,

      Code
      Error in expression <,((_parts select 0) select _i)],_damage select _i];
      };
      };
      
      
      
      
      
      if ((_vInfo selec>
        Error position: <select _i];
      };
      };
      
      
      
      
      
      if ((_vInfo selec>
        Error Generic error in expression
      File \life_server\Functions\Systems\fn_spawnVehicle.sqf [TON_fnc_spawnVehicle], line 275
      Alles anzeigen

      da ist dein Garagenfehler. Da passt was im life_server (fn_spawnVehicle) nicht.

      Gruß,

      moeck

      Da habe ich nix geändert

      Code
      #include "\life_server\script_macros.hpp"
      /*
       File: fn_spawnVehicle.sqf
       Author: Bryan "Tonic" Boardwine
      
      
      
      
       Description:
       Sends the query request to the database, if an array is returned then it creates
       the vehicle if it's not in use or dead.
      */
      private ["_vid","_sp","_pid","_query","_sql","_vehicle","_nearVehicles","_name","_side","_tickTime","_dir","_servIndex","_damage","_wasIllegal","_location","_thread"];
      _vid = [_this,0,-1,[0]] call BIS_fnc_param;
      _pid = [_this,1,"",[""]] call BIS_fnc_param;
      _sp = [_this,2,[],[[],""]] call BIS_fnc_param;
      _unit = [_this,3,objNull,[objNull]] call BIS_fnc_param;
      _price = [_this,4,0,[0]] call BIS_fnc_param;
      _dir = [_this,5,0,[0]] call BIS_fnc_param;
      _spawntext = _this select 6;
      _unit_return = _unit;
      _name = name _unit;
      _side = side _unit;
      _unit = owner _unit;
      
      
      
      
      if (_vid isEqualTo -1 || _pid isEqualTo "") exitWith {};
      if (_vid in serv_sv_use) exitWith {};
      serv_sv_use pushBack _vid;
      _servIndex = serv_sv_use find _vid;
      
      
      
      
      _query = format ["SELECT id, side, classname, type, pid, alive, active, plate, color, inventory, gear, fuel, damage, blacklist, impound FROM vehicles WHERE id='%1' AND pid='%2'",_vid,_pid];
      
      
      
      
      _tickTime = diag_tickTime;
      _queryResult = [_query,2] call DB_fnc_asyncCall;
      
      
      
      
      if (EXTDB_SETTING(getNumber,"DebugMode") isEqualTo 1) then {
       diag_log "------------- Client Query Request -------------";
       diag_log format ["QUERY: %1",_query];
       diag_log format ["Time to complete: %1 (in seconds)",(diag_tickTime - _tickTime)];
       diag_log format ["Result: %1",_queryResult];
       diag_log "------------------------------------------------";
      };
      
      
      
      
      if (_queryResult isEqualType "") exitWith {};
      
      
      
      
      _vInfo = _queryResult;
      if (isNil "_vInfo") exitWith {serv_sv_use deleteAt _servIndex;};
      if (count _vInfo isEqualTo 0) exitWith {serv_sv_use deleteAt _servIndex;};
      
      
      
      
      if ((_vInfo select 5) isEqualTo 0) exitWith {
       serv_sv_use deleteAt _servIndex;
       [1,"STR_Garage_SQLError_Destroyed",true,[_vInfo select 2]] remoteExecCall ["life_fnc_broadcast",_unit];
      };
      
      
      
      
      if ((_vInfo select 6) isEqualTo 1) exitWith {
       serv_sv_use deleteAt _servIndex;
       [1,"STR_Garage_SQLError_Active",true,[_vInfo select 2]] remoteExecCall ["life_fnc_broadcast",_unit];
      };
      
      
      
      
      if (!(_sp isEqualType "")) then {
       _nearVehicles = nearestObjects[_sp,["Car","Air","Ship"],10];
      } else {
       _nearVehicles = [];
      };
      
      
      
      
      if (count _nearVehicles > 0) exitWith {
       serv_sv_use deleteAt _servIndex;
       [_price,_unit_return] remoteExecCall ["life_fnc_garageRefund",_unit];
       [1,"STR_Garage_SpawnPointError",true] remoteExecCall ["life_fnc_broadcast",_unit];
      };
      
      
      
      
      _query = format ["UPDATE vehicles SET active='1', impound='0', damage='""[]""' WHERE pid='%1' AND id='%2'",_pid,_vid];
      
      
      
      
      _trunk = [(_vInfo select 9)] call DB_fnc_mresToArray;
      _gear = [(_vInfo select 10)] call DB_fnc_mresToArray;
      _damage = [(_vInfo select 12)] call DB_fnc_mresToArray;
      _wasIllegal = (_vInfo select 13);
      _wasIllegal = if (_wasIllegal isEqualTo 1) then { true } else { false };
      
      
      
      
      [_query,1] call DB_fnc_asyncCall;
      if (_sp isEqualType "") then {
       _vehicle = createVehicle[(_vInfo select 2),[0,0,999],[],0,"NONE"];
       waitUntil {!isNil "_vehicle" && {!isNull _vehicle}};
       _vehicle allowDamage false;
       _hs = nearestObjects[getMarkerPos _sp,["Land_Hospital_side2_F"],50] select 0;
       _vehicle setPosATL (_hs modelToWorld [-0.4,-4,12.65]);
       uiSleep 0.6;
      } else {
       _vehicle = createVehicle [(_vInfo select 2),_sp,[],0,"NONE"];
       waitUntil {!isNil "_vehicle" && {!isNull _vehicle}};
       _vehicle allowDamage false;
       _vehicle setPos _sp;
       _vehicle setVectorUp (surfaceNormal _sp);
       _vehicle setDir _dir;
      };
      _vehicle allowDamage true;
      //Send keys over the network.
      [_vehicle] remoteExecCall ["life_fnc_addVehicle2Chain",_unit];
      [_pid,_side,_vehicle,1] call TON_fnc_keyManagement;
      _vehicle lock 2;
      //Reskin the vehicle
      [_vehicle,(_vInfo select 8)] remoteExecCall ["life_fnc_colorVehicle",_unit];
      _vehicle setVariable ["vehicle_info_owners",[[_pid,_name]],true];
      _vehicle setVariable ["dbInfo",[(_vInfo select 4),(_vInfo select 7)],true];
      _vehicle disableTIEquipment true; //No Thermals.. They're cheap but addictive.
      [_vehicle] call life_fnc_clearVehicleAmmo;
      
      
      
      
      // Avoid problems if u keep changing which stuff to save!
      if (LIFE_SETTINGS(getNumber,"save_vehicle_virtualItems") isEqualTo 1) then {
       _vehicle setVariable ["Trunk",_trunk,true];
       if (_wasIllegal) then {
       if (_sp isEqualType "") then {
       _location= (nearestLocations [getPos _sp,["NameCityCapital","NameCity","NameVillage"],1000]) select 0;
       } else {
       _location= (nearestLocations [_sp,["NameCityCapital","NameCity","NameVillage"],1000]) select 0;
       };
       _location = text _location;
       [1,"STR_NOTF_BlackListedVehicle",true,[_location,_name]] remoteExecCall ["life_fnc_broadcast",west];
      
      
      
      
       _query = format ["UPDATE vehicles SET blacklist='0' WHERE id='%1' AND pid='%2'",_vid,_pid];
       _thread = [_query,1] call DB_fnc_asyncCall;
       };
       }else{
       _vehicle setVariable ["Trunk",[[],0],true];
      };
      
      
      
      
      if (LIFE_SETTINGS(getNumber,"save_vehicle_fuel") isEqualTo 1) then {
       _vehicle setFuel (_vInfo select 11);
       }else{
       _vehicle setFuel 1;
      };
      
      
      
      
      if (count _gear > 0 && (LIFE_SETTINGS(getNumber,"save_vehicle_inventory") isEqualTo 1)) then {
       _items = _gear select 0;
       _mags = _gear select 1;
       _weapons = _gear select 2;
       _backpacks = _gear select 3;
      
      
      
      
       for "_i" from 0 to ((count (_items select 0)) - 1) do {
       _vehicle addItemCargoGlobal [((_items select 0) select _i), ((_items select 1) select _i)];
       };
       for "_i" from 0 to ((count (_mags select 0)) - 1) do {
       _vehicle addMagazineCargoGlobal [((_mags select 0) select _i), ((_mags select 1) select _i)];
       };
       for "_i" from 0 to ((count (_weapons select 0)) - 1) do {
       _vehicle addWeaponCargoGlobal [((_weapons select 0) select _i), ((_weapons select 1) select _i)];
       };
       for "_i" from 0 to ((count (_backpacks select 0)) - 1) do {
       _vehicle addBackpackCargoGlobal [((_backpacks select 0) select _i), ((_backpacks select 1) select _i)];
       };
      };
      
      
      
      
      if (count _damage > 0 && (LIFE_SETTINGS(getNumber,"save_vehicle_damage") isEqualTo 1)) then {
       _parts = getAllHitPointsDamage _vehicle;
      
      
      
      
       for "_i" from 0 to ((count _damage) - 1) do {
       _vehicle setHitPointDamage [format ["%1",((_parts select 0) select _i)],_damage select _i];
       };
      };
      
      
      
      
      //Sets of animations
      if ((_vInfo select 1) isEqualTo "civ" && (_vInfo select 2) isEqualTo "B_Heli_Light_01_F" && !((_vInfo select 8) isEqualTo 13)) then {
       [_vehicle,"civ_littlebird",true] remoteExecCall ["life_fnc_vehicleAnimate",_unit];
      };
      
      
      
      
      if ((_vInfo select 1) isEqualTo "cop" && ((_vInfo select 2)) in ["C_Offroad_01_F","B_MRAP_01_F","C_SUV_01_F","C_Hatchback_01_sport_F","B_Heli_Light_01_F","B_Heli_Transport_01_F"]) then {
       [_vehicle,"cop_offroad",true] remoteExecCall ["life_fnc_vehicleAnimate",_unit];
      };
      
      
      
      
      if ((_vInfo select 1) isEqualTo "med" && (_vInfo select 2) isEqualTo "C_Offroad_01_F") then {
       [_vehicle,"med_offroad",true] remoteExecCall ["life_fnc_vehicleAnimate",_unit];
      };
      
      
      
      
      [1,_spawntext] remoteExecCall ["life_fnc_broadcast",_unit];
      serv_sv_use deleteAt _servIndex;
      Alles anzeigen

      Rechtschreibfehler bitte in einen sack diesen Gut verschließen und in eine Schlucht werfen.:saint:

    • taker9999
      Nerd
      Reaktionen
      137
      Trophäen
      9
      Beiträge
      324
      Dateien
      1
      Bilder
      214
      • 20. Februar 2018 um 01:17
      • #16

      Weiß keiner eine Lösung bzw Ansatz. Habe versucht das selbst zu lösen aber ehrlich gesagt weiß ich nicht wo er da ein Problem hat. Zeile 275 gibst in der Datei nicht. und den Code wo mit er nicht klar kommt ist für die hitpoints bzw auch dafür da wenn das Fahrzeug zerstört wurden ist. Wenn ich das wieder raus nehme funktioniert alles wieder einwandfrei.

      MFG

      taker

      Rechtschreibfehler bitte in einen sack diesen Gut verschließen und in eine Schlucht werfen.:saint:

    • Julian
      Nerd
      Reaktionen
      76
      Trophäen
      8
      Beiträge
      820
      • 20. Februar 2018 um 14:50
      • #17
      Zitat von taker9999

      Weiß keiner eine Lösung bzw Ansatz. Habe versucht das selbst zu lösen aber ehrlich gesagt weiß ich nicht wo er da ein Problem hat. Zeile 275 gibst in der Datei nicht. und den Code wo mit er nicht klar kommt ist für die hitpoints bzw auch dafür da wenn das Fahrzeug zerstört wurden ist. Wenn ich das wieder raus nehme funktioniert alles wieder einwandfrei.

      MFG

      taker

      Du includest die script macro

      #include "\life_server\script_macros.hpp"

      Die datei musst du öffnen und von der zeilen zahl abziehen heisst 247-die anzahl wie viele zeilen die script Macros hat sind meistens 61 das heisst du rechnes bei deinem fehler

      musst du 275-61 =214 da muss der fehler liegen....

      Du hast die datei aber ausseinander gepflückt :D


      Code
      #include "\life_server\script_macros.hpp"
      /*
          File: fn_spawnVehicle.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Sends the query request to the database, if an array is returned then it creates
          the vehicle if it's not in use or dead.
      */
      params [
          ["_vid", -1, [0]],
          ["_pid", "", [""]],
          ["_sp", [], [[],""]],
          ["_unit", objNull, [objNull]],
          ["_price", 0, [0]],
          ["_dir", 0, [0]],
          "_spawntext"
      ];
      
      private _unit_return = _unit;
      private _name = name _unit;
      private _side = side _unit;
      _unit = owner _unit;
      
      if (_vid isEqualTo -1 || {_pid isEqualTo ""}) exitWith {};
      if (_vid in serv_sv_use) exitWith {};
      serv_sv_use pushBack _vid;
      
      private _servIndex = serv_sv_use find _vid;
      
      private _query = format ["SELECT id, side, classname, type, pid, alive, active, plate, color, inventory, gear, fuel, damage, blacklist FROM vehicles WHERE id='%1' AND pid='%2'",_vid,_pid];
      
      private _tickTime = diag_tickTime;
      private _queryResult = [_query,2] call DB_fnc_asyncCall;
      
      if (EXTDB_SETTING(getNumber,"DebugMode") isEqualTo 1) then {
          diag_log "------------- Client Query Request -------------";
          diag_log format ["QUERY: %1",_query];
          diag_log format ["Time to complete: %1 (in seconds)",(diag_tickTime - _tickTime)];
          diag_log format ["Result: %1",_queryResult];
          diag_log "------------------------------------------------";
      };
      
      if (_queryResult isEqualType "") exitWith {};
      
      private _vInfo = _queryResult;
      if (isNil "_vInfo") exitWith {serv_sv_use deleteAt _servIndex;};
      if (count _vInfo isEqualTo 0) exitWith {serv_sv_use deleteAt _servIndex;};
      
      if ((_vInfo select 5) isEqualTo 0) exitWith {
          serv_sv_use deleteAt _servIndex;
          [1,"STR_Garage_SQLError_Destroyed",true,[_vInfo select 2]] remoteExecCall ["life_fnc_broadcast",_unit];
      };
      
      if ((_vInfo select 6) isEqualTo 1) exitWith {
          serv_sv_use deleteAt _servIndex;
          [1,"STR_Garage_SQLError_Active",true,[_vInfo select 2]] remoteExecCall ["life_fnc_broadcast",_unit];
      };
      
      private "_nearVehicles";
      if !(_sp isEqualType "") then {
          _nearVehicles = nearestObjects[_sp,["Car","Air","Ship"],10];
      } else {
          _nearVehicles = [];
      };
      
      if (count _nearVehicles > 0) exitWith {
          serv_sv_use deleteAt _servIndex;
          [_price,_unit_return] remoteExecCall ["life_fnc_garageRefund",_unit];
          [1,"STR_Garage_SpawnPointError",true] remoteExecCall ["life_fnc_broadcast",_unit];
      };
      
      _query = format ["UPDATE vehicles SET active='1', damage='""[]""' WHERE pid='%1' AND id='%2'",_pid,_vid];
      
      private _trunk = [(_vInfo select 9)] call DB_fnc_mresToArray;
      private _gear = [(_vInfo select 10)] call DB_fnc_mresToArray;
      private _damage = [call compile (_vInfo select 12)] call DB_fnc_mresToArray;
      private _wasIllegal = _vInfo select 13;
      _wasIllegal = if (_wasIllegal isEqualTo 1) then { true } else { false };
      
      [_query,1] call DB_fnc_asyncCall;
      
      private "_vehicle";
      if (_sp isEqualType "") then {
          _vehicle = createVehicle[(_vInfo select 2),[0,0,999],[],0,"NONE"];
          waitUntil {!isNil "_vehicle" && {!isNull _vehicle}};
          _vehicle allowDamage false;
          _hs = nearestObjects[getMarkerPos _sp,["Land_Hospital_side2_F"],50] select 0;
          _vehicle setPosATL (_hs modelToWorld [-0.4,-4,12.65]);
          uiSleep 0.6;
      } else {
          _vehicle = createVehicle [(_vInfo select 2),_sp,[],0,"NONE"];
          waitUntil {!isNil "_vehicle" && {!isNull _vehicle}};
          _vehicle allowDamage false;
          _vehicle setPos _sp;
          _vehicle setVectorUp (surfaceNormal _sp);
          _vehicle setDir _dir;
      };
      _vehicle allowDamage true;
      //Send keys over the network.
      [_vehicle] remoteExecCall ["life_fnc_addVehicle2Chain",_unit];
      [_pid,_side,_vehicle,1] call TON_fnc_keyManagement;
      _vehicle lock 2;
      //Reskin the vehicle
      [_vehicle,(_vInfo select 8)] remoteExecCall ["life_fnc_colorVehicle",_unit];
      _vehicle setVariable ["vehicle_info_owners",[[_pid,_name]],true];
      _vehicle setVariable ["dbInfo",[(_vInfo select 4),(_vInfo select 7)],true];
      _vehicle disableTIEquipment true; //No Thermals.. They're cheap but addictive.
      [_vehicle] call life_fnc_clearVehicleAmmo;
      
      if (LIFE_SETTINGS(getNumber,"save_vehicle_virtualItems") isEqualTo 1) then {
      
          _vehicle setVariable ["Trunk",_trunk,true];
          
          if (_wasIllegal) then {
              private _refPoint = if (_sp isEqualType "") then {getMarkerPos _sp;} else {_sp;};
              
              private _distance = 100000;
              private "_location";
      
              {
                  private _tempLocation = nearestLocation [_refPoint, _x];
                  private _tempDistance = _refPoint distance _tempLocation;
          
                  if (_tempDistance < _distance) then {
                      _location = _tempLocation;
                      _distance = _tempDistance;
                  };
                  false
          
              } count ["NameCityCapital", "NameCity", "NameVillage"];
       
              _location = text _location;
              [1,"STR_NOTF_BlackListedVehicle",true,[_location,_name]] remoteExecCall ["life_fnc_broadcast",west];
      
              _query = format ["UPDATE vehicles SET blacklist='0' WHERE id='%1' AND pid='%2'",_vid,_pid];
              [_query,1] call DB_fnc_asyncCall;
          };
      } else {
          _vehicle setVariable ["Trunk",[[],0],true];
      };
      
      if (LIFE_SETTINGS(getNumber,"save_vehicle_fuel") isEqualTo 1) then {
          _vehicle setFuel (_vInfo select 11);
          }else{
          _vehicle setFuel 1;
      };
      
      if (count _gear > 0 && (LIFE_SETTINGS(getNumber,"save_vehicle_inventory") isEqualTo 1)) then {
          _items = _gear select 0;
          _mags = _gear select 1;
          _weapons = _gear select 2;
          _backpacks = _gear select 3;
      
          for "_i" from 0 to ((count (_items select 0)) - 1) do {
              _vehicle addItemCargoGlobal [((_items select 0) select _i), ((_items select 1) select _i)];
          };
          for "_i" from 0 to ((count (_mags select 0)) - 1) do {
              _vehicle addMagazineCargoGlobal [((_mags select 0) select _i), ((_mags select 1) select _i)];
          };
          for "_i" from 0 to ((count (_weapons select 0)) - 1) do {
              _vehicle addWeaponCargoGlobal [((_weapons select 0) select _i), ((_weapons select 1) select _i)];
          };
          for "_i" from 0 to ((count (_backpacks select 0)) - 1) do {
              _vehicle addBackpackCargoGlobal [((_backpacks select 0) select _i), ((_backpacks select 1) select _i)];
          };
      };
      
      if (count _damage > 0 && (LIFE_SETTINGS(getNumber,"save_vehicle_damage") isEqualTo 1)) then {
          _parts = getAllHitPointsDamage _vehicle;
      
          for "_i" from 0 to ((count _damage) - 1) do {
              _vehicle setHitPointDamage [format ["%1",((_parts select 0) select _i)],_damage select _i];
          };
      };
      
      //Sets of animations
      if ((_vInfo select 1) isEqualTo "civ" && (_vInfo select 2) isEqualTo "B_Heli_Light_01_F" && !((_vInfo select 8) isEqualTo 13)) then {
          [_vehicle,"civ_littlebird",true] remoteExecCall ["life_fnc_vehicleAnimate",_unit];
      };
      
      if ((_vInfo select 1) isEqualTo "cop" && ((_vInfo select 2)) in ["C_Offroad_01_F","B_MRAP_01_F","C_SUV_01_F","C_Hatchback_01_sport_F","B_Heli_Light_01_F","B_Heli_Transport_01_F"]) then {
          [_vehicle,"cop_offroad",true] remoteExecCall ["life_fnc_vehicleAnimate",_unit];
      };
      
      if ((_vInfo select 1) isEqualTo "med" && (_vInfo select 2) isEqualTo "C_Offroad_01_F") then {
          [_vehicle,"med_offroad",true] remoteExecCall ["life_fnc_vehicleAnimate",_unit];
      };
      
      [1,_spawntext] remoteExecCall ["life_fnc_broadcast",_unit];
      serv_sv_use deleteAt _servIndex;
      Alles anzeigen

      So sieht die normale aus teste die mal

      und nicht vergessen zur PBO zu machen :D

      Mit freundlichen Grüßen,

      Julian


      Bitte erst Denken und dann Fragen


      Hier lesen: das Heilige Buch der Arma3 Scripter

    • taker9999
      Nerd
      Reaktionen
      137
      Trophäen
      9
      Beiträge
      324
      Dateien
      1
      Bilder
      214
      • 20. Februar 2018 um 19:16
      • #18
      Zitat von Julian

      Du includest die script macro

      #include "\life_server\script_macros.hpp"

      Die datei musst du öffnen und von der zeilen zahl abziehen heisst 247-die anzahl wie viele zeilen die script Macros hat sind meistens 61 das heisst du rechnes bei deinem fehler

      musst du 275-61 =214 da muss der fehler liegen....

      Du hast die datei aber ausseinander gepflückt :D


      Code
      #include "\life_server\script_macros.hpp"
      /*
          File: fn_spawnVehicle.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Sends the query request to the database, if an array is returned then it creates
          the vehicle if it's not in use or dead.
      */
      params [
          ["_vid", -1, [0]],
          ["_pid", "", [""]],
          ["_sp", [], [[],""]],
          ["_unit", objNull, [objNull]],
          ["_price", 0, [0]],
          ["_dir", 0, [0]],
          "_spawntext"
      ];
      
      private _unit_return = _unit;
      private _name = name _unit;
      private _side = side _unit;
      _unit = owner _unit;
      
      if (_vid isEqualTo -1 || {_pid isEqualTo ""}) exitWith {};
      if (_vid in serv_sv_use) exitWith {};
      serv_sv_use pushBack _vid;
      
      private _servIndex = serv_sv_use find _vid;
      
      private _query = format ["SELECT id, side, classname, type, pid, alive, active, plate, color, inventory, gear, fuel, damage, blacklist FROM vehicles WHERE id='%1' AND pid='%2'",_vid,_pid];
      
      private _tickTime = diag_tickTime;
      private _queryResult = [_query,2] call DB_fnc_asyncCall;
      
      if (EXTDB_SETTING(getNumber,"DebugMode") isEqualTo 1) then {
          diag_log "------------- Client Query Request -------------";
          diag_log format ["QUERY: %1",_query];
          diag_log format ["Time to complete: %1 (in seconds)",(diag_tickTime - _tickTime)];
          diag_log format ["Result: %1",_queryResult];
          diag_log "------------------------------------------------";
      };
      
      if (_queryResult isEqualType "") exitWith {};
      
      private _vInfo = _queryResult;
      if (isNil "_vInfo") exitWith {serv_sv_use deleteAt _servIndex;};
      if (count _vInfo isEqualTo 0) exitWith {serv_sv_use deleteAt _servIndex;};
      
      if ((_vInfo select 5) isEqualTo 0) exitWith {
          serv_sv_use deleteAt _servIndex;
          [1,"STR_Garage_SQLError_Destroyed",true,[_vInfo select 2]] remoteExecCall ["life_fnc_broadcast",_unit];
      };
      
      if ((_vInfo select 6) isEqualTo 1) exitWith {
          serv_sv_use deleteAt _servIndex;
          [1,"STR_Garage_SQLError_Active",true,[_vInfo select 2]] remoteExecCall ["life_fnc_broadcast",_unit];
      };
      
      private "_nearVehicles";
      if !(_sp isEqualType "") then {
          _nearVehicles = nearestObjects[_sp,["Car","Air","Ship"],10];
      } else {
          _nearVehicles = [];
      };
      
      if (count _nearVehicles > 0) exitWith {
          serv_sv_use deleteAt _servIndex;
          [_price,_unit_return] remoteExecCall ["life_fnc_garageRefund",_unit];
          [1,"STR_Garage_SpawnPointError",true] remoteExecCall ["life_fnc_broadcast",_unit];
      };
      
      _query = format ["UPDATE vehicles SET active='1', damage='""[]""' WHERE pid='%1' AND id='%2'",_pid,_vid];
      
      private _trunk = [(_vInfo select 9)] call DB_fnc_mresToArray;
      private _gear = [(_vInfo select 10)] call DB_fnc_mresToArray;
      private _damage = [call compile (_vInfo select 12)] call DB_fnc_mresToArray;
      private _wasIllegal = _vInfo select 13;
      _wasIllegal = if (_wasIllegal isEqualTo 1) then { true } else { false };
      
      [_query,1] call DB_fnc_asyncCall;
      
      private "_vehicle";
      if (_sp isEqualType "") then {
          _vehicle = createVehicle[(_vInfo select 2),[0,0,999],[],0,"NONE"];
          waitUntil {!isNil "_vehicle" && {!isNull _vehicle}};
          _vehicle allowDamage false;
          _hs = nearestObjects[getMarkerPos _sp,["Land_Hospital_side2_F"],50] select 0;
          _vehicle setPosATL (_hs modelToWorld [-0.4,-4,12.65]);
          uiSleep 0.6;
      } else {
          _vehicle = createVehicle [(_vInfo select 2),_sp,[],0,"NONE"];
          waitUntil {!isNil "_vehicle" && {!isNull _vehicle}};
          _vehicle allowDamage false;
          _vehicle setPos _sp;
          _vehicle setVectorUp (surfaceNormal _sp);
          _vehicle setDir _dir;
      };
      _vehicle allowDamage true;
      //Send keys over the network.
      [_vehicle] remoteExecCall ["life_fnc_addVehicle2Chain",_unit];
      [_pid,_side,_vehicle,1] call TON_fnc_keyManagement;
      _vehicle lock 2;
      //Reskin the vehicle
      [_vehicle,(_vInfo select 8)] remoteExecCall ["life_fnc_colorVehicle",_unit];
      _vehicle setVariable ["vehicle_info_owners",[[_pid,_name]],true];
      _vehicle setVariable ["dbInfo",[(_vInfo select 4),(_vInfo select 7)],true];
      _vehicle disableTIEquipment true; //No Thermals.. They're cheap but addictive.
      [_vehicle] call life_fnc_clearVehicleAmmo;
      
      if (LIFE_SETTINGS(getNumber,"save_vehicle_virtualItems") isEqualTo 1) then {
      
          _vehicle setVariable ["Trunk",_trunk,true];
          
          if (_wasIllegal) then {
              private _refPoint = if (_sp isEqualType "") then {getMarkerPos _sp;} else {_sp;};
              
              private _distance = 100000;
              private "_location";
      
              {
                  private _tempLocation = nearestLocation [_refPoint, _x];
                  private _tempDistance = _refPoint distance _tempLocation;
          
                  if (_tempDistance < _distance) then {
                      _location = _tempLocation;
                      _distance = _tempDistance;
                  };
                  false
          
              } count ["NameCityCapital", "NameCity", "NameVillage"];
       
              _location = text _location;
              [1,"STR_NOTF_BlackListedVehicle",true,[_location,_name]] remoteExecCall ["life_fnc_broadcast",west];
      
              _query = format ["UPDATE vehicles SET blacklist='0' WHERE id='%1' AND pid='%2'",_vid,_pid];
              [_query,1] call DB_fnc_asyncCall;
          };
      } else {
          _vehicle setVariable ["Trunk",[[],0],true];
      };
      
      if (LIFE_SETTINGS(getNumber,"save_vehicle_fuel") isEqualTo 1) then {
          _vehicle setFuel (_vInfo select 11);
          }else{
          _vehicle setFuel 1;
      };
      
      if (count _gear > 0 && (LIFE_SETTINGS(getNumber,"save_vehicle_inventory") isEqualTo 1)) then {
          _items = _gear select 0;
          _mags = _gear select 1;
          _weapons = _gear select 2;
          _backpacks = _gear select 3;
      
          for "_i" from 0 to ((count (_items select 0)) - 1) do {
              _vehicle addItemCargoGlobal [((_items select 0) select _i), ((_items select 1) select _i)];
          };
          for "_i" from 0 to ((count (_mags select 0)) - 1) do {
              _vehicle addMagazineCargoGlobal [((_mags select 0) select _i), ((_mags select 1) select _i)];
          };
          for "_i" from 0 to ((count (_weapons select 0)) - 1) do {
              _vehicle addWeaponCargoGlobal [((_weapons select 0) select _i), ((_weapons select 1) select _i)];
          };
          for "_i" from 0 to ((count (_backpacks select 0)) - 1) do {
              _vehicle addBackpackCargoGlobal [((_backpacks select 0) select _i), ((_backpacks select 1) select _i)];
          };
      };
      
      if (count _damage > 0 && (LIFE_SETTINGS(getNumber,"save_vehicle_damage") isEqualTo 1)) then {
          _parts = getAllHitPointsDamage _vehicle;
      
          for "_i" from 0 to ((count _damage) - 1) do {
              _vehicle setHitPointDamage [format ["%1",((_parts select 0) select _i)],_damage select _i];
          };
      };
      
      //Sets of animations
      if ((_vInfo select 1) isEqualTo "civ" && (_vInfo select 2) isEqualTo "B_Heli_Light_01_F" && !((_vInfo select 8) isEqualTo 13)) then {
          [_vehicle,"civ_littlebird",true] remoteExecCall ["life_fnc_vehicleAnimate",_unit];
      };
      
      if ((_vInfo select 1) isEqualTo "cop" && ((_vInfo select 2)) in ["C_Offroad_01_F","B_MRAP_01_F","C_SUV_01_F","C_Hatchback_01_sport_F","B_Heli_Light_01_F","B_Heli_Transport_01_F"]) then {
          [_vehicle,"cop_offroad",true] remoteExecCall ["life_fnc_vehicleAnimate",_unit];
      };
      
      if ((_vInfo select 1) isEqualTo "med" && (_vInfo select 2) isEqualTo "C_Offroad_01_F") then {
          [_vehicle,"med_offroad",true] remoteExecCall ["life_fnc_vehicleAnimate",_unit];
      };
      
      [1,_spawntext] remoteExecCall ["life_fnc_broadcast",_unit];
      serv_sv_use deleteAt _servIndex;
      Alles anzeigen

      So sieht die normale aus teste die mal

      und nicht vergessen zur PBO zu machen :D

      Alles anzeigen

      Dnake für die Erklärung mit den Zeilen.

      Es hat nun alles geklappt mit deiner Datei. Danke!

      Rechtschreibfehler bitte in einen sack diesen Gut verschließen und in eine Schlucht werfen.:saint:

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von Native-Servers.com? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Benutzerkonto erstellen

    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™