mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-24 17:39:18 +03:00
88 lines
2.6 KiB
Plaintext
88 lines
2.6 KiB
Plaintext
if (dayz_actionInProgress) exitWith { localize "str_player_actionslimit" call dayz_rollingMessages; };
|
|
dayz_actionInProgress = true;
|
|
|
|
disableSerialization;
|
|
call gear_ui_init;
|
|
closeDialog 0;
|
|
|
|
local _create = _this;
|
|
|
|
if !(_create in magazines player) exitWith {dayz_actionInProgress = false;};
|
|
|
|
//player playActionNow "PutDown";
|
|
|
|
local _config = configFile >> "CfgMagazines" >> _create;
|
|
local _magSize = getNumber(_config >> "count");
|
|
local _type = getNumber(_config >> "type");
|
|
local _name = getText(_config >> "displayName");
|
|
local _magCount = {_x == _create} count magazines player;
|
|
|
|
if (_magCount == 1) exitWith {
|
|
[format [localize "str_cannotCombine", _name], 1] call dayz_rollingMessages;
|
|
dayz_actionInProgress = false;
|
|
};
|
|
|
|
//primary/secondary mags
|
|
local _slotStart = 0;
|
|
local _slotEnd = 0;
|
|
|
|
call {
|
|
if ((_type == 256) || {_type == 512}) exitWith {
|
|
_slotStart = 109;
|
|
_slotEnd = 120;
|
|
};
|
|
if (_type == 16) exitWith {
|
|
_slotStart = 122;
|
|
_slotEnd = 129;
|
|
};
|
|
};
|
|
|
|
local _dialog = findDisplay 106;
|
|
local _qty_total_ammo = 0;
|
|
|
|
for "_i" from _slotStart to _slotEnd do {
|
|
local _control = _dialog displayCtrl _i;
|
|
local _mag = gearSlotData _control;
|
|
|
|
if (_mag == _create) then {
|
|
_qty_total_ammo = _qty_total_ammo + gearSlotAmmoCount _control;
|
|
};
|
|
};
|
|
|
|
local _qtynew_create_mags_full = floor (_qty_total_ammo / _magSize);
|
|
local _qtynew_create_ammo_rest = _qty_total_ammo - (_qtynew_create_mags_full * _magSize);
|
|
|
|
player removeMagazines _create;
|
|
|
|
for "_i" from 1 to _qtynew_create_mags_full do {
|
|
player addMagazine _create;
|
|
};
|
|
if (_qtynew_create_ammo_rest != 0) then {
|
|
player addMagazine [_create, _qtynew_create_ammo_rest];
|
|
};
|
|
|
|
local _magFull = localize "str_combineMagazines";
|
|
local _magFullSingular = localize "str_combineMagazine";
|
|
local _magAmmunition = localize "str_combineBullets";
|
|
|
|
// Check if quiver
|
|
if (_create == "Quiver") then {
|
|
_magFull = localize "str_combineQuivers";
|
|
_magFullSingular = localize "str_combineQuiver";
|
|
_magAmmunition = localize "str_combineArrows";
|
|
};
|
|
|
|
call {
|
|
if (_qtynew_create_ammo_rest == 0) exitWith {
|
|
format[localize "str_combineDoneFull", _magCount, _name, _qtynew_create_mags_full, _magFull] call dayz_rollingMessages;
|
|
};
|
|
if (_qtynew_create_mags_full == 0) exitWith {
|
|
[format[localize "str_combineDonePartialOne", _magCount, _name, _qtynew_create_ammo_rest, _magAmmunition], 1] call dayz_rollingMessages;
|
|
};
|
|
[format[localize "str_combineDonePartial", _magCount, _name, _qtynew_create_mags_full, _qtynew_create_ammo_rest, _magAmmunition, _magFullSingular, _magFull], 1] call dayz_rollingMessages;
|
|
};
|
|
|
|
reload player;
|
|
uiSleep 1;
|
|
dayz_actionInProgress = false;
|