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

    MEDIC VEHICLE SHOP / SPAWN (helicopter)

    • FabioSICasper
    • 20. Dezember 2018 um 14:13
    • Erledigt
    • FabioSICasper
      Frischling
      Trophäen
      7
      Beiträge
      10
      • 20. Dezember 2018 um 14:13
      • #1

      HELLO,

      I want to change the helicopter shop of all altis hospitals, but when I buy the helicopter, it spawns in the hospital.

      I want it spawned in the building I created

      what to do?


      I saw that there is a topic about this subject but I did not understand much what I was asked to do, I am new to this subject of programming and would like an explanation for noob.


      C: #fn_vehicleShopBuy.sqf
      #include "..\..\script_macros.hpp"
      /*
          File: fn_vehicleShopBuy.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Does something with vehicle purchasing.
      */
      
      params [["_mode",true,[true]]];
      
      if ((lbCurSel 2302) isEqualTo -1) exitWith {hint localize "STR_Shop_Veh_DidntPick";closeDialog 0;};
      
      private _className = lbData[2302,(lbCurSel 2302)];
      private _vIndex = lbValue[2302,(lbCurSel 2302)];
      private _vehicleList = M_CONFIG(getArray,"CarShops",(life_veh_shop select 0),"vehicles");
      private _shopSide = M_CONFIG(getText,"CarShops",(life_veh_shop select 0),"side");
      
      
      private _initalPrice = M_CONFIG(getNumber,"LifeCfgVehicles",_className,"price");
      
      private "_buyMultiplier";
      private "_rentMultiplier";
      
      switch (playerSide) do {
          case civilian: {
              _buyMultiplier = LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_CIVILIAN");
              _rentMultiplier = LIFE_SETTINGS(getNumber,"vehicle_rental_multiplier_CIVILIAN");
          };
          case west: {
              _buyMultiplier = LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_COP");
              _rentMultiplier = LIFE_SETTINGS(getNumber,"vehicle_rental_multiplier_COP");
          };
          case independent: {
              _buyMultiplier = LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_MEDIC");
              _rentMultiplier = LIFE_SETTINGS(getNumber,"vehicle_rental_multiplier_MEDIC");
          };
          case east: {
              _buyMultiplier = LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_OPFOR");
              _rentMultiplier = LIFE_SETTINGS(getNumber,"vehicle_rental_multiplier_OPFOR");
          };
      };
      
      private "_purchasePrice";
      
      if (_mode) then {
          _purchasePrice = round(_initalPrice * _buyMultiplier);
      } else {
          _purchasePrice = round(_initalPrice * _rentMultiplier);
      };
      
      private _conditions = M_CONFIG(getText,"LifeCfgVehicles",_className,"conditions");
      
      if !([_conditions] call life_fnc_levelCheck) exitWith {hint localize "STR_Shop_Veh_NoLicense";};
      
      private _colorIndex = lbValue[2304,(lbCurSel 2304)];
      
      if (_purchasePrice < 0) exitWith {closeDialog 0;}; //Bad price entry
      if (CASH < _purchasePrice) exitWith {hint format [localize "STR_Shop_Veh_NotEnough",[_purchasePrice - CASH] call life_fnc_numberText];closeDialog 0;};
      
      private _spawnPoints = life_veh_shop select 1;
      private _spawnPoint = "";
      
      if ((life_veh_shop select 0) == "med_air_hs") then {
          if (nearestObjects[(getMarkerPos _spawnPoints),["Air"],35] isEqualTo []) exitWith {_spawnPoint = _spawnPoints};
      } else {
          //Check if there is multiple spawn points and find a suitable spawnpoint.
          if (_spawnPoints isEqualType []) then {
              //Find an available spawn point.
              {
                  if ((nearestObjects[(getMarkerPos _x),["Car","Ship","Air"],5]) isEqualTo []) exitWith {_spawnPoint = _x};
                  true
              } count _spawnPoints;
          } else {
              if (nearestObjects[(getMarkerPos _spawnPoints),["Car","Ship","Air"],5] isEqualTo []) exitWith {_spawnPoint = _spawnPoints};
          };
      };
      
      
      if (_spawnPoint isEqualTo "") exitWith {hint localize "STR_Shop_Veh_Block"; closeDialog 0;};
      CASH = CASH - _purchasePrice;
      [0] call SOCK_fnc_updatePartial;
      hint format [localize "STR_Shop_Veh_Bought",getText(configFile >> "CfgVehicles" >> _className >> "displayName"),[_purchasePrice] call life_fnc_numberText];
      
      // Desovar o veículo e prepará-lo.
      
      private "_vehicle";
      
      if ((life_veh_shop select 0) == "med_air_hs") then {
          _vehicle = createVehicle [_className,[0,0,999],[], 0, "NONE"];
          waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait?
          _vehicle allowDamage false;
          _hs = nearestObjects[getMarkerPos _spawnPoint,["Land_Hospital_side2_F"],50] select 0;
          _vehicle setPosATL (_hs modelToWorld [-0.4,-4,12.65]);
          sleep 0.6;
      } else {
          _vehicle = createVehicle [_className, (getMarkerPos _spawnPoint), [], 0, "NONE"];
          waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait?
          _vehicle allowDamage false; //Temp disable damage handling..
          _vehicle setPos (getMarkerPos _spawnPoint);
          _vehicle setVectorUp (surfaceNormal (getMarkerPos _spawnPoint));
          _vehicle setDir (markerDir _spawnPoint);
      };
      
      _vehicle lock 2;
      
      [_vehicle,_colorIndex] call life_fnc_colorVehicle;
      [_vehicle] call life_fnc_clearVehicleAmmo;
      [_vehicle,"trunk_in_use",false,true] remoteExecCall ["TON_fnc_setObjVar",RSERV];
      [_vehicle,"vehicle_info_owners",[[getPlayerUID player,profileName]],true] remoteExecCall ["TON_fnc_setObjVar",RSERV];
      
      _vehicle disableTIEquipment true; //No Thermals.. They're cheap but addictive.
      
      //Side Specific actions.
      switch (playerSide) do {
          case west: {
              [_vehicle,"cop_offroad",true] spawn life_fnc_vehicleAnimate;
          };
          case civilian: {
              if ((life_veh_shop select 2) isEqualTo "civ" && {_className == "B_Heli_Light_01_F"}) then {
                  [_vehicle,"civ_littlebird",true] spawn life_fnc_vehicleAnimate;
              };
          };
          case independent: {
              [_vehicle,"med_offroad",true] spawn life_fnc_vehicleAnimate;
          };
      };
      
      _vehicle allowDamage true;
      
      life_vehicles pushBack _vehicle;
      
      //Always handle key management by the server
      [getPlayerUID player,playerSide,_vehicle,1] remoteExecCall ["TON_fnc_keyManagement",RSERV];
      
      if (_mode) then {
          if !(_className in LIFE_SETTINGS(getArray,"vehicleShop_rentalOnly")) then {
              if (life_HC_isActive) then {
                  [(getPlayerUID player),playerSide,_vehicle,_colorIndex] remoteExecCall ["HC_fnc_vehicleCreate",HC_Life];
              } else {
                  [(getPlayerUID player),playerSide,_vehicle,_colorIndex] remoteExecCall ["TON_fnc_vehicleCreate",RSERV];
              };
          };
      };
      
      if (LIFE_SETTINGS(getNumber,"player_advancedLog") isEqualTo 1) then {
          if (LIFE_SETTINGS(getNumber,"battlEye_friendlyLogging") isEqualTo 1) then {
              advanced_log = format [localize "STR_DL_AL_boughtVehicle_BEF",_className,[_purchasePrice] call life_fnc_numberText,[CASH] call life_fnc_numberText,[BANK] call life_fnc_numberText];
          } else {
              advanced_log = format [localize "STR_DL_AL_boughtVehicle",profileName,(getPlayerUID player),_className,[_purchasePrice] call life_fnc_numberText,[CASH] call life_fnc_numberText,[BANK] call life_fnc_numberText];
          };
          publicVariableServer "advanced_log";
      };
      
      closeDialog 0; //Exit the menu.
      true;
      Alles anzeigen
      Code: Config_Vehicles.hpp
      class med_air_hs {
              side = "med";
              conditions = "";
              vehicles[] = {
               { "O_Heli_Light_02_unarmed_F", "" },
                  { "C_Heli_Light_01_civil_F", "" },
                  { "B_Heli_Transport_01_F", "" }
              };
          };
      C: NPC -init
      this enableSimulation false; this allowDamage false; this addAction[format [""%1 ($%2)"",localize (getText(missionConfigFile >> ""Licenses"" >> ""mAir"" >> ""displayName"")), [(getNumber(missionConfigFile >> ""Licenses"" >> ""mAir"" >> ""price""))] call life_fnc_numberText],life_fnc_buyLicense,""mAir"",0,false,false,"""",' !license_med_mAir && playerSide isEqualTo independent ']; this addAction[localize""STR_MAR_EMS_Item_Shop"",life_fnc_weaponShopMenu,""med_basic""]; this addAction[localize""STR_MAR_EMS_Clothing_Shop"",life_fnc_clothingMenu,""med_clothing""]; this addAction[localize""STR_MAR_W_E_Vehicle Shop"",life_fnc_vehicleShopMenu,[""med_shop"",independent,""med_car_1"",""med"",""Kavala Hospital""]]; this addAction[localize""STR_MAR_Helicopter_Shop"", life_fnc_vehicleShopMenu,[""med_air_hs"",independent,""med_air_1"",""med"",""Kavala Hospital""]]; this addAction[localize""STR_MAR_W_Car_Garage"",  {   if (life_HC_isActive) then {    [getPlayerUID player,playerSide,""Car"",player] remoteExecCall [""HC_fnc_getVehicles"",HC_Life]; } else { [getPlayerUID player,playerSide,""Car"",player] remoteExecCall [""TON_fnc_getVehicles"",2];};  createDialog ""Life_impound_menu"";  disableSerialization;  ctrlSetText[2802,""Fetching Vehicles....""];  life_garage_sp = ""med_car_1""; life_garage_type = ""Car""; },"""",0,false,false,"""",'playerSide isEqualTo independent']; this addAction[localize""STR_MAR_Helicopter_Garage"",  {   if (life_HC_isActive) then {    [getPlayerUID player,playerSide,""Air"",player] remoteExecCall [""HC_fnc_getVehicles"",HC_Life]; } else { [getPlayerUID player,playerSide,""Air"",player] remoteExecCall [""TON_fnc_getVehicles"",2];};  createDialog ""Life_impound_menu"";  disableSerialization;  ctrlSetText[2802,""Fetching Vehicles....""];  life_garage_sp = ""medic_air_1""; life_garage_type = ""Air""; },"""",0,false,false,"""",'playerSide isEqualTo independent ']; this addAction[localize""STR_MAR_Store_vehicle_in_Garage"",life_fnc_storeVehicle,"""",0,false,false,"""",'!life_garage_store']; this addAction[localize""STR_Shops_Market"",life_fnc_virt_menu,""med_market"",1.5,false,false,"""",' isNull objectParent player && player distance _target < 5 && playerSide isEqualTo independent '];";

      Please, can anyone help me ???

      3 Mal editiert, zuletzt von FabioSICasper (20. Dezember 2018 um 15:02) aus folgendem Grund: I messed up some things, error

    • Rene Lerchberg
      Nerd
      Reaktionen
      167
      Trophäen
      8
      Beiträge
      562
      Dateien
      2
      Bilder
      82
      • 20. Dezember 2018 um 14:16
      • #2

      English pls

      Mit Freundlichen Grüßen

      Rene Lerchberg

      "Einzigartigkeit entsteht durch Perfektion"

      The-Programmer.com (Support & Translation)

    • FabioSICasper
      Frischling
      Trophäen
      7
      Beiträge
      10
      • 20. Dezember 2018 um 14:23
      • #3
      Zitat von Rene Lerchberg

      English pls

      he translated alone when I sent, plus I already corrected

    • FabioSICasper
      Frischling
      Trophäen
      7
      Beiträge
      10
      • 21. Dezember 2018 um 11:44
      • #4

      problem solved.

      the only solution was to edit a part of the file below.

      C: fn_vehicleShopBuy.sql
      private "_vehicle";
      /* comment on this condition structure and leave only the code block of the else
      if ((life_veh_shop select 0) == "med_air_hs") then {
          _vehicle = createVehicle [_className,[0,0,999],[], 0, "NONE"];
          waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait?
          _vehicle allowDamage false;
          _hs = nearestObjects[getMarkerPos _spawnPoint,["Land_Hospital_side2_F"],50] select 0;
          _vehicle setPosATL (_hs modelToWorld [-0.4,-4,12.65]);
          sleep 0.6;
      } else {
      */
          _vehicle = createVehicle [_className, (getMarkerPos _spawnPoint), [], 0, "NONE"];
          waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait?
          _vehicle allowDamage false; //Temp disable damage handling..
          _vehicle setPos (getMarkerPos _spawnPoint);
          _vehicle setVectorUp (surfaceNormal (getMarkerPos _spawnPoint));
          _vehicle setDir (markerDir _spawnPoint);
      //}; here as well, of course
      Alles anzeigen

    Registrieren oder Einloggen

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

    Benutzerkonto erstellen

    Benutzer online in diesem Thema

    • 1 Besucher

    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™