From 4b3a72f9707d063c49be73e6003c44f86ebc9202 Mon Sep 17 00:00:00 2001 From: vbawol Date: Thu, 23 Mar 2017 14:28:04 -0500 Subject: [PATCH] improve usage of Epoch_my_Group --- .../compile/building/EPOCH_isBuildAllowed.sqf | 15 +++++++---- .../scripts/group/EPOCH_Group_BtnInvite.sqf | 26 ++++++++++++------- .../gui/scripts/group/EPOCH_Group_BtnKick.sqf | 11 +++++++- .../scripts/group/EPOCH_Group_BtnLeave.sqf | 11 ++++++-- .../gui/scripts/group/EPOCH_Group_Combo.sqf | 18 +++++++++---- .../gui/scripts/group/EPOCH_Group_onLoad.sqf | 26 ++++++++++++------- 6 files changed, 76 insertions(+), 31 deletions(-) diff --git a/Sources/epoch_code/compile/building/EPOCH_isBuildAllowed.sqf b/Sources/epoch_code/compile/building/EPOCH_isBuildAllowed.sqf index 88adeb65..1098bc01 100644 --- a/Sources/epoch_code/compile/building/EPOCH_isBuildAllowed.sqf +++ b/Sources/epoch_code/compile/building/EPOCH_isBuildAllowed.sqf @@ -23,7 +23,7 @@ BOOL */ //[[[cog import generate_private_arrays ]]] -private ["_alljammer","_buildingAllowed","_buildingCountLeader","_buildingCountLimit","_buildingCountPerMember","_buildingJammerRange","_bypassJammer","_c","_cfgBaseBuilding","_config","_isAllowed","_jammer","_jammerPerGroup","_limitNearby","_maxBuildingHeight","_membercount","_minjammerdistance","_myPosATL","_nearestJammer","_obj","_objType","_objectCount","_ownedJammerExists","_range","_restricted","_restrictedArray","_restrictedLocations","_restrictedLocationsArray","_restrictedLocationsRange","_simulClass","_staticClass","_storageCountLeader","_storageCountPerMember","_scl","_gcl","_storageCountLimit","_useGroupCountLimits","_ghostClass"]; +private ["_alljammer","_buildingAllowed","_buildingCountLeader","_buildingCountLimit","_buildingCountPerMember","_buildingJammerRange","_bypassJammer","_c","_cfgBaseBuilding","_config","_ghostClass","_isAllowed","_jammer","_jammerGLOnly","_jammerPerGroup","_limitNearby","_maxBuildingHeight","_membercount","_minJammerDistance","_myPosATL","_nearestJammer","_obj","_objType","_objectscount","_ownedJammerExists","_range","_restricted","_restrictedArray","_restrictedLocations","_restrictedLocationsArray","_restrictedLocationsRange","_simulClass","_staticClass","_storageCountLeader","_storageCountLimit","_storageCountPerMember","_useGroupCountLimits","_useSplitCountLimits"]; //[[[end]]] _buildingAllowed = true; @@ -83,7 +83,7 @@ if !(_jammer isEqualTo []) then { ["Building Disallowed: Existing Jammer Signal", 5] call Epoch_message; }; } foreach _jammer; - } + } else { { if (alive _x && (_x distance player) <= _buildingJammerRange) exitWith{ @@ -98,9 +98,14 @@ if !(_jammer isEqualTo []) then { _ownedJammerExists = true; if(_useGroupCountLimits)then{ _membercount = 0; - if(count Epoch_my_Group > 0)then{ - _membercount = count (Epoch_my_Group select 3) + count (Epoch_my_Group select 4) - }; + Epoch_my_Group params [ + ["_groupName",""], + ["_leaderName",""], + ["_groupSize",0], + ["_modArray",[]], + ["_memberArray",[]], + ]; + _membercount = count _modArray + count _memberArray _storageCountLimit = _storageCountLeader + (_storageCountPerMember * _membercount); _buildingCountLimit = _buildingCountLeader + (_buildingCountPerMember * _membercount); }; diff --git a/Sources/epoch_code/gui/scripts/group/EPOCH_Group_BtnInvite.sqf b/Sources/epoch_code/gui/scripts/group/EPOCH_Group_BtnInvite.sqf index 6196af9a..73fdefcf 100644 --- a/Sources/epoch_code/gui/scripts/group/EPOCH_Group_BtnInvite.sqf +++ b/Sources/epoch_code/gui/scripts/group/EPOCH_Group_BtnInvite.sqf @@ -13,34 +13,42 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/gui/group/EPOCH_Group_BtnInvite.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_BtnInvite","_InvitePlayerCombo","_currentMaxMember","_currentMember","_found","_playerName","_playerUID","_ret","_txt","_upgradePrice","_upgradeSlots"]; +private ["_BtnInvite","_InvitePlayerCombo","_groupSize","_currentMember","_found","_playerName","_playerUID","_ret","_txt","_upgradePrice","_upgradeSlots"]; //[[[end]]] disableSerialization; _BtnInvite = (findDisplay -1300) displayCtrl 30; _playerUID = getPlayerUID player; -if (_playerUID == Epoch_my_GroupUID || {_x select 0 == _playerUID}count (Epoch_my_Group select 3) > 0) then { - _currentMember = count(Epoch_my_Group select 3) + count(Epoch_my_Group select 4) + 1; - _currentMaxMember = Epoch_my_Group select 2; - if (_currentMember < _currentMaxMember) then { + +Epoch_my_Group params [ + ["_groupName",""], + ["_leaderName",""], + ["_groupSize",0], + ["_modArray",[]], + ["_memberArray",[]], +]; + +if (_playerUID == Epoch_my_GroupUID || {_x select 0 == _playerUID}count (_modArray) > 0) then { + _currentMember = count(_modArray) + count(_memberArray) + 1; + if (_currentMember < _groupSize) then { _InvitePlayerCombo = (findDisplay -1300) displayCtrl 41; _playerUID = _InvitePlayerCombo lbData (lbCurSel _InvitePlayerCombo); _playerName = _InvitePlayerCombo lbText (lbCurSel _InvitePlayerCombo); - if (_playerUID != "" && _playerName != "" && ({_playerUID in _x} count (Epoch_my_Group select 3) == 0) && ({_playerUID in _x} count (Epoch_my_Group select 4) == 0) && !(_playerUID == Epoch_my_GroupUID)) then { + if (_playerUID != "" && _playerName != "" && ({_playerUID in _x} count (_modArray) == 0) && ({_playerUID in _x} count (_memberArray) == 0) && !(_playerUID == Epoch_my_GroupUID)) then { _txt = format["Do you want to add %1 to your Group?",_playerName]; [_playerUID,_txt] spawn { _ret = [_this select 1,"Epoch Group Menu",true,true] call BIS_fnc_GUImessage; if (_ret) then { - [_this select 0,Epoch_my_GroupUID,Epoch_my_Group select 0,player,Epoch_personalToken] remoteExec ["EPOCH_server_invitePlayer",2]; + [_this select 0,Epoch_my_GroupUID,_groupName,player,Epoch_personalToken] remoteExec ["EPOCH_server_invitePlayer",2]; }; }; }; } else { - _found = EPOCH_group_upgrade_lvl find _currentMaxMember; + _found = EPOCH_group_upgrade_lvl find _groupSize; if (count EPOCH_group_upgrade_lvl >= (_found+3)) then { _upgradePrice = parseNumber (EPOCH_group_upgrade_lvl select (_found+3)); if ((EPOCH_playerCrypto-_upgradePrice) >= 0) then { _upgradeSlots = EPOCH_group_upgrade_lvl select (_found+2); - _txt = format["Do you want to upgrade your group from %1 to %2 slots for %3 Krypto?",_currentMaxMember,_upgradeSlots,_upgradePrice]; + _txt = format["Do you want to upgrade your group from %1 to %2 slots for %3 Krypto?",_groupSize,_upgradeSlots,_upgradePrice]; [_txt,_upgradePrice] spawn { _ret = [_this select 0,"Epoch Group Menu",true,true] call BIS_fnc_GUImessage; if (_ret) then { diff --git a/Sources/epoch_code/gui/scripts/group/EPOCH_Group_BtnKick.sqf b/Sources/epoch_code/gui/scripts/group/EPOCH_Group_BtnKick.sqf index be2ee2b7..9d8ed2c6 100644 --- a/Sources/epoch_code/gui/scripts/group/EPOCH_Group_BtnKick.sqf +++ b/Sources/epoch_code/gui/scripts/group/EPOCH_Group_BtnKick.sqf @@ -19,7 +19,16 @@ disableSerialization; _BtnKick = (findDisplay -1300) displayCtrl 33; _playerUID = getPlayerUID player; -if (_playerUID == Epoch_my_GroupUID || {_x select 0 == _playerUID}count (Epoch_my_Group select 3) > 0) then { + +Epoch_my_Group params [ + ["_groupName",""], + ["_leaderName",""], + ["_groupSize",0], + ["_modArray",[]], + ["_memberArray",[]], +]; + +if (_playerUID == Epoch_my_GroupUID || {_x select 0 == _playerUID}count (_modArray) > 0) then { _group = (findDisplay -1300) displayCtrl 40; _selected = lbCurSel _group; if (_selected >= 0) then { diff --git a/Sources/epoch_code/gui/scripts/group/EPOCH_Group_BtnLeave.sqf b/Sources/epoch_code/gui/scripts/group/EPOCH_Group_BtnLeave.sqf index 3528a890..a4a20a75 100644 --- a/Sources/epoch_code/gui/scripts/group/EPOCH_Group_BtnLeave.sqf +++ b/Sources/epoch_code/gui/scripts/group/EPOCH_Group_BtnLeave.sqf @@ -17,9 +17,16 @@ private ["_BtnLeave","_ret","_txt"]; //[[[end]]] disableSerialization; _BtnLeave = (findDisplay -1300) displayCtrl 31; +Epoch_my_Group params [ + ["_groupName",""], + ["_leaderName",""], + ["_groupSize",0], + ["_modArray",[]], + ["_memberArray",[]], +]; if (getPlayerUID player == Epoch_my_GroupUID) then { _BtnLeave ctrlSetText "Delete Group"; - _txt = format["Do you want to delete your Group called %1?",Epoch_my_Group select 0]; + _txt = format["Do you want to delete your Group called %1?",_groupName]; _txt spawn { _ret = [_this,"Epoch Group Menu",true,true] call BIS_fnc_GUImessage; if (_ret) then { @@ -27,7 +34,7 @@ if (getPlayerUID player == Epoch_my_GroupUID) then { }; }; } else { - _txt = format["Do you want to leave the %1 Group?",Epoch_my_Group select 0]; + _txt = format["Do you want to leave the %1 Group?",_groupName]; _txt spawn { _ret = [_this,"Epoch Group Menu",true,true] call BIS_fnc_GUImessage; if (_ret) then { diff --git a/Sources/epoch_code/gui/scripts/group/EPOCH_Group_Combo.sqf b/Sources/epoch_code/gui/scripts/group/EPOCH_Group_Combo.sqf index 8625ee34..cb72de55 100644 --- a/Sources/epoch_code/gui/scripts/group/EPOCH_Group_Combo.sqf +++ b/Sources/epoch_code/gui/scripts/group/EPOCH_Group_Combo.sqf @@ -14,16 +14,24 @@ */ disableSerialization; //[[[cog import generate_private_arrays ]]] -private ["_BtnInvite","_ctrl","_currentMaxMember","_currentMember","_playerUID","_selected"]; +private ["_BtnInvite","_ctrl","_currentMember","_playerUID","_selected"]; //[[[end]]] + +Epoch_my_Group params [ + ["_groupName",""], + ["_leaderName",""], + ["_groupSize",0], + ["_modArray",[]], + ["_memberArray",[]], +]; + _ctrl = _this select 0; _selected = _this select 1; _playerUID = getPlayerUID player; -if (_playerUID == Epoch_my_GroupUID || {_x select 0 == _playerUID}count (Epoch_my_Group select 3) > 0) then { +if (_playerUID == Epoch_my_GroupUID || {_x select 0 == _playerUID}count (_modArray) > 0) then { _BtnInvite = (findDisplay -1300) displayCtrl 30; - _currentMember = count(Epoch_my_Group select 3) + count(Epoch_my_Group select 4) + 1; - _currentMaxMember = Epoch_my_Group select 2; - if (_currentMember < _currentMaxMember) then { + _currentMember = count(_modArray) + count(_memberArray) + 1; + if (_currentMember < _groupSize) then { _BtnInvite ctrlSetText format ["Invite %1",_ctrl lbtext _selected]; }; true diff --git a/Sources/epoch_code/gui/scripts/group/EPOCH_Group_onLoad.sqf b/Sources/epoch_code/gui/scripts/group/EPOCH_Group_onLoad.sqf index 90144fde..d5d451a4 100644 --- a/Sources/epoch_code/gui/scripts/group/EPOCH_Group_onLoad.sqf +++ b/Sources/epoch_code/gui/scripts/group/EPOCH_Group_onLoad.sqf @@ -13,7 +13,7 @@ https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/gui/group/EPOCH_Group_onLoad.sqf */ //[[[cog import generate_private_arrays ]]] -private ["_BtnInvite","_GroupMemberList","_InvitePlayerCombo","_currentMaxMember","_currentMember","_display","_found","_index","_myPlayerUID","_onlinePUID","_picture","_playerIsLeader","_playerIsMod","_playerUID","_players"]; +private ["_BtnInvite","_GroupMemberList","_InvitePlayerCombo","_currentMaxMember","_display","_found","_index","_myPlayerUID","_onlinePUID","_picture","_playerIsLeader","_playerIsMod","_playerUID","_players"]; //[[[end]]] disableSerialization; _display = findDisplay -1300; @@ -22,13 +22,21 @@ _BtnInvite = _display displayCtrl 30; _GroupMemberList = _display displayCtrl 40; _InvitePlayerCombo = _display displayCtrl 41; -_currentMaxMember = count(Epoch_my_Group select 3) + count(Epoch_my_Group select 4) + 1; -_currentMember = Epoch_my_Group select 2; -(_display displayCtrl 21) ctrlSetText format["Group Name: %1 (%2/%3 Slots)",Epoch_my_Group select 0,_currentMaxMember,_currentMember]; +Epoch_my_Group params [ + ["_groupName",""], + ["_leaderName",""], + ["_groupSize",0], + ["_modArray",[]], + ["_memberArray",[]], +]; + +_currentMaxMember = count(_modArray) + count(_memberArray) + 1; + +(_display displayCtrl 21) ctrlSetText format["Group Name: %1 (%2/%3 Slots)",_groupName,_currentMaxMember,_groupSize]; _myPlayerUID = getPlayerUID player; _playerIsLeader = _myPlayerUID == Epoch_my_GroupUID; -_playerIsMod = {_x select 0 == _myPlayerUID}count (Epoch_my_Group select 3) > 0; +_playerIsMod = {_x select 0 == _myPlayerUID}count (_modArray) > 0; (_display displayCtrl 32) ctrlEnable false; (_display displayCtrl 33) ctrlEnable false; @@ -37,7 +45,7 @@ _onlinePUID = []; _onlinePUID pushBack (getPlayerUID _x); }forEach (units group player); -if (_currentMaxMember < _currentMember) then { +if (_currentMaxMember < _groupSize) then { _players = player nearEntities [["Epoch_Male_F","Epoch_Female_F","LandVehicle","Ship","Air","Tank"], 10]; if (_playerIsLeader || _playerIsMod) then { @@ -90,7 +98,7 @@ if (_currentMaxMember < _currentMember) then { }forEach _x; }forEach [ - [[Epoch_my_GroupUID,Epoch_my_Group select 1]], - Epoch_my_Group select 3, - Epoch_my_Group select 4 + [[Epoch_my_GroupUID,_leaderName]], + _modArray, + _memberArray ];