mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-14 04:02:37 +03:00
dayz_zombieSpeak and player_alertZombies are called often together or should be. fnc_alertZombies groups them together and uses the given parameters. This streamlines and corrects the missing or incorrect calls from dayz_zombieSpeak or player_alertZombies.
73 lines
2.1 KiB
Plaintext
73 lines
2.1 KiB
Plaintext
if (dayz_actionInProgress) exitWith {localize "str_epoch_player_75" call dayz_rollingMessages;};
|
|
dayz_actionInProgress = true;
|
|
|
|
private ["_dir","_classname","_b0x1337","_location","_item","_config","_create_raw","_create","_qty","_type","_hasCrate","_hasTool","_finished"];
|
|
|
|
_hasTool = "ItemCrowbar" in items player;
|
|
if(!_hasTool) exitWith {
|
|
localize "str_epoch_player_76" call dayz_rollingMessages;
|
|
dayz_actionInProgress = false;
|
|
};
|
|
|
|
_item = _this;
|
|
_hasCrate = _item in magazines player;
|
|
if (!_hasCrate) exitWith {
|
|
localize "str_epoch_player_77" call dayz_rollingMessages;
|
|
dayz_actionInProgress = false;
|
|
};
|
|
|
|
_config = configFile >> "CfgMagazines" >> _item;
|
|
_create_raw = getArray (_config >> "ItemActions" >> "CreateMags" >> "output");
|
|
_create = _create_raw select 0;
|
|
_qty = _create_raw select 1;
|
|
_type = _create_raw select 2;
|
|
|
|
_location = player modeltoworld [0,0.3,0];
|
|
if ((_location select 2) < 0) then {
|
|
_location set [2,0];
|
|
};
|
|
|
|
[player,(getPosATL player),20,"repair"] spawn fnc_alertZombies;
|
|
|
|
_finished = ["Medic",1] call fn_loopAction;
|
|
if (!_finished or !(_item in magazines player)) exitWith {
|
|
dayz_actionInProgress = false;
|
|
};
|
|
|
|
//remove (partially) full crate
|
|
player removeMagazine _item;
|
|
_dir = getDir player;
|
|
_classname = "WeaponHolder";
|
|
|
|
//return empty crate to inventory
|
|
player addMagazine "bulk_empty";
|
|
|
|
["Working",0,[20,40,15,0]] call dayz_NutritionSystem;
|
|
|
|
_b0x1337 = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"];
|
|
_b0x1337 setDir _dir;
|
|
|
|
// Fill box with Items from config.
|
|
if(_type == "magazine") then {
|
|
_b0x1337 addMagazineCargoGlobal [_create,_qty];
|
|
};
|
|
if(_type == "weapon") then {
|
|
_b0x1337 addWeaponCargoGlobal [_create,_qty];
|
|
};
|
|
if(_type == "backpack") then {
|
|
_b0x1337 addBackpackCargoGlobal [_create,_qty];
|
|
};
|
|
if (surfaceIsWater _location) then {
|
|
_b0x1337 setPosASL (getPosASL player);
|
|
} else {
|
|
_b0x1337 setPosATL _location;
|
|
};
|
|
|
|
player reveal _b0x1337;
|
|
DZE_GearCheckBypass = true; //Bypass gear menu checks since dialog will always open on crate
|
|
player action ["Gear", _b0x1337];
|
|
|
|
localize "str_epoch_player_78" call dayz_rollingMessages;
|
|
|
|
dayz_actionInProgress = false;
|