#130 - Surrender Module Prototype

This commit is contained in:
PabstMirror 2015-02-07 15:20:51 -06:00
parent fcf39a3916
commit 6d534e8846
5 changed files with 80 additions and 5 deletions

View File

@ -78,7 +78,7 @@ class CfgVehicles {
showDisabled = 0; showDisabled = 0;
priority = 2.3; priority = 2.3;
hotkey = "C"; hotkey = "C";
}; };
class ACE_StartSurrenderingSelf { class ACE_StartSurrenderingSelf {
displayName = "$STR_ACE_Captives_StartSurrendering"; displayName = "$STR_ACE_Captives_StartSurrendering";
condition = QUOTE([ARR_2(_player, true)] call FUNC(canSurrender)); condition = QUOTE([ARR_2(_player, true)] call FUNC(canSurrender));
@ -86,7 +86,7 @@ class CfgVehicles {
exceptions[] = {}; exceptions[] = {};
showDisabled = 0; showDisabled = 0;
priority = 0; priority = 0;
}; };
class ACE_StopSurrenderingSelf { class ACE_StopSurrenderingSelf {
displayName = "$STR_ACE_Captives_StopSurrendering"; displayName = "$STR_ACE_Captives_StopSurrendering";
condition = QUOTE([ARR_2(_player, false)] call FUNC(canSurrender)); condition = QUOTE([ARR_2(_player, false)] call FUNC(canSurrender));
@ -162,4 +162,30 @@ class CfgVehicles {
MACRO_ADDITEM(ACE_CableTie,12) MACRO_ADDITEM(ACE_CableTie,12)
}; };
}; };
class Logic;
class Module_F: Logic {
class ArgumentsBaseUnits {};
class ModuleDescription {};
};
class GVAR(ModuleSurrender): Module_F {
author = "$STR_ACE_Common_ACETeam";
category = "ACE";
displayName = "Make Unit Surrender";
function = QUOTE(DFUNC(moduleSurrender));
scope = 2; //show in editor
scopeCurator = 2; //show in zeus
curatorCost = 0; //???
isGlobal = 1; //run global
isTriggerActivated = 1; //Wait for triggers
// icon = QUOTE(PATHTOF(ui\todo.paa));
functionPriority = 0;
class Arguments {};
class ModuleDescription: ModuleDescription {
description = "Sync a unit to make them surrender.<br/>Source: ace_captives";
sync[] = {"AnyAI"};
};
};
}; };

View File

@ -23,6 +23,7 @@ PREP(handleKnockedOut);
PREP(handlePlayerChanged); PREP(handlePlayerChanged);
PREP(handleUnitInitPost); PREP(handleUnitInitPost);
PREP(handleWokeUp); PREP(handleWokeUp);
PREP(moduleSurrender);
PREP(setHandcuffed); PREP(setHandcuffed);
PREP(surrender); PREP(surrender);
PREP(vehicleCaptiveMoveIn); PREP(vehicleCaptiveMoveIn);

View File

@ -2,7 +2,7 @@
class CfgPatches { class CfgPatches {
class ADDON { class ADDON {
units[] = {}; units[] = {QGVAR(ModuleSurrender)};
weapons[] = {"ACE_CableTie"}; weapons[] = {"ACE_CableTie"};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ACE_Interaction"}; requiredAddons[] = {"ACE_Interaction"};

View File

@ -18,8 +18,10 @@
PARAMS_2(_newUnit,_oldUnit); PARAMS_2(_newUnit,_oldUnit);
if ((_newUnit getVariable [QGVAR(isHandcuffed), false]) || {_unit getVariable [QGVAR(isSurrendering), false]}) then { if ((_newUnit getVariable [QGVAR(isHandcuffed), false]) || {_newUnit getVariable [QGVAR(isSurrendering), false]}) then {
showHUD false; TRACE_1("Player Change (showHUD false)",_newUnit);
showHUD false;
} else { } else {
TRACE_1("Player Change (showHUD true)",_newUnit);
showHUD true; showHUD true;
}; };

View File

@ -0,0 +1,46 @@
/*
* Author: PabstMirror
* Module Function to make a unit surrender (can be called from editor, or placed with zeus)
*
* Arguments:
* 0: The Module Logic Object <OBJECT>
* 1: synced objects <ARRAY>
* 2: Activated <BOOL>
*
* Return Value:
* Nothing
*
* Example:
* Called from module
*
* Public: No
*/
#include "script_component.hpp"
PARAMS_3(_logic,_units,_activated);
if (!_activated) exitWith {};
if (local _logic) then {
if ((!isnull curatorcamera) && {((count curatorMouseOver) == 2) && {(curatorMouseOver select 1) == _logic}}) then {//in zeus interface and we placed the module
_bisMouseOver = missionNamespace getVariable ["bis_fnc_curatorObjectPlaced_mouseOver", []];//bis caches the previous curatorMouseOver
if ((count _bisMouseOver) == 2) then {//check what mouse was over before the module was placed
_mouseOverObject = _bisMouseOver select 1;
if ((_mouseOverObject isKindOf "CAManBase") && {(vehicle _mouseOverObject) == _mouseOverObject}) then {
systemChat format ["Debug - module surrendering %1", (name _mouseOverObject)];
[_mouseOverObject, true] call FUNC(surrender);
} else {
systemChat format ["Only use on dismounted inf"];
};
} else {
systemChat format ["Nothing under mouse"];
};
} else {//an editor module
{
systemChat format ["Debug - module surrendering %1", (name _x)];
[_x, true] call FUNC(surrender);
} forEach _units;
};
deleteVehicle _logic;
};