mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
remove temp folder
didn't mean to push this
This commit is contained in:
parent
5da1bdf9c0
commit
91ba0c6a55
Binary file not shown.
@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
Author(s):
|
|
||||||
bux578
|
|
||||||
*/
|
|
||||||
|
|
||||||
0 spawn {
|
|
||||||
private ["_side"];
|
|
||||||
|
|
||||||
waitUntil {sleep 0.5; AGM_SwitchUnits_EnableSwitchUnits};
|
|
||||||
|
|
||||||
//_side = [west, east, independent, civilian] select AGM_SwitchUnits_SwitchUnitsAllowedForSide;
|
|
||||||
|
|
||||||
_sides = [];
|
|
||||||
|
|
||||||
if(AGM_SwitchUnits_SwitchToWest) then {_sides pushBack west};
|
|
||||||
if(AGM_SwitchUnits_SwitchToEast) then {_sides pushBack east};
|
|
||||||
if(AGM_SwitchUnits_SwitchToIndependent) then {_sides pushBack independent};
|
|
||||||
if(AGM_SwitchUnits_SwitchToCivilian) then {_sides pushBack civilian};
|
|
||||||
|
|
||||||
if (player getVariable ["AGM_CanSwitchUnits", false]) then {
|
|
||||||
[player, _sides] call AGM_SwitchUnits_fnc_initPlayer;
|
|
||||||
};
|
|
||||||
};
|
|
@ -1,140 +0,0 @@
|
|||||||
class CfgPatches {
|
|
||||||
class AGM_SwitchUnits {
|
|
||||||
units[] = {};
|
|
||||||
weapons[] = {};
|
|
||||||
requiredVersion = 0.60;
|
|
||||||
requiredAddons[] = {AGM_Core};
|
|
||||||
version = "0.95";
|
|
||||||
versionStr = "0.95";
|
|
||||||
versionAr[] = {0,95,0};
|
|
||||||
author[] = {"bux578"};
|
|
||||||
authorUrl = "https://github.com/bux578/";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
class CfgFunctions {
|
|
||||||
class AGM_SwitchUnits {
|
|
||||||
class AGM_SwitchUnits {
|
|
||||||
file = "AGM_SwitchUnits\functions";
|
|
||||||
class addMapFunction;
|
|
||||||
class handleMapClick;
|
|
||||||
class initPlayer;
|
|
||||||
class isValidAi;
|
|
||||||
class markAiOnMap;
|
|
||||||
class module;
|
|
||||||
class nearestPlayers;
|
|
||||||
class switchBack;
|
|
||||||
class switchUnit;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class Extended_PostInit_EventHandlers {
|
|
||||||
class AGM_SwitchUnits {
|
|
||||||
clientInit = "call compile preprocessFileLineNumbers '\AGM_SwitchUnits\clientInit.sqf'";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class CfgVehicles {
|
|
||||||
class Module_F;
|
|
||||||
class AGM_ModuleSwitchUnits: Module_F {
|
|
||||||
author = "AGM Team";
|
|
||||||
category = "AGM";
|
|
||||||
displayName = "SwitchUnits System";
|
|
||||||
function = "AGM_SwitchUnits_fnc_module";
|
|
||||||
scope = 2;
|
|
||||||
isGlobal = 1;
|
|
||||||
icon = "\AGM_SwitchUnits\UI\IconSwitchUnits_ca.paa";
|
|
||||||
class Arguments {
|
|
||||||
class SwitchToWest {
|
|
||||||
displayName = "Switch to West?";
|
|
||||||
description = "Allow switching to west units?";
|
|
||||||
typeName = "BOOL";
|
|
||||||
class values {
|
|
||||||
class Yes {name = "Yes"; value = 1;};
|
|
||||||
class No {default = 1; name = "No"; value = 0;};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
class SwitchToEast {
|
|
||||||
displayName = "Switch to East?";
|
|
||||||
description = "Allow switching to east units?";
|
|
||||||
typeName = "BOOL";
|
|
||||||
class values {
|
|
||||||
class Yes {name = "Yes"; value = 1;};
|
|
||||||
class No {default = 1; name = "No"; value = 0;};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
class SwitchToIndependent {
|
|
||||||
displayName = "Switch to Independent?";
|
|
||||||
description = "Allow switching to independent units?";
|
|
||||||
typeName = "BOOL";
|
|
||||||
class values {
|
|
||||||
class Yes {name = "Yes"; value = 1;};
|
|
||||||
class No {default = 1; name = "No"; value = 0;};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
class SwitchToCivilian {
|
|
||||||
displayName = "Switch to Civilian?";
|
|
||||||
description = "Allow switching to civilian units?";
|
|
||||||
typeName = "BOOL";
|
|
||||||
class values {
|
|
||||||
class Yes {name = "Yes"; value = 1;};
|
|
||||||
class No {default = 1; name = "No"; value = 0;};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
class EnableSafeZone {
|
|
||||||
displayName = "Enable Safe Zone?";
|
|
||||||
description = "Enable a safe zone around enemy units? Players can't switch to units inside of the safe zone.";
|
|
||||||
typeName = "BOOL";
|
|
||||||
class values {
|
|
||||||
class Yes {default = 1; name = "Yes"; value = 1;};
|
|
||||||
class No {name = "No"; value = 0;};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
class SafeZoneRadius {
|
|
||||||
displayName = "Safe Zone Radius";
|
|
||||||
description = "The safe zone around players from a different team. Default: 200";
|
|
||||||
typeName = "NUMBER";
|
|
||||||
defaultValue = 100;
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
class EnableSwitchUnits {
|
|
||||||
displayName = "Enable SwitchUnits?";
|
|
||||||
description = "Enable to switch to AI units? Default: No";
|
|
||||||
typeName = "BOOL";
|
|
||||||
class values {
|
|
||||||
class Yes {name = "Yes"; value = 1;};
|
|
||||||
class No {default = 1; name = "No"; value = 0;};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
class SwitchUnitsAllowedForSide {
|
|
||||||
displayName = "Allow for which side?";
|
|
||||||
description = "Which side should be allowed to switch to AI units?";
|
|
||||||
typeName = "NUMBER";
|
|
||||||
class values {
|
|
||||||
class West {name = "West"; value = 0;};
|
|
||||||
class East {default = 1; name = "East"; value = 1;};
|
|
||||||
class Independent {name = "Independent"; value = 2;};
|
|
||||||
class Civilian {name = "Civilian"; value = 3;};
|
|
||||||
};
|
|
||||||
};*/
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
class AGM_Parameters_Numeric {
|
|
||||||
AGM_SwitchUnits_SafeZoneRadius = 100;
|
|
||||||
};
|
|
||||||
class AGM_Parameters_Boolean {
|
|
||||||
AGM_SwitchUnits_EnableSwitchUnits = 0;
|
|
||||||
AGM_SwitchUnits_SwitchToWest = 0;
|
|
||||||
AGM_SwitchUnits_SwitchToEast = 0;
|
|
||||||
AGM_SwitchUnits_SwitchToIndependent = 0;
|
|
||||||
AGM_SwitchUnits_SwitchToCivilian = 0;
|
|
||||||
AGM_SwitchUnits_EnableSafeZone = 1;
|
|
||||||
};
|
|
@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
Name: AGM_SwitchUnits_fnc_addMapFunction
|
|
||||||
|
|
||||||
Author(s):
|
|
||||||
bux578
|
|
||||||
|
|
||||||
Description:
|
|
||||||
Adds a mapClick Eventhandler
|
|
||||||
|
|
||||||
Parameters:
|
|
||||||
0: OBJECT - unit
|
|
||||||
1: ARRAY<OBJECT> - sided
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
VOID
|
|
||||||
*/
|
|
||||||
|
|
||||||
private ["_unit"];
|
|
||||||
_unit = _this select 0;
|
|
||||||
|
|
||||||
["theMapClick", "onMapSingleClick", {
|
|
||||||
[_this, _pos, _shift, _alt] call AGM_SwitchUnits_fnc_handleMapClick;
|
|
||||||
}, [_unit, _sides]] call BIS_fnc_addStackedEventHandler;
|
|
@ -1,41 +0,0 @@
|
|||||||
/*
|
|
||||||
Name: AGM_SwitchUnits_fnc_handleMapClick
|
|
||||||
|
|
||||||
Author(s):
|
|
||||||
bux578
|
|
||||||
|
|
||||||
Description:
|
|
||||||
Finds the clicked unit
|
|
||||||
|
|
||||||
Parameters:
|
|
||||||
0: OBJECT - MapClickEventHandlerArgs
|
|
||||||
0: OBJECT - unit to switch to
|
|
||||||
1: ARRAY<OBJECT> - sides
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
VOID
|
|
||||||
*/
|
|
||||||
|
|
||||||
private ["_args", "_currentPlayerUnit", "_sides", "_pos", "_sideNearest"];
|
|
||||||
|
|
||||||
_currentPlayerUnit = (_this select 0) select 0;
|
|
||||||
_sides = (_this select 0) select 1;
|
|
||||||
_pos = _this select 1;
|
|
||||||
|
|
||||||
_sideNearest = [];
|
|
||||||
|
|
||||||
{
|
|
||||||
if ([_x] call AGM_SwitchUnits_fnc_isValidAi && (side group _x in _sides)) then {
|
|
||||||
_sideNearest pushBack _x;
|
|
||||||
};
|
|
||||||
} forEach (nearestObjects [_pos, ["Man"], 20]);
|
|
||||||
|
|
||||||
|
|
||||||
if (count _sideNearest > 0) then {
|
|
||||||
private ["_switchUnit"];
|
|
||||||
|
|
||||||
_switchUnit = _sideNearest select 0;
|
|
||||||
[_currentPlayerUnit, _switchUnit] call AGM_SwitchUnits_fnc_switchUnit;
|
|
||||||
|
|
||||||
openMap false;
|
|
||||||
};
|
|
@ -1,48 +0,0 @@
|
|||||||
/*
|
|
||||||
Name: AGM_SwitchUnits_fnc_initPlayer
|
|
||||||
|
|
||||||
Author(s):
|
|
||||||
bux578
|
|
||||||
|
|
||||||
Description:
|
|
||||||
Initializes the player
|
|
||||||
|
|
||||||
Parameters:
|
|
||||||
0: OBJECT - player
|
|
||||||
1: ARRAY<OBJECT> - Array containing selected sides
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
VOID
|
|
||||||
*/
|
|
||||||
|
|
||||||
private ["_playerUnit", "_sides"];
|
|
||||||
|
|
||||||
_playerUnit = _this select 0;
|
|
||||||
_sides = _this select 1;
|
|
||||||
|
|
||||||
if (vehicle _playerUnit == _playerUnit) then {
|
|
||||||
|
|
||||||
[_sides] call AGM_SwitchUnits_fnc_markAiOnMap;
|
|
||||||
|
|
||||||
_playerUnit setVariable ["AGM_SwitchUnits_IsPlayerUnit", true];
|
|
||||||
_playerUnit allowDamage false;
|
|
||||||
|
|
||||||
AGM_SwitchUnits_OriginalUnit = _playerUnit;
|
|
||||||
AGM_SwitchUnits_OriginalName = [_playerUnit] call AGM_Core_fnc_getName;
|
|
||||||
AGM_SwitchUnits_OriginalGroup = group _playerUnit;
|
|
||||||
|
|
||||||
// remove all starting gear of a player
|
|
||||||
removeAllWeapons _playerUnit;
|
|
||||||
removeGoggles _playerUnit;
|
|
||||||
removeHeadgear _playerUnit;
|
|
||||||
removeVest _playerUnit;
|
|
||||||
removeAllAssignedItems _playerUnit;
|
|
||||||
clearAllItemsFromBackpack _playerUnit;
|
|
||||||
removeBackpack _playerUnit;
|
|
||||||
_playerUnit linkItem "ItemMap";
|
|
||||||
removeUniform _playerUnit;
|
|
||||||
|
|
||||||
[_playerUnit, "AGM_SwitchUnits", true] call AGM_Core_fnc_setForceWalkStatus;
|
|
||||||
|
|
||||||
[_playerUnit, _sides] call AGM_SwitchUnits_fnc_addMapFunction;
|
|
||||||
};
|
|
@ -1,25 +0,0 @@
|
|||||||
/*
|
|
||||||
Name: AGM_SwitchUnits_fnc_isValidAi
|
|
||||||
|
|
||||||
Author(s):
|
|
||||||
bux578
|
|
||||||
|
|
||||||
Description:
|
|
||||||
Checks if AI is a valid target for switching
|
|
||||||
|
|
||||||
Parameters:
|
|
||||||
0: OBJECT - unit
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
VOID
|
|
||||||
*/
|
|
||||||
|
|
||||||
private ["_unit"];
|
|
||||||
|
|
||||||
_unit = _this select 0;
|
|
||||||
|
|
||||||
!([_unit] call AGM_Core_fnc_isPlayer
|
|
||||||
|| {_unit in playableUnits}
|
|
||||||
|| {vehicle _unit != _unit}
|
|
||||||
|| {_unit getVariable ["AGM_SwitchUnits_IsPlayerUnit", false]}
|
|
||||||
|| {_unit getVariable ["AGM_SwitchUnits_IsPlayerControlled", false]})
|
|
@ -1,64 +0,0 @@
|
|||||||
/*
|
|
||||||
Name: AGM_SwitchUnits_fnc_markAiOnMap
|
|
||||||
|
|
||||||
Author(s):
|
|
||||||
bux578
|
|
||||||
|
|
||||||
Description:
|
|
||||||
Creates markers for AI units for given sides
|
|
||||||
Marks players in a different color
|
|
||||||
|
|
||||||
Parameters:
|
|
||||||
0: OBJECT - side
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
VOID
|
|
||||||
*/
|
|
||||||
|
|
||||||
private ["_sidesToShow"];
|
|
||||||
_sidesToShow = _this select 0;
|
|
||||||
|
|
||||||
_sidesToShow spawn {
|
|
||||||
|
|
||||||
private ["_sides", "_allMarkerNames"];
|
|
||||||
_sides = _this;
|
|
||||||
_allMarkerNames = [];
|
|
||||||
|
|
||||||
while { true } do {
|
|
||||||
sleep 1.5;
|
|
||||||
|
|
||||||
// delete markers
|
|
||||||
{
|
|
||||||
deleteMarkerLocal _x;
|
|
||||||
} forEach _allMarkerNames;
|
|
||||||
|
|
||||||
// create markers
|
|
||||||
{
|
|
||||||
if (([_x] call AGM_SwitchUnits_fnc_isValidAi && (side group _x in _sides)) || (_x getVariable ["AGM_SwitchUnits_IsPlayerControlled", false])) then {
|
|
||||||
private ["_markerName", "_marker", "_markerColor"];
|
|
||||||
|
|
||||||
//_markerName = format ["%1", [_x] call AGM_Core_fnc_getName];
|
|
||||||
_markerName = str _x;
|
|
||||||
|
|
||||||
_marker = createMarkerLocal [_markerName, position _x];
|
|
||||||
_markerName setMarkerTypeLocal "mil_triangle";
|
|
||||||
_markerName setMarkerShapeLocal "ICON";
|
|
||||||
_markerName setMarkerSizeLocal [0.5,0.7];
|
|
||||||
_markerName setMarkerDirLocal getDir _x;
|
|
||||||
|
|
||||||
// commy's one liner magic
|
|
||||||
_markerColor = format ["Color%1", side group _x];
|
|
||||||
|
|
||||||
if ((_x getVariable ["AGM_SwitchUnits_IsPlayerControlled", false])) then {
|
|
||||||
_markerName setMarkerColorLocal "ColorOrange";
|
|
||||||
_markerName setMarkerTextLocal (_x getVariable ["AGM_SwitchUnits_PlayerControlledName",""]);
|
|
||||||
} else {
|
|
||||||
_markerName setMarkerColorLocal _markerColor;
|
|
||||||
_markerName setMarkerTextLocal (getText (configFile >> "CfgVehicles" >> typeOf _x >> "displayName"));
|
|
||||||
};
|
|
||||||
|
|
||||||
_allMarkerNames pushBack _markerName;
|
|
||||||
};
|
|
||||||
} forEach allUnits;
|
|
||||||
};
|
|
||||||
};
|
|
@ -1,38 +0,0 @@
|
|||||||
/*
|
|
||||||
Name: AGM_SwitchUnits_fnc_module
|
|
||||||
|
|
||||||
Author(s):
|
|
||||||
bux578
|
|
||||||
|
|
||||||
Description:
|
|
||||||
Initializes the SwitchUnits module
|
|
||||||
|
|
||||||
Parameters:
|
|
||||||
0: OBJECT - module logic
|
|
||||||
1: ARRAY<OBJECT> - list of affected units
|
|
||||||
2: BOOLEAN - isActivated
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
BOOLEAN (Good practice to include one)
|
|
||||||
*/
|
|
||||||
|
|
||||||
if !(isServer) exitWith {};
|
|
||||||
|
|
||||||
_logic = _this select 0;
|
|
||||||
_activated = _this select 2;
|
|
||||||
|
|
||||||
if !(_activated) exitWith {};
|
|
||||||
|
|
||||||
AGM_SwitchUnits_Module = true;
|
|
||||||
|
|
||||||
["AGM_SwitchUnits_EnableSwitchUnits", true] call AGM_Core_fnc_setParameter;
|
|
||||||
|
|
||||||
[_logic, "AGM_SwitchUnits_SwitchToWest", "SwitchToWest"] call AGM_Core_fnc_readBooleanParameterFromModule;
|
|
||||||
[_logic, "AGM_SwitchUnits_SwitchToEast", "SwitchToEast"] call AGM_Core_fnc_readBooleanParameterFromModule;
|
|
||||||
[_logic, "AGM_SwitchUnits_SwitchToIndependent", "SwitchToIndependent"] call AGM_Core_fnc_readBooleanParameterFromModule;
|
|
||||||
[_logic, "AGM_SwitchUnits_SwitchToCivilian", "SwitchToCivilian"] call AGM_Core_fnc_readBooleanParameterFromModule;
|
|
||||||
|
|
||||||
[_logic, "AGM_SwitchUnits_EnableSafeZone", "EnableSafeZone"] call AGM_Core_fnc_readBooleanParameterFromModule;
|
|
||||||
[_logic, "AGM_SwitchUnits_SafeZoneRadius", "SafeZoneRadius"] call AGM_Core_fnc_readNumericParameterFromModule;
|
|
||||||
|
|
||||||
diag_log text "[AGM]: SwitchUnits Module Initialized.";
|
|
@ -1,31 +0,0 @@
|
|||||||
/*
|
|
||||||
Name: AGM_SwitchUnits_fnc_nearestPlayers
|
|
||||||
|
|
||||||
Author(s):
|
|
||||||
bux578
|
|
||||||
|
|
||||||
Description:
|
|
||||||
Returns an array of alive players in a given radius around a given location
|
|
||||||
|
|
||||||
Parameters:
|
|
||||||
0: POSTION - Center position
|
|
||||||
1: NUMBER - Radius
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
ARRAY<OBJECT> - Player units
|
|
||||||
*/
|
|
||||||
|
|
||||||
private ["_position", "_radius", "_nearestPlayers"];
|
|
||||||
|
|
||||||
_position = _this select 0;
|
|
||||||
_radius = _this select 1;
|
|
||||||
|
|
||||||
_nearestPlayers = [];
|
|
||||||
|
|
||||||
{
|
|
||||||
if ([_x] call AGM_Core_fnc_isPlayer && {alive _x}) then {
|
|
||||||
_nearestPlayers pushBack _x;
|
|
||||||
};
|
|
||||||
} forEach (nearestObjects [_position, ["Man"], _radius]);
|
|
||||||
|
|
||||||
_nearestPlayers
|
|
@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
Name: AGM_SwitchUnits_fnc_switchBack
|
|
||||||
|
|
||||||
Author(s):
|
|
||||||
bux578
|
|
||||||
|
|
||||||
Description:
|
|
||||||
Switches back to the original player unit
|
|
||||||
This method needs to be "spawn"ed
|
|
||||||
|
|
||||||
Parameters:
|
|
||||||
0: OBJECT - original player unit
|
|
||||||
1: OBJECT - respawned unit
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
VOID
|
|
||||||
*/
|
|
||||||
|
|
||||||
private ["_originalPlayerUnit", "_currentUnit"];
|
|
||||||
_originalPlayerUnit = _this select 0;
|
|
||||||
_currentUnit = _this select 1;
|
|
||||||
|
|
||||||
[_originalPlayerUnit] joinSilent AGM_SwitchUnits_OriginalGroup;
|
|
||||||
|
|
||||||
waitUntil {local _originalPlayerUnit};
|
|
||||||
|
|
||||||
selectPlayer _originalPlayerUnit;
|
|
||||||
|
|
||||||
deleteVehicle _currentUnit;
|
|
@ -1,79 +0,0 @@
|
|||||||
/*
|
|
||||||
Name: AGM_SwitchUnits_fnc_switchUnit
|
|
||||||
|
|
||||||
Author(s):
|
|
||||||
bux578
|
|
||||||
|
|
||||||
Description:
|
|
||||||
Selects the new given player unit
|
|
||||||
|
|
||||||
Parameters:
|
|
||||||
0: OBJECT - the unit to switch to
|
|
||||||
|
|
||||||
Returns:
|
|
||||||
VOID
|
|
||||||
*/
|
|
||||||
|
|
||||||
private ["_newUnit"];
|
|
||||||
|
|
||||||
_newUnit = _this select 1;
|
|
||||||
|
|
||||||
// don't switch to original player units
|
|
||||||
if (!([_newUnit] call AGM_SwitchUnits_fnc_isValidAi)) exitWith {};
|
|
||||||
|
|
||||||
_newUnit spawn {
|
|
||||||
private ["_unit", "_allNearestPlayers", "_oldUnit", "_respawnEhId", "_oldOwner", "_leave"];
|
|
||||||
|
|
||||||
_unit = _this;
|
|
||||||
|
|
||||||
_leave = false;
|
|
||||||
|
|
||||||
if (AGM_SwitchUnits_EnableSafeZone) then {
|
|
||||||
|
|
||||||
_allNearestPlayers = [position _unit, AGM_SwitchUnits_SafeZoneRadius] call AGM_SwitchUnits_fnc_nearestPlayers;
|
|
||||||
_nearestEnemyPlayers = [_allNearestPlayers, {((side AGM_SwitchUnits_OriginalGroup) getFriend (side _this) < 0.6) && !(_this getVariable ["AGM_SwitchUnits_IsPlayerControlled", false])}] call AGM_Core_fnc_filter;
|
|
||||||
|
|
||||||
if (count _nearestEnemyPlayers > 0) exitWith {
|
|
||||||
_leave = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
// exitWith doesn't exit past the "if(EnableSafeZone)" block
|
|
||||||
if (_leave) exitWith {
|
|
||||||
[localize "STR_AGM_SwitchUnits_TooCloseToEnemy"] call AGM_Core_fnc_displayTextStructured;
|
|
||||||
};
|
|
||||||
|
|
||||||
// should switch locality
|
|
||||||
// This doesn't work anymore, because one's now able to switch to units from a different side
|
|
||||||
//[_unit] joinSilent group player;
|
|
||||||
[[_unit, player], "{(_this select 0) setVariable ['AGM_SwitchUnits_OriginalOwner', owner (_this select 0), true]; (_this select 0) setOwner owner (_this select 1)}", 1] call AGM_Core_fnc_execRemoteFnc;
|
|
||||||
|
|
||||||
_oldUnit = player;
|
|
||||||
waitUntil {sleep 0.2; local _unit};
|
|
||||||
|
|
||||||
_oldUnit setVariable ["AGM_SwitchUnits_IsPlayerControlled", false, true];
|
|
||||||
_oldUnit setVariable ["AGM_SwitchUnits_PlayerControlledName", "", true];
|
|
||||||
|
|
||||||
_respawnEhId = _unit getVariable ["AGM_SwitchUnits_RespawnEhId", -1];
|
|
||||||
if (_respawnEhId != -1) then {
|
|
||||||
_oldUnit removeEventHandler ["Respawn", _respawnEhId];
|
|
||||||
};
|
|
||||||
|
|
||||||
selectPlayer _unit;
|
|
||||||
|
|
||||||
_unit setVariable ["AGM_SwitchUnits_IsPlayerControlled", true, true];
|
|
||||||
_unit setVariable ["AGM_SwitchUnits_PlayerControlledName", AGM_SwitchUnits_OriginalName, true];
|
|
||||||
|
|
||||||
_respawnEhId = _unit addEventHandler ["Respawn", {
|
|
||||||
[AGM_SwitchUnits_OriginalUnit, _this select 0] spawn AGM_SwitchUnits_fnc_switchBack;
|
|
||||||
}];
|
|
||||||
_unit setVariable ["AGM_SwitchUnits_RespawnEhId", _respawnEhId, true];
|
|
||||||
|
|
||||||
// set owner back to original owner
|
|
||||||
_oldOwner = _oldUnit getVariable["AGM_SwitchUnits_OriginalOwner", -1];
|
|
||||||
if (_oldOwner > -1) then {
|
|
||||||
[[_oldUnit, _oldOwner], "{(_this select 0) setOwner (_this select 1)}", 1] call AGM_Core_fnc_execRemoteFnc;
|
|
||||||
};
|
|
||||||
|
|
||||||
[localize "STR_AGM_SwitchUnits_SwitchedUnit"] call AGM_Core_fnc_displayTextStructured;
|
|
||||||
};
|
|
@ -1,22 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- Edited with tabler - 2014-12-20 -->
|
|
||||||
<Project name="ACE">
|
|
||||||
<Package name="SwitchUnits">
|
|
||||||
<Key ID="STR_ACE_SwitchUnits_SwitchedUnit">
|
|
||||||
<English>Switched unit</English>
|
|
||||||
<German>Einheit gewechselt</German>
|
|
||||||
<Russian>Юнит переключен</Russian>
|
|
||||||
<Czech>Prohozená jednotka</Czech>
|
|
||||||
<Polish>Przełącz jednostkę</Polish>
|
|
||||||
<Spanish>Cambiado de unidad</Spanish>
|
|
||||||
</Key>
|
|
||||||
<Key ID="STR_ACE_SwitchUnits_TooCloseToEnemy">
|
|
||||||
<English>This unit is too close to the enemy.</English>
|
|
||||||
<German>Diese Einheit ist zu nah am Feind.</German>
|
|
||||||
<Russian>Юнит слишком близок к противнику</Russian>
|
|
||||||
<Czech>Tato jednotka je moc blízko k nepříteli.</Czech>
|
|
||||||
<Polish>Ta jednostka jest zbyt blisko przeciwnika.</Polish>
|
|
||||||
<Spanish>Esta unidad está demasiado cerca del enemigo.</Spanish>
|
|
||||||
</Key>
|
|
||||||
</Package>
|
|
||||||
</Project>
|
|
Loading…
Reference in New Issue
Block a user