Files
DayZ-Epoch/SQF/dayz_code/actions/AdvancedTrading/functions/z_at_sellItems.sqf
icomrade 1585765ca6 Advanced trading by Zupa @Windmolders
Stock configuration and basic integration. WE still need config based
trader setups.
2016-04-27 18:23:55 -04:00

114 lines
3.1 KiB
Plaintext

private ["_index","_tempArray","_outcome","_weaponsArray","_itemsArray","_bpArray","_bpCheckArray","_weaponsCheckArray","_itemsCheckArray"];
_index = count (Z_SellArray) - 1;
_tempArray = Z_SellArray;
if(_index > -1)then{
closeDialog 2;
_outcome = [];
_weaponsArray = [];
_itemsArray = [];
_bpArray = [];
_bpCheckArray = [];
_weaponsCheckArray = [];
_itemsCheckArray = [];
{
private ["_type","_name"];
_type = _x select 1;
_name = _x select 0;
switch (true) do {
case (_type == "trade_items") :
{
_itemsArray set [count(_itemsArray),_name];
_itemsCheckArray set [count(_itemsCheckArray),[_x select 2, _x select 11]];
};
case (_type == "trade_weapons") :
{
_weaponsArray set [count(_weaponsArray),_name];
_weaponsCheckArray set [count(_weaponsCheckArray),[_x select 2, _x select 11]];
};
case (_type == "trade_backpacks") :
{
_bpArray set [count(_bpArray),_name];
_bpCheckArray set [count(_bpCheckArray),[_x select 2, _x select 11]];
};
};
}count Z_SellArray;
if(Z_SellingFrom == 0)then{
_outcome = [unitBackpack player,_itemsArray,_weaponsArray] call ZUPA_fnc_removeWeaponsAndMagazinesCargo;
};
if(Z_SellingFrom == 1)then{
_outcome = [Z_vehicle,_itemsArray,_weaponsArray,_bpArray] call ZUPA_fnc_removeWeaponsAndMagazinesCargo;
};
//gear
if(Z_SellingFrom == 2)then{
_wA = [];
_mA = [];
{
_localResult = [player,(_x select 0),1] call BIS_fnc_invRemove;
if( _localResult != 1)then{
if(_x select 1 == "trade_items")then{
_mA set [count(_mA),0];
}else{
_wA set [count(_wA),0];
};
}else{
if(_x select 1 == "trade_items")then{
_mA set [count(_mA),1];
}else{
_wA set [count(_wA),1];
};
};
}count Z_SellArray;
_outcome set [0,_mA];
_outcome set [1,_wA];
_outcome set [2,[]];
};
_money = 0;
if (Z_SingleCurrency) then {
{
_money = _money + ( (((_itemsCheckArray select _forEachIndex) select 0)) * _x) ;
}forEach (_outcome select 0);
{
_money = _money + ( (((_weaponsCheckArray select _forEachIndex) select 0)) * _x) ;
}forEach (_outcome select 1);
{
_money = _money + ( ( ((_bpCheckArray select _forEachIndex) select 0) ) * _x) ;
}forEach (_outcome select 2);
} else {
{
_itemData = _itemsCheckArray select _forEachIndex;
_money = _money + ( (_itemData select 0) * (_itemData select 1) * _x);
}forEach (_outcome select 0);
{
_itemData = _weaponsCheckArray select _forEachIndex;
_money = _money + ( (_itemData select 0) * (_itemData select 1) * _x);
}forEach (_outcome select 1);
{
_itemData = _bpCheckArray select _forEachIndex;
_money = _money + ( (_itemData select 0) * (_itemData select 1) * _x);
}forEach (_outcome select 2);
};
if(typeName _money == "SCALAR") then {
if (Z_SingleCurrency) then {
_success = [player,_money] call SC_fnc_addCoins;
systemChat format["Trade successfull, received %1 %2", _money , CurrencyName];
} else {
_success = [_money, 0] call Z_returnChange;
systemChat format["Trade successfull."];
};
}else{
systemChat format["Money is not a number. Something went wrong."];
};
}else{
systemChat format["No Items to sell"];
};