Thursday, September 19, 2024 11:50:43 PM
> settings

Customize


Authenticate

> ExileClient_marxet_gui_tradeView_updateListingInfo.sqf
/*
    MarXet v2.0
    Written by WolfkillArcadia
    CC BY-NC-SA 4.0
*/
 
private["_listbox", "_index", "_display", "_entry", "_classname", "_title", "_skinName", "_vehicleCost", "_rekeyCost", "_amount", "_requestedBy", "_requestedItemsLB", "_hasAllRequested", "_isVehicle", "_displayName", "_picture", "_hasItem", "_damaged", "_textRight", "_textColor", "_quantity", "_configName", "_cargo", "_overallHealth"];
disableSerialization;
_listbox = _this select 0;
_index = _this select 1;
_display = uiNamespace getVariable ["RscMarXet", displayNull];
if (_index isEqualTo -1) exitWith 
{
	(_display displayCtrl 22102) ctrlSetStructuredText parseText "<t align='center' size='1.2'>Please select an Item</t>";
	call ExileClient_marxet_gui_tradeView_postInit;
};
if ((_listbox lbValue _index) isEqualTo 1) exitWith 
{
	(_display displayCtrl 22102) ctrlSetStructuredText parseText "<t align='center' size='1.2'>You listed this item<br/><t size='0.8'>You can modify it in ""My Requests""</t></t>";
	call ExileClient_marxet_gui_tradeView_postInit;
};
_entry = parseSimpleArray(_listbox lbData _index);
MarXetCurrentSelectedID = (_entry select 3) select 4;
_name = (_entry select 3) select 2;
_classname = (_entry select 3) select 0;
_title = _display displayCtrl 22102;
_title ctrlSetStructuredText parseText format[
	"<t align='center' size='1.2'>Trading For<br/><t color='#3FD4FC'>%1</t>", 
	_name
];
if (_classname isKindOf "AllVehicles") then 
{
	_skinName = _classname call ExileClient_marxet_util_vehicle_getSkinName;
	if !(_skinName isEqualTo "") then 
	{
		_title ctrlSetStructuredText parseText format[
			"<t align='center' size='1.2'>Trading For<br/><t color='#3FD4FC'>%1 (%2)</t>", 
			_name,
			_skinName
		];
	};
	if (getNumber(missionConfigFile >> "CfgMarXet" >> "Settings" >> "Vehicles" >> "addRekeyFee") isEqualTo 1) then 
	{
		_index = -1;
		_vehicleCost = getNumber (missionConfigFile >> "CfgExileArsenal" >> _classname >> "price");
		_rekeyCost = floor(_vehicleCost * (getNumber (missionConfigFile >> "CfgTrading" >> "rekeyPriceFactor"))) max 1;
		{
			if ((_x select 0) isEqualTo "ExileMoney") exitWith 
			{
				_index = _forEachIndex;
			};
		}
		forEach (_entry select 4);
		if (_index isEqualTo -1) then 
		{
			(_entry select 4) pushBack ["ExileMoney", _rekeyCost];
		}
		else
		{
			_amount = ((_entry select 4) select _index) select 1;
			((_entry select 4) select _index) set [1, _amount + _rekeyCost];
		};
	};
};
if ((_entry select 1) select 2) then 
{
	_requestedBy = _display displayCtrl 22103;
	_requestedBy ctrlSetStructuredText parseText format["<t size='0.8' align='center'>Requestor: %1</t>", (_entry select 1) select 1];
	_requestedBy ctrlShow true;
};
_requestedItemsLB = _display displayCtrl 22105;
lbClear _requestedItemsLB;
_hasAllRequested = [];
_isVehicle = false;
{
	_displayName = "";
	_picture = "";
	_hasItem = false;
	_damaged = false;
	_textRight = "";
	_textColor = [0.780, 0.149, 0.318, 1];
	_classname = _x select 0;
	_quantity = _x select 1;
	switch (_classname) do 
	{
		case "ExileMoney": 
		{
			_displayName = "Poptabs";
			_picture = "\exile_assets\texture\ui\poptab_notification_ca.paa";
			_hasItem = (player getVariable ["ExileMoney", 0]) >= _quantity;
		};
		case "ExileScore": 
		{
			_displayName = "Respect";
			_picture = "\exile_assets\texture\ui\fail_ca.paa";
			_hasItem = ExileClientPlayerScore >= _quantity;
		};
		default 
		{
			_configName = _classname call ExileClient_util_gear_getConfigNameByClassName;
			_displayName = getText(configFile >> _configName >> _classname >> "displayName");
			_picture = getText(configFile >> _configName >> _classname >> "picture");
			_cargo = (player call ExileClient_util_playerCargo_list) call ExileClient_util_array_toLower;
			{
				if (local _x && {alive _x}) then 
				{
					if (toLower(typeOf(_x)) isEqualTo toLower(_classname)) then 
					{
						_overallHealth = (getAllHitPointsDamage _x) call ExileClient_marxet_util_vehicle_getOverallDamage;
						_overallHealth = [(1 - _overallHealth) * 100, 2] call ExileClient_util_math_round;
						_damaged = _overallHealth < getNumber(missionConfigFile >> "CfgMarXet" >> "Settings" >> "Vehicles" >> "overallVehicleHealth");
					};
					_cargo pushBack toLower(typeOf(_x));
					_cargo append (_x call ExileClient_util_containerCargo_list) call ExileClient_util_array_toLower;
				};
			}
			forEach (nearestObjects [player, ["LandVehicle", "Air", "Ship"], 80]);
			_hasItem = ({ _x isEqualTo toLower(_classname) } count _cargo) >= _quantity;
		};
	};
	switch (true) do 
	{
		case (_hasItem && _damaged):
		{
			_textRight = "Too damaged";
			_textColor = [0.871, 0.796, 0.227, 1];
		};
		case (_hasItem && !_damaged):
		{
			_textRight = "Found";
			_textColor = [0.627, 0.874, 0.231, 1];
		};
		default 
		{
			_textRight = "Missing";
			_textColor = [0.780, 0.149, 0.318, 1];
		};
	};
	_hasAllRequested pushBack (_hasItem && !_damaged);
	_index = _requestedItemsLB lbAdd format["%2x %1", _displayName, _quantity];
	_requestedItemsLB lbSetTextRight [_index, _textRight];
	_requestedItemsLB lbSetColorRight [_index, _textColor];
	_requestedItemsLB lbSetPicture [_index, _picture];
	if (_classname isKindOf "AllVehicles") then 
	{
		_skinName = _classname call ExileClient_marxet_util_vehicle_getSkinName;
		if !(_skinName isEqualTo "") then 
		{
			_requestedItemsLB lbSetText [_index, format["%1x %2 (%3)", _quantity, _displayName, _skinName]];
		};
	};
}
forEach (_entry select 4);
_hasAllRequested = ({_x} count _hasAllRequested) isEqualTo count(_hasAllRequested);
_isVehicle = ((_entry select 3) select 0) isKindOf "AllVehicles";
{
	(_display displayCtrl _x) ctrlShow _isVehicle;
	(_display displayCtrl _x) ctrlEnable (_hasAllRequested && _isVehicle);
}
forEach [22106, 22107];
{
	(_display displayCtrl _x) ctrlShow true;
}
forEach [22104, 22105];
(_display displayCtrl 22107) ctrlSetText "";
(_display displayCtrl 22108) ctrlEnable (_hasAllRequested && !_isVehicle);	
All opinions represented herein are my own
- © 2024 itsthedevman
- build 3c15a1b