mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Implemented knockout module
This commit is contained in:
parent
47acb0f470
commit
3702d0b671
@ -3,6 +3,18 @@ class CfgVehicles {
|
|||||||
class ModuleEmpty_F;
|
class ModuleEmpty_F;
|
||||||
class ACE_Module;
|
class ACE_Module;
|
||||||
|
|
||||||
|
class ModuleCurator_F: Module_F {
|
||||||
|
function = QUOTE(DFUNC(bi_moduleCurator));
|
||||||
|
};
|
||||||
|
class ModuleMine_F: ModuleEmpty_F {
|
||||||
|
function = QUOTE(DFUNC(bi_moduleMine));
|
||||||
|
};
|
||||||
|
class ModuleOrdnance_F: Module_F {
|
||||||
|
function = QUOTE(DFUNC(bi_moduleProjectile));
|
||||||
|
};
|
||||||
|
class ModuleRemoteControl_F: Module_F {
|
||||||
|
function = QUOTE(DFUNC(bi_moduleRemoteControl));
|
||||||
|
};
|
||||||
class GVAR(moduleZeusSettings): ACE_Module {
|
class GVAR(moduleZeusSettings): ACE_Module {
|
||||||
scope = 2;
|
scope = 2;
|
||||||
displayName = "$STR_ACE_Zeus_Module_DisplayName";
|
displayName = "$STR_ACE_Zeus_Module_DisplayName";
|
||||||
@ -64,17 +76,20 @@ class CfgVehicles {
|
|||||||
sync[] = {};
|
sync[] = {};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
class GVAR(moduleKnockout): Module_F {
|
||||||
class ModuleCurator_F: Module_F {
|
scopeCurator = 2;
|
||||||
function = QUOTE(DFUNC(bi_moduleCurator));
|
displayName = "Knockout/Wakeup Unit";
|
||||||
};
|
//icon = QUOTE(PATHTOF(iconGoesHere));
|
||||||
class ModuleMine_F: ModuleEmpty_F {
|
category = "ACE_zeus";
|
||||||
function = QUOTE(DFUNC(bi_moduleMine));
|
function = QUOTE(DFUNC(moduleKnockout));
|
||||||
};
|
functionPriority = 1;
|
||||||
class ModuleOrdnance_F: Module_F {
|
isGlobal = 1;
|
||||||
function = QUOTE(DFUNC(bi_moduleProjectile));
|
isTriggerActivated = 0;
|
||||||
};
|
curatorCanAttach = 1;
|
||||||
class ModuleRemoteControl_F: Module_F {
|
author = "SilentSpike";
|
||||||
function = QUOTE(DFUNC(bi_moduleRemoteControl));
|
class ModuleDescription {
|
||||||
|
description = "Knocks out or wakes up the specified unit.";
|
||||||
|
sync[] = {};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -6,6 +6,7 @@ PREP(bi_moduleCurator);
|
|||||||
PREP(bi_moduleMine);
|
PREP(bi_moduleMine);
|
||||||
PREP(bi_moduleProjectile);
|
PREP(bi_moduleProjectile);
|
||||||
PREP(bi_moduleRemoteControl);
|
PREP(bi_moduleRemoteControl);
|
||||||
|
PREP(moduleKnockout);
|
||||||
PREP(moduleZeusSettings);
|
PREP(moduleZeusSettings);
|
||||||
|
|
||||||
ADDON = true;
|
ADDON = true;
|
||||||
|
@ -2,7 +2,9 @@
|
|||||||
|
|
||||||
class CfgPatches {
|
class CfgPatches {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
units[] = {};
|
units[] = {
|
||||||
|
QGVAR(moduleKnockout)
|
||||||
|
};
|
||||||
weapons[] = {};
|
weapons[] = {};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_common"};
|
requiredAddons[] = {"ace_common"};
|
||||||
|
44
addons/zeus/functions/fnc_moduleKnockout.sqf
Normal file
44
addons/zeus/functions/fnc_moduleKnockout.sqf
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
* Author: SilentSpike
|
||||||
|
* Flips the unconscious state of the unit the module is attached to.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: The module logic <LOGIC>
|
||||||
|
* 1: units <ARRAY>
|
||||||
|
* 2: activated <BOOL>
|
||||||
|
*
|
||||||
|
* ReturnValue:
|
||||||
|
* nil
|
||||||
|
*
|
||||||
|
* Public: no
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
private ["_logic","_unit","_conscious","_previous"];
|
||||||
|
|
||||||
|
_logic = _this select 0;
|
||||||
|
_unit = attachedTo _logic;
|
||||||
|
|
||||||
|
if (isNil QEFUNC(medical,setUnconscious)) exitWith {
|
||||||
|
["Requires ACE_Medical to work."] call DEFUNC(common,displayTextStructured);
|
||||||
|
deleteVehicle _logic;
|
||||||
|
};
|
||||||
|
if (isNull _unit) exitWith {
|
||||||
|
["Module must be placed on a unit."] call DEFUNC(common,displayTextStructured);
|
||||||
|
deleteVehicle _logic;
|
||||||
|
};
|
||||||
|
|
||||||
|
_conscious = _unit getVariable ["ACE_isUnconscious", false];
|
||||||
|
|
||||||
|
//Hacky method, will be replaced once #1205 is complete
|
||||||
|
_previous = _unit getvariable [QEGVAR(medical,enableUnconsciousnessAI), EGVAR(medical,enableUnconsciousnessAI)];
|
||||||
|
if (_previous < 2) then {_unit setvariable [QEGVAR(medical,enableUnconsciousnessAI), 2];};
|
||||||
|
|
||||||
|
[_unit, !_conscious] call DEFUNC(medical,setUnconscious);
|
||||||
|
|
||||||
|
if (_previous < 2) then {
|
||||||
|
_unit setvariable [QEGVAR(medical,enableUnconsciousnessAI), _previous];
|
||||||
|
};
|
||||||
|
|
||||||
|
deleteVehicle _logic;
|
Loading…
Reference in New Issue
Block a user