initial files
This commit is contained in:
105
kp_liberation.brf_sumava/GREUH/Scripts/GREUH_squadmanagement.sqf
Normal file
105
kp_liberation.brf_sumava/GREUH/Scripts/GREUH_squadmanagement.sqf
Normal file
@@ -0,0 +1,105 @@
|
||||
groups_list = [];
|
||||
squadaction = "";
|
||||
squadname = "";
|
||||
if (isNil "global_group_ids") then { global_group_ids = [] };
|
||||
if (isNil "global_groups_renamed") then { global_groups_renamed = [] };
|
||||
|
||||
global_new_leader = [];
|
||||
|
||||
while { true } do {
|
||||
|
||||
if ( squadaction != "" ) then {
|
||||
_grp = grpNull;
|
||||
switch (squadaction) do {
|
||||
case "create" : {
|
||||
_grp = createGroup [(side player), true];
|
||||
[player] join _grp;
|
||||
hint "New squad created";
|
||||
};
|
||||
case "join" : {
|
||||
if(lbCurSel 515 != -1) then { _grp = groups_list select (lbCurSel 515); };
|
||||
if (!(isNull _grp) && (_grp != group player)) then {
|
||||
[player] join _grp;
|
||||
hint "Squad joined";
|
||||
};
|
||||
};
|
||||
case "rename" : {
|
||||
if ( leader group player == player ) then {
|
||||
renaming = true;
|
||||
ctrlSetText [527, (groupid (group player))];
|
||||
waitUntil { ((squadaction == "") || (squadname != "") || !(dialog) || !(alive player)) };
|
||||
if ( alive player && dialog && ( squadname != "" )) then {
|
||||
if ( (group player) in global_groups_renamed ) then {
|
||||
global_group_ids set [global_groups_renamed find (group player),squadname];
|
||||
} else {
|
||||
global_group_ids = global_group_ids + [squadname];
|
||||
global_groups_renamed = global_groups_renamed + [group player];
|
||||
};
|
||||
publicVariable "global_group_ids";
|
||||
publicVariable "global_groups_renamed";
|
||||
};
|
||||
squadname = "";
|
||||
renaming = false;
|
||||
} else {
|
||||
hint "Sorry, only the squad leader can rename their squad.";
|
||||
};
|
||||
};
|
||||
case "leader" : {
|
||||
if ( leader group player == player ) then {
|
||||
choosingleader = true;
|
||||
choose_squadleader = -10;
|
||||
|
||||
_player_group_filtered = [];
|
||||
{
|
||||
if ( isPlayer _x ) then {
|
||||
_player_group_filtered = _player_group_filtered + [_x];
|
||||
};
|
||||
} foreach (units group player);
|
||||
|
||||
lbClear 567;
|
||||
{
|
||||
|
||||
lbAdd [567, name _x ];
|
||||
} foreach _player_group_filtered;
|
||||
|
||||
_count_units_grp_player = count (units group player);
|
||||
waitUntil { ((squadaction == "") || (choose_squadleader >= 0) || !(dialog) || !(alive player) || (_count_units_grp_player != count (units group player))) };
|
||||
if ( alive player && dialog && ( choose_squadleader >= 0 )) then {
|
||||
global_new_leader = [group player, _player_group_filtered select choose_squadleader];
|
||||
publicVariable "global_new_leader";
|
||||
};
|
||||
choose_squadleader = -10;
|
||||
choosingleader = false;
|
||||
} else {
|
||||
hint "Sorry, only the squad leader can choose a new leader.";
|
||||
};
|
||||
};
|
||||
};
|
||||
squadaction = "";
|
||||
};
|
||||
|
||||
{ if ( (isplayer leader _x) && (side _x == side player) && !(_x in groups_list)) then { groups_list = groups_list + [_x] }; } foreach allGroups;
|
||||
{ if (!(_x in allGroups) || (!isplayer leader _x)) then { groups_list = groups_list - [_x] }; } foreach groups_list;
|
||||
|
||||
{
|
||||
if (count global_groups_renamed != 0) then {
|
||||
if (_x in global_groups_renamed) then {
|
||||
if (groupid _x != global_group_ids select (global_groups_renamed find _x)) then {
|
||||
_x setgroupid [(global_group_ids select (global_groups_renamed find _x))];
|
||||
};
|
||||
};
|
||||
};
|
||||
} foreach groups_list;
|
||||
|
||||
if ( count global_new_leader != 0 ) then {
|
||||
if ( group player == global_new_leader select 0 ) then {
|
||||
(global_new_leader select 0) selectLeader (global_new_leader select 1);
|
||||
hint format ["%1 is your new squad leader.",name (global_new_leader select 1)];
|
||||
global_new_leader = [];
|
||||
};
|
||||
};
|
||||
|
||||
sleep 0.5;
|
||||
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user