mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-15 04:23:13 +03:00
Move unused functions to another folder
This commit is contained in:
167
SQF/dayz_code/old/player_craftitemGUI.sqf
Normal file
167
SQF/dayz_code/old/player_craftitemGUI.sqf
Normal file
@@ -0,0 +1,167 @@
|
||||
/*
|
||||
Created by Alby exclusively for DayZMod.
|
||||
Please request permission to use/alter from Alby.
|
||||
*/
|
||||
|
||||
private ["_config","_input","_output","_required","_failChance","_hasInput","_availabeSpace","_overwrite","_nearByPile","_index","_entry","_nearByTable","_weaps","_mags","_objMagTypes","_objMagQty","_i","_obj","_return","_inArray","_avail","_selection","_item","_amount","_itemName","_freeSlots","_slotType","_j"];
|
||||
disableSerialization;
|
||||
["close"] call fn_updateCraftUI;
|
||||
|
||||
_config = _this select 0;
|
||||
_overwrite = _this select 1;
|
||||
_input = getArray (_config >> "input");
|
||||
_output = getArray (_config >> "output");
|
||||
_required = getArray (_config >> "required");
|
||||
_failChance = getNumber (_config >> "failChance");
|
||||
_nearByPile = nearestObjects [getPosATL player, ["SmallCraftTable_dz"], 3];
|
||||
|
||||
//diag_log (str(_this));
|
||||
|
||||
if (count _overwrite > 0) then {
|
||||
{
|
||||
_index = _x select 0;
|
||||
_entry = _x select 1;
|
||||
_input set [_index, _entry];
|
||||
}forEach _overwrite;
|
||||
};
|
||||
|
||||
if (count _nearByPile > 0) then {
|
||||
//done from craftingtable (ground)
|
||||
//diag_log ("Table");
|
||||
_nearByTable = nearestObjects [getPosATL player, ["SmallCraftTable_dz"], 3];
|
||||
if (count _nearByTable > 0) then {
|
||||
_weaps = getWeaponCargo (_nearByTable select 0);
|
||||
_mags = getMagazineCargo (_nearByTable select 0);
|
||||
|
||||
//Add Magazines
|
||||
_objMagTypes = _mags select 0;
|
||||
_objMagQty = _mags select 1;
|
||||
|
||||
//diag_log format["%1, %2",_objMagTypes,_objMagQty];
|
||||
|
||||
for "_i" from 0 to (count _objMagTypes - 1) do {
|
||||
_obj = _objMagTypes select _i;
|
||||
_index = [_return, _obj] call _inArray;
|
||||
|
||||
//diag_log format["MagName: %1, %2",_obj,_index];
|
||||
};
|
||||
|
||||
_hasInput = true;
|
||||
};
|
||||
} else {
|
||||
//done from player inventory
|
||||
_hasInput = true;
|
||||
{
|
||||
private ["_avail"];
|
||||
_selection = _x select 1;
|
||||
_item = _x select 0;
|
||||
_amount = _x select 2;
|
||||
|
||||
switch (_selection) do {
|
||||
case "CfgWeapons":
|
||||
{
|
||||
_avail = {_x == _item} count weapons player;
|
||||
};
|
||||
case "CfgMagazines":
|
||||
{
|
||||
_avail = {_x == _item} count magazines player;
|
||||
};
|
||||
};
|
||||
|
||||
if (_avail < _amount) exitWith {
|
||||
_hasInput = false;
|
||||
_itemName = getText(configFile >> _selection >> _item >> "displayName");
|
||||
format[localize "str_crafting_missing",(_amount - _avail),_itemName] call dayz_rollingMessages;
|
||||
};
|
||||
} forEach (_input + _required);
|
||||
|
||||
if (_hasInput) then {
|
||||
//Remove melee magazines (BIS_fnc_invAdd and BIS_fnc_invSlotsEmpty fix)
|
||||
false call dz_fn_meleeMagazines;
|
||||
_freeSlots = [player] call BIS_fnc_invSlotsEmpty;
|
||||
{
|
||||
_item = _x select 0;
|
||||
_amount = _x select 2;
|
||||
_slotType = [_item] call BIS_fnc_invSlotType;
|
||||
for "_i" from 1 to _amount do {
|
||||
for "_j" from 1 to (count _slotType) do {
|
||||
if ((_slotType select _j) > 0) then {
|
||||
_freeSlots set[_j, ((_freeSlots select _j) + (_slotType select _j))];
|
||||
};
|
||||
};
|
||||
};
|
||||
} forEach _input;
|
||||
|
||||
_availabeSpace = true;
|
||||
{
|
||||
_item = _x select 0;
|
||||
_amount = _x select 2;
|
||||
_slotType = [_item] call BIS_fnc_invSlotType;
|
||||
for "_i" from 1 to _amount do {
|
||||
for "_j" from 1 to (count _slotType) do {
|
||||
if ((_slotType select _j) > 0) then {
|
||||
_freeSlots set[_j, ((_freeSlots select _j) - (_slotType select _j))];
|
||||
if (_freeSlots select _j < 0) exitWith {
|
||||
_availabeSpace = false;
|
||||
localize "str_crafting_space" call dayz_rollingMessages;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
} forEach _output;
|
||||
true call dz_fn_meleeMagazines;
|
||||
//uiSleep 1;
|
||||
|
||||
if (_availabeSpace) then {
|
||||
player playActionNow "PutDown";
|
||||
{
|
||||
_item = _x select 0;
|
||||
_amount = _x select 2;
|
||||
for "_i" from 1 to _amount do {
|
||||
_selection = _x select 1;
|
||||
switch (_selection) do {
|
||||
case "CfgWeapons":
|
||||
{
|
||||
player removeWeapon _item;
|
||||
};
|
||||
case "CfgMagazines":
|
||||
{
|
||||
player removeMagazine _item;
|
||||
};
|
||||
};
|
||||
//uiSleep 0.1;
|
||||
};
|
||||
} forEach _input;
|
||||
|
||||
{
|
||||
_item = _x select 0;
|
||||
_selection = _x select 1;
|
||||
_amount = _x select 2;
|
||||
_itemName = getText(configFile >> _selection >> _item >> "displayName");
|
||||
for "_i" from 1 to _amount do {
|
||||
if (random 1 > _failChance) then {
|
||||
switch (_selection) do {
|
||||
case "CfgWeapons":
|
||||
{
|
||||
player addWeapon _item;
|
||||
};
|
||||
case "CfgMagazines":
|
||||
{
|
||||
player addMagazine _item;
|
||||
};
|
||||
case "CfgVehicles":
|
||||
{
|
||||
player addBackpack _item;
|
||||
};
|
||||
};
|
||||
format[localize "str_crafting_success",_itemName] call dayz_rollingMessages;
|
||||
//uiSleep 2;
|
||||
} else {
|
||||
format[localize "str_crafting_failed",_itemName] call dayz_rollingMessages;
|
||||
//uiSleep 2;
|
||||
};
|
||||
};
|
||||
} forEach _output;
|
||||
};
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user