no team management on the dead or unconscious units, fix #803

This commit is contained in:
commy2 2015-04-26 20:57:55 +02:00
parent 9b8e130b1f
commit f5d7331847
4 changed files with 46 additions and 20 deletions

View File

@ -35,7 +35,7 @@ class CfgVehicles {
class ACE_TeamManagement { class ACE_TeamManagement {
displayName = "$STR_ACE_Interaction_TeamManagement"; displayName = "$STR_ACE_Interaction_TeamManagement";
condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player} && {GVAR(EnableTeamManagement)}); condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam) && {GVAR(EnableTeamManagement)});
statement = ""; statement = "";
showDisabled = 0; showDisabled = 0;
priority = 3.2; priority = 3.2;
@ -44,7 +44,7 @@ class CfgVehicles {
class ACE_JoinTeamRed { class ACE_JoinTeamRed {
displayName = "$STR_ACE_Interaction_JoinTeamRed"; displayName = "$STR_ACE_Interaction_JoinTeamRed";
condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player}); condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam));
statement = QUOTE([ARR_2(_target,'RED')] call DFUNC(joinTeam)); statement = QUOTE([ARR_2(_target,'RED')] call DFUNC(joinTeam));
showDisabled = 1; showDisabled = 1;
icon = PATHTOF(UI\team\team_red_ca.paa); icon = PATHTOF(UI\team\team_red_ca.paa);
@ -53,7 +53,7 @@ class CfgVehicles {
}; };
class ACE_JoinTeamGreen { class ACE_JoinTeamGreen {
displayName = "$STR_ACE_Interaction_JoinTeamGreen"; displayName = "$STR_ACE_Interaction_JoinTeamGreen";
condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player}); condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam));
statement = QUOTE([ARR_2(_target,'GREEN')] call DFUNC(joinTeam)); statement = QUOTE([ARR_2(_target,'GREEN')] call DFUNC(joinTeam));
showDisabled = 1; showDisabled = 1;
icon = PATHTOF(UI\team\team_green_ca.paa); icon = PATHTOF(UI\team\team_green_ca.paa);
@ -62,7 +62,7 @@ class CfgVehicles {
}; };
class ACE_JoinTeamBlue { class ACE_JoinTeamBlue {
displayName = "$STR_ACE_Interaction_JoinTeamBlue"; displayName = "$STR_ACE_Interaction_JoinTeamBlue";
condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player}); condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam));
statement = QUOTE([ARR_2(_target,'BLUE')] call DFUNC(joinTeam)); statement = QUOTE([ARR_2(_target,'BLUE')] call DFUNC(joinTeam));
showDisabled = 1; showDisabled = 1;
icon = PATHTOF(UI\team\team_blue_ca.paa); icon = PATHTOF(UI\team\team_blue_ca.paa);
@ -71,7 +71,7 @@ class CfgVehicles {
}; };
class ACE_JoinTeamYellow { class ACE_JoinTeamYellow {
displayName = "$STR_ACE_Interaction_JoinTeamYellow"; displayName = "$STR_ACE_Interaction_JoinTeamYellow";
condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player}); condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam));
statement = QUOTE([ARR_2(_target,'YELLOW')] call DFUNC(joinTeam)); statement = QUOTE([ARR_2(_target,'YELLOW')] call DFUNC(joinTeam));
showDisabled = 1; showDisabled = 1;
icon = PATHTOF(UI\team\team_yellow_ca.paa); icon = PATHTOF(UI\team\team_yellow_ca.paa);
@ -81,7 +81,7 @@ class CfgVehicles {
class ACE_LeaveTeam { class ACE_LeaveTeam {
displayName = "$STR_ACE_Interaction_LeaveTeam"; displayName = "$STR_ACE_Interaction_LeaveTeam";
condition = QUOTE(alive _target && {!isPlayer _target} && {_target in units group _player} && {assignedTeam _player != 'MAIN'}); condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinTeam) && {assignedTeam _player != 'MAIN'});
statement = QUOTE([ARR_2(_target,'MAIN')] call DFUNC(joinTeam)); statement = QUOTE([ARR_2(_target,'MAIN')] call DFUNC(joinTeam));
showDisabled = 1; showDisabled = 1;
icon = PATHTOF(UI\team\team_white_ca.paa); icon = PATHTOF(UI\team\team_white_ca.paa);
@ -92,8 +92,8 @@ class CfgVehicles {
class ACE_JoinGroup { class ACE_JoinGroup {
displayName = "$STR_ACE_Interaction_JoinGroup"; displayName = "$STR_ACE_Interaction_JoinGroup";
condition = QUOTE(side group _player == side group _target && {group _player != group _target}); condition = QUOTE([ARR_2(_player,_target)] call DFUNC(canJoinGroup));
statement = QUOTE([_player] joinSilent group _target;); statement = QUOTE([_player] joinSilent group _target);
showDisabled = 0; showDisabled = 0;
priority = 2.6; priority = 2.6;
icon = PATHTOF(UI\team\team_management_ca.paa); icon = PATHTOF(UI\team\team_management_ca.paa);
@ -223,7 +223,7 @@ class CfgVehicles {
displayName = "$STR_ACE_Interaction_JoinTeamBlue"; displayName = "$STR_ACE_Interaction_JoinTeamBlue";
condition = QUOTE(true); condition = QUOTE(true);
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_2(_player,'BLUE')] call FUNC(joinTeam)); statement = QUOTE([ARR_2(_player,'BLUE')] call DFUNC(joinTeam));
showDisabled = 1; showDisabled = 1;
priority = 2.2; priority = 2.2;
icon = PATHTOF(UI\team\team_blue_ca.paa); icon = PATHTOF(UI\team\team_blue_ca.paa);
@ -233,7 +233,7 @@ class CfgVehicles {
displayName = "$STR_ACE_Interaction_JoinTeamYellow"; displayName = "$STR_ACE_Interaction_JoinTeamYellow";
condition = QUOTE(true); condition = QUOTE(true);
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_2(_player,'YELLOW')] call FUNC(joinTeam)); statement = QUOTE([ARR_2(_player,'YELLOW')] call DFUNC(joinTeam));
showDisabled = 1; showDisabled = 1;
priority = 2.1; priority = 2.1;
icon = PATHTOF(UI\team\team_yellow_ca.paa); icon = PATHTOF(UI\team\team_yellow_ca.paa);
@ -244,7 +244,7 @@ class CfgVehicles {
displayName = "$STR_ACE_Interaction_LeaveTeam"; displayName = "$STR_ACE_Interaction_LeaveTeam";
condition = QUOTE(assignedTeam _player != 'MAIN'); condition = QUOTE(assignedTeam _player != 'MAIN');
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE([ARR_2(_player,'MAIN')] call FUNC(joinTeam)); statement = QUOTE([ARR_2(_player,'MAIN')] call DFUNC(joinTeam));
showDisabled = 1; showDisabled = 1;
priority = 2.5; priority = 2.5;
icon = PATHTOF(UI\team\team_white_ca.paa); icon = PATHTOF(UI\team\team_white_ca.paa);
@ -252,9 +252,9 @@ class CfgVehicles {
}; };
class ACE_BecomeLeader { class ACE_BecomeLeader {
displayName = "$STR_ACE_Interaction_BecomeLeader"; displayName = "$STR_ACE_Interaction_BecomeLeader";
condition = QUOTE(_this call FUNC(canBecomeLeader)); condition = QUOTE(_this call DFUNC(canBecomeLeader));
exceptions[] = {"isNotInside"}; exceptions[] = {"isNotInside"};
statement = QUOTE(_this call FUNC(doBecomeLeader)); statement = QUOTE(_this call DFUNC(doBecomeLeader));
showDisabled = 1; showDisabled = 1;
priority = 1.0; priority = 1.0;
icon = PATHTOF(UI\team\team_white_ca.paa); icon = PATHTOF(UI\team\team_white_ca.paa);
@ -405,7 +405,7 @@ class CfgVehicles {
displayName = "$STR_ACE_Interaction_Passengers"; displayName = "$STR_ACE_Interaction_Passengers";
condition = "true"; condition = "true";
statement = ""; statement = "";
insertChildren = QUOTE(_this call FUNC(addPassengersActions)); insertChildren = QUOTE(_this call DFUNC(addPassengersActions));
}; };
}; };
}; };
@ -423,7 +423,7 @@ class CfgVehicles {
displayName = "$STR_ACE_Interaction_Passengers"; displayName = "$STR_ACE_Interaction_Passengers";
condition = "true"; condition = "true";
statement = ""; statement = "";
insertChildren = QUOTE(_this call FUNC(addPassengersActions)); insertChildren = QUOTE(_this call DFUNC(addPassengersActions));
}; };
}; };
}; };
@ -443,7 +443,7 @@ class CfgVehicles {
displayName = "$STR_ACE_Interaction_Passengers"; displayName = "$STR_ACE_Interaction_Passengers";
condition = "true"; condition = "true";
statement = ""; statement = "";
insertChildren = QUOTE(_this call FUNC(addPassengersActions)); insertChildren = QUOTE(_this call DFUNC(addPassengersActions));
}; };
}; };
}; };
@ -461,7 +461,7 @@ class CfgVehicles {
displayName = "$STR_ACE_Interaction_Passengers"; displayName = "$STR_ACE_Interaction_Passengers";
condition = "true"; condition = "true";
statement = ""; statement = "";
insertChildren = QUOTE(_this call FUNC(addPassengersActions)); insertChildren = QUOTE(_this call DFUNC(addPassengersActions));
}; };
}; };
}; };
@ -479,7 +479,7 @@ class CfgVehicles {
displayName = "$STR_ACE_Interaction_Push"; displayName = "$STR_ACE_Interaction_Push";
distance = 6; distance = 6;
condition = QUOTE(getMass _target < 1000 && {alive _target}); condition = QUOTE(getMass _target < 1000 && {alive _target});
statement = QUOTE([ARR_2(_target, [ARR_3(2 * (vectorDir _player select 0), 2 * (vectorDir _player select 1), 0.5)])] call FUNC(push);); statement = QUOTE([ARR_2(_target, [ARR_3(2 * (vectorDir _player select 0), 2 * (vectorDir _player select 1), 0.5)])] call DFUNC(push););
showDisabled = 0; showDisabled = 0;
priority = -1; priority = -1;
}; };
@ -490,7 +490,7 @@ class CfgVehicles {
displayName = "$STR_ACE_Interaction_Passengers"; displayName = "$STR_ACE_Interaction_Passengers";
condition = "true"; condition = "true";
statement = ""; statement = "";
insertChildren = QUOTE(_this call FUNC(addPassengersActions)); insertChildren = QUOTE(_this call DFUNC(addPassengersActions));
}; };
}; };
}; };
@ -509,7 +509,7 @@ class CfgVehicles {
displayName = "$STR_ACE_Interaction_Passengers"; displayName = "$STR_ACE_Interaction_Passengers";
condition = "true"; condition = "true";
statement = ""; statement = "";
insertChildren = QUOTE(_this call FUNC(addPassengersActions)); insertChildren = QUOTE(_this call DFUNC(addPassengersActions));
}; };
}; };
}; };

View File

@ -8,6 +8,8 @@ PREP(addSelectableItem);
PREP(applyButtons); PREP(applyButtons);
PREP(canBecomeLeader); PREP(canBecomeLeader);
PREP(canInteractWithCivilian); PREP(canInteractWithCivilian);
PREP(canJoinGroup);
PREP(canJoinTeam);
PREP(canTapShoulder); PREP(canTapShoulder);
PREP(doBecomeLeader); PREP(doBecomeLeader);
PREP(getDoor); PREP(getDoor);

View File

@ -0,0 +1,12 @@
// by commy2
#include "script_component.hpp"
private ["_unit", "_target"];
_unit = _this select 0;
_target = _this select 1;
alive _target
&& {!(_target getVariable ["ACE_isUnconscious", false])}
&& {side group _unit == side group _target}
&& {group _unit != group _target}

View File

@ -0,0 +1,12 @@
// by commy2
#include "script_component.hpp"
private ["_unit", "_target"];
_unit = _this select 0;
_target = _this select 1;
alive _target
&& {!(_target getVariable ["ACE_isUnconscious", false])}
&& {!([_target] call EFUNC(common,isPlayer))}
&& {_target in units group _unit}