70 lines
3.1 KiB
Plaintext
Executable File
70 lines
3.1 KiB
Plaintext
Executable File
// Developed by [GZA] David for German Zombie Apocalypse Servers (https://zombieapo.eu/)
|
|
// Rewritten by salival (https://github.com/oiad)
|
|
|
|
private ["_backPack","_charID","_dir","_heliPad","_inventory","_isNearPlot","_keyID","_keyName","_location","_plotCheck","_sign","_vehicle"];
|
|
|
|
closeDialog 0;
|
|
_vehicle = (call compile format["%1",lbData[2802,(lbCurSel 2802)]]);
|
|
|
|
if (vg_removeKey && {_vehicle select 3 != 0} && {({getNumber (configFile >> "CfgWeapons" >> _x >> "type") == 131072} count (weapons player)) == 12}) exitWith {localize "str_epoch_player_107" call dayz_rollingMessages;};
|
|
|
|
_dir = round(random 360);
|
|
_backPack = [];
|
|
|
|
_plotCheck = [player,false] call FNC_find_plots;
|
|
_isNearPlot = (_plotCheck select 1) > 0;
|
|
|
|
_heliPad = nearestObjects [if (_isNearPlot) then {_plotCheck select 2} else {player},vg_heliPads,if (_isNearPlot) then {DZE_maintainRange} else {Z_VehicleDistance}];
|
|
if ((count _heliPad == 0) && ((_vehicle select 1) isKindOf "Air")) exitWith {localize "STR_CL_VG_NEED_HELIPAD" call dayz_rollingMessages;};
|
|
if (count _heliPad > 0) then {
|
|
_location = [(_heliPad select 0)] call FNC_GetPos;
|
|
} else {
|
|
_location = [(position player),0,400,10,0,2000,0] call BIS_fnc_findSafePos;
|
|
_location set [2,0];
|
|
};
|
|
|
|
_sign = "Sign_arrow_down_large_EP1" createVehicleLocal [0,0,0];
|
|
_sign setPos _location;
|
|
|
|
if (surfaceIsWater _location && {count (_location nearEntities ["Ship",8]) > 0}) then {
|
|
deleteVehicle _sign;
|
|
localize "STR_EPOCH_TRADE_OBSTRUCTED" call dayz_rollingMessages;
|
|
} else {
|
|
[_vehicle select 1,_sign] call fn_waitForObject;
|
|
};
|
|
|
|
PVDZE_spawnVehicle = [[_dir,_location],player,_vehicle select 0];
|
|
publicVariableServer "PVDZE_spawnVehicle";
|
|
|
|
waitUntil {!isNil "PVDZE_spawnVehicleResult"};
|
|
|
|
if (PVDZE_spawnVehicleResult != "0") then {
|
|
_keyID = "";
|
|
_charID = parseNumber PVDZE_spawnVehicleResult;
|
|
if ((_charID > 0) && (_charID <= 2500)) then {_keyID = format["ItemKeyGreen%1",_charID];};
|
|
if ((_charID > 2500) && (_charID <= 5000)) then {_keyID = format["ItemKeyRed%1",_charID-2500];};
|
|
if ((_charID > 5000) && (_charID <= 7500)) then {_keyID = format["ItemKeyBlue%1",_charID-5000];};
|
|
if ((_charID > 7500) && (_charID <= 10000)) then {_keyID = format["ItemKeyYellow%1",_charID-7500];};
|
|
if ((_charID > 10000) && (_charID <= 12500)) then {_keyID = format["ItemKeyBlack%1",_charID-10000];};
|
|
_keyName = getText(configFile >> "CfgWeapons" >> _keyID >> "displayName");
|
|
|
|
if (vg_removeKey) then {
|
|
_inventory = weapons player;
|
|
dayz_myBackpack = unitBackpack player;
|
|
if (!isNull dayz_myBackpack) then {_backPack = (getWeaponCargo dayz_myBackpack) select 0;};
|
|
if (_keyID in (_inventory+_backPack)) then {
|
|
if (_keyID in _inventory) then {format[localize "STR_CL_VG_IN_INVENTORY",_keyName] call dayz_rollingMessages;};
|
|
if (_keyID in _backPack) then {format[localize "STR_CL_VG_IN_BACKPACK",_keyName] call dayz_rollingMessages;};
|
|
} else {
|
|
player addWeapon _keyID;
|
|
format[localize "STR_CL_VG_ADDED_INVENTORY",_keyName] call dayz_rollingMessages;
|
|
};
|
|
};
|
|
};
|
|
|
|
PVDZE_spawnVehicle = nil;
|
|
PVDZE_spawnVehicleResult = nil;
|
|
vg_vehicleList = nil;
|
|
|
|
localize "STR_CL_VG_VEHICLE_SPAWNED" call dayz_rollingMessages;
|