Files
DayZ-Epoch/SQF/dayz_code/actions/player_tearClothes.sqf
ebaydayz ee70dd49d3 Prevent rags duping
Vanilla development commit:

31167114e7
2016-05-03 17:28:33 -04:00

61 lines
1.7 KiB
Plaintext

private ["_skin","_rnd","_rounded","_itemtocreate","_i","_config","_infoText","_result","_nearByPile","_pile","__FILE__"];
_skin = _this;
_config = configFile >> "CfgMagazines" >> _skin;
_itemtocreate = getText (_config >> "Craftoutput");
_rnd = random 3;
_rounded = round _rnd;
call gear_ui_init;
closeDialog 0;
_infoText = "";
//Tear the clothes
player playActionNow "Medic";
[player,"bandage",0,false] call dayz_zombieSpeak;
uiSleep 6;
if !(_skin in magazines player) exitWith {localize "str_tear_clothes_0" call dayz_rollingMessages;};
player removeMagazine _skin;
switch (_rounded) do {
case 0: {
localize "str_tear_clothes_0" call dayz_rollingMessages;
};
case 1: {
localize "str_tear_clothes_1" call dayz_rollingMessages;
};
case 2: {
localize "str_tear_clothes_2" call dayz_rollingMessages;
};
case 3: {
localize "str_tear_clothes_3" call dayz_rollingMessages;
};
};
//Remove melee magazines (BIS_fnc_invAdd fix)
{player removeMagazines _x} count MeleeMagazines;
_i = 0;
while {_i < _rounded} do {
_i = _i + 1;
_result = [player,_itemtocreate] call BIS_fnc_invAdd;
if (_rnd < 0.5) then {
[player,"equip_string"] call BIS_fnc_invAdd;
};
uiSleep 0.03;
if (!_result) then {
systemchat (localize ("str_tear_clothes_noroom"));
_nearByPile = nearestObjects [getPosATL player, ["WeaponHolder","WeaponHolderBase"], 2];
_pile = if (count _nearByPile > 0) then {_nearByPile select 0};
if (count _nearByPile == 0) then {
_pos = player modeltoWorld [0,1,0];
_pos set [2, 0];
//diag_log format [ "%1 itempos:%2 _nearByPile:%3", __FILE__, _pos, _nearByPile];
_pile = createVehicle ["WeaponHolder", _pos, [], 0.0, "CAN_COLLIDE"];
_pile setPosATL _pos;
};
_pile addMagazineCargoGlobal [_itemtocreate,1];
};
};