91 lines
3.6 KiB
Plaintext
Executable File
91 lines
3.6 KiB
Plaintext
Executable File
// Developed by [GZA] David for German Zombie Apocalypse Servers (https://zombieapo.eu/)
|
|
// Rewritten by salival (https://github.com/oiad)
|
|
|
|
private ["_class","_control","_displayName","_heliPad","_isNearPlot","_itemText","_localVehicles","_plotCheck","_storedVehicles","_vgDisplCtl"];
|
|
|
|
if (isNil "vg_init") then {
|
|
player_getVehicle = compile preprocessFileLineNumbers "scripts\virtualGarage\player_getVehicle.sqf";
|
|
player_removePad = compile preprocessFileLineNumbers "scripts\virtualGarage\player_removePad.sqf";
|
|
player_storeVehicle = compile preprocessFileLineNumbers "scripts\virtualGarage\player_storeVehicle.sqf";
|
|
Player_MaintainVG = compile preprocessFileLineNumbers "scripts\virtualGarage\player_MaintainVG.sqf";
|
|
vehicleInfo = compile preprocessFileLineNumbers "scripts\virtualGarage\vehicleInfo.sqf";
|
|
vg_maintainSetText = {
|
|
disableSerialization;
|
|
waituntil {!isNull (findDisplay 2800)};
|
|
_vgDisplCtl = (findDisplay 2800) displayCtrl 2854;
|
|
if (vg_maintainCost > 0) then {
|
|
_itemText = if (Z_SingleCurrency) then {CurrencyName} else {[vg_maintainCost,true] call z_calcCurrency};
|
|
if (Z_SingleCurrency) then {
|
|
_vgDisplCtl ctrlSetText format["%1 (%2 %3)",localize "STR_CL_VG_MAINTAIN_GARAGE",vg_maintainCost,_itemText];
|
|
} else {
|
|
_vgDisplCtl ctrlSetText format["%1 (%2)",localize "STR_CL_VG_MAINTAIN_GARAGE",_itemText];
|
|
};
|
|
} else {
|
|
_vgDisplCtl ctrlSetText format["%1 (%2)",localize "STR_CL_VG_MAINTAIN_GARAGE",localize "strwffree"];
|
|
};
|
|
};
|
|
vg_init = true;
|
|
};
|
|
|
|
if (dayz_actionInProgress) exitWith {localize "str_player_actionslimit" call dayz_rollingMessages;};
|
|
dayz_actionInProgress = true;
|
|
|
|
disableSerialization;
|
|
|
|
vg_hasRun = false;
|
|
|
|
createDialog "virtualGarage";
|
|
|
|
{ctrlShow [_x,false]} count [2803,2830,2850,2851,2852,2853];
|
|
|
|
_plotCheck = [player,false] call FNC_find_plots;
|
|
_isNearPlot = (_plotCheck select 1) > 0;
|
|
|
|
PVDZE_queryVehicle = if (vg_tiedToPole) then {
|
|
[player,if (_isNearPlot) then {(_plotCheck select 2) getVariable ["ownerPUID","0"]} else {dayz_playerUID}]
|
|
} else {
|
|
[player]
|
|
};
|
|
|
|
publicVariableServer "PVDZE_queryVehicle";
|
|
waitUntil {!isNil "PVDZE_queryVehicleResult"};
|
|
|
|
_storedVehicles = PVDZE_queryVehicleResult;
|
|
PVDZE_queryVehicle = nil;
|
|
PVDZE_queryVehicleResult = nil;
|
|
|
|
_localVehicles = ([player] call FNC_getPos) nearEntities [["Air","LandVehicle","Ship"],Z_VehicleDistance];
|
|
_heliPad = nearestObjects [if (_isNearPlot) then {_plotCheck select 2} else {player},vg_heliPads,if (_isNearPlot) then {DZE_maintainRange} else {Z_VehicleDistance}];
|
|
|
|
if (count _heliPad > 0 && {_isNearPlot}) then {ctrlShow[2853,true];};
|
|
|
|
_control = ((findDisplay 2800) displayCtrl 2802);
|
|
lbClear _control;
|
|
|
|
if (count _storedVehicles == 0 && {isNull DZE_myVehicle || {!(alive DZE_myVehicle)} || {!(local DZE_myVehicle)}}) exitWith {ctrlSetText[2811,localize "STR_CL_VG_NO_VEHICLES"];};
|
|
|
|
vg_vehicleList = [];
|
|
|
|
{
|
|
_displayName = getText(configFile >> "CfgVehicles" >> (_x select 1) >> "displayName");
|
|
_control lbAdd _displayName;
|
|
_control lbSetData [(lbSize _control)-1,str(_x)];
|
|
vg_vehicleList set [count vg_vehicleList,_x];
|
|
} count _storedVehicles;
|
|
|
|
{
|
|
if (!isNull DZE_myVehicle && {local DZE_myVehicle} && {alive DZE_myVehicle} && {DZE_myVehicle == _x}) then {
|
|
_class = typeOf _x;
|
|
_displayName = getText(configFile >> "CfgVehicles" >> _class >> "displayName");
|
|
_control lbAdd _displayName;
|
|
_control lbSetData [(lbSize _control)-1,_class];
|
|
_control lbSetColor [(lbSize _control)-1,[0, 1, 0, 1]];
|
|
vg_vehicleList set [count vg_vehicleList,_x];
|
|
};
|
|
} count _localVehicles;
|
|
|
|
ctrlShow[2810,false];
|
|
ctrlShow[2811,false];
|
|
|
|
ctrlSetText [2804, format ["%1 (%2 %3)",localize "STR_CL_VG_YOUR_VEHICLES",count (_storedVehicles),localize "STR_CL_VG_VEHICLES"]];
|