Only refresh group menu player list for changes

This commit is contained in:
ebayShopper
2017-12-05 17:26:11 -05:00
parent e2a410b95a
commit b35b49bd90
3 changed files with 22 additions and 12 deletions

View File

@@ -5,7 +5,9 @@ _playerList = findDisplay 80000 displayCtrl 1;
_uid = _playerList lbData (lbCurSel _playerList); _uid = _playerList lbData (lbCurSel _playerList);
_recipient = _uid call dayz_getPlayer; _recipient = _uid call dayz_getPlayer;
if (isNull _recipient or player != leader group player or count (units group _recipient) > 1) exitWith {}; if (isNull _recipient or player != leader group player or count (units group _recipient) > 1) exitWith {
dayz_oldPlayerCount = 0; //Force player list refresh
};
_hasInvite = false; _hasInvite = false;
{ {

View File

@@ -1,10 +1,11 @@
if (!isNull findDisplay 80000) exitWith {}; if (!isNull findDisplay 80000) exitWith {};
private ["_disbandButton","_display","_group","_index","_inviteButton","_inviter","_inviterUID","_kickButton","_leader","_leaveButton","_myGroup","_playerList","_promoteButton","_uid"]; private ["_disbandButton","_display","_group","_index","_inviteButton","_inviter","_inviterUID","_kickButton","_leader","_leaveButton","_myGroup","_newCount","_playerList","_promoteButton","_uid"];
disableSerialization; disableSerialization;
createDialog "DZ_GroupDialog"; createDialog "DZ_GroupDialog";
_display = findDisplay 80000; _display = findDisplay 80000;
_uid = getPlayerUID player; _uid = getPlayerUID player;
dayz_oldPlayerCount = 0;
_playerList = _display displayCtrl 1; _playerList = _display displayCtrl 1;
_myGroup = _display displayCtrl 2; _myGroup = _display displayCtrl 2;
_inviteButton = _display displayCtrl 3; _inviteButton = _display displayCtrl 3;
@@ -64,16 +65,22 @@ while {!isNull findDisplay 80000} do {
{_x ctrlShow false} count [_inviteText,_joinButton,_rejectButton]; {_x ctrlShow false} count [_inviteText,_joinButton,_rejectButton];
}; };
//Fill player list _newCount = playersNumber west;
lbClear _playerList;
{ if (dayz_oldPlayerCount != _newCount) then {
if (isPlayer _x && _x != player) then { //Refresh player list
_index = _playerList lbAdd (name _x); lbClear _playerList;
_playerList lbSetData [_index, getPlayerUID _x]; {
_playerList lbSetPicture [_index, if (count (units group _x) > 1) then {"\ca\ui\data\ui_task_failed_ca.paa"} else {"\ca\ui\data\ui_task_done_ca.paa"}]; if (isPlayer _x && _x != player) then {
}; _index = _playerList lbAdd (name _x);
} count allUnits; _playerList lbSetData [_index, getPlayerUID _x];
lbSort _playerList; _playerList lbSetPicture [_index, if (count (units group _x) > 1) then {"\ca\ui\data\ui_task_failed_ca.paa"} else {"\ca\ui\data\ui_task_done_ca.paa"}];
};
} count allUnits;
lbSort _playerList;
};
dayz_oldPlayerCount = _newCount;
uiSleep 1; uiSleep 1;
}; };

View File

@@ -11,4 +11,5 @@ if (player == leader group player && {!isNull _target} && {count (units group _t
_inviteButton ctrlShow true; _inviteButton ctrlShow true;
} else { } else {
_inviteButton ctrlShow false; _inviteButton ctrlShow false;
dayz_oldPlayerCount = 0; //Force player list refresh
}; };