Thursday, September 19, 2024 11:55:52 PM
> settings

Customize


Authenticate

> ExileClient_marxet_gui_updateInventoryListBox.sqf
/*
    MarXet v2.0
    Written by WolfkillArcadia
    CC BY-NC-SA 4.0
*/
 
private["_display", "_inventoryDropdown", "_dropdownIndex", "_tradeContainerType", "_tradeVehicleObject", "_items", "_currentLoad", "_maximumLoad", "_inventoryListBox", "_containerClass", "_vehicles", "_vehicleNetID", "_vehicleObject", "_inventoryLoadProgress", "_inventoryLoadValue", "_itemClassName", "_itemInfo", "_indexEntryIndex", "_configName", "_quality", "_qualityColor"];
disableSerialization;
_display = uiNameSpace getVariable ["RscMarXet", displayNull];
_inventoryDropdown = _display displayCtrl 22019;
_dropdownIndex = lbCurSel _inventoryDropdown;
_tradeContainerType = _inventoryDropdown lbValue _dropdownIndex;
_tradeVehicleObject = objNull;
_items = [];
_currentLoad = 0;
_maximumLoad = 0;
_inventoryListBox = _display displayCtrl 22020;
lbClear _inventoryListBox;
switch (_tradeContainerType) do
{
	case 1: 
	{
		_currentLoad = (loadAbs player);
		_maximumLoad = getNumber(configfile >> "CfgInventoryGlobalVariable" >> "maxSoldierLoad");
		_items = [player, true] call ExileClient_util_playerEquipment_list;
		if (player getVariable ["ExileMoney", 0] > 0) then 
		{
			if (MarXetCurrentPanel isEqualTo 22028) then
			{
				_items = ["ExileMoney"] + _items;
			};
		};
		if (ExileClientPlayerScore > 0) then 
		{
			if (MarXetCurrentPanel in [22028, 22031]) then
			{
				_items = ["ExileScore"] + _items;
			};
		};
	};
	case 2:
	{
		_containerClass = getText(configFile >> "CfgWeapons" >> (uniform player) >> "ItemInfo" >> "containerClass");
		_maximumLoad = getNumber(configFile >> "CfgVehicles" >> _containerClass >> "maximumLoad");
		_currentLoad = (loadUniform player) * _maximumLoad;
		_items = (uniformContainer player) call ExileClient_util_containerCargo_list;
	};
	case 3: 
	{
		_containerClass = getText(configFile >> "CfgWeapons" >> (vest player) >> "ItemInfo" >> "containerClass");
		_maximumLoad = getNumber(configFile >> "CfgVehicles" >> _containerClass >> "maximumLoad");
		_currentLoad = (loadVest player) * _maximumLoad;
		_items = (vestContainer player) call ExileClient_util_containerCargo_list;
	};
	case 4:
	{
		_maximumLoad = getNumber(configFile >> "CfgVehicles" >> (backpack player) >> "maximumLoad");
		_currentLoad = (loadBackpack player) * _maximumLoad;
		_items = (backpackContainer player) call ExileClient_util_containerCargo_list;
	};
	default 
	{
		_items = [];
		_vehicles = nearestObjects [player, ["LandVehicle", "Air", "Ship"], 80];
		if (getNumber(missionConfigFile >> "CfgMarXet" >> "Settings" >> "Vehicles" >> "allowVehiclesToBeListed") isEqualTo 1) then 
		{
			if ((MarXetCurrentPanel in [22028])) then 
			{
				{
					if (local _x && {alive _x}) then 
					{
						_items pushBack [typeOf _x, netID _x];
					};
				}
				forEach _vehicles;
			};
			_maximumLoad = 0;
			_currentLoad = 0;
		}
		else
		{
			_vehicleNetID = _inventoryDropdown lbData _dropdownIndex;
			_vehicleObject = objectFromNetId _vehicleNetID;
			_maximumLoad = getNumber(configFile >> "CfgVehicles" >> (typeOf _vehicleObject) >> "maximumLoad");
			_items = _vehicleObject call ExileClient_util_containerCargo_list;
			_currentLoad = _items call ExileClient_util_gear_calculateLoad;
		};
	};
};
if (MarXetCurrentPanel in [22028, 22031]) then 
{
	(_display displayCtrl 22021) ctrlShow false;
	(_display displayCtrl 22022) ctrlShow false;
	(_display displayCtrl 22023) ctrlShow false;
	(_display displayCtrl 22024) ctrlShow false;
	(_display displayCtrl 22026) ctrlShow true;
	(_display displayCtrl 22025) ctrlShow true;
	(_display displayCtrl 22025) ctrlEnable false;
	(_display displayCtrl 22025) ctrlSetText "1";
}
else
{
	(_display displayCtrl 22025) ctrlShow false;
	(_display displayCtrl 22026) ctrlShow false;
	(_display displayCtrl 22021) ctrlShow true;
	(_display displayCtrl 22022) ctrlShow true;
	(_display displayCtrl 22023) ctrlShow true;
	(_display displayCtrl 22024) ctrlShow true;
	_inventoryLoadProgress = _display displayCtrl 22022;
	_inventoryLoadProgress progressSetPosition (_currentLoad / (_maximumLoad max 1));
	_inventoryLoadProgress ctrlShow true;
	_inventoryLoadValue = _display displayCtrl 22024;
	_inventoryLoadValue ctrlSetStructuredText (parseText format["<t size='1' font='puristaMedium' align='right'>%1/%2</t>", round(_currentLoad), _maximumLoad]);
	_inventoryLoadValue ctrlShow true;
};
{
	_itemClassName = _x;
	_itemInfo = "";
	if (_x isEqualType []) then 
	{
		_itemClassName = _x select 0;
		_itemInfo = _x select 1;
	};
	switch (_itemClassName) do 
	{
		case "ExileMoney": 
		{
			_indexEntryIndex = _inventoryListBox lbAdd "Poptabs";
			_inventoryListBox lbSetColor [_indexEntryIndex, [0.93, 0, 0.48, 1]];
			_inventoryListBox lbSetPicture [_indexEntryIndex, "\exile_assets\texture\ui\poptab_notification_ca.paa"];
			_inventoryListBox lbSetValue [_indexEntryIndex, _tradeContainerType];
			_inventoryListBox lbSetData [_indexEntryIndex, str([_itemClassName, "1"])];
		};
		case "ExileScore": 
		{
			_indexEntryIndex = _inventoryListBox lbAdd "Respect";
			_inventoryListBox lbSetColor [_indexEntryIndex, [0.93, 0, 0.48, 1]];
			_inventoryListBox lbSetPicture [_indexEntryIndex, "\exile_assets\texture\ui\fail_ca.paa"];
			_inventoryListBox lbSetValue [_indexEntryIndex, _tradeContainerType];
			_inventoryListBox lbSetData [_indexEntryIndex, str([_itemClassName, "1"])];
		};
		default 
		{
			_configName = _itemClassName call ExileClient_util_gear_getConfigNameByClassName;
			_quality = getNumber(missionConfigFile >> "CfgExileArsenal" >> _itemClassName >> "quality");
			_qualityColor = [1, 1, 1, 1];
			switch (_quality) do
			{
				case 2: 		 { _qualityColor = [0.62, 0.87 ,0.23, 1]; };
				case 3:		 { _qualityColor = [0, 0.78, 0.92, 1]; };
				case 4:		 { _qualityColor = [0.62, 0.27, 0.58, 1]; };
				case 5:		 { _qualityColor = [1, 0.7, 0.09, 1]; };
				case 6:		 { _qualityColor = [0.93, 0, 0.48, 1]; };						
			};
			_indexEntryIndex = _inventoryListBox lbAdd getText(configFile >> _configName >> _itemClassName >> "displayName");
			_inventoryListBox lbSetColor [_indexEntryIndex, _qualityColor];
			_inventoryListBox lbSetPicture [_indexEntryIndex, getText(configFile >> _configName >> _itemClassName >> "picture")];
			_inventoryListBox lbSetValue [_indexEntryIndex, _tradeContainerType];
			_inventoryListBox lbSetData [_indexEntryIndex, str([_itemClassName, _itemInfo])];
		};
	};
}
forEach _items;
_inventoryListBox lbSetCurSel 0;
true
All opinions represented herein are my own
- © 2024 itsthedevman
- build 3c15a1b