
Jet Spawnt auf dem Flugzeugträger im Boden
-
Lucky1302 -
30. Oktober 2017 um 19:59 -
Erledigt
-
-
Komisch. Bei mir hat es noch funktioniert. Ich werde es mal die Tage testen, ob es überhaupt noch funktioniert
-
Ja wäre nice bin schon seit 3 Stunden am Suchen und lösung finden aber nichts will gehen.
-
Ja wäre nice bin schon seit 3 Stunden am Suchen und lösung finden aber nichts will gehen.
Habe leider zur Zeit kein Server zur Hand. Aktuell bin ich in einem Projekt, dort kann ich es leider nicht testen, da ich dort nur für die Fahrzeuge zuständig bin.
-
Du kein Problem du kannst gern rüber kommen dann können wir testen
-
Selbst verständlich nur wenn du Zeit, Lust hast. Wenn ja dann aber erst morgen muss morgen wieder früh raus
-
naja ich mache das trotzdem mal fertig, ist eigentlich total simple
-
Moin zusammen,
ich habe mal ein wenig im Forum gesucht und folgendes Tut gefunden.
[TUTORIAL] Auto und Garagen Spawn erhöhen.
Meine eigene Lösung sieht ebenfalls so aus allerdings ohne dass ich mir das Tutorial angeschaut habe. Lucky1302 gib mir mal den Marker, die Höhe und am Besten gleich noch die fn_unimpound.sqf sofern Du es nur als Garage nutzen willst. Solltest Du auch einen Shop dort haben brauche ich die fn_vehicleShopBuy.sqf
Gruß,
moeck
-
Das erste mal verlink worden *life achievement*
-
Danke moeck , Ich hab erstmal nur vor auf dem Flugzeugträger einen Shop zu machen das heißt ich schick dir die fn_vehicleShopBuy.sqf und die höhe eine sache frag ich mich noch wie find ich die höhe raus?
-
Lucky1302 dort wo du den Shop haben willst setzt du z.b. ein schild oder einen Jet im Editor. Anschliessend doppelklicken und nimmst den z-wert. Das ist dann die Höhe, die Du benötigst. Bitte beachte auf dem Träger kannst Du nur mit Helis oder dem Black Wasp starten. Andere Jets werden dort nicht richtig starten.
-
Ok so da haben wir alle Daten:
Also die Koordienate Z: 209.512
-
so eine Frage wie heisst der Marker, den namen brauche ich dazu
-
Der Marker wo es drauf Spawnen soll heißt:
civ_air_2
-
So hier mal die fertige Datei
C: fn_vehicleShopBuy.sqf
Alles anzeigen/* File: fn_vehicleShopBuy.sqf Author: Bryan "Tonic" Boardwine Description: Does something with vehicle purchasing. */ private["_mode","_spawnPoints","_className","_basePrice","_colorIndex","_spawnPoint","_vehicle"]; _mode = _this select 0; if((lbCurSel 2302) == -1) exitWith {hintSilent localize "STR_Shop_Veh_DidntPick"}; _className = lbData[2302,(lbCurSel 2302)]; _vIndex = lbValue[2302,(lbCurSel 2302)]; _vehicleList = [life_veh_shop select 0] call life_fnc_vehicleListCfg; _basePrice = (_vehicleList select _vIndex) select 1; if(_mode) then {_basePrice = round(_basePrice * 1.5)}; _colorIndex = lbValue[2304,(lbCurSel 2304)]; //Series of checks (YAY!) if(_basePrice < 0) exitWith {}; //Bad price entry if(life_cash < _basePrice) exitWith {hintSilent format[localize "STR_Shop_Veh_NotEnough",[_basePrice - life_cash] call life_fnc_numberText];}; if(!([_className] call life_fnc_vehShopLicenses) && _className != "B_MRAP_01_hmg_F") exitWith {hintSilent localize "STR_Shop_Veh_NoLicense"}; _spawnPoints = life_veh_shop select 1; _spawnPoint = ""; if((life_veh_shop select 0) == "med_air_hs") then { if(count(nearestObjects[(getMarkerPos _spawnPoints),["Air"],35]) == 0) exitWith {_spawnPoint = _spawnPoints}; } else { //Check if there is multiple spawn points and find a suitable spawnpoint. if(typeName _spawnPoints == typeName []) then { //Find an available spawn point. {if(count(nearestObjects[(getMarkerPos _x),["Car","Ship","Air"],5]) == 0) exitWith {_spawnPoint = _x};} foreach _spawnPoints; } else { if(count(nearestObjects[(getMarkerPos _spawnPoints),["Car","Ship","Air"],5]) == 0) exitWith {_spawnPoint = _spawnPoints}; }; }; if(_spawnPoint == "") exitWith {hintSilent localize "STR_Shop_Veh_Block";}; life_cash = life_cash - _basePrice; hintSilent format[localize "STR_Shop_Veh_Bought",getText(configFile >> "CfgVehicles" >> _className >> "displayName"),[_basePrice] call life_fnc_numberText]; //Spawn the vehicle and prep it. if((life_veh_shop select 0) == "med_air_hs") then { _vehicle = createVehicle [_className,[0,0,999],[], 0, "NONE"]; waitUntil {!isNil "_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]); _vehicle lock 2; [[_vehicle,_colorIndex],"life_fnc_colorVehicle",true,false] spawn life_fnc_MP; [_vehicle] call life_fnc_clearVehicleAmmo; [[_vehicle,"trunk_in_use",false,true],"TON_fnc_setObjVar",false,false] spawn life_fnc_MP; [[_vehicle,"vehicle_info_owners",[[getPlayerUID player,profileName]],true],"TON_fnc_setObjVar",false,false] spawn life_fnc_MP; _vehicle disableTIEquipment true; //No Thermals.. They're cheap but addictive. } else { _pos = getMarkerPos _spawnPoint; if (_spawnPoint isEqualTo "civ_air_2") then { _pos = [_pos select 0,_pos select 1,209.513]; }; _vehicle = createVehicle [_className, (getMarkerPos _spawnPoint), [], 0, "NONE"]; waitUntil {!isNil "_vehicle"}; //Wait? _vehicle allowDamage false; //Temp disable damage handling.. _vehicle lock 2; _vehicle setVectorUp (surfaceNormal (getMarkerPos _spawnPoint)); _vehicle setDir (markerDir _spawnPoint); if !( _vehicle isKindOf "Ship") then {_vehicle setPosATL _pos;} else {_vehicle setPosASL _pos;}; [[_vehicle,_colorIndex],"life_fnc_colorVehicle",true,false] spawn life_fnc_MP; [_vehicle] call life_fnc_clearVehicleAmmo; [[_vehicle,"trunk_in_use",false,true],"TON_fnc_setObjVar",false,false] spawn life_fnc_MP; [[_vehicle,"vehicle_info_owners",[[getPlayerUID player,profileName]],true],"TON_fnc_setObjVar",false,false] spawn life_fnc_MP; _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) == "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 set[count life_vehicles,_vehicle]; //Add err to the chain. life_vehicles pushBack _vehicle; [[getPlayerUID player,playerSide,_vehicle,1],"TON_fnc_keyManagement",false,false] spawn life_fnc_MP; if(_mode) then { if(!(_className in ["B_G_Offroad_01_armed_F","B_MRAP_01_hmg_F"])) then { [[(getPlayerUID player),playerSide,_vehicle,_colorIndex],"TON_fnc_vehicleCreate",false,false] spawn life_fnc_MP; }; }; _box = boundingBox _vehicle; _offset = _box select 1; //Gets an array with the maximum bounding values _offset = _offset select 2; //Gets the Maxmimum Z height _offset = _offset + 0.8; //Just a few inches more... _sp = visiblePosition _vehicle; _sp = _sp vectorAdd [0,0,_offset]; _vh = createVehicle ["Sign_Arrow_Large_F", _sp ,[],0,"NONE"]; _vh setPos _sp; [0] call SOCK_fnc_updatePartial; closeDialog 0; //Exit the menu. true; sleep 10; deleteVehicle _vh;
so hier noch die Erklärung was ich gemacht habe.
In Zeile 56 habe ich das folgende eingefügt
Code_pos = getMarkerPos _spawnPoint; if (_spawnPoint isEqualTo "civ_air_2") then { _pos = [_pos select 0,_pos select 1,209.513]; };
In _pos wird die orginale Position des Markers gespeichert (auf dem Boden). Anschliessend wird geprüft ob der Marker "civ_air_2" ist und wenn dies zutrifft verlegen wir die Höhe des Markers auf den gemessenen Wert von 209.512
heisst wir nehmen die Position x und y vom Marker und ersetzen die z Position mit dem ermittelten Wert von 209.512
_pos = [_pos select 0,_pos select 1,209.513]; Ist der 3, Wert im Array.
Anschliessend ersetzen wir noch Zeile 66 damit auch die Position richtig übernommen wird und nicht die Position auf dem Grund
if !( _vehicle isKindOf "Ship") then {_vehicle setPosATL _pos;} else {_vehicle setPosASL _pos;};
Da ich ein paar kleinere Probleme mit den Booten hatte habe ich das setPos mal mit einer If Anweisung versehen, damit Boote auf der Wasserobfläche spawnen
So einfach ersetzen und Spass haben
Gruß,
moeck
-
Vielen Dank moeck das du das gemacht hast.
-