mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-13 19:52:38 +03:00
106 lines
3.3 KiB
Plaintext
106 lines
3.3 KiB
Plaintext
if (dayz_actionInProgress) exitWith {localize "str_epoch_player_34" call dayz_rollingMessages;};
|
|
dayz_actionInProgress = true;
|
|
private ["_qty","_dis","_sfx","_started","_finished","_animState","_isRefuel","_fuelCans","_qty20","_qty5","_qty210","_magazines","_cursorTarget","_fuelAmount","_fuelNeeded"];
|
|
|
|
player removeAction s_player_fillfuel;
|
|
//s_player_fillfuel = -1;
|
|
_cursorTarget = _this select 3;
|
|
_magazines = magazines player;
|
|
|
|
//Limit Fuel in tankers
|
|
_fuelAmount = _cursorTarget getVariable "FuelAmount";
|
|
|
|
if (isNil "_fuelAmount") then {
|
|
_fuelAmount = floor(Random dayz_randomMaxFuelAmount) max (dayz_randomMaxFuelAmount * 0.10);
|
|
_cursorTarget setVariable ["FuelAmount",_fuelAmount,true];
|
|
};
|
|
|
|
_qty5 = {_x == "ItemFuelcanEmpty"} count _magazines;
|
|
_qty20 = {_x == "ItemJerrycanEmpty"} count _magazines;
|
|
_qty210 = {_x == "ItemFuelBarrelEmpty"} count _magazines;
|
|
|
|
_fuelNeeded = (_qty5 * 5) + (_qty20 * 20) + (_qty210 * 210);
|
|
|
|
if (_fuelAmount < _fuelNeeded) then {format[localize "str_fill_notenough",typeOf _cursorTarget,_fuelAmount,_fuelNeeded] call dayz_rollingMessages;};
|
|
|
|
_fuelCans = ["ItemFuelcanEmpty","ItemJerrycanEmpty","ItemFuelBarrelEmpty"];
|
|
|
|
_qty = 0;
|
|
_qty = {_x in _fuelCans} count _magazines;
|
|
|
|
if (("ItemJerrycanEmpty" in _magazines) or ("ItemFuelcanEmpty" in _magazines) or ("ItemFuelBarrelEmpty" in _magazines)) then {
|
|
player playActionNow "Medic";
|
|
|
|
_dis=5;
|
|
_sfx = "refuel";
|
|
[player,_sfx,0,false,_dis] call dayz_zombieSpeak;
|
|
[player,_dis,true,(getPosATL player)] call player_alertZombies;
|
|
|
|
// Added Nutrition-Factor for work
|
|
["Working",0,[20,40,15,0]] call dayz_NutritionSystem;
|
|
|
|
r_doLoop = true;
|
|
_started = false;
|
|
_finished = false;
|
|
while {r_doLoop} do {
|
|
_animState = animationState player;
|
|
_isRefuel = ["medic",_animState] call fnc_inString;
|
|
if (_isRefuel) then {
|
|
_started = true;
|
|
};
|
|
if (_started and !_isRefuel) then {
|
|
r_doLoop = false;
|
|
_finished = true;
|
|
};
|
|
uiSleep 0.1;
|
|
};
|
|
|
|
r_doLoop = false;
|
|
|
|
if (_finished) then {
|
|
for "_x" from 1 to _qty5 do {
|
|
_fuelAmount = _cursorTarget getVariable "FuelAmount";
|
|
|
|
if (_fuelAmount >= 5) then {
|
|
_fuelAmount = _fuelAmount - 5;
|
|
_cursorTarget setVariable ["FuelAmount",_fuelAmount,true];
|
|
player removeMagazine "ItemFuelcanEmpty";
|
|
player addMagazine "ItemFuelcan";
|
|
} else {
|
|
_qty = _qty - 1;
|
|
};
|
|
};
|
|
for "_x" from 1 to _qty20 do {
|
|
_fuelAmount = _cursorTarget getVariable "FuelAmount";
|
|
|
|
if (_fuelAmount >= 20) then {
|
|
_fuelAmount = _fuelAmount - 20;
|
|
_cursorTarget setVariable ["FuelAmount",_fuelAmount,true];
|
|
player removeMagazine "ItemJerrycanEmpty";
|
|
player addMagazine "ItemJerrycan";
|
|
} else {
|
|
_qty = _qty - 1;
|
|
};
|
|
};
|
|
for "_x" from 1 to _qty210 do {
|
|
_fuelAmount = _cursorTarget getVariable "FuelAmount";
|
|
|
|
if (_fuelAmount >= 210) then {
|
|
_fuelAmount = _fuelAmount - 210;
|
|
_cursorTarget setVariable ["FuelAmount",_fuelAmount,true];
|
|
player removeMagazine "ItemFuelBarrelEmpty";
|
|
player addMagazine "ItemFuelBarrel";
|
|
} else {
|
|
_qty = _qty - 1;
|
|
};
|
|
};
|
|
};
|
|
|
|
//format[localize "str_player_09",_qty] call dayz_rollingMessages;
|
|
format[localize "str_fill_success",_qty,typeOf _cursorTarget,_fuelAmount] call dayz_rollingMessages;
|
|
//diag_log format[localize "str_fill_success",_qty,typeOf _cursorTarget,_fuelAmount];
|
|
} else {
|
|
localize "str_player_10" call dayz_rollingMessages;
|
|
};
|
|
dayz_actionInProgress = false;
|