2015-04-15 06:31:40 +00:00
|
|
|
// by commy2
|
|
|
|
// execute on server only!
|
|
|
|
#include "script_component.hpp"
|
|
|
|
|
2015-04-17 23:13:09 +00:00
|
|
|
PARAMS_1(_unit);
|
2015-04-15 06:31:40 +00:00
|
|
|
|
|
|
|
private ["_group0", "_rallypoint"];
|
|
|
|
|
2015-04-17 23:13:09 +00:00
|
|
|
_group0 = group _unit; // _group-is a reserved veriable and shouldn't be used
|
2015-04-15 06:31:40 +00:00
|
|
|
|
|
|
|
_rallypoint = [
|
|
|
|
objNull,
|
|
|
|
missionNamespace getVariable ["ACE_Rallypoint_West", objNull],
|
|
|
|
missionNamespace getVariable ["ACE_Rallypoint_East", objNull],
|
|
|
|
missionNamespace getVariable ["ACE_Rallypoint_Independent", objNull]
|
|
|
|
] select ([west, east, independent] find side _group0) + 1;
|
|
|
|
|
|
|
|
// exit if no moveable rallypoint is placed for that side
|
|
|
|
if (isNull _rallypoint) exitWith {};
|
|
|
|
|
|
|
|
// find leader
|
|
|
|
private "_leaderVarName";
|
|
|
|
_leaderVarName = _group0 getVariable [QGVAR(leaderVarName), ""];
|
|
|
|
|
|
|
|
// exit if group already has a playable slot assigned as rallypoint leader
|
|
|
|
if (_leaderVarName != "") exitWith {
|
|
|
|
// assign JIP unit as rallypoint leader
|
|
|
|
if (str _unit == _leaderVarName) then {
|
|
|
|
_unit setVariable ["ACE_canMoveRallypoint", true, true];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
// treat group leader
|
|
|
|
_unit = leader _group0;
|
|
|
|
|
|
|
|
_leaderVarName = vehicleVarName _unit;
|
|
|
|
|
|
|
|
if (_leaderVarName == "") then {
|
|
|
|
private "_leaderID";
|
|
|
|
_leaderID = GETGVAR(NextLeaderID,0);
|
|
|
|
|
2015-04-15 13:34:01 +00:00
|
|
|
_leaderVarName = format [QUOTE(ACE_Rallypoint_Leader_%1), _leaderID];
|
2015-04-15 06:31:40 +00:00
|
|
|
|
|
|
|
_unit setVehicleVarName _leaderVarName;
|
|
|
|
|
|
|
|
GVAR(NextLeaderID) = _leaderID + 1;
|
|
|
|
};
|
|
|
|
|
|
|
|
// prevent group from getting multiple leaders; use this to assign rallypoint moving ability on JIP
|
|
|
|
_group0 setVariable [QGVAR(leaderVarName), _leaderVarName];
|
|
|
|
|
|
|
|
_unit setVariable ["ACE_canMoveRallypoint", true, true];
|