More work

This commit is contained in:
PabstMirror 2015-02-03 23:56:51 -06:00
parent 4c727fbff5
commit 24ab11a1e2
15 changed files with 161 additions and 142 deletions

View File

@ -1,90 +1,90 @@
class CfgMovesBasic { class CfgMovesBasic {
class Actions { class Actions {
class CivilStandActions; class CivilStandActions;
class ACE_CivilStandCaptiveActions: CivilStandActions { class ACE_CivilStandCaptiveActions: CivilStandActions {
turnL = ""; turnL = "";
turnR = ""; turnR = "";
stop = "ACE_AmovPercMstpScapWnonDnon"; stop = "ACE_AmovPercMstpScapWnonDnon";
StopRelaxed = "ACE_AmovPercMstpScapWnonDnon"; StopRelaxed = "ACE_AmovPercMstpScapWnonDnon";
default = "ACE_AmovPercMstpScapWnonDnon"; default = "ACE_AmovPercMstpScapWnonDnon";
getOver = ""; getOver = "";
throwPrepare = ""; throwPrepare = "";
throwGrenade[] = {"","Gesture"}; throwGrenade[] = {"","Gesture"};
};
}; };
};
}; };
class CfgMovesMaleSdr: CfgMovesBasic { class CfgMovesMaleSdr: CfgMovesBasic {
class StandBase; class StandBase;
class States { class States {
class AmovPercMstpSnonWnonDnon: StandBase { class AmovPercMstpSnonWnonDnon: StandBase {
ConnectTo[] += {"ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon",0.1}; ConnectTo[] += {"ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon",0.1};
}; };
class CutSceneAnimationBase; class CutSceneAnimationBase;
class ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon: CutSceneAnimationBase { class ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon: CutSceneAnimationBase {
actions = "ACE_CivilStandCaptiveActions"; actions = "ACE_CivilStandCaptiveActions";
file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\non\non\AmovPercMstpSnonWnonDnon_EaseIn"; file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\non\non\AmovPercMstpSnonWnonDnon_EaseIn";
speed = 1; speed = 1;
looped = 0; looped = 0;
interpolationRestart = 2; interpolationRestart = 2;
ConnectTo[] = {"ACE_AmovPercMstpScapWnonDnon",0.1}; ConnectTo[] = {"ACE_AmovPercMstpScapWnonDnon",0.1};
InterpolateTo[] = {"Unconscious",0.01,"ACE_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon",0.1}; InterpolateTo[] = {"Unconscious",0.01,"ACE_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon",0.1};
}; };
class ACE_AmovPercMstpScapWnonDnon: ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon { class ACE_AmovPercMstpScapWnonDnon: ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon {
file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\non\non\AmovPercMstpSnonWnonDnon_Ease"; file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\non\non\AmovPercMstpSnonWnonDnon_Ease";
speed = 0; speed = 0;
ConnectTo[] = {"ACE_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon",0.1}; ConnectTo[] = {"ACE_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon",0.1};
InterpolateTo[] = {"Unconscious",0.01}; InterpolateTo[] = {"Unconscious",0.01};
looped = 1; looped = 1;
}; };
class ACE_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon: ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon { class ACE_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon: ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon {
actions = "CivilStandActions"; actions = "CivilStandActions";
file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\non\non\amovpercmstpsnonwnondnon_easeout"; file = "\A3\anims_f\Data\Anim\Sdr\mov\erc\stp\non\non\amovpercmstpsnonwnondnon_easeout";
ConnectTo[] = {"AmovPercMstpSnonWnonDnon",0.1}; ConnectTo[] = {"AmovPercMstpSnonWnonDnon",0.1};
InterpolateTo[] = {"Unconscious",0.01,"ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon",0.1}; InterpolateTo[] = {"Unconscious",0.01,"ACE_AmovPercMstpSnonWnonDnon_AmovPercMstpScapWnonDnon",0.1};
};
}; };
};
}; };
/* /*
player playMove "ACE_AmovPercMstpScapWnonDnon"; player playMove "ACE_AmovPercMstpScapWnonDnon";
player switchMove "ACE_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon"; player switchMove "ACE_AmovPercMstpScapWnonDnon_AmovPercMstpSnonWnonDnon";
*/ */
/*class CfgMovesBasic; /*class CfgMovesBasic;
class CfgMovesMaleSdr: CfgMovesBasic { class CfgMovesMaleSdr: CfgMovesBasic {
class States { class States {
class CutSceneAnimationBase; class CutSceneAnimationBase;
class AmovPercMstpSnonWnonDnon_EaseIn: CutSceneAnimationBase { class AmovPercMstpSnonWnonDnon_EaseIn: CutSceneAnimationBase {
head = "headDefault"; head = "headDefault";
static = 1; static = 1;
disableWeapons = 0; disableWeapons = 0;
forceAim = 0; forceAim = 0;
InterpolateTo[] = {"AmovPercMstpSnonWnonDnon_EaseOut",0.02,"Unconscious",0.1}; InterpolateTo[] = {"AmovPercMstpSnonWnonDnon_EaseOut",0.02,"Unconscious",0.1};
}; };
class AmovPercMstpSnonWnonDnon_Ease: AmovPercMstpSnonWnonDnon_EaseIn { class AmovPercMstpSnonWnonDnon_Ease: AmovPercMstpSnonWnonDnon_EaseIn {
looped = 1; looped = 1;
InterpolateTo[] = {"Unconscious",0.1}; InterpolateTo[] = {"Unconscious",0.1};
}; };
class AmovPercMstpSnonWnonDnon_EaseOut: AmovPercMstpSnonWnonDnon_EaseIn { class AmovPercMstpSnonWnonDnon_EaseOut: AmovPercMstpSnonWnonDnon_EaseIn {
InterpolateTo[] = {"AmovPercMstpSnonWnonDnon_EaseIn",0.02,"Unconscious",0.1}; InterpolateTo[] = {"AmovPercMstpSnonWnonDnon_EaseIn",0.02,"Unconscious",0.1};
}; };
class AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon: CutSceneAnimationBase { class AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon: CutSceneAnimationBase {
InterpolateTo[] = {"Unconscious",0.01,"AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon",0.1}; InterpolateTo[] = {"Unconscious",0.01,"AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon",0.1};
}; };
class AmovPercMstpSsurWnonDnon: AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon { class AmovPercMstpSsurWnonDnon: AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon {
looped = 1; looped = 1;
InterpolateTo[] = {"Unconscious",0.01}; InterpolateTo[] = {"Unconscious",0.01};
}; };
class AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon: AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon { class AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon: AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon {
InterpolateTo[] = {"Unconscious",0.01,"AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon",0.1}; InterpolateTo[] = {"Unconscious",0.01,"AmovPercMstpSnonWnonDnon_AmovPercMstpSsurWnonDnon",0.1};
}; };
}; };
};*/ };*/

View File

@ -5,8 +5,8 @@ class CfgVehicles {
class ACE_SetCaptive { class ACE_SetCaptive {
displayName = "$STR_ACE_Captives_SetCaptive"; displayName = "$STR_ACE_Captives_SetCaptive";
distance = 4; distance = 4;
condition = QUOTE(('ACE_CableTie' in (items _player)) && {alive _target} && {!(_target getVariable ['ACE_isCaptive', false])}); condition = QUOTE(('ACE_CableTie' in (items _player)) && {alive _target} && {!(_target getVariable [ARR_2('ACE_isCaptive', false)])});
statement = QUOTE(_player removeItem 'ACE_CableTie'; [ARR_3(QGVAR(SetCaptive), [_target], [ARR_2(_target, true)])] call EFUNC(common,targetEvent);); statement = QUOTE(_player removeItem 'ACE_CableTie'; [ARR_3('SetCaptive', [_target], [ARR_2(_target, true)])] call EFUNC(common,targetEvent););
showDisabled = 0; showDisabled = 0;
priority = 2.4; priority = 2.4;
icon = QUOTE(PATHTOF(UI\handcuff_ca.paa)); icon = QUOTE(PATHTOF(UI\handcuff_ca.paa));
@ -15,8 +15,8 @@ class CfgVehicles {
class ACE_ReleaseCaptive { class ACE_ReleaseCaptive {
displayName = "$STR_ACE_Captives_ReleaseCaptive"; displayName = "$STR_ACE_Captives_ReleaseCaptive";
distance = 4; distance = 4;
condition = QUOTE(_target getVariable ['ACE_isCaptive', false] && {isNull (attachedTo _target)}); condition = QUOTE(_target getVariable [ARR_2('ACE_isCaptive', false)] && {isNull (attachedTo _target)});
statement = QUOTE([ARR_2(_target, false)] call FUNC(setCaptive)); statement = QUOTE([ARR_3('SetCaptive', [_target], [ARR_2(_target, false)])] call EFUNC(common,targetEvent););
exceptions[] = {"ACE_Interaction_isNotEscorting"}; exceptions[] = {"ACE_Interaction_isNotEscorting"};
showDisabled = 0; showDisabled = 0;
priority = 2.4; priority = 2.4;
@ -26,7 +26,7 @@ class CfgVehicles {
class ACE_EscortCaptive { class ACE_EscortCaptive {
displayName = "$STR_ACE_Captives_EscortCaptive"; displayName = "$STR_ACE_Captives_EscortCaptive";
distance = 4; distance = 4;
condition = QUOTE((_target getVariable ['ACE_isCaptive', false]) && {isNull (attachedTo _target)} && {alive _target} && {!(_target getVariable ['ACE_isUnconscious', false])}); condition = QUOTE((_target getVariable [ARR_2('ACE_isCaptive', false)]) && {isNull (attachedTo _target)} && {alive _target} && {!(_target getVariable [ARR_2('ACE_isUnconscious', false)])});
statement = QUOTE([ARR_2(_target, true)] call FUNC(escortCaptive)); statement = QUOTE([ARR_2(_target, true)] call FUNC(escortCaptive));
exceptions[] = {"ACE_Interaction_isNotEscorting"}; exceptions[] = {"ACE_Interaction_isNotEscorting"};
showDisabled = 0; showDisabled = 0;
@ -37,7 +37,7 @@ class CfgVehicles {
class ACE_StopEscorting { class ACE_StopEscorting {
displayName = "$STR_ACE_Captives_StopEscorting"; displayName = "$STR_ACE_Captives_StopEscorting";
distance = 4; distance = 4;
condition = QUOTE((_target getVariable ['ACE_isCaptive', false]) && {_target in (attachedObjects _player)}); condition = QUOTE((_target getVariable [ARR_2('ACE_isCaptive', false)]) && {_target in (attachedObjects _player)});
statement = QUOTE([ARR_2(_target, false)] call FUNC(escortCaptive)); statement = QUOTE([ARR_2(_target, false)] call FUNC(escortCaptive));
exceptions[] = {"ACE_Interaction_isNotEscorting"}; exceptions[] = {"ACE_Interaction_isNotEscorting"};
showDisabled = 0; showDisabled = 0;
@ -71,8 +71,8 @@ class CfgVehicles {
class ACE_SelfActions { class ACE_SelfActions {
class ACE_StopEscortingSelf { class ACE_StopEscortingSelf {
displayName = "$STR_ACE_Captives_StopEscorting"; displayName = "$STR_ACE_Captives_StopEscorting";
condition = QUOTE(((_player getVariable ['ACE_escortedUnit', objNull]) getVariable ['ACE_isCaptive', false]) && {(_player getVariable ['ACE_escortedUnit', objNull]) in attachedObjects _player}); condition = QUOTE(((_player getVariable [ARR_2('ACE_escortedUnit', objNull)]) getVariable ['ACE_isCaptive', false]) && {(_player getVariable [ARR_2('ACE_escortedUnit', objNull)]) in attachedObjects _player});
statement = QUOTE([ARR_2((_player getVariable ['ACE_escortedUnit', objNull]), false)] call FUNC(_escortCaptive);); statement = QUOTE([ARR_2((_player getVariable [ARR_2('ACE_escortedUnit', objNull)]), false)] call FUNC(_escortCaptive););
exceptions[] = {"ACE_Interaction_isNotEscorting"}; exceptions[] = {"ACE_Interaction_isNotEscorting"};
showDisabled = 0; showDisabled = 0;
priority = 2.3; priority = 2.3;

View File

@ -1,15 +1,15 @@
class CfgWeapons { class CfgWeapons {
class ACE_ItemCore; class ACE_ItemCore;
class InventoryItem_Base_F; class InventoryItem_Base_F;
class ACE_CableTie: ACE_ItemCore { class ACE_CableTie: ACE_ItemCore {
displayName = "$STR_ACE_Captives_CableTie"; displayName = "$STR_ACE_Captives_CableTie";
descriptionShort = "$STR_ACE_Captives_CableTieDescription"; descriptionShort = "$STR_ACE_Captives_CableTieDescription";
model = QUOTE(PATHTOF(models\ace_cabletie.p3d)); model = QUOTE(PATHTOF(models\ace_cabletie.p3d));
picture = QUOTE(PATHTOF(UI\ace_cabletie_ca.paa)); picture = QUOTE(PATHTOF(UI\ace_cabletie_ca.paa));
scope = 2; scope = 2;
class ItemInfo: InventoryItem_Base_F { class ItemInfo: InventoryItem_Base_F {
mass = 1; mass = 1;
};
}; };
};
}; };

14
addons/captives/README.md Normal file
View File

@ -0,0 +1,14 @@
ace_captives
============
Allows taking people captive/handcuffed
####Items:
`ACE_CableTie` - adds ability to take someone captive
## Maintainers
The people responsible for merging changes to this component or answering potential questions.
- [PabstMirror](https://github.com/PabstMirror)

View File

@ -1,9 +1,19 @@
// by commy2 #include "script_component.hpp"
[missionNamespace, "playerChanged", {_this call ACE_Captives_fnc_handlePlayerChanged}] call ACE_Core_fnc_addCustomEventhandler; [missionNamespace, "playerChanged", {_this call ACE_Captives_fnc_handlePlayerChanged}] call ACE_Core_fnc_addCustomEventhandler;
[QGVAR(MoveIn), {_this call FUNC(vehicleCaptiveMoveIn)}] call EFUNC(common,addEventHandler); ["MoveInCaptive", {_this call FUNC(vehicleCaptiveMoveIn)}] call EFUNC(common,addEventHandler);
[QGVAR(MoveOut), {_this call FUNC(vehicleCaptiveMoveOut)}] call EFUNC(common,addEventHandler); ["MoveOutCaptive", {_this call FUNC(vehicleCaptiveMoveOut)}] call EFUNC(common,addEventHandler);
[QGVAR(SetCaptive), {_this call FUNC(vehicleCaptiveMoveOut)}] call EFUNC(common,addEventHandler); ["SetCaptive", {_this call FUNC(vehicleCaptiveMoveOut)}] call EFUNC(common,addEventHandler);
//TODO: Medical Integration Events???
// [_unit, "knockedOut", {
// if (local (_this select 0)) then {_this call ACE_Captives_fnc_handleKnockedOut};
// }] call ACE_Core_fnc_addCustomEventhandler;
// [_unit, "wokeUp", {
// if (local (_this select 0)) then {_this call ACE_Captives_fnc_handleWokeUp};
// }] call ACE_Core_fnc_addCustomEventhandler;

View File

@ -17,5 +17,7 @@ PREP(openFriskMenu);
PREP(setCaptive); PREP(setCaptive);
PREP(surrender); PREP(surrender);
PREP(unloadCaptive); PREP(unloadCaptive);
PREP(vehicleCaptiveMoveIn);
PREP(vehicleCaptiveMoveOut);
ADDON = true; ADDON = true;

View File

@ -19,7 +19,7 @@
PARAMS_2(_unit,_oldUnit); PARAMS_2(_unit,_oldUnit);
if (_unit getVariable ["ACE_isCaptive", false]) then { if (_unit getVariable ["ACE_isCaptive", false]) then {
showHUD false; showHUD false;
} else { } else {
showHUD true; showHUD true;
}; };

View File

@ -18,6 +18,6 @@
PARAMS_1(_unit); PARAMS_1(_unit);
if (_unit getVariable ["ACE_isCaptive", false] && {vehicle _unit == _unit}) then { if (_unit getVariable ["ACE_isCaptive", false] && {vehicle _unit == _unit}) then {
[_unit] call EFUNC(common,fixLoweredRifleAnimation); [_unit] call EFUNC(common,fixLoweredRifleAnimation);
[_unit, "ACE_AmovPercMstpScapWnonDnon", 0] call EFUNC(common,doAnimation); [_unit, "ACE_AmovPercMstpScapWnonDnon", 0] call EFUNC(common,doAnimation);
}; };

View File

@ -19,6 +19,6 @@ PARAMS_1(_unit);
// reset status on mission start // reset status on mission start
if (_unit getVariable ["ACE_isCaptive", false]) then { if (_unit getVariable ["ACE_isCaptive", false]) then {
_unit setVariable ["ACE_isCaptive", false]; _unit setVariable ["ACE_isCaptive", false];
[_unit, true] call ACE_Captives_fnc_setCaptive; [_unit, true] call ACE_Captives_fnc_setCaptive;
}; };

View File

@ -17,13 +17,6 @@
PARAMS_1(_unit); PARAMS_1(_unit);
[_unit, "knockedOut", {
if (local (_this select 0)) then {_this call ACE_Captives_fnc_handleKnockedOut};
}] call ACE_Core_fnc_addCustomEventhandler;
[_unit, "wokeUp", {
if (local (_this select 0)) then {_this call ACE_Captives_fnc_handleWokeUp};
}] call ACE_Core_fnc_addCustomEventhandler;
// prevent players from throwing grenades // prevent players from throwing grenades
[_unit, "Throw", {(_this select 1) getVariable ["ACE_isCaptive", false]}, {}] call ACE_Core_fnc_addActionEventhandler; [_unit, "Throw", {(_this select 1) getVariable ["ACE_isCaptive", false]}, {}] call EFUNC(common,addActionEventhandler);

View File

@ -17,7 +17,7 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
PARAMS_1(_unit,_target,_vehicle); PARAMS_3(_unit,_target,_vehicle);
if (isNull _target) then { if (isNull _target) then {
_objects = attachedObjects _unit; _objects = attachedObjects _unit;
@ -32,5 +32,5 @@ if (isNull _vehicle) then {
if ((!isNil "_target") && {!isNil "_vehicle"}) then { if ((!isNil "_target") && {!isNil "_vehicle"}) then {
_unit setVariable ["ACE_isEscorting", false]; _unit setVariable ["ACE_isEscorting", false];
[QGVAR(MoveIn), [_target], [_target, _vehicle]] call EFUNC(common,targetEvent); ["MoveInCaptive", [_target], [_target, _vehicle]] call EFUNC(common,targetEvent);
}; };

View File

@ -22,7 +22,7 @@ PARAMS_2(_player,_unit);
_weapon = currentWeapon _player; _weapon = currentWeapon _player;
if (_weapon == primaryWeapon _player && {_weapon != ""}) then { if (_weapon == primaryWeapon _player && {_weapon != ""}) then {
[_player, "AmovPercMstpSlowWrflDnon", 0] call EFUNC(common,doAnimation); [_player, "AmovPercMstpSlowWrflDnon", 0] call EFUNC(common,doAnimation);
}; };
_listedItemClasses = []; _listedItemClasses = [];
@ -32,19 +32,19 @@ _actions = [localize "STR_ACE_Captives_FriskMenuHeader", localize "STR_ACE_Capti
_allGear = []; _allGear = [];
if ((handgunWeapon _unit) != "") then { if ((handgunWeapon _unit) != "") then {
_allGear pushBack (handgunWeapon _unit); _allGear pushBack (handgunWeapon _unit);
}; };
if (count (uniformItems _unit) > 0) then { if (count (uniformItems _unit) > 0) then {
_allGear = _allGear + (uniformItems _unit); _allGear = _allGear + (uniformItems _unit);
}; };
if (count (vestItems _unit) > 0) then { if (count (vestItems _unit) > 0) then {
_allGear = _allGear + (vestItems _unit); _allGear = _allGear + (vestItems _unit);
}; };
if (count (backpackItems _unit) > 0) then { if (count (backpackItems _unit) > 0) then {
_allGear = _allGear + (backpackItems _unit); _allGear = _allGear + (backpackItems _unit);
}; };
if (count (assignedItems _unit) > 0) then { if (count (assignedItems _unit) > 0) then {
_allGear = _allGear + (assignedItems _unit); _allGear = _allGear + (assignedItems _unit);
}; };
// Handgun // Handgun
@ -53,15 +53,15 @@ if (count (assignedItems _unit) > 0) then {
// Backpack Items // Backpack Items
// Assigned Items // Assigned Items
{ {
if (!(_x in _listedItemClasses)) then { if (!(_x in _listedItemClasses)) then {
private "_item"; private "_item";
_item = configFile >> "CfgMagazines" >> _x; _item = configFile >> "CfgMagazines" >> _x;
if (isNil "_item" || str _item == "") then { //str _item ? if (isNil "_item" || str _item == "") then { //str _item ?
_item = configFile >> "CfgWeapons" >> _x; _item = configFile >> "CfgWeapons" >> _x;
};
_actions = [_actions, getText(_item >> "displayName"), getText(_item >> "picture"), _x] call ACE_Interaction_fnc_addSelectableItem;
_listedItemClasses pushBack _x;
}; };
_actions = [_actions, getText(_item >> "displayName"), getText(_item >> "picture"), _x] call ACE_Interaction_fnc_addSelectableItem;
_listedItemClasses pushBack _x;
};
} forEach (_allGear); } forEach (_allGear);
[_actions, {call ACE_Interaction_fnc_hideMenu;}, {call ACE_Interaction_fnc_hideMenu;}] call ACE_Interaction_fnc_openSelectMenu; [_actions, {call ACE_Interaction_fnc_hideMenu;}, {call ACE_Interaction_fnc_hideMenu;}] call ACE_Interaction_fnc_openSelectMenu;

View File

@ -21,43 +21,43 @@ PARAMS_2(_unit,_state);
if (!local _unit) exitWith {[_this, _fnc_scriptName, _unit] call ACE_Core_fnc_execRemoteFnc}; if (!local _unit) exitWith {[_this, _fnc_scriptName, _unit] call ACE_Core_fnc_execRemoteFnc};
if (_state) then { if (_state) then {
if (_unit getVariable ["ACE_isSurrender", false]) exitWith {}; if (_unit getVariable ["ACE_isSurrender", false]) exitWith {};
_unit setVariable ["ACE_isSurrender", true, true]; _unit setVariable ["ACE_isSurrender", true, true];
[_unit, "ACE_Surrendered", true] call ACE_Core_fnc_setCaptivityStatus; [_unit, "ACE_Surrendered", true] call ACE_Core_fnc_setCaptivityStatus;
_unit spawn { _unit spawn {
// fix for lowered rifle animation glitch // fix for lowered rifle animation glitch
if (currentWeapon _this != "" && {currentWeapon _this == primaryWeapon _this} && {weaponLowered _this} && {stance _this == "STAND"}) then { if (currentWeapon _this != "" && {currentWeapon _this == primaryWeapon _this} && {weaponLowered _this} && {stance _this == "STAND"}) then {
_this playMove "amovpercmstpsraswrfldnon"; _this playMove "amovpercmstpsraswrfldnon";
};
while {_this getVariable ["ACE_isSurrender", false]} do {
sleep 0.001; //sleep in UI
if (isPlayer _this) then {showHUD false};
if (!alive _this || {_this getVariable ["ACE_isUnconscious", false]}) then {
_this setVariable ["ACE_isSurrender", false, true];
} else {
_this playMove "amovpercmstpsnonwnondnon_amovpercmstpssurwnondnon";
};
};
if !(_this getVariable ["ACE_isUnconscious", false]) then {
_this playMoveNow "AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon";
} else {
_this playMoveNow "unconscious";
};
[_this, "ACE_Surrendered", false] call ACE_Core_fnc_setCaptivityStatus;
if (isPlayer _this) then {showHUD true};
}; };
while {_this getVariable ["ACE_isSurrender", false]} do {
sleep 0.001; //sleep in UI
if (isPlayer _this) then {showHUD false};
if (!alive _this || {_this getVariable ["ACE_isUnconscious", false]}) then {
_this setVariable ["ACE_isSurrender", false, true];
} else {
_this playMove "amovpercmstpsnonwnondnon_amovpercmstpssurwnondnon";
};
};
if !(_this getVariable ["ACE_isUnconscious", false]) then {
_this playMoveNow "AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon";
} else {
_this playMoveNow "unconscious";
};
[_this, "ACE_Surrendered", false] call ACE_Core_fnc_setCaptivityStatus;
if (isPlayer _this) then {showHUD true};
};
} else { } else {
_unit setVariable ["ACE_isSurrender", false, true]; _unit setVariable ["ACE_isSurrender", false, true];
}; };
/* /*
player playMove "AmovPercMstpSsurWnonDnon" player playMove "AmovPercMstpSsurWnonDnon"
player switchMove "AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon" player switchMove "AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon"
*/ */

View File

@ -26,7 +26,7 @@ _cargo = [_cargo, {_this getVariable ["ACE_isCaptive", false]}] call EFUNC(commo
if ((count _cargo) > 0) then { if ((count _cargo) > 0) then {
_target = _cargo select 0; _target = _cargo select 0;
[QGVAR(MoveOut), [_target], [_target]] call EFUNC(common,targetEvent); ["MoveOutCaptive", [_target], [_target]] call EFUNC(common,targetEvent);
} else { } else {
ERROR("No captive to unload"); ERROR("No captive to unload");
}; };

View File

@ -20,8 +20,8 @@ PARAMS_2(_target,_vehicle);
private ["_cargoIndex"]; private ["_cargoIndex"];
_target moveInCargo _vehicle; _target moveInCargo _vehicle;
_target assignAsCargo _vehicle; _target assignAsCargo _vehicle;
_cargoIndex = _vehicle getCargoIndex _target; _cargoIndex = _vehicle getCargoIndex _target;
_target setVariable ["ACE_Captives_CargoIndex", _cargoIndex, true]; _target setVariable ["ACE_Captives_CargoIndex", _cargoIndex, true];