mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge pull request #280 from KoffeinFlummi/explosiveInteraction
Explosive interaction
This commit is contained in:
commit
e0b4efd9f1
@ -1,54 +1,54 @@
|
||||
class CfgACE_Triggers {
|
||||
/* onPlace parameters:
|
||||
0: OBJECT - unit placing
|
||||
1: OBJECT - Placed explosive
|
||||
2: STRING - Magazine classname
|
||||
3: ARRAY - vars
|
||||
Last Index: CfgACE_Triggers config of trigger type.
|
||||
onSetup parameters:
|
||||
0: STRING - Magazine Classname
|
||||
*/
|
||||
class Command {
|
||||
displayName = $STR_ACE_Explosives_clacker_displayName;
|
||||
picture = PATHTOF(Data\UI\Clacker.paa);
|
||||
onPlace = QUOTE(_this call FUNC(AddClacker);false);
|
||||
requires[] = {"ACE_Clacker"};
|
||||
};
|
||||
class MK16_Transmitter:Command {
|
||||
displayName = $STR_ACE_Explosives_MK16_displayName;
|
||||
picture = PATHTOF(Data\UI\MK16_Reciever_ca.paa);
|
||||
requires[] = {"ACE_M26_Clacker"};
|
||||
};
|
||||
class DeadManSwitch:Command {
|
||||
displayName = $STR_ACE_Explosives_DeadManSwitch_displayName;
|
||||
picture = PATHTOF(Data\UI\DeadmanSwitch.paa);
|
||||
requires[] = {"ACE_DeadManSwitch"};
|
||||
};
|
||||
class Cellphone:Command {
|
||||
displayName = $STR_ACE_Explosives_cellphone_displayName;
|
||||
picture = PATHTOF(Data\UI\Cellphone_UI.paa);
|
||||
onPlace = QUOTE(_this call FUNC(addCellphoneIED);false);
|
||||
requires[] = {"ACE_Cellphone"};
|
||||
};
|
||||
class PressurePlate {
|
||||
displayName = $STR_ACE_Explosives_PressurePlate;
|
||||
picture = PATHTOF(Data\UI\PressurePlate.paa);
|
||||
onPlace = "_dist=GetNumber(ConfigFile >> 'CfgMagazines' >> (_this select 2) >> 'ACE_Triggers' >> 'PressurePlate' >> 'digDistance');_ex=_this select 1;_ex setPosATL ((getPosATL _ex) vectorDiff ((VectorUp _ex) vectorCrossProduct [0,0,_dist]));false";
|
||||
};
|
||||
class IRSensor {
|
||||
displayName = $STR_ACE_Explosives_IRSensor;
|
||||
picture = PATHTOF(Data\UI\PressurePlate.paa);
|
||||
onPlace = "false";
|
||||
};
|
||||
class Timer {
|
||||
displayName = $STR_ACE_Explosives_timerName;
|
||||
picture = PATHTOF(data\UI\Timer.paa);
|
||||
onPlace = QUOTE([ARR_2(_this select 1,(_this select 3) select 0)] call FUNC(startTimer);false);
|
||||
onSetup = QUOTE(_this call FUNC(openTimerSetUI);true);
|
||||
};
|
||||
class Tripwire {
|
||||
displayName = $STR_ACE_Explosives_TripWire;
|
||||
picture = PATHTOF(Data\UI\Tripwire.paa);
|
||||
onPlace = "false";
|
||||
};
|
||||
/* onPlace parameters:
|
||||
0: OBJECT - unit placing
|
||||
1: OBJECT - Placed explosive
|
||||
2: STRING - Magazine classname
|
||||
3: ARRAY - vars
|
||||
Last Index: CfgACE_Triggers config of trigger type.
|
||||
onSetup parameters:
|
||||
0: STRING - Magazine Classname
|
||||
*/
|
||||
class Command {
|
||||
displayName = $STR_ACE_Explosives_clacker_displayName;
|
||||
picture = PATHTOF(Data\UI\Clacker.paa);
|
||||
onPlace = QUOTE(_this call FUNC(AddClacker);false);
|
||||
requires[] = {"ACE_Clacker"};
|
||||
};
|
||||
class MK16_Transmitter:Command {
|
||||
displayName = $STR_ACE_Explosives_MK16_displayName;
|
||||
picture = PATHTOF(Data\UI\MK16_Reciever_ca.paa);
|
||||
requires[] = {"ACE_M26_Clacker"};
|
||||
};
|
||||
class DeadManSwitch:Command {
|
||||
displayName = $STR_ACE_Explosives_DeadManSwitch_displayName;
|
||||
picture = PATHTOF(Data\UI\DeadmanSwitch.paa);
|
||||
requires[] = {"ACE_DeadManSwitch"};
|
||||
};
|
||||
class Cellphone:Command {
|
||||
displayName = $STR_ACE_Explosives_cellphone_displayName;
|
||||
picture = PATHTOF(Data\UI\Cellphone_UI.paa);
|
||||
onPlace = QUOTE(_this call FUNC(addCellphoneIED);false);
|
||||
requires[] = {"ACE_Cellphone"};
|
||||
};
|
||||
class PressurePlate {
|
||||
displayName = $STR_ACE_Explosives_PressurePlate;
|
||||
picture = PATHTOF(Data\UI\PressurePlate.paa);
|
||||
onPlace = "_dist=GetNumber(ConfigFile >> 'CfgMagazines' >> (_this select 2) >> 'ACE_Triggers' >> 'PressurePlate' >> 'digDistance');_ex=_this select 1;_ex setPosATL ((getPosATL _ex) vectorDiff ((VectorUp _ex) vectorCrossProduct [0,0,_dist]));false";
|
||||
};
|
||||
class IRSensor {
|
||||
displayName = $STR_ACE_Explosives_IRSensor;
|
||||
picture = PATHTOF(Data\UI\PressurePlate.paa);
|
||||
onPlace = "false";
|
||||
};
|
||||
class Timer {
|
||||
displayName = $STR_ACE_Explosives_timerName;
|
||||
picture = PATHTOF(data\UI\Timer.paa);
|
||||
onPlace = QUOTE([ARR_2(_this select 1,(_this select 3) select 0)] call FUNC(startTimer);false);
|
||||
onSetup = QUOTE(_this call FUNC(openTimerSetUI);true);
|
||||
};
|
||||
class Tripwire {
|
||||
displayName = $STR_ACE_Explosives_TripWire;
|
||||
picture = PATHTOF(Data\UI\Tripwire.paa);
|
||||
onPlace = "false";
|
||||
};
|
||||
};
|
||||
|
@ -1,78 +1,78 @@
|
||||
class CfgAmmo {
|
||||
// All explosive based Ammo classes. These are all listed in case they become required.
|
||||
class Default;
|
||||
// All explosive based Ammo classes. These are all listed in case they become required.
|
||||
class Default;
|
||||
|
||||
class TimeBombCore:Default {
|
||||
ACE_DefuseTime = 5;
|
||||
};
|
||||
/*
|
||||
class BoundingMineCore:TimeBombCore;
|
||||
class BoundingMineBase:BoundingMineCore;
|
||||
class APERSBoundingMine_Range_Ammo:BoundingMineBase;
|
||||
class TimeBombCore:Default {
|
||||
ACE_DefuseTime = 5;
|
||||
};
|
||||
/*
|
||||
class BoundingMineCore:TimeBombCore;
|
||||
class BoundingMineBase:BoundingMineCore;
|
||||
class APERSBoundingMine_Range_Ammo:BoundingMineBase;
|
||||
|
||||
class MineCore: TimeBombCore;
|
||||
class MineBase:MineCore;
|
||||
class APERSMine_Range_Ammo:MineBase;
|
||||
class ATMine_Range_Ammo:MineBase;
|
||||
class MineCore: TimeBombCore;
|
||||
class MineBase:MineCore;
|
||||
class APERSMine_Range_Ammo:MineBase;
|
||||
class ATMine_Range_Ammo:MineBase;
|
||||
|
||||
class UnderwaterMine_Range_Ammo:MineBase;
|
||||
class UnderwaterMineAB_Range_Ammo:UnderwaterMine_Range_Ammo;
|
||||
class UnderwaterMinePDM_Range_Ammo:UnderwaterMine_Range_Ammo;
|
||||
class UnderwaterMine_Range_Ammo:MineBase;
|
||||
class UnderwaterMineAB_Range_Ammo:UnderwaterMine_Range_Ammo;
|
||||
class UnderwaterMinePDM_Range_Ammo:UnderwaterMine_Range_Ammo;
|
||||
|
||||
class DirectionalBombCore:TimeBombCore;
|
||||
class DirectionalBombBase:DirectionalBombCore;
|
||||
class APERSTripMine_Wire_Ammo:DirectionalBombBase;
|
||||
class DirectionalBombCore:TimeBombCore;
|
||||
class DirectionalBombBase:DirectionalBombCore;
|
||||
class APERSTripMine_Wire_Ammo:DirectionalBombBase;
|
||||
|
||||
class SLAMDirectionalMine_Wire_Ammo:DirectionalBombBase;
|
||||
class SLAMDirectionalMine_Wire_Ammo:DirectionalBombBase;
|
||||
|
||||
class PipeBombCore: TimeBombCore;
|
||||
class PipeBombBase:PipeBombCore;
|
||||
*/
|
||||
class DirectionalBombBase;
|
||||
class ClaymoreDirectionalMine_Remote_Ammo:DirectionalBombBase{
|
||||
ACE_Explosive = "ClaymoreDirectionalMine_Remote_Ammo_Scripted";
|
||||
soundActivation[] = {"",0,0,0};
|
||||
soundDeactivation[] = {"",0,0,0};
|
||||
};
|
||||
//class ClaymoreDirectionalMine_Remote_Ammo_Scripted:ClaymoreDirectionalMine_Remote_Ammo;
|
||||
class PipeBombCore: TimeBombCore;
|
||||
class PipeBombBase:PipeBombCore;
|
||||
*/
|
||||
class DirectionalBombBase;
|
||||
class ClaymoreDirectionalMine_Remote_Ammo:DirectionalBombBase{
|
||||
ACE_Explosive = "ClaymoreDirectionalMine_Remote_Ammo_Scripted";
|
||||
soundActivation[] = {"",0,0,0};
|
||||
soundDeactivation[] = {"",0,0,0};
|
||||
};
|
||||
//class ClaymoreDirectionalMine_Remote_Ammo_Scripted:ClaymoreDirectionalMine_Remote_Ammo;
|
||||
|
||||
class SLAMDirectionalMine_Wire_Ammo:DirectionalBombBase{
|
||||
indirectHitRange = 20;
|
||||
ACE_explodeOnDefuse = 1;
|
||||
};
|
||||
class SLAMDirectionalMine_Command_Ammo:SLAMDirectionalMine_Wire_Ammo {
|
||||
mineTrigger = "RemoteTrigger";
|
||||
ACE_explodeOnDefuse = 0;
|
||||
};
|
||||
class SLAMDirectionalMine_Timer_Ammo:SLAMDirectionalMine_Wire_Ammo {
|
||||
mineTrigger = "TimeTrigger";
|
||||
ACE_explodeOnDefuse = 0;
|
||||
};
|
||||
class SLAMDirectionalMine_Magnetic_Ammo:SLAMDirectionalMine_Wire_Ammo {
|
||||
mineTrigger = "MagneticTrigger";
|
||||
};
|
||||
class SLAMDirectionalMine_Wire_Ammo:DirectionalBombBase{
|
||||
indirectHitRange = 20;
|
||||
ACE_explodeOnDefuse = 1;
|
||||
};
|
||||
class SLAMDirectionalMine_Command_Ammo:SLAMDirectionalMine_Wire_Ammo {
|
||||
mineTrigger = "RemoteTrigger";
|
||||
ACE_explodeOnDefuse = 0;
|
||||
};
|
||||
class SLAMDirectionalMine_Timer_Ammo:SLAMDirectionalMine_Wire_Ammo {
|
||||
mineTrigger = "TimeTrigger";
|
||||
ACE_explodeOnDefuse = 0;
|
||||
};
|
||||
class SLAMDirectionalMine_Magnetic_Ammo:SLAMDirectionalMine_Wire_Ammo {
|
||||
mineTrigger = "MagneticTrigger";
|
||||
};
|
||||
|
||||
class PipeBombBase;
|
||||
class DemoCharge_Remote_Ammo:PipeBombBase{
|
||||
ACE_Explosive = "DemoCharge_Remote_Ammo_Scripted";
|
||||
soundActivation[] = {"",0,0,0};
|
||||
soundDeactivation[] = {"",0,0,0};
|
||||
hit = 500;
|
||||
indirectHit = 500;
|
||||
indirectHitRange = 7;
|
||||
};
|
||||
class SatchelCharge_Remote_Ammo:PipeBombBase{
|
||||
ACE_Explosive = "SatchelCharge_Remote_Ammo_Scripted";
|
||||
soundActivation[] = {"",0,0,0};
|
||||
soundDeactivation[] = {"",0,0,0};
|
||||
};
|
||||
/*
|
||||
class DemoCharge_Remote_Ammo_Scripted:DemoCharge_Remote_Ammo;
|
||||
class SatchelCharge_Remote_Ammo_Scripted:SatchelCharge_Remote_Ammo;
|
||||
class PipeBombBase;
|
||||
class DemoCharge_Remote_Ammo:PipeBombBase{
|
||||
ACE_Explosive = "DemoCharge_Remote_Ammo_Scripted";
|
||||
soundActivation[] = {"",0,0,0};
|
||||
soundDeactivation[] = {"",0,0,0};
|
||||
hit = 500;
|
||||
indirectHit = 500;
|
||||
indirectHitRange = 7;
|
||||
};
|
||||
class SatchelCharge_Remote_Ammo:PipeBombBase{
|
||||
ACE_Explosive = "SatchelCharge_Remote_Ammo_Scripted";
|
||||
soundActivation[] = {"",0,0,0};
|
||||
soundDeactivation[] = {"",0,0,0};
|
||||
};
|
||||
/*
|
||||
class DemoCharge_Remote_Ammo_Scripted:DemoCharge_Remote_Ammo;
|
||||
class SatchelCharge_Remote_Ammo_Scripted:SatchelCharge_Remote_Ammo;
|
||||
|
||||
TODO: Configure IEDs to use the system.
|
||||
class IEDLandBig_Remote_Ammo:PipeBombBase{
|
||||
triggerWhenDestroyed = 1;
|
||||
class IEDLandBig_Remote_Ammo:PipeBombBase{
|
||||
triggerWhenDestroyed = 1;
|
||||
};
|
||||
class IEDLandSmall_Remote_Ammo:PipeBombBase{
|
||||
triggerWhenDestroyed = 1;
|
||||
|
@ -1,20 +1,20 @@
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
||||
};
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preInit));
|
||||
};
|
||||
};
|
||||
class Extended_PostInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_postInit));
|
||||
};
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_postInit));
|
||||
};
|
||||
};
|
||||
|
||||
/*
|
||||
TODO: Move the addEventHandlers out of PostInit into here or separate eventHandlers,
|
||||
to enable them on all units, so unit switching works for explosives properly.
|
||||
to enable them on all units, so unit switching works for explosives properly.
|
||||
class Extended_Init_EventHandlers {
|
||||
class CAManBase {
|
||||
init = "";
|
||||
}
|
||||
class CAManBase {
|
||||
init = "";
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
@ -1,127 +1,127 @@
|
||||
class CfgMagazines {
|
||||
class CA_Magazine;
|
||||
class ATMine_Range_Mag:CA_Magazine{
|
||||
ACE_Placeable = 1;
|
||||
useAction = 0;
|
||||
ACE_SetupObject = "ACE_Explosives_Place_ATMine"; // CfgVehicle class for setup object.
|
||||
ACE_DelayTime = 2.5;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
digDistance = 0.1;
|
||||
};
|
||||
};
|
||||
};
|
||||
class APERSBoundingMine_Range_Mag:ATMine_Range_Mag{
|
||||
ACE_SetupObject = "ACE_Explosives_Place_APERSBoundingMine";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
digDistance = 0.075;
|
||||
};
|
||||
};
|
||||
};
|
||||
class APERSMine_Range_Mag:ATMine_Range_Mag{
|
||||
ACE_SetupObject = "ACE_Explosives_Place_APERSMine";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
digDistance = 0.05;
|
||||
};
|
||||
};
|
||||
};
|
||||
class APERSTripMine_Wire_Mag:ATMine_Range_Mag{
|
||||
ACE_SetupObject = "ACE_Explosives_Place_APERSTripwireMine";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
class Tripwire;
|
||||
};
|
||||
};
|
||||
class CA_Magazine;
|
||||
class ATMine_Range_Mag:CA_Magazine{
|
||||
ACE_Placeable = 1;
|
||||
useAction = 0;
|
||||
ACE_SetupObject = "ACE_Explosives_Place_ATMine"; // CfgVehicle class for setup object.
|
||||
ACE_DelayTime = 2.5;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
digDistance = 0.1;
|
||||
};
|
||||
};
|
||||
};
|
||||
class APERSBoundingMine_Range_Mag:ATMine_Range_Mag{
|
||||
ACE_SetupObject = "ACE_Explosives_Place_APERSBoundingMine";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
digDistance = 0.075;
|
||||
};
|
||||
};
|
||||
};
|
||||
class APERSMine_Range_Mag:ATMine_Range_Mag{
|
||||
ACE_SetupObject = "ACE_Explosives_Place_APERSMine";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"PressurePlate"};
|
||||
class PressurePlate {
|
||||
digDistance = 0.05;
|
||||
};
|
||||
};
|
||||
};
|
||||
class APERSTripMine_Wire_Mag:ATMine_Range_Mag{
|
||||
ACE_SetupObject = "ACE_Explosives_Place_APERSTripwireMine";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Tripwire"};
|
||||
class Tripwire;
|
||||
};
|
||||
};
|
||||
|
||||
class ClaymoreDirectionalMine_Remote_Mag:CA_Magazine{
|
||||
ACE_Placeable = 1;
|
||||
useAction = 0;
|
||||
ACE_SetupObject = "ACE_Explosives_Place_Claymore";
|
||||
ACE_DelayTime = 1.5;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Command"};
|
||||
class Command {
|
||||
FuseTime = 0.5;
|
||||
};
|
||||
};
|
||||
};
|
||||
class ClaymoreDirectionalMine_Remote_Mag:CA_Magazine{
|
||||
ACE_Placeable = 1;
|
||||
useAction = 0;
|
||||
ACE_SetupObject = "ACE_Explosives_Place_Claymore";
|
||||
ACE_DelayTime = 1.5;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Command"};
|
||||
class Command {
|
||||
FuseTime = 0.5;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class SatchelCharge_Remote_Mag:CA_Magazine{
|
||||
ACE_Placeable = 1;
|
||||
useAction = 0;
|
||||
ACE_SetupObject = "ACE_Explosives_Place_SatchelCharge";
|
||||
ACE_DelayTime = 1;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer","Command", "MK16_Transmitter", "DeadmanSwitch"};
|
||||
class Timer {
|
||||
FuseTime = 0.5;
|
||||
};
|
||||
class Command {
|
||||
FuseTime = 0.5;
|
||||
};
|
||||
class MK16_Transmitter:Command{};
|
||||
class DeadmanSwitch:Command{};
|
||||
};
|
||||
};
|
||||
class DemoCharge_Remote_Mag:SatchelCharge_Remote_Mag{
|
||||
ACE_SetupObject = "ACE_Explosives_Place_DemoCharge";
|
||||
model = "\A3\Weapons_F\explosives\c4_charge_small_d";
|
||||
};
|
||||
class SatchelCharge_Remote_Mag:CA_Magazine{
|
||||
ACE_Placeable = 1;
|
||||
useAction = 0;
|
||||
ACE_SetupObject = "ACE_Explosives_Place_SatchelCharge";
|
||||
ACE_DelayTime = 1;
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Timer","Command", "MK16_Transmitter", "DeadmanSwitch"};
|
||||
class Timer {
|
||||
FuseTime = 0.5;
|
||||
};
|
||||
class Command {
|
||||
FuseTime = 0.5;
|
||||
};
|
||||
class MK16_Transmitter:Command{};
|
||||
class DeadmanSwitch:Command{};
|
||||
};
|
||||
};
|
||||
class DemoCharge_Remote_Mag:SatchelCharge_Remote_Mag{
|
||||
ACE_SetupObject = "ACE_Explosives_Place_DemoCharge";
|
||||
model = "\A3\Weapons_F\explosives\c4_charge_small_d";
|
||||
};
|
||||
|
||||
class SLAMDirectionalMine_Wire_Mag: ATMine_Range_Mag{
|
||||
ACE_SetupObject = "ACE_Explosives_Place_SLAM";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"IRSensor","PressurePlate","Timer","Command"};
|
||||
class PressurePlate{
|
||||
displayName = $STR_ACE_Explosives_SLAME_Magnetic;
|
||||
digDistance = 0;
|
||||
ammo = "SLAMDirectionalMine_Magnetic_Ammo";
|
||||
pitch = 90;
|
||||
};
|
||||
class IRSensor{
|
||||
displayName = $STR_ACE_Explosives_SLAME_IRSensor;
|
||||
};
|
||||
class Timer {
|
||||
ammo = "SLAMDirectionalMine_Timer_Ammo";
|
||||
};
|
||||
class Command {
|
||||
ammo = "SLAMDirectionalMine_Command_Ammo";
|
||||
fuseTime = 0.5;
|
||||
};
|
||||
};
|
||||
};
|
||||
class SLAMDirectionalMine_Wire_Mag: ATMine_Range_Mag{
|
||||
ACE_SetupObject = "ACE_Explosives_Place_SLAM";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"IRSensor","PressurePlate","Timer","Command"};
|
||||
class PressurePlate{
|
||||
displayName = $STR_ACE_Explosives_SLAME_Magnetic;
|
||||
digDistance = 0;
|
||||
ammo = "SLAMDirectionalMine_Magnetic_Ammo";
|
||||
pitch = 90;
|
||||
};
|
||||
class IRSensor{
|
||||
displayName = $STR_ACE_Explosives_SLAME_IRSensor;
|
||||
};
|
||||
class Timer {
|
||||
ammo = "SLAMDirectionalMine_Timer_Ammo";
|
||||
};
|
||||
class Command {
|
||||
ammo = "SLAMDirectionalMine_Command_Ammo";
|
||||
fuseTime = 0.5;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class IEDUrbanBig_Remote_Mag: DemoCharge_Remote_Mag {
|
||||
ACE_SetupObject = "ACE_Explosives_Place_IEDUrbanBig";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Command","DeadmanSwitch", "Cellphone"};
|
||||
class Command {
|
||||
FuseTime = 0.5;
|
||||
};
|
||||
class DeadmanSwitch:Command{};
|
||||
class Cellphone:Command{};
|
||||
};
|
||||
};
|
||||
class IEDLandBig_Remote_Mag: IEDUrbanBig_Remote_Mag{
|
||||
ACE_SetupObject = "ACE_Explosives_Place_IEDLandBig";
|
||||
};
|
||||
class IEDUrbanSmall_Remote_Mag: DemoCharge_Remote_Mag {
|
||||
ACE_SetupObject = "ACE_Explosives_Place_IEDUrbanSmall";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Command","DeadmanSwitch", "Cellphone"};
|
||||
class Command {
|
||||
FuseTime = 0.5;
|
||||
};
|
||||
class DeadmanSwitch:Command{};
|
||||
class Cellphone:Command{};
|
||||
};
|
||||
};
|
||||
class IEDLandSmall_Remote_Mag: IEDUrbanSmall_Remote_Mag {
|
||||
ACE_SetupObject = "ACE_Explosives_Place_IEDLandSmall";
|
||||
};
|
||||
class IEDUrbanBig_Remote_Mag: DemoCharge_Remote_Mag {
|
||||
ACE_SetupObject = "ACE_Explosives_Place_IEDUrbanBig";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Command","DeadmanSwitch", "Cellphone"};
|
||||
class Command {
|
||||
FuseTime = 0.5;
|
||||
};
|
||||
class DeadmanSwitch:Command{};
|
||||
class Cellphone:Command{};
|
||||
};
|
||||
};
|
||||
class IEDLandBig_Remote_Mag: IEDUrbanBig_Remote_Mag{
|
||||
ACE_SetupObject = "ACE_Explosives_Place_IEDLandBig";
|
||||
};
|
||||
class IEDUrbanSmall_Remote_Mag: DemoCharge_Remote_Mag {
|
||||
ACE_SetupObject = "ACE_Explosives_Place_IEDUrbanSmall";
|
||||
class ACE_Triggers {
|
||||
SupportedTriggers[] = {"Command","DeadmanSwitch", "Cellphone"};
|
||||
class Command {
|
||||
FuseTime = 0.5;
|
||||
};
|
||||
class DeadmanSwitch:Command{};
|
||||
class Cellphone:Command{};
|
||||
};
|
||||
};
|
||||
class IEDLandSmall_Remote_Mag: IEDUrbanSmall_Remote_Mag {
|
||||
ACE_SetupObject = "ACE_Explosives_Place_IEDLandSmall";
|
||||
};
|
||||
};
|
||||
|
@ -1,44 +1,44 @@
|
||||
class Module_F;
|
||||
class ACE_ModuleExplosive: Module_F {
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "Explosive System";
|
||||
function = QUOTE(FUNC(module));
|
||||
scope = 2;
|
||||
isGlobal = 1;
|
||||
icon = PATHTOF(UI\Icon_Module_Explosives_ca.paa);
|
||||
class Arguments {
|
||||
class RequireSpecialist {
|
||||
displayName = "Require specialists?";
|
||||
description = "Require explosive specialists to disable explosives? Default: No";
|
||||
typeName = "BOOL";
|
||||
class values {
|
||||
class Yes {
|
||||
name = "Yes";
|
||||
value = 1;
|
||||
};
|
||||
class No {
|
||||
default = 1;
|
||||
name = "No";
|
||||
value = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
class PunishNonSpecialists {
|
||||
displayName = "Punish non-specialists?";
|
||||
description = "Increase the time it takes to complete actions for non-specialists? Default: Yes";
|
||||
typeName = "BOOL";
|
||||
class values {
|
||||
class Yes {
|
||||
default = 1;
|
||||
name = "Yes";
|
||||
value = 1;
|
||||
};
|
||||
class No {
|
||||
name = "No";
|
||||
value = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
author = "$STR_ACE_Common_ACETeam";
|
||||
category = "ACE";
|
||||
displayName = "Explosive System";
|
||||
function = QUOTE(FUNC(module));
|
||||
scope = 2;
|
||||
isGlobal = 1;
|
||||
icon = PATHTOF(UI\Icon_Module_Explosives_ca.paa);
|
||||
class Arguments {
|
||||
class RequireSpecialist {
|
||||
displayName = "Require specialists?";
|
||||
description = "Require explosive specialists to disable explosives? Default: No";
|
||||
typeName = "BOOL";
|
||||
class values {
|
||||
class Yes {
|
||||
name = "Yes";
|
||||
value = 1;
|
||||
};
|
||||
class No {
|
||||
default = 1;
|
||||
name = "No";
|
||||
value = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
class PunishNonSpecialists {
|
||||
displayName = "Punish non-specialists?";
|
||||
description = "Increase the time it takes to complete actions for non-specialists? Default: Yes";
|
||||
typeName = "BOOL";
|
||||
class values {
|
||||
class Yes {
|
||||
default = 1;
|
||||
name = "Yes";
|
||||
value = 1;
|
||||
};
|
||||
class No {
|
||||
name = "No";
|
||||
value = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -1,275 +1,327 @@
|
||||
class CfgVehicles {
|
||||
class Man;
|
||||
class Man;
|
||||
class CAManBase: Man {
|
||||
class ACE_SelfActions {
|
||||
class ACE_Explosives {
|
||||
displayName = $STR_ACE_Explosives_Menu;
|
||||
condition = QUOTE(!(_player getVariable [ARR_2('ace_explosives_PlantingExplosive',false)]));
|
||||
statement = "";
|
||||
exceptions[] = {"isNotSwimming", "isNotInside"};
|
||||
showDisabled = 1;
|
||||
priority = 4;
|
||||
icon = PATHTOF(UI\Explosives_Menu_ca.paa);
|
||||
hotkey = "X";
|
||||
//Sub-menu items
|
||||
class ACE_Detonate {
|
||||
displayName = $STR_ACE_Explosives_Detonate;
|
||||
condition = QUOTE([_player] call FUNC(canDetonate));
|
||||
statement = "";
|
||||
insertChildren = QUOTE([_player] call FUNC(addTransmitterActions););
|
||||
exceptions[] = {"isNotSwimming", "isNotInside"};
|
||||
showDisabled = 1;
|
||||
icon = PATHTOF(UI\Explosives_Menu_ca.paa);
|
||||
priority = 2;
|
||||
hotkey = "T";
|
||||
};
|
||||
class ACE_Place {
|
||||
displayName = $STR_ACE_Explosives_Place;
|
||||
condition = QUOTE((vehicle _player == _player) and {[_player] call FUNC(hasExplosives)});
|
||||
statement = "";
|
||||
insertChildren = QUOTE([_player] call FUNC(addExplosiveActions););
|
||||
exceptions[] = {"isNotSwimming"};
|
||||
showDisabled = 1;
|
||||
icon = PATHTOF(UI\Place_Explosive_ca.paa);
|
||||
priority = 1;
|
||||
hotkey = "P";
|
||||
};
|
||||
class ACE_Cellphone {
|
||||
displayName = $STR_ACE_Explosives_cellphone_displayName;
|
||||
condition = "('ACE_Cellphone' in (items ace_player))";
|
||||
statement = "closeDialog 0;createDialog 'Rsc_ACE_PhoneInterface';";
|
||||
exceptions[] = {"isNotSwimming", "isNotInside"};
|
||||
showDisabled = 0;
|
||||
icon = PATHTOF(Data\UI\Cellphone_UI.paa);
|
||||
priority = 0.8;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class CAManBase: Man {
|
||||
class ACE_SelfActions {
|
||||
class ACE_Explosives {
|
||||
displayName = $STR_ACE_Explosives_Menu;
|
||||
condition = QUOTE(!(_player getVariable [ARR_2('ace_explosives_PlantingExplosive',false)]));
|
||||
statement = "";
|
||||
exceptions[] = {"isNotSwimming"};
|
||||
showDisabled = 1;
|
||||
priority = 4;
|
||||
icon = PATHTOF(UI\Explosives_Menu_ca.paa);
|
||||
hotkey = "X";
|
||||
//Sub-menu items
|
||||
class ACE_Detonate {
|
||||
displayName = $STR_ACE_Explosives_Detonate;
|
||||
condition = QUOTE([_player] call FUNC(canDetonate));
|
||||
statement = QUOTE([_player] call FUNC(openTransmitterUI););
|
||||
exceptions[] = {"isNotSwimming"};
|
||||
showDisabled = 1;
|
||||
icon = PATHTOF(UI\Explosives_Menu_ca.paa);
|
||||
priority = 2;
|
||||
hotkey = "T";
|
||||
};
|
||||
class ACE_Place {
|
||||
displayName = $STR_ACE_Explosives_Place;
|
||||
condition = QUOTE((vehicle _player == _player) and {[_player] call FUNC(hasExplosives)});
|
||||
statement = QUOTE([_player] call FUNC(openPlaceUI););
|
||||
exceptions[] = {"isNotSwimming"};
|
||||
showDisabled = 1;
|
||||
icon = PATHTOF(UI\Place_Explosive_ca.paa);
|
||||
priority = 1;
|
||||
hotkey = "P";
|
||||
};
|
||||
class ACE_Defuse {
|
||||
displayName = $STR_ACE_Explosives_Defuse;
|
||||
condition = QUOTE([_player] call FUNC(canDefuse));
|
||||
statement = QUOTE([ARR_2(_player,EGVAR(Interaction,Target))] call FUNC(startDefuse););
|
||||
exceptions[] = {"isNotSwimming"};
|
||||
showDisabled = 0;
|
||||
icon = PATHTOF(UI\Defuse_ca.paa);
|
||||
priority = 0.8;
|
||||
hotkey = "F";
|
||||
};
|
||||
class ACE_Cellphone {
|
||||
displayName = $STR_ACE_Explosives_cellphone_displayName;
|
||||
condition = "('ACE_Cellphone' in (items ace_player))";
|
||||
statement = "closeDialog 0;createDialog 'Rsc_ACE_PhoneInterface';";
|
||||
exceptions[] = {"isNotSwimming"};
|
||||
showDisabled = 0;
|
||||
icon = PATHTOF(Data\UI\Cellphone_UI.paa);
|
||||
priority = 0.8;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
class Items_base_F;
|
||||
class ACE_DefuseObject: Items_base_F {
|
||||
XEH_ENABLED;
|
||||
author = "ACE";
|
||||
_generalMacro = "ACE_DefuseObject";
|
||||
displayName = "ACE Defuse Helper";
|
||||
mapSize = 0.2;
|
||||
icon = "iconObject_1x2";
|
||||
model = "\A3\Weapons_f\dummyweapon.p3d";
|
||||
scope = 2;
|
||||
scopeCurator = 1;
|
||||
vehicleClass = "Cargo";
|
||||
class ACE_Actions {
|
||||
class ACE_MainActions {
|
||||
selection = "";
|
||||
distance = 5;
|
||||
condition = "true";
|
||||
class ACE_Defuse {
|
||||
displayName = $STR_ACE_Explosives_Defuse;
|
||||
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canDefuse));
|
||||
statement = QUOTE([ARR_2(_player,_target)] call FUNC(startDefuse););
|
||||
exceptions[] = {"isNotSwimming"};
|
||||
showDisabled = 0;
|
||||
icon = PATHTOF(UI\Defuse_ca.paa);
|
||||
priority = 0.8;
|
||||
hotkey = "F";
|
||||
distance = 5;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
class ACE_Explosives_Place: Items_base_F {
|
||||
XEH_ENABLED;
|
||||
author = "ACE";
|
||||
_generalMacro = "ACE_Explosives_Place";
|
||||
displayName = "Multi-meter";
|
||||
mapSize = 0.2;
|
||||
icon = "iconObject_1x2";
|
||||
model = "\A3\Structures_F\Items\Tools\MultiMeter_F.p3d";
|
||||
scope = 2;
|
||||
scopeCurator = 1;
|
||||
vehicleClass = "Cargo";
|
||||
ACE_offset[] = {0,0,0};
|
||||
class ACE_Actions {
|
||||
class ACE_MainActions {
|
||||
selection = "";
|
||||
distance = 5;
|
||||
condition = "true";
|
||||
class ACE_SetTrigger {
|
||||
selection = "";
|
||||
displayName = "$STR_ACE_Explosives_TriggerMenu";
|
||||
distance = 4;
|
||||
condition = "true";
|
||||
statement = "";
|
||||
insertChildren = QUOTE([ARR_3(_target getVariable QUOTE(QGVAR(class)),_target,_player)] call FUNC(addTriggerActions););
|
||||
showDisabled = 0;
|
||||
exceptions[] = {};
|
||||
priority = 5;
|
||||
icon = QUOTE(PATHTOF(UI\Explosives_Menu_ca.paa));
|
||||
};
|
||||
class ACE_PickUp {
|
||||
selection = "";
|
||||
displayName = "$STR_ACE_Explosives_Pickup";
|
||||
distance = 4;
|
||||
condition = "true";
|
||||
statement = QUOTE([ARR_2(_player,_target getVariable QUOTE(QGVAR(class)))] call EFUNC(common,addToInventory);deleteVehicle _target;);
|
||||
showDisabled = 0;
|
||||
exceptions[] = {};
|
||||
priority = 5;
|
||||
icon = "\A3\ui_f\data\IGUI\Cfg\Actions\Obsolete\ui_action_takemine_ca.paa";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Items_base_F;
|
||||
class ACE_Explosives_Place: Items_base_F {
|
||||
author = "ACE";
|
||||
_generalMacro = "ACE_Explosives_Place";
|
||||
displayName = "Multi-meter";
|
||||
mapSize = 0.2;
|
||||
icon = "iconObject_1x2";
|
||||
model = "\A3\Structures_F\Items\Tools\MultiMeter_F.p3d";
|
||||
scope = 2;
|
||||
scopeCurator = 1;
|
||||
vehicleClass = "Cargo";
|
||||
ACE_offset[] = {0,0,0};
|
||||
};
|
||||
class ACE_Explosives_Place_DemoCharge:ACE_Explosives_Place {
|
||||
displayName = "Demo Charge";
|
||||
model = "\A3\Weapons_F\explosives\c4_charge_small_d";
|
||||
};
|
||||
class ACE_Explosives_Place_APERSBoundingMine:ACE_Explosives_Place {
|
||||
displayName = "APERS Bounding Mine";
|
||||
model = "\A3\Weapons_F\explosives\mine_AP_bouncing";
|
||||
};
|
||||
class ACE_Explosives_Place_APERSMine:ACE_Explosives_Place {
|
||||
displayName = "APERS Mine";
|
||||
model = "\A3\Weapons_F\explosives\mine_ap";
|
||||
};
|
||||
class ACE_Explosives_Place_APERSTripwireMine:ACE_Explosives_Place {
|
||||
displayName = "APERS Tripwire Mine";
|
||||
model = "\A3\Weapons_F\explosives\mine_AP_tripwire";
|
||||
ACE_offset[] = {1,0,0};
|
||||
};
|
||||
|
||||
class ACE_Explosives_Place_DemoCharge:ACE_Explosives_Place {
|
||||
displayName = "Demo Charge";
|
||||
model = "\A3\Weapons_F\explosives\c4_charge_small_d";
|
||||
};
|
||||
class ACE_Explosives_Place_APERSBoundingMine:ACE_Explosives_Place {
|
||||
displayName = "APERS Bounding Mine";
|
||||
model = "\A3\Weapons_F\explosives\mine_AP_bouncing";
|
||||
};
|
||||
class ACE_Explosives_Place_APERSMine:ACE_Explosives_Place {
|
||||
displayName = "APERS Mine";
|
||||
model = "\A3\Weapons_F\explosives\mine_ap";
|
||||
};
|
||||
class ACE_Explosives_Place_APERSTripwireMine:ACE_Explosives_Place {
|
||||
displayName = "APERS Tripwire Mine";
|
||||
model = "\A3\Weapons_F\explosives\mine_AP_tripwire";
|
||||
ACE_offset[] = {1,0,0};
|
||||
};
|
||||
class ACE_Explosives_Place_ATMine:ACE_Explosives_Place {
|
||||
displayName = "AT Mine";
|
||||
model = "\A3\Weapons_f\Explosives\mine_at";
|
||||
};
|
||||
|
||||
class ACE_Explosives_Place_ATMine:ACE_Explosives_Place {
|
||||
displayName = "AT Mine";
|
||||
model = "\A3\Weapons_f\Explosives\mine_at";
|
||||
};
|
||||
class ACE_Explosives_Place_Claymore:ACE_Explosives_Place {
|
||||
displayName = "Claymore";
|
||||
model = "\A3\Weapons_F\explosives\mine_AP_miniclaymore";
|
||||
};
|
||||
|
||||
class ACE_Explosives_Place_Claymore:ACE_Explosives_Place {
|
||||
displayName = "Claymore";
|
||||
model = "\A3\Weapons_F\explosives\mine_AP_miniclaymore";
|
||||
};
|
||||
class ACE_Explosives_Place_SatchelCharge:ACE_Explosives_Place {
|
||||
displayName = "Satchel Charge";
|
||||
model = "\A3\Weapons_F\Explosives\satchel";
|
||||
};
|
||||
|
||||
class ACE_Explosives_Place_SatchelCharge:ACE_Explosives_Place {
|
||||
displayName = "Satchel Charge";
|
||||
model = "\A3\Weapons_F\Explosives\satchel";
|
||||
};
|
||||
class ACE_Explosives_Place_SLAM:ACE_Explosives_Place {
|
||||
displayName = "SLAM";
|
||||
model = "\A3\Weapons_F\Explosives\mine_SLAM_directional";
|
||||
};
|
||||
|
||||
class ACE_Explosives_Place_SLAM:ACE_Explosives_Place {
|
||||
displayName = "SLAM";
|
||||
model = "\A3\Weapons_F\Explosives\mine_SLAM_directional";
|
||||
};
|
||||
// IEDs
|
||||
class ACE_Explosives_Place_IEDUrbanBig:ACE_Explosives_Place {
|
||||
displayName = "IED Urban Big";
|
||||
model = "\A3\Weapons_F\Explosives\IED_urban_big";
|
||||
};
|
||||
|
||||
// IEDs
|
||||
class ACE_Explosives_Place_IEDUrbanBig:ACE_Explosives_Place {
|
||||
displayName = "IED Urban Big";
|
||||
model = "\A3\Weapons_F\Explosives\IED_urban_big";
|
||||
};
|
||||
class ACE_Explosives_Place_IEDLandBig:ACE_Explosives_Place {
|
||||
displayName = "IED Land Big";
|
||||
model = "\A3\Weapons_F\Explosives\IED_land_big";
|
||||
};
|
||||
|
||||
class ACE_Explosives_Place_IEDLandBig:ACE_Explosives_Place {
|
||||
displayName = "IED Land Big";
|
||||
model = "\A3\Weapons_F\Explosives\IED_land_big";
|
||||
};
|
||||
class ACE_Explosives_Place_IEDUrbanSmall:ACE_Explosives_Place {
|
||||
displayName = "IED Urban Small";
|
||||
model = "\A3\Weapons_F\Explosives\IED_urban_small";
|
||||
};
|
||||
|
||||
class ACE_Explosives_Place_IEDUrbanSmall:ACE_Explosives_Place {
|
||||
displayName = "IED Urban Small";
|
||||
model = "\A3\Weapons_F\Explosives\IED_urban_small";
|
||||
};
|
||||
class ACE_Explosives_Place_IEDLandSmall:ACE_Explosives_Place {
|
||||
displayName = "IED Land Small";
|
||||
model = "\A3\Weapons_F\Explosives\IED_land_small";
|
||||
};
|
||||
|
||||
class ACE_Explosives_Place_IEDLandSmall:ACE_Explosives_Place {
|
||||
displayName = "IED Land Small";
|
||||
model = "\A3\Weapons_F\Explosives\IED_land_small";
|
||||
};
|
||||
class NATO_Box_Base;
|
||||
class EAST_Box_Base;
|
||||
class IND_Box_Base;
|
||||
class FIA_Box_Base_F;
|
||||
class Box_NATO_Support_F;
|
||||
|
||||
class NATO_Box_Base;
|
||||
class EAST_Box_Base;
|
||||
class IND_Box_Base;
|
||||
class FIA_Box_Base_F;
|
||||
class Box_NATO_Support_F;
|
||||
class Box_NATO_AmmoOrd_F: NATO_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_Clacker,12);
|
||||
MACRO_ADDITEM(ACE_M26_Clacker,6);
|
||||
MACRO_ADDITEM(ACE_DefusalKit,12);
|
||||
};
|
||||
};
|
||||
|
||||
class Box_NATO_AmmoOrd_F: NATO_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_Clacker,12);
|
||||
MACRO_ADDITEM(ACE_M26_Clacker,6);
|
||||
MACRO_ADDITEM(ACE_DefusalKit,12);
|
||||
};
|
||||
};
|
||||
class Box_East_AmmoOrd_F: EAST_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_Clacker,12);
|
||||
MACRO_ADDITEM(ACE_M26_Clacker,6);
|
||||
MACRO_ADDITEM(ACE_DefusalKit,12);
|
||||
};
|
||||
};
|
||||
|
||||
class Box_East_AmmoOrd_F: EAST_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_Clacker,12);
|
||||
MACRO_ADDITEM(ACE_M26_Clacker,6);
|
||||
MACRO_ADDITEM(ACE_DefusalKit,12);
|
||||
};
|
||||
};
|
||||
class Box_IND_AmmoOrd_F: IND_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_Clacker,12);
|
||||
MACRO_ADDITEM(ACE_M26_Clacker,6);
|
||||
MACRO_ADDITEM(ACE_DefusalKit,12);
|
||||
MACRO_ADDITEM(ACE_Deadmanswitch,2);
|
||||
MACRO_ADDITEM(ACE_Cellphone,3);
|
||||
};
|
||||
};
|
||||
|
||||
class Box_IND_AmmoOrd_F: IND_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_Clacker,12);
|
||||
MACRO_ADDITEM(ACE_M26_Clacker,6);
|
||||
MACRO_ADDITEM(ACE_DefusalKit,12);
|
||||
MACRO_ADDITEM(ACE_Deadmanswitch,2);
|
||||
MACRO_ADDITEM(ACE_Cellphone,3);
|
||||
};
|
||||
};
|
||||
class Box_FIA_Ammo_F: FIA_Box_Base_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_Clacker,2);
|
||||
MACRO_ADDITEM(ACE_M26_Clacker,2);
|
||||
MACRO_ADDITEM(ACE_DefusalKit,2);
|
||||
MACRO_ADDITEM(ACE_Deadmanswitch,1);
|
||||
MACRO_ADDITEM(ACE_Cellphone,2);
|
||||
};
|
||||
};
|
||||
|
||||
class Box_FIA_Ammo_F: FIA_Box_Base_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_Clacker,2);
|
||||
MACRO_ADDITEM(ACE_M26_Clacker,2);
|
||||
MACRO_ADDITEM(ACE_DefusalKit,2);
|
||||
MACRO_ADDITEM(ACE_Deadmanswitch,1);
|
||||
MACRO_ADDITEM(ACE_Cellphone,2);
|
||||
};
|
||||
};
|
||||
class ACE_Box_Misc: Box_NATO_Support_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_Clacker,12);
|
||||
MACRO_ADDITEM(ACE_M26_Clacker,6);
|
||||
MACRO_ADDITEM(ACE_DefusalKit,12);
|
||||
MACRO_ADDITEM(ACE_Deadmanswitch,6);
|
||||
MACRO_ADDITEM(ACE_Cellphone,10);
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_Box_Misc: Box_NATO_Support_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_Clacker,12);
|
||||
MACRO_ADDITEM(ACE_M26_Clacker,6);
|
||||
MACRO_ADDITEM(ACE_DefusalKit,12);
|
||||
MACRO_ADDITEM(ACE_Deadmanswitch,6);
|
||||
MACRO_ADDITEM(ACE_Cellphone,10);
|
||||
};
|
||||
};
|
||||
class B_Kitbag_rgr;
|
||||
class B_Kitbag_rgr_Exp: B_Kitbag_rgr {
|
||||
class TransportItems {
|
||||
class _xx_ToolKit { // xXToOlKiT420mLgXx
|
||||
count = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
class B_Carryall_ocamo;
|
||||
class B_Carryall_ocamo_Exp: B_Carryall_ocamo {
|
||||
class TransportItems {
|
||||
class _xx_ToolKit {
|
||||
count = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
class B_Carryall_oucamo;
|
||||
class B_Carryall_oucamo_Exp: B_Carryall_oucamo {
|
||||
class TransportItems {
|
||||
class _xx_ToolKit {
|
||||
count = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
class B_Carryall_oli;
|
||||
class G_Carryall_Exp: B_Carryall_oli {
|
||||
class TransportItems {
|
||||
class _xx_ToolKit {
|
||||
count = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
class I_Carryall_oli_Exp: B_Carryall_oli {
|
||||
class TransportItems {
|
||||
class _xx_ToolKit {
|
||||
count = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class B_Kitbag_rgr;
|
||||
class B_Kitbag_rgr_Exp: B_Kitbag_rgr {
|
||||
class TransportItems {
|
||||
class _xx_ToolKit { // xXToOlKiT420mLgXx
|
||||
count = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
class B_Carryall_ocamo;
|
||||
class B_Carryall_ocamo_Exp: B_Carryall_ocamo {
|
||||
class TransportItems {
|
||||
class _xx_ToolKit {
|
||||
count = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
class B_Carryall_oucamo;
|
||||
class B_Carryall_oucamo_Exp: B_Carryall_oucamo {
|
||||
class TransportItems {
|
||||
class _xx_ToolKit {
|
||||
count = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
class B_Carryall_oli;
|
||||
class G_Carryall_Exp: B_Carryall_oli {
|
||||
class TransportItems {
|
||||
class _xx_ToolKit {
|
||||
count = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
class I_Carryall_oli_Exp: B_Carryall_oli {
|
||||
class TransportItems {
|
||||
class _xx_ToolKit {
|
||||
count = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
#include "CfgModule.hpp"
|
||||
|
||||
#include "CfgModule.hpp"
|
||||
// Add ACE_Clacker and ACE_DefusalKit to every explosive unit.
|
||||
#define MACRO_ADDMINEKIT \
|
||||
items[] = {"FirstAidKit", "ACE_Clacker", "ACE_DefusalKit"}; \
|
||||
respawnitems[] = {"FirstAidKit", "ACE_Clacker", "ACE_DefusalKit"};
|
||||
|
||||
// Add ACE_Clacker and ACE_DefusalKit to every explosive unit.
|
||||
#define MACRO_ADDMINEKIT \
|
||||
items[] = {"FirstAidKit", "ACE_Clacker", "ACE_DefusalKit"}; \
|
||||
respawnitems[] = {"FirstAidKit", "ACE_Clacker", "ACE_DefusalKit"};
|
||||
class B_Soldier_base_F; class B_soldier_exp_F:B_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class B_Soldier_03_f; class B_engineer_F:B_Soldier_03_f {MACRO_ADDMINEKIT};
|
||||
class B_Soldier_diver_base_F; class B_diver_exp_F:B_Soldier_diver_base_F {MACRO_ADDMINEKIT};
|
||||
class B_Soldier_recon_base; class B_recon_exp_F:B_Soldier_recon_base {MACRO_ADDMINEKIT};
|
||||
class B_CTRG_soldier_engineer_exp_F:B_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class I_G_Soldier_base_F; class I_G_engineer_F:I_G_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class I_G_Soldier_exp_F:I_G_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class B_G_engineer_F:I_G_engineer_F {MACRO_ADDMINEKIT};
|
||||
class O_G_engineer_F:I_G_engineer_F {MACRO_ADDMINEKIT};
|
||||
class B_G_Soldier_exp_F:I_G_Soldier_exp_F {MACRO_ADDMINEKIT};
|
||||
class O_G_Soldier_exp_F:I_G_Soldier_exp_F {MACRO_ADDMINEKIT};
|
||||
class I_Soldier_02_F; class I_Soldier_exp_F:I_Soldier_02_F {MACRO_ADDMINEKIT};
|
||||
class I_Soldier_base_F; class I_engineer_F:I_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class I_Soldier_diver_base_F; class I_diver_exp_F:I_Soldier_diver_base_F {MACRO_ADDMINEKIT};
|
||||
class O_Soldier_base_F; class O_soldier_exp_F:O_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class O_engineer_F:O_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class O_Soldier_diver_base_F; class O_diver_exp_F:O_Soldier_diver_base_F {MACRO_ADDMINEKIT};
|
||||
class O_Soldier_recon_base; class O_recon_exp_F:O_Soldier_recon_base {MACRO_ADDMINEKIT};
|
||||
class O_Soldier_Urban_base; class O_soldierU_exp_F:O_Soldier_Urban_base {MACRO_ADDMINEKIT};
|
||||
class O_engineer_U_F:O_Soldier_Urban_base {MACRO_ADDMINEKIT};
|
||||
class B_Protagonist_VR_F:B_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class O_Protagonist_VR_F:O_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class I_Protagonist_VR_F:I_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class B_Soldier_F; class b_soldier_universal_f:B_Soldier_F {MACRO_ADDMINEKIT};
|
||||
class B_G_Soldier_F; class b_g_soldier_universal_f:B_G_Soldier_F {MACRO_ADDMINEKIT};
|
||||
class O_Soldier_F; class o_soldier_universal_f:O_Soldier_F {MACRO_ADDMINEKIT};
|
||||
class O_G_Soldier_F; class o_g_soldier_universal_f:O_G_Soldier_F {MACRO_ADDMINEKIT};
|
||||
class I_soldier_F; class i_soldier_universal_f:I_soldier_F {MACRO_ADDMINEKIT};
|
||||
class I_G_Soldier_F; class i_g_soldier_universal_f:I_G_Soldier_F {MACRO_ADDMINEKIT};
|
||||
|
||||
class B_Soldier_base_F; class B_soldier_exp_F:B_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class B_Soldier_03_f; class B_engineer_F:B_Soldier_03_f {MACRO_ADDMINEKIT};
|
||||
class B_Soldier_diver_base_F; class B_diver_exp_F:B_Soldier_diver_base_F {MACRO_ADDMINEKIT};
|
||||
class B_Soldier_recon_base; class B_recon_exp_F:B_Soldier_recon_base {MACRO_ADDMINEKIT};
|
||||
class B_CTRG_soldier_engineer_exp_F:B_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class I_G_Soldier_base_F; class I_G_engineer_F:I_G_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class I_G_Soldier_exp_F:I_G_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class B_G_engineer_F:I_G_engineer_F {MACRO_ADDMINEKIT};
|
||||
class O_G_engineer_F:I_G_engineer_F {MACRO_ADDMINEKIT};
|
||||
class B_G_Soldier_exp_F:I_G_Soldier_exp_F {MACRO_ADDMINEKIT};
|
||||
class O_G_Soldier_exp_F:I_G_Soldier_exp_F {MACRO_ADDMINEKIT};
|
||||
class I_Soldier_02_F; class I_Soldier_exp_F:I_Soldier_02_F {MACRO_ADDMINEKIT};
|
||||
class I_Soldier_base_F; class I_engineer_F:I_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class I_Soldier_diver_base_F; class I_diver_exp_F:I_Soldier_diver_base_F {MACRO_ADDMINEKIT};
|
||||
class O_Soldier_base_F; class O_soldier_exp_F:O_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class O_engineer_F:O_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class O_Soldier_diver_base_F; class O_diver_exp_F:O_Soldier_diver_base_F {MACRO_ADDMINEKIT};
|
||||
class O_Soldier_recon_base; class O_recon_exp_F:O_Soldier_recon_base {MACRO_ADDMINEKIT};
|
||||
class O_Soldier_Urban_base; class O_soldierU_exp_F:O_Soldier_Urban_base {MACRO_ADDMINEKIT};
|
||||
class O_engineer_U_F:O_Soldier_Urban_base {MACRO_ADDMINEKIT};
|
||||
class B_Protagonist_VR_F:B_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class O_Protagonist_VR_F:O_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class I_Protagonist_VR_F:I_Soldier_base_F {MACRO_ADDMINEKIT};
|
||||
class B_Soldier_F; class b_soldier_universal_f:B_Soldier_F {MACRO_ADDMINEKIT};
|
||||
class B_G_Soldier_F; class b_g_soldier_universal_f:B_G_Soldier_F {MACRO_ADDMINEKIT};
|
||||
class O_Soldier_F; class o_soldier_universal_f:O_Soldier_F {MACRO_ADDMINEKIT};
|
||||
class O_G_Soldier_F; class o_g_soldier_universal_f:O_G_Soldier_F {MACRO_ADDMINEKIT};
|
||||
class I_soldier_F; class i_soldier_universal_f:I_soldier_F {MACRO_ADDMINEKIT};
|
||||
class I_G_Soldier_F; class i_g_soldier_universal_f:I_G_Soldier_F {MACRO_ADDMINEKIT};
|
||||
// Add ACE_Clacker to snipers and spotters for setting off Claymores
|
||||
#define MACRO_ADDCLAYMOREKIT \
|
||||
items[] = {"FirstAidKit","ACE_Clacker"}; \
|
||||
respawnitems[] = {"FirstAidKit","ACE_Clacker"};
|
||||
|
||||
// Add ACE_Clacker to snipers and spotters for setting off Claymores
|
||||
#define MACRO_ADDCLAYMOREKIT \
|
||||
items[] = {"FirstAidKit","ACE_Clacker"}; \
|
||||
respawnitems[] = {"FirstAidKit","ACE_Clacker"};
|
||||
|
||||
class B_Soldier_sniper_base_F;
|
||||
class B_sniper_F: B_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
class B_spotter_F: B_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
class I_Soldier_sniper_base_F;
|
||||
class I_Sniper_F: I_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
class I_Spotter_F: I_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
class O_Soldier_sniper_base_F;
|
||||
class O_sniper_F: O_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
class O_spotter_F: O_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
class B_Soldier_sniper_base_F;
|
||||
class B_sniper_F: B_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
class B_spotter_F: B_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
class I_Soldier_sniper_base_F;
|
||||
class I_Sniper_F: I_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
class I_Spotter_F: I_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
class O_Soldier_sniper_base_F;
|
||||
class O_sniper_F: O_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
class O_spotter_F: O_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
|
||||
};
|
||||
|
@ -1,69 +1,69 @@
|
||||
class CfgWeapons {
|
||||
class ACE_ItemCore;
|
||||
class InventoryItem_Base_f;
|
||||
class ACE_ItemCore;
|
||||
class InventoryItem_Base_f;
|
||||
|
||||
class ACE_ExplosiveItem: InventoryItem_Base_f {
|
||||
allowedSlots[] = {801,701,901};
|
||||
//type = 201;
|
||||
};
|
||||
class ACE_ExplosiveItem: InventoryItem_Base_f {
|
||||
allowedSlots[] = {801,701,901};
|
||||
//type = 201;
|
||||
};
|
||||
|
||||
class ACE_Clacker: ACE_ItemCore {
|
||||
scope = 2;
|
||||
displayName = $STR_ACE_Explosives_clacker_displayName;
|
||||
descriptionShort = $STR_ACE_Explosives_clacker_description;
|
||||
picture = PATHTOF(Data\UI\Clacker.paa);
|
||||
model = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
ACE_Range = 250;
|
||||
ACE_Detonator = 1;
|
||||
class ACE_Clacker: ACE_ItemCore {
|
||||
scope = 2;
|
||||
displayName = $STR_ACE_Explosives_clacker_displayName;
|
||||
descriptionShort = $STR_ACE_Explosives_clacker_description;
|
||||
picture = PATHTOF(Data\UI\Clacker.paa);
|
||||
model = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
ACE_Range = 250;
|
||||
ACE_Detonator = 1;
|
||||
|
||||
class ItemInfo: ACE_ExplosiveItem {
|
||||
mass = 3;
|
||||
uniformModel = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
};
|
||||
};
|
||||
class ACE_M26_Clacker: ACE_Clacker {
|
||||
displayName = $STR_ACE_Explosives_M26_displayName;
|
||||
picture = PATHTOF(Data\UI\MK26_Transmitter_ca.paa);
|
||||
ACE_Range = 5000;
|
||||
};
|
||||
class ACE_DefusalKit: ACE_ItemCore {
|
||||
scope = 2;
|
||||
displayName = $STR_ACE_Explosives_DefusalKit_displayName;
|
||||
descriptionShort = $STR_ACE_Explosives_DefusalKit_description;
|
||||
picture = PATHTOF(Data\UI\Pliers.paa);
|
||||
model = "\A3\Structures_F\Items\Tools\Pliers_F.p3d";
|
||||
class ItemInfo: ACE_ExplosiveItem {
|
||||
mass = 3;
|
||||
uniformModel = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
};
|
||||
};
|
||||
class ACE_M26_Clacker: ACE_Clacker {
|
||||
displayName = $STR_ACE_Explosives_M26_displayName;
|
||||
picture = PATHTOF(Data\UI\MK26_Transmitter_ca.paa);
|
||||
ACE_Range = 5000;
|
||||
};
|
||||
class ACE_DefusalKit: ACE_ItemCore {
|
||||
scope = 2;
|
||||
displayName = $STR_ACE_Explosives_DefusalKit_displayName;
|
||||
descriptionShort = $STR_ACE_Explosives_DefusalKit_description;
|
||||
picture = PATHTOF(Data\UI\Pliers.paa);
|
||||
model = "\A3\Structures_F\Items\Tools\Pliers_F.p3d";
|
||||
|
||||
class ItemInfo: ACE_ExplosiveItem {
|
||||
mass = 5;
|
||||
uniformModel = "\A3\Structures_F\Items\Tools\Pliers_F.p3d";
|
||||
};
|
||||
};
|
||||
class ACE_DeadManSwitch: ACE_ItemCore {
|
||||
scope = 2;
|
||||
displayName = $STR_ACE_Explosives_DeadManSwitch_displayName;
|
||||
descriptionShort = $STR_ACE_Explosives_DeadManSwitch_description;
|
||||
picture = PATHTOF(Data\UI\DeadmanSwitch.paa);
|
||||
model = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
ACE_Range = 100;
|
||||
ACE_Detonator = 1;
|
||||
class ItemInfo: ACE_ExplosiveItem {
|
||||
mass = 5;
|
||||
uniformModel = "\A3\Structures_F\Items\Tools\Pliers_F.p3d";
|
||||
};
|
||||
};
|
||||
class ACE_DeadManSwitch: ACE_ItemCore {
|
||||
scope = 2;
|
||||
displayName = $STR_ACE_Explosives_DeadManSwitch_displayName;
|
||||
descriptionShort = $STR_ACE_Explosives_DeadManSwitch_description;
|
||||
picture = PATHTOF(Data\UI\DeadmanSwitch.paa);
|
||||
model = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
ACE_Range = 100;
|
||||
ACE_Detonator = 1;
|
||||
|
||||
class ItemInfo: ACE_ExplosiveItem {
|
||||
mass = 2;
|
||||
uniformModel = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
};
|
||||
};
|
||||
class ACE_Cellphone: ACE_ItemCore {
|
||||
scope = 2;
|
||||
displayName = $STR_ACE_Explosives_cellphone_displayName;
|
||||
descriptionShort = $STR_ACE_Explosives_cellphone_description;
|
||||
picture = PATHTOF(Data\UI\Cellphone_UI.paa);
|
||||
model = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
ACE_Range = 15000;
|
||||
ACE_Detonator = 1;
|
||||
class ItemInfo: ACE_ExplosiveItem {
|
||||
mass = 2;
|
||||
uniformModel = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
};
|
||||
};
|
||||
class ACE_Cellphone: ACE_ItemCore {
|
||||
scope = 2;
|
||||
displayName = $STR_ACE_Explosives_cellphone_displayName;
|
||||
descriptionShort = $STR_ACE_Explosives_cellphone_description;
|
||||
picture = PATHTOF(Data\UI\Cellphone_UI.paa);
|
||||
model = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
ACE_Range = 15000;
|
||||
ACE_Detonator = 1;
|
||||
|
||||
class ItemInfo: ACE_ExplosiveItem {
|
||||
mass = 2;
|
||||
uniformModel = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
};
|
||||
};
|
||||
class ItemInfo: ACE_ExplosiveItem {
|
||||
mass = 2;
|
||||
uniformModel = "\A3\weapons_F\ammo\mag_univ.p3d";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -14,275 +14,275 @@ class RscPicture;
|
||||
class RscEdit;
|
||||
|
||||
class Rsc_ACE_CallScreen_Edit:RscEdit {
|
||||
canModify = 1;
|
||||
colorBackground[] = {0,0,0,1};
|
||||
colorText[] = {0,0,0,1};
|
||||
colorDisabled[] = {1,1,1,0.25};
|
||||
colorSelection[] = {
|
||||
"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])",
|
||||
"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])",
|
||||
"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",
|
||||
1
|
||||
};
|
||||
text = "";
|
||||
style = "0x00 + 0x40 + 0x200";
|
||||
shadow = 1;
|
||||
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) * 1)";
|
||||
x = 0.288594 * safezoneW + safezoneX;
|
||||
w = 0.0825 * safezoneW;
|
||||
h = 0.044 * safezoneH;
|
||||
canModify = 1;
|
||||
colorBackground[] = {0,0,0,1};
|
||||
colorText[] = {0,0,0,1};
|
||||
colorDisabled[] = {1,1,1,0.25};
|
||||
colorSelection[] = {
|
||||
"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])",
|
||||
"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])",
|
||||
"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",
|
||||
1
|
||||
};
|
||||
text = "";
|
||||
style = "0x00 + 0x40 + 0x200";
|
||||
shadow = 1;
|
||||
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) * 1)";
|
||||
x = 0.288594 * safezoneW + safezoneX;
|
||||
w = 0.0825 * safezoneW;
|
||||
h = 0.044 * safezoneH;
|
||||
};
|
||||
class Rsc_ACE_HiddenButton:RscButton {
|
||||
colorText[] = {0, 0, 0, 0};
|
||||
colorDisabled[] = {0, 0, 0, 0};
|
||||
colorBackground[] = {0, 0, 0, 0};
|
||||
colorBackgroundDisabled[] = {0, 0, 0, 0};
|
||||
colorBackgroundActive[] = {0, 0, 0, 0};
|
||||
colorFocused[] = {0, 0, 0, 0};
|
||||
colorShadow[] = {0, 0, 0, 0};
|
||||
colorBorder[] = {0, 0, 0, 0};
|
||||
w = 0.095589;
|
||||
h = 0.039216;
|
||||
shadow = 0;
|
||||
colorText[] = {0, 0, 0, 0};
|
||||
colorDisabled[] = {0, 0, 0, 0};
|
||||
colorBackground[] = {0, 0, 0, 0};
|
||||
colorBackgroundDisabled[] = {0, 0, 0, 0};
|
||||
colorBackgroundActive[] = {0, 0, 0, 0};
|
||||
colorFocused[] = {0, 0, 0, 0};
|
||||
colorShadow[] = {0, 0, 0, 0};
|
||||
colorBorder[] = {0, 0, 0, 0};
|
||||
w = 0.095589;
|
||||
h = 0.039216;
|
||||
shadow = 0;
|
||||
};
|
||||
|
||||
class Rsc_ACE_Timer_Slider:RscXSliderH {
|
||||
x = 0.4;
|
||||
y = 0.2;
|
||||
w = 0.3;
|
||||
h = "1*((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
colorBackground[] = {0,0,0,0.5};
|
||||
x = 0.4;
|
||||
y = 0.2;
|
||||
w = 0.3;
|
||||
h = "1*((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
|
||||
colorBackground[] = {0,0,0,0.5};
|
||||
};
|
||||
|
||||
class RscACE_SelectTimeUI {
|
||||
idd = 8854;
|
||||
movingEnable = 0;
|
||||
class controls {
|
||||
class back:IGUIBack {
|
||||
x = X_OFFSET;
|
||||
y = 0;
|
||||
w = 0.5;
|
||||
h = 0.2;
|
||||
colorBackground[] = {0, 0, 0, 0.5};
|
||||
};
|
||||
class header: RscText{
|
||||
idc = 8870;
|
||||
x = X_OFFSET + 0.005;
|
||||
y = 0.005;
|
||||
w = 0.49;
|
||||
h = 0.05;
|
||||
style = ST_CENTER;
|
||||
text = "";
|
||||
};
|
||||
class slider: Rsc_ACE_Timer_Slider {
|
||||
idc = 8845;
|
||||
x = X_OFFSET + 0.005;
|
||||
y = 0.06;
|
||||
w = 0.49;
|
||||
h = 0.025;
|
||||
onSliderPosChanged = "private ['_mins', '_secs'];_mins = floor((_this select 1)/60);_secs=floor((_this select 1) - (_mins*60));ctrlSetText [8870, format[localize 'STR_ACE_Explosives_TimerMenu',_mins, _secs]];";
|
||||
};
|
||||
class cancelBtn: RscButton {
|
||||
idc = 8855;
|
||||
x = X_OFFSET + 0.005;
|
||||
w = 0.15;
|
||||
h = 0.1;
|
||||
y = 0.09;
|
||||
style = ST_CENTER;
|
||||
text = $STR_ACE_Explosives_Cancel;
|
||||
action = "closeDialog 0;";
|
||||
};
|
||||
class approveBtn: RscButton {
|
||||
idc = 8860;
|
||||
x = X_OFFSET + 0.345;
|
||||
y = 0.09;
|
||||
h = 0.1;
|
||||
w = 0.15;
|
||||
style = ST_CENTER;
|
||||
text = $STR_ACE_Explosives_SetTime;
|
||||
action = "closeDialog 0;";
|
||||
};
|
||||
};
|
||||
idd = 8854;
|
||||
movingEnable = 0;
|
||||
class controls {
|
||||
class back:IGUIBack {
|
||||
x = X_OFFSET;
|
||||
y = 0;
|
||||
w = 0.5;
|
||||
h = 0.2;
|
||||
colorBackground[] = {0, 0, 0, 0.5};
|
||||
};
|
||||
class header: RscText{
|
||||
idc = 8870;
|
||||
x = X_OFFSET + 0.005;
|
||||
y = 0.005;
|
||||
w = 0.49;
|
||||
h = 0.05;
|
||||
style = ST_CENTER;
|
||||
text = "";
|
||||
};
|
||||
class slider: Rsc_ACE_Timer_Slider {
|
||||
idc = 8845;
|
||||
x = X_OFFSET + 0.005;
|
||||
y = 0.06;
|
||||
w = 0.49;
|
||||
h = 0.025;
|
||||
onSliderPosChanged = "private ['_mins', '_secs'];_mins = floor((_this select 1)/60);_secs=floor((_this select 1) - (_mins*60));ctrlSetText [8870, format[localize 'STR_ACE_Explosives_TimerMenu',_mins, _secs]];";
|
||||
};
|
||||
class cancelBtn: RscButton {
|
||||
idc = 8855;
|
||||
x = X_OFFSET + 0.005;
|
||||
w = 0.15;
|
||||
h = 0.1;
|
||||
y = 0.09;
|
||||
style = ST_CENTER;
|
||||
text = $STR_ACE_Explosives_Cancel;
|
||||
action = "closeDialog 0;";
|
||||
};
|
||||
class approveBtn: RscButton {
|
||||
idc = 8860;
|
||||
x = X_OFFSET + 0.345;
|
||||
y = 0.09;
|
||||
h = 0.1;
|
||||
w = 0.15;
|
||||
style = ST_CENTER;
|
||||
text = $STR_ACE_Explosives_SetTime;
|
||||
action = "closeDialog 0;";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Rsc_ACE_NumKeyButton: Rsc_ACE_HiddenButton{};
|
||||
class Rsc_ACE_PhoneInterface {
|
||||
idd = 8855;
|
||||
movingEnable = 1;
|
||||
onLoad = QUOTE(GVAR(IED_CurrentSpeedDial) = -1);
|
||||
class controls {
|
||||
class RscPicture_1200: RscPicture {
|
||||
idc = 1200;
|
||||
text = PATHTOF(Data\UI\Cellphone_Background.paa);
|
||||
x = 0.231875 * safezoneW + safezoneX;
|
||||
y = 0.104 * safezoneH + safezoneY;
|
||||
w = 0.195937 * safezoneW;
|
||||
h = 0.704 * safezoneH;
|
||||
};
|
||||
class numkey_1: Rsc_ACE_NumKeyButton {
|
||||
idc = 1600;
|
||||
x = 0.278281 * safezoneW + safezoneX;
|
||||
y = 0.533 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "1";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '1')];";
|
||||
};
|
||||
class numkey_2: Rsc_ACE_NumKeyButton {
|
||||
idc = 1601;
|
||||
x = 0.314375 * safezoneW + safezoneX;
|
||||
y = 0.533 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "2";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '2')];";
|
||||
};
|
||||
class numkey_3: Rsc_ACE_NumKeyButton {
|
||||
idc = 1602;
|
||||
x = 0.350469 * safezoneW + safezoneX;
|
||||
y = 0.533 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "3";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '3')];";
|
||||
};
|
||||
class numkey_4: Rsc_ACE_NumKeyButton {
|
||||
idc = 1603;
|
||||
x = 0.278281 * safezoneW + safezoneX;
|
||||
y = 0.577 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "4";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '4')];";
|
||||
};
|
||||
class numkey_5: Rsc_ACE_NumKeyButton {
|
||||
idc = 1604;
|
||||
x = 0.314375 * safezoneW + safezoneX;
|
||||
y = 0.577 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "5";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '5')];";
|
||||
};
|
||||
class numkey_6: Rsc_ACE_NumKeyButton {
|
||||
idc = 1605;
|
||||
x = 0.350469 * safezoneW + safezoneX;
|
||||
y = 0.577 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "6";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '6')];";
|
||||
};
|
||||
class numkey_7: Rsc_ACE_NumKeyButton {
|
||||
idc = 1606;
|
||||
x = 0.278281 * safezoneW + safezoneX;
|
||||
y = 0.621 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "7";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '7')];";
|
||||
};
|
||||
class numkey_8: Rsc_ACE_NumKeyButton {
|
||||
idc = 1607;
|
||||
x = 0.314375 * safezoneW + safezoneX;
|
||||
y = 0.621 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "8";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '8')];";
|
||||
};
|
||||
class numkey_9: Rsc_ACE_NumKeyButton {
|
||||
idc = 1608;
|
||||
x = 0.350469 * safezoneW + safezoneX;
|
||||
y = 0.621 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "9";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '9')];";
|
||||
};
|
||||
class numkey_0: Rsc_ACE_NumKeyButton {
|
||||
idc = 1609;
|
||||
x = 0.314375 * safezoneW + safezoneX;
|
||||
y = 0.676 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "0";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '0')];";
|
||||
};
|
||||
class speedDialAdd: Rsc_ACE_NumKeyButton {
|
||||
idc = 1610;
|
||||
x = 0.278281 * safezoneW + safezoneX;
|
||||
y = 0.676 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "$STR_ACE_Explosives_Phone_AddToSpeedDial";
|
||||
action = QUOTE([ARR_2(ctrlText 1401,ctrlText 1400)] call FUNC(addToSpeedDial););
|
||||
};
|
||||
class clear: Rsc_ACE_HiddenButton {
|
||||
idc = 1610;
|
||||
x = 0.278281 * safezoneW + safezoneX;
|
||||
y = 0.445 * safezoneH + safezoneY;
|
||||
w = 0.020625 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "$STR_ACE_Explosives_Clear";
|
||||
action = QUOTE(ctrlSetText [ARR_2(1400,'')];[ctrlText 1401] call FUNC(removeFromSpeedDial);ctrlSetText [ARR_2(1401,'')];);
|
||||
};
|
||||
class dial: Rsc_ACE_HiddenButton {
|
||||
idc = 1611;
|
||||
x = 0.309219 * safezoneW + safezoneX;
|
||||
y = 0.445 * safezoneH + safezoneY;
|
||||
w = 0.04125 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "$STR_ACE_Explosives_Phone_Dial";
|
||||
action = QUOTE([ARR_2(ace_player,ctrlText 1400)] call FUNC(dialPhone););
|
||||
};
|
||||
class up: Rsc_ACE_HiddenButton {
|
||||
idc = 1612;
|
||||
x = 0.360781 * safezoneW + safezoneX;
|
||||
y = 0.445 * safezoneH + safezoneY;
|
||||
w = 0.020625 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "$STR_ACE_Explosives_Phone_Up";
|
||||
action = QUOTE([true] call FUNC(setSpeedDial));
|
||||
};
|
||||
class down: Rsc_ACE_HiddenButton {
|
||||
idc = 1613;
|
||||
x = 0.345312 * safezoneW + safezoneX;
|
||||
y = 0.485 * safezoneH + safezoneY;
|
||||
w = 0.020625 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "$STR_ACE_Explosives_Phone_Down";
|
||||
action = QUOTE([false] call FUNC(setSpeedDial));
|
||||
};
|
||||
class speedDial_Text: RscText {
|
||||
idc = 1405;
|
||||
y = 0.302 * safezoneH + safezoneY;
|
||||
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 22) * 1)";
|
||||
x = 0.288594 * safezoneW + safezoneX;
|
||||
w = 0.0825 * safezoneW;
|
||||
h = 0.044 * safezoneH;
|
||||
text = "Name";
|
||||
};
|
||||
class speedDial_edit: Rsc_ACE_CallScreen_Edit {
|
||||
idc = 1401;
|
||||
y = 0.302 * safezoneH + safezoneY;
|
||||
x = 0.318 * safezoneW + safezoneX;
|
||||
w = 0.1;
|
||||
};
|
||||
class numberEdit_Text: RscText {
|
||||
idc = 1406;
|
||||
y = 0.348 * safezoneH + safezoneY;
|
||||
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 22) * 1)";
|
||||
x = 0.288594 * safezoneW + safezoneX;
|
||||
w = 0.0825 * safezoneW;
|
||||
h = 0.044 * safezoneH;
|
||||
text = "#";
|
||||
};
|
||||
class number_edit: Rsc_ACE_CallScreen_Edit {
|
||||
canModify = 0;
|
||||
idc = 1400;
|
||||
y = 0.348 * safezoneH + safezoneY;
|
||||
x = 0.3 * safezoneW + safezoneX;
|
||||
};
|
||||
};
|
||||
idd = 8855;
|
||||
movingEnable = 1;
|
||||
onLoad = QUOTE(GVAR(IED_CurrentSpeedDial) = -1);
|
||||
class controls {
|
||||
class RscPicture_1200: RscPicture {
|
||||
idc = 1200;
|
||||
text = PATHTOF(Data\UI\Cellphone_Background.paa);
|
||||
x = 0.231875 * safezoneW + safezoneX;
|
||||
y = 0.104 * safezoneH + safezoneY;
|
||||
w = 0.195937 * safezoneW;
|
||||
h = 0.704 * safezoneH;
|
||||
};
|
||||
class numkey_1: Rsc_ACE_NumKeyButton {
|
||||
idc = 1600;
|
||||
x = 0.278281 * safezoneW + safezoneX;
|
||||
y = 0.533 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "1";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '1')];";
|
||||
};
|
||||
class numkey_2: Rsc_ACE_NumKeyButton {
|
||||
idc = 1601;
|
||||
x = 0.314375 * safezoneW + safezoneX;
|
||||
y = 0.533 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "2";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '2')];";
|
||||
};
|
||||
class numkey_3: Rsc_ACE_NumKeyButton {
|
||||
idc = 1602;
|
||||
x = 0.350469 * safezoneW + safezoneX;
|
||||
y = 0.533 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "3";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '3')];";
|
||||
};
|
||||
class numkey_4: Rsc_ACE_NumKeyButton {
|
||||
idc = 1603;
|
||||
x = 0.278281 * safezoneW + safezoneX;
|
||||
y = 0.577 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "4";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '4')];";
|
||||
};
|
||||
class numkey_5: Rsc_ACE_NumKeyButton {
|
||||
idc = 1604;
|
||||
x = 0.314375 * safezoneW + safezoneX;
|
||||
y = 0.577 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "5";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '5')];";
|
||||
};
|
||||
class numkey_6: Rsc_ACE_NumKeyButton {
|
||||
idc = 1605;
|
||||
x = 0.350469 * safezoneW + safezoneX;
|
||||
y = 0.577 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "6";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '6')];";
|
||||
};
|
||||
class numkey_7: Rsc_ACE_NumKeyButton {
|
||||
idc = 1606;
|
||||
x = 0.278281 * safezoneW + safezoneX;
|
||||
y = 0.621 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "7";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '7')];";
|
||||
};
|
||||
class numkey_8: Rsc_ACE_NumKeyButton {
|
||||
idc = 1607;
|
||||
x = 0.314375 * safezoneW + safezoneX;
|
||||
y = 0.621 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "8";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '8')];";
|
||||
};
|
||||
class numkey_9: Rsc_ACE_NumKeyButton {
|
||||
idc = 1608;
|
||||
x = 0.350469 * safezoneW + safezoneX;
|
||||
y = 0.621 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "9";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '9')];";
|
||||
};
|
||||
class numkey_0: Rsc_ACE_NumKeyButton {
|
||||
idc = 1609;
|
||||
x = 0.314375 * safezoneW + safezoneX;
|
||||
y = 0.676 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "0";
|
||||
action = "ctrlSetText [1400,((ctrlText 1400) + '0')];";
|
||||
};
|
||||
class speedDialAdd: Rsc_ACE_NumKeyButton {
|
||||
idc = 1610;
|
||||
x = 0.278281 * safezoneW + safezoneX;
|
||||
y = 0.676 * safezoneH + safezoneY;
|
||||
w = 0.0309375 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "$STR_ACE_Explosives_Phone_AddToSpeedDial";
|
||||
action = QUOTE([ARR_2(ctrlText 1401,ctrlText 1400)] call FUNC(addToSpeedDial););
|
||||
};
|
||||
class clear: Rsc_ACE_HiddenButton {
|
||||
idc = 1610;
|
||||
x = 0.278281 * safezoneW + safezoneX;
|
||||
y = 0.445 * safezoneH + safezoneY;
|
||||
w = 0.020625 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "$STR_ACE_Explosives_Clear";
|
||||
action = QUOTE(ctrlSetText [ARR_2(1400,'')];[ctrlText 1401] call FUNC(removeFromSpeedDial);ctrlSetText [ARR_2(1401,'')];);
|
||||
};
|
||||
class dial: Rsc_ACE_HiddenButton {
|
||||
idc = 1611;
|
||||
x = 0.309219 * safezoneW + safezoneX;
|
||||
y = 0.445 * safezoneH + safezoneY;
|
||||
w = 0.04125 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "$STR_ACE_Explosives_Phone_Dial";
|
||||
action = QUOTE([ARR_2(ace_player,ctrlText 1400)] call FUNC(dialPhone););
|
||||
};
|
||||
class up: Rsc_ACE_HiddenButton {
|
||||
idc = 1612;
|
||||
x = 0.360781 * safezoneW + safezoneX;
|
||||
y = 0.445 * safezoneH + safezoneY;
|
||||
w = 0.020625 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "$STR_ACE_Explosives_Phone_Up";
|
||||
action = QUOTE([true] call FUNC(setSpeedDial));
|
||||
};
|
||||
class down: Rsc_ACE_HiddenButton {
|
||||
idc = 1613;
|
||||
x = 0.345312 * safezoneW + safezoneX;
|
||||
y = 0.485 * safezoneH + safezoneY;
|
||||
w = 0.020625 * safezoneW;
|
||||
h = 0.033 * safezoneH;
|
||||
tooltip = "$STR_ACE_Explosives_Phone_Down";
|
||||
action = QUOTE([false] call FUNC(setSpeedDial));
|
||||
};
|
||||
class speedDial_Text: RscText {
|
||||
idc = 1405;
|
||||
y = 0.302 * safezoneH + safezoneY;
|
||||
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 22) * 1)";
|
||||
x = 0.288594 * safezoneW + safezoneX;
|
||||
w = 0.0825 * safezoneW;
|
||||
h = 0.044 * safezoneH;
|
||||
text = "Name";
|
||||
};
|
||||
class speedDial_edit: Rsc_ACE_CallScreen_Edit {
|
||||
idc = 1401;
|
||||
y = 0.302 * safezoneH + safezoneY;
|
||||
x = 0.318 * safezoneW + safezoneX;
|
||||
w = 0.1;
|
||||
};
|
||||
class numberEdit_Text: RscText {
|
||||
idc = 1406;
|
||||
y = 0.348 * safezoneH + safezoneY;
|
||||
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 22) * 1)";
|
||||
x = 0.288594 * safezoneW + safezoneX;
|
||||
w = 0.0825 * safezoneW;
|
||||
h = 0.044 * safezoneH;
|
||||
text = "#";
|
||||
};
|
||||
class number_edit: Rsc_ACE_CallScreen_Edit {
|
||||
canModify = 0;
|
||||
idc = 1400;
|
||||
y = 0.348 * safezoneH + safezoneY;
|
||||
x = 0.3 * safezoneW + safezoneX;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -19,7 +19,11 @@ ADDON = false;
|
||||
|
||||
PREP(addCellphoneIED);
|
||||
PREP(addClacker);
|
||||
PREP(addDetonateActions);
|
||||
PREP(addExplosiveActions);
|
||||
PREP(addToSpeedDial);
|
||||
PREP(addTransmitterActions);
|
||||
PREP(addTriggerActions);
|
||||
PREP(canDefuse);
|
||||
PREP(canDetonate);
|
||||
PREP(defuseExplosive);
|
||||
@ -36,11 +40,9 @@ PREP(getDetonators);
|
||||
PREP(getPlacedExplosives);
|
||||
PREP(getSpeedDialExplosive);
|
||||
|
||||
PREP(openDetonateUI);
|
||||
PREP(openPlaceUI);
|
||||
PREP(openTransmitterUI);
|
||||
PREP(onLanded);
|
||||
|
||||
PREP(openTimerSetUI);
|
||||
PREP(openTriggerSelectionUI);
|
||||
|
||||
PREP(place_Approve);
|
||||
PREP(place_Cancel);
|
||||
|
@ -1,15 +1,15 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {"ACE_Clacker", "ACE_DefusalKit", "ACE_M26_Clacker", "ACE_DeadManSwitch", "ACE_Cellphone"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_common", "ace_interaction"};
|
||||
author[] = {"Garth 'L-H' de Wet"};
|
||||
authorUrl = "http://garth.snakebiteink.co.za/";
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {"ACE_Clacker", "ACE_DefusalKit", "ACE_M26_Clacker", "ACE_DeadManSwitch", "ACE_Cellphone"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_interaction"};
|
||||
author[] = {"Garth 'L-H' de Wet"};
|
||||
authorUrl = "http://garth.snakebiteink.co.za/";
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
#include "CfgEventHandlers.hpp"
|
||||
@ -22,30 +22,30 @@ class CfgPatches {
|
||||
#include "ExplosivesUI.hpp"
|
||||
|
||||
class CfgActions {
|
||||
class None;
|
||||
class Deactivate:None {
|
||||
show = 0;
|
||||
};
|
||||
class DeactivateMine:None {
|
||||
show = 0;
|
||||
};
|
||||
class None;
|
||||
class Deactivate:None {
|
||||
show = 0;
|
||||
};
|
||||
class DeactivateMine:None {
|
||||
show = 0;
|
||||
};
|
||||
};
|
||||
|
||||
class CfgMineTriggers {
|
||||
class RangeTrigger;
|
||||
class MagneticTrigger: RangeTrigger {
|
||||
mineMagnetic = 1;
|
||||
mineTriggerRange = 1;
|
||||
};
|
||||
class RangeTrigger;
|
||||
class MagneticTrigger: RangeTrigger {
|
||||
mineMagnetic = 1;
|
||||
mineTriggerRange = 1;
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_Settings {
|
||||
class GVAR(RequireSpecialist) {
|
||||
value = 0;
|
||||
typeName = "BOOL";
|
||||
};
|
||||
class GVAR(PunishNonSpecialists) {
|
||||
value = 1;
|
||||
typeName = "BOOL";
|
||||
};
|
||||
class GVAR(RequireSpecialist) {
|
||||
value = 0;
|
||||
typeName = "BOOL";
|
||||
};
|
||||
class GVAR(PunishNonSpecialists) {
|
||||
value = 1;
|
||||
typeName = "BOOL";
|
||||
};
|
||||
};
|
||||
|
@ -25,23 +25,23 @@ _requiredItems = getArray(_config >> "requires");
|
||||
_hasRequired = true;
|
||||
_detonators = [_unit] call FUNC(getDetonators);
|
||||
{
|
||||
if !(_x in _detonators) exitWith{
|
||||
_hasRequired = false;
|
||||
};
|
||||
if !(_x in _detonators) exitWith{
|
||||
_hasRequired = false;
|
||||
};
|
||||
} count _requiredItems;
|
||||
private ["_code", "_count", "_codeSet"];
|
||||
_codeSet = false;
|
||||
while {!_codeSet} do {
|
||||
_code = str(round (random 9999));
|
||||
_count = 4 - count (toArray _code);
|
||||
while {_count > 0} do {
|
||||
_code = "0" + _code;
|
||||
_count = _count - 1;
|
||||
};
|
||||
_codeSet = (count ([_code] call FUNC(getSpeedDialExplosive))) == 0;
|
||||
_code = str(round (random 9999));
|
||||
_count = 4 - count (toArray _code);
|
||||
while {_count > 0} do {
|
||||
_code = "0" + _code;
|
||||
_count = _count - 1;
|
||||
};
|
||||
_codeSet = (count ([_code] call FUNC(getSpeedDialExplosive))) == 0;
|
||||
};
|
||||
if (isNil QGVAR(CellphoneIEDs)) then {
|
||||
GVAR(CellphoneIEDs) = [];
|
||||
GVAR(CellphoneIEDs) = [];
|
||||
};
|
||||
_count = GVAR(CellphoneIEDs) pushBack [_explosive,_code,GetNumber(ConfigFile >> "CfgMagazines" >> _magazineClass >> "ACE_Triggers" >> "Cellphone" >> "FuseTime")];
|
||||
_count = _count + 1;
|
||||
|
@ -17,10 +17,8 @@
|
||||
* Public: Yes
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_unit", "_explosive", "_clacker", "_config", "_magazineClass", "_requiredItems", "_hasRequired"];
|
||||
_unit = _this select 0;
|
||||
_explosive = _this select 1;
|
||||
_magazineClass = _this select 2;
|
||||
private ["_clacker", "_config", "_requiredItems", "_hasRequired"];
|
||||
EXPLODE_3_PVT(_this,_unit,_explosive,_magazineClass);
|
||||
// Config is the last item in the list of passed in items.
|
||||
_config = (_this select 3) select (count (_this select 3) - 1);
|
||||
|
||||
@ -38,7 +36,9 @@ _config = ConfigFile >> "CfgMagazines" >> _magazineClass >> "ACE_Triggers" >> co
|
||||
|
||||
_clacker = _unit getVariable [QGVAR(Clackers), []];
|
||||
GVAR(PlacedCount) = GVAR(PlacedCount) + 1;
|
||||
|
||||
_clacker pushBack [_explosive, getNumber(_config >> "FuseTime"), format [localize "STR_ACE_Explosives_DetonateCode",
|
||||
GVAR(PlacedCount)], _magazineClass, configName ((_this select 3) select (count (_this select 3) - 1))];
|
||||
|
||||
_unit setVariable [QGVAR(Clackers), _clacker, true];
|
||||
_unit sideChat format [localize "STR_ACE_Explosives_DetonateCode", GVAR(PlacedCount)];
|
||||
|
49
addons/explosives/functions/fnc_addDetonateActions.sqf
Normal file
49
addons/explosives/functions/fnc_addDetonateActions.sqf
Normal file
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* Author: Garth 'L-H' de Wet
|
||||
* Opens the UI for explosive detonation selection
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
* 1: Trigger classname <STRING>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, "ACE_M26_Clacker"] call ACE_Explosives_fnc_addDetonateActions;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_result", "_item", "_children"];
|
||||
call EFUNC(interaction,hideMenu);
|
||||
EXPLODE_2_PVT(_this,_unit,_detonator);
|
||||
_range = GetNumber (ConfigFile >> "CfgWeapons" >> _detonator >> "ACE_Range");
|
||||
|
||||
_result = [_unit] call FUNC(getPlacedExplosives);
|
||||
_children = [];
|
||||
{
|
||||
if (!isNull(_x select 0)) then {
|
||||
_required = getArray (ConfigFile >> "CfgACE_Triggers" >> (_x select 4) >> "requires");
|
||||
if (_detonator in _required) then {
|
||||
_item = ConfigFile >> "CfgMagazines" >> (_x select 3);
|
||||
|
||||
_children pushBack
|
||||
[
|
||||
[
|
||||
format ["Explosive_%1", _forEachIndex],
|
||||
_x select 2,
|
||||
getText(_item >> "picture"),
|
||||
{(_this select 2) call FUNC(detonateExplosive);},
|
||||
{true},
|
||||
{},
|
||||
[ACE_player,_range,_x]
|
||||
] call EFUNC(interact_menu,createAction),
|
||||
[],
|
||||
ACE_Player
|
||||
];
|
||||
};
|
||||
};
|
||||
} foreach _result;
|
||||
|
||||
_children
|
56
addons/explosives/functions/fnc_addExplosiveActions.sqf
Normal file
56
addons/explosives/functions/fnc_addExplosiveActions.sqf
Normal file
@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Author: Garth 'L-H' de Wet and CAA-Picard
|
||||
*
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Actions
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_mags", "_item", "_index", "_children"];
|
||||
|
||||
EXPLODE_1_PVT(_this,_unit);
|
||||
|
||||
_mags = magazines _unit;
|
||||
_list = [];
|
||||
_itemCount = [];
|
||||
{
|
||||
_item = ConfigFile >> "CfgMagazines" >> _x;
|
||||
if (getNumber(_item >> "ACE_Placeable") == 1) then {
|
||||
_index = _list find _item;
|
||||
if (_index != -1) then {
|
||||
_itemCount set [_index, (_itemCount select _index) + 1];
|
||||
} else {
|
||||
_list pushBack _item;
|
||||
_itemCount pushBack 1;
|
||||
};
|
||||
};
|
||||
} forEach _mags;
|
||||
|
||||
_children = [];
|
||||
|
||||
{
|
||||
private "_name";
|
||||
_name = if(isText(_x >> "displayNameShort") && {getText(_x >> "displayNameShort") != ""}) then
|
||||
{getText (_x >> "displayNameShort")}else{getText(_x >> "displayName")};
|
||||
_children pushBack
|
||||
[
|
||||
[
|
||||
format ["Explosive_%1", _forEachIndex],
|
||||
format [_name + " (%1)", _itemCount select _foreachIndex],
|
||||
getText(_x >> "picture"),
|
||||
{(_this select 2) call FUNC(setupExplosive);},
|
||||
{true},
|
||||
{},
|
||||
[_unit, configName _x]
|
||||
] call EFUNC(interact_menu,createAction),
|
||||
[],
|
||||
_unit
|
||||
];
|
||||
} foreach _list;
|
||||
|
||||
_children
|
39
addons/explosives/functions/fnc_addTransmitterActions.sqf
Normal file
39
addons/explosives/functions/fnc_addTransmitterActions.sqf
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Author: Garth 'L-H' de Wet
|
||||
* Opens the UI for selecting the transmitter
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Nothing
|
||||
*
|
||||
* Example:
|
||||
* [player] call ACE_Explosives_fnc_addTransmitterActions;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_items", "_unit", "_children", "_config"];
|
||||
_unit = _this select 0;
|
||||
_detonators = [_unit] call FUNC(getDetonators);
|
||||
_children = [];
|
||||
{
|
||||
_config = ConfigFile >> "CfgWeapons" >> _x;
|
||||
_children pushBack
|
||||
[
|
||||
[
|
||||
format ["Trigger_%1", _forEachIndex],
|
||||
getText(_config >> "displayName"),
|
||||
getText(_config >> "picture"),
|
||||
{},
|
||||
{true},
|
||||
{(_this select 2) call FUNC(addDetonateActions);},
|
||||
[ACE_player,_x]
|
||||
] call EFUNC(interact_menu,createAction),
|
||||
[],
|
||||
ACE_Player
|
||||
];
|
||||
} foreach _detonators;
|
||||
|
||||
_children
|
56
addons/explosives/functions/fnc_addTriggerActions.sqf
Normal file
56
addons/explosives/functions/fnc_addTriggerActions.sqf
Normal file
@ -0,0 +1,56 @@
|
||||
/*
|
||||
* Author: Garth 'L-H' de Wet
|
||||
* Opens the UI for explosive trigger selection
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Explosive Magazine <STRING>
|
||||
* 1: Explosive <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [lbData [8866, lbCurSel 8866], _explosive] call ACE_Explosives_fnc_addTriggerActions;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_hasRequiredItems","_triggerTypes", "_children",
|
||||
"_detonators", "_required", "_magTriggers"];
|
||||
EXPLODE_2_PVT(_this,_magazine,_explosive);
|
||||
_detonators = [ACE_player] call FUNC(getDetonators);
|
||||
|
||||
_triggerTypes = [_magazine] call FUNC(triggerType);
|
||||
_magTriggers = ConfigFile >> "CfgMagazines" >> _magazine >> "ACE_Triggers";
|
||||
_children = [];
|
||||
{
|
||||
_required = getArray (_x >> "requires");
|
||||
_hasRequiredItems = true;
|
||||
{
|
||||
if !(_x in _detonators) exitWith {
|
||||
_hasRequiredItems = false;
|
||||
};
|
||||
} count _required;
|
||||
if (_hasRequiredItems) then {
|
||||
_children pushBack
|
||||
[
|
||||
[
|
||||
format ["Trigger_%1", _forEachIndex],
|
||||
if(isText(_magTriggers >> configName _x >> "displayName"))then
|
||||
{getText(_magTriggers >> configName _x >> "displayName")}
|
||||
else{getText(_x >> "displayName")},
|
||||
if(isText(_magTriggers >> configName _x >> "picture"))then
|
||||
{getText(_magTriggers >> configName _x >> "picture")}
|
||||
else{getText(_x >> "picture")},
|
||||
{(_this select 2) call FUNC(selectTrigger);},
|
||||
{true},
|
||||
{},
|
||||
[_explosive, _magazine, configName _x]
|
||||
] call EFUNC(interact_menu,createAction),
|
||||
[],
|
||||
ACE_Player
|
||||
];
|
||||
};
|
||||
} foreach _triggerTypes;
|
||||
|
||||
_children
|
@ -14,25 +14,15 @@
|
||||
* Public: Yes
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private "_unit";
|
||||
_unit = _this select 0;
|
||||
private ["_specialist"];
|
||||
EXPLODE_2_PVT(_this,_unit,_target);
|
||||
if (isNull(_target getVariable [QGVAR(Explosive),objNull])) exitWith {
|
||||
deleteVehicle _target;
|
||||
false
|
||||
};
|
||||
if (vehicle _unit != _unit || {!("ACE_DefusalKit" in (items _unit))}) exitWith {false};
|
||||
_isSpecialist = [_unit] call EFUNC(Common,isEOD);
|
||||
|
||||
if (GVAR(RequireSpecialist) && {!_isSpecialist}) exitWith {false};
|
||||
|
||||
_timeBombCore = nearestObject [_unit, "TimeBombCore"];
|
||||
_mineBase = nearestObject [_unit, "MineBase"];
|
||||
|
||||
_distCore = _unit distance _timeBombCore;
|
||||
_distBase = _unit distance _mineBase;
|
||||
_distance = 10;
|
||||
if (_distCore < _distBase) then {
|
||||
_distance = _distCore;
|
||||
EGVAR(interaction,Target) = _timeBombCore;
|
||||
}else{
|
||||
_distance = _distBase;
|
||||
EGVAR(interaction,Target) = _mineBase;
|
||||
};
|
||||
if (isNil "_distance") exitWith {false};
|
||||
_distance < 4
|
||||
true
|
||||
|
@ -15,12 +15,16 @@
|
||||
* Public: Yes
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_unit", "_explosive"];
|
||||
_unit = _this select 0;
|
||||
_explosive = _this select 1;
|
||||
EXPLODE_2_PVT(_this,_unit,_explosive);
|
||||
|
||||
if (getNumber (ConfigFile >> "CfgAmmo" >> typeof _explosive >> "ACE_explodeOnDefuse") == 1) exitWith {
|
||||
[_unit, -1, [_explosive, 1], true] call FUNC(detonateExplosive);
|
||||
};
|
||||
|
||||
{
|
||||
detach _x;
|
||||
deleteVehicle _x;
|
||||
false
|
||||
} count (attachedObjects (_explosive));
|
||||
|
||||
_unit action ["Deactivate", _unit, _explosive];
|
||||
|
@ -19,15 +19,19 @@
|
||||
* Public: Yes
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_item","_result", "_ignoreRange", "_unit", "_range"];
|
||||
_unit = _this select 0;
|
||||
_range = _this select 1;
|
||||
_item = _this select 2;
|
||||
private ["_result", "_ignoreRange", "_helper"];
|
||||
EXPLODE_3_PVT(_this,_unit,_range,_item);
|
||||
_ignoreRange = (_range == -1);
|
||||
_result = true;
|
||||
|
||||
if (!_ignoreRange && {(_unit distance (_item select 0)) > _range}) exitWith {false};
|
||||
|
||||
_helper = (attachedTo (_item select 0));
|
||||
if (!isNull(_helper)) then {
|
||||
detach (_item select 0);
|
||||
deleteVehicle _helper;
|
||||
};
|
||||
|
||||
if (getNumber (ConfigFile >> "CfgAmmo" >> typeof (_item select 0) >> "TriggerWhenDestroyed") == 0) then {
|
||||
private ["_exp", "_previousExp"];
|
||||
_previousExp = _item select 0;
|
||||
@ -44,7 +48,7 @@ if (getNumber (ConfigFile >> "CfgAmmo" >> typeof (_item select 0) >> "TriggerWhe
|
||||
[{
|
||||
_explosive = _this;
|
||||
if (!isNull _explosive) then {
|
||||
_explosive setDamage 1;
|
||||
_explosive setDamage 1;
|
||||
};
|
||||
}, _item select 0, _item select 1, 0] call EFUNC(common,waitAndExecute);
|
||||
|
||||
|
@ -27,7 +27,7 @@ _adjustedList = false;
|
||||
_clackerList = _unit getVariable [QGVAR(Clackers), []];
|
||||
_list = [];
|
||||
{
|
||||
if isNull (_x select 0) then {
|
||||
if (isNull (_x select 0)) then {
|
||||
_clackerList set [_foreachIndex, "X"];
|
||||
_adjustedList = true;
|
||||
} else {
|
||||
|
@ -19,9 +19,9 @@ private ["_explosive"];
|
||||
if (isNil QGVAR(CellphoneIEDs)) exitWith {[]};
|
||||
_explosive = [];
|
||||
{
|
||||
if ((_x select 1) == _code) exitWith {
|
||||
_explosive = _x;
|
||||
};
|
||||
false
|
||||
if ((_x select 1) == _code) exitWith {
|
||||
_explosive = _x;
|
||||
};
|
||||
false
|
||||
} count GVAR(CellphoneIEDs);
|
||||
_explosive
|
||||
|
@ -14,7 +14,6 @@
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_obj"];
|
||||
if (isNull(GVAR(Setup)) || {ACE_Modifier == 0} || !GVAR(pfeh_running)) exitWith {false};
|
||||
_this = _this * 5;
|
||||
GVAR(Setup) setDir ((getDir GVAR(Setup)) + _this);
|
||||
|
@ -20,7 +20,9 @@ _activated = _this select 2;
|
||||
|
||||
if !(_activated) exitWith {};
|
||||
|
||||
[_logic, QGVAR(RequireSpecialist), "RequireSpecialist" ] call EFUNC(Common,readSettingFromModule);
|
||||
[_logic, QGVAR(PunishNonSpecialists), "PunishNonSpecialists" ] call EFUNC(Common,readSettingFromModule);
|
||||
[_logic, QGVAR(RequireSpecialist), "RequireSpecialist"]
|
||||
call EFUNC(Common,readSettingFromModule);
|
||||
[_logic, QGVAR(PunishNonSpecialists),"PunishNonSpecialists"]
|
||||
call EFUNC(Common,readSettingFromModule);
|
||||
|
||||
diag_log text "[ACE]: Explosive Module Initialized.";
|
||||
|
39
addons/explosives/functions/fnc_onLanded.sqf
Normal file
39
addons/explosives/functions/fnc_onLanded.sqf
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Author: Garth 'L-H' de Wet
|
||||
*
|
||||
* Arguments:
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* object addEventHandler ["EpeContactStart", ACE_explosive_fnc_onLanded];
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
EXPLODE_2_PVT(_this,_explosive,_hitTarget);
|
||||
|
||||
if ((_explosive getVariable [QGVAR(Handled), false])) exitWith {};
|
||||
|
||||
_explosive setVariable [QGVAR(Handled), true];
|
||||
if (!isNull _hitTarget && {_hitTarget isKindOf "AllVehicles"}) then {
|
||||
_explosive attachTo [_hitTarget];
|
||||
private "_dir";
|
||||
_dir = _setup getVariable [QGVAR(Direction), 0];
|
||||
_dir = _dir - (getDir _hitTarget);
|
||||
[[_explosive, _dir, 0], QFUNC(setPosition)] call EFUNC(common,execRemoteFnc);
|
||||
} else {
|
||||
[{
|
||||
EXPLODE_2_PVT(_this,_player,_explosive);
|
||||
private "_pos";
|
||||
_player setVariable [QGVAR(PlantingExplosive), false];
|
||||
if (surfaceIsWater _pos) then {
|
||||
_pos = getPosASL _explosive;
|
||||
_explosive setPosASL _pos;
|
||||
}else{
|
||||
_pos = getPosATL _explosive;
|
||||
_explosive setPosATL _pos;
|
||||
};
|
||||
}, [ACE_player, _explosive], 0.5, 0.1] call EFUNC(common,waitAndExecute);
|
||||
};
|
@ -1,61 +0,0 @@
|
||||
/*
|
||||
* Author: Garth 'L-H' de Wet
|
||||
* Opens the UI for explosive detonation selection
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
* 1: Trigger classname <STRING>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, "ACE_M26_Clacker"] call ACE_Explosives_fnc_openDetonateUI;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_unit","_result", "_item"];
|
||||
call EFUNC(interaction,hideMenu);
|
||||
_unit = _this select 0;
|
||||
_detonator = _this select 1;
|
||||
_range = GetNumber (ConfigFile >> "CfgWeapons" >> _detonator >> "ACE_Range");
|
||||
|
||||
_result = [_unit] call FUNC(getPlacedExplosives);
|
||||
_actions = [localize "STR_ACE_Explosives_DetonateMenu", localize "STR_ACE_Explosives_Detonate"]
|
||||
call EFUNC(interaction,prepareSelectMenu);
|
||||
_count = 0;
|
||||
{
|
||||
if (!isNull(_x select 0)) then {
|
||||
_required = getArray (ConfigFile >> "CfgACE_Triggers" >> (_x select 4) >> "requires");
|
||||
if (_detonator in _required) then {
|
||||
_item = ConfigFile >> "CfgMagazines" >> (_x select 3);
|
||||
_actions = [
|
||||
_actions,
|
||||
_x select 2,
|
||||
getText(_item >> "picture"),
|
||||
[_foreachIndex, _range]
|
||||
] call EFUNC(interaction,AddSelectableItem);
|
||||
_count = _count + 1;
|
||||
};
|
||||
};
|
||||
} foreach _result;
|
||||
if (_count > 0) then {
|
||||
[
|
||||
_actions,
|
||||
{
|
||||
[
|
||||
ACE_player,
|
||||
[_this select 1] call EFUNC(common,toNumber),
|
||||
(ACE_player getVariable [QGVAR(Clackers), []]) select ([_this select 0] call EFUNC(common,toNumber)),
|
||||
false
|
||||
] call FUNC(detonateExplosive);
|
||||
call EFUNC(interaction,hideMenu);
|
||||
},
|
||||
{[ACE_player] call FUNC(openTransmitterUI);}
|
||||
] call EFUNC(interaction,openSelectMenu);
|
||||
}else{
|
||||
call EFUNC(interaction,hideMenu);
|
||||
[ACE_player] call FUNC(openTransmitterUI);
|
||||
[localize "STR_ACE_Explosives_NoExplosivesAvailable"] call EFUNC(common,displayTextStructured);
|
||||
};
|
@ -1,55 +0,0 @@
|
||||
/*
|
||||
* Author: Garth 'L-H' de Wet
|
||||
* Opens the UI for explosive placement selection
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player] call ACE_Explosives_fnc_openPlaceUI;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_unit","_mags", "_item", "_index", "_actions"];
|
||||
_unit = _this select 0;
|
||||
call FUNC(place_Cancel);
|
||||
|
||||
_mags = magazines _unit;
|
||||
_list = [];
|
||||
_itemCount = [];
|
||||
{
|
||||
_item = ConfigFile >> "CfgMagazines" >> _x;
|
||||
if (getNumber(_item >> "ACE_Placeable") == 1) then {
|
||||
_index = _list find _item;
|
||||
if (_index != -1) then {
|
||||
_itemCount set [_index, (_itemCount select _index) + 1];
|
||||
} else {
|
||||
_list pushBack _item;
|
||||
_itemCount pushBack 1;
|
||||
};
|
||||
};
|
||||
} forEach _mags;
|
||||
_actions = [localize "STR_ACE_Explosives_PlaceMenu", localize "STR_ACE_Explosives_Place"]
|
||||
call EFUNC(interaction,prepareSelectMenu);
|
||||
{
|
||||
_actions = [
|
||||
_actions,
|
||||
format [getText(_x >> "displayName") + " (%1)", _itemCount select _foreachIndex],
|
||||
getText(_x >> "picture"),
|
||||
configName _x
|
||||
] call EFUNC(interaction,AddSelectableItem);
|
||||
} foreach _list;
|
||||
|
||||
[
|
||||
_actions,
|
||||
{
|
||||
[_this] call FUNC(openTriggerSelectionUI);
|
||||
},
|
||||
{
|
||||
call EFUNC(interaction,hideMenu);
|
||||
}
|
||||
] call EFUNC(interaction,openSelectMenu);
|
@ -3,24 +3,39 @@
|
||||
* Opens the UI for timer setting of an explosive
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Magazine <STRING>
|
||||
* 0: Explosive <OBJECT>
|
||||
* 1: Magazine <STRING>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* ["SatchelCharge_Remote_Mag"] call ACE_Explosives_fnc_openTimerSetUI;
|
||||
* [_explosive, "SatchelCharge_Remote_Mag"] call ACE_Explosives_fnc_openTimerSetUI;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_mag"];
|
||||
_mag = _this select 0;
|
||||
EXPLODE_2_PVT(_this,_explosive,_mag);
|
||||
createDialog "RscACE_SelectTimeUI";
|
||||
sliderSetRange [8845, 5, 900]; // 5seconds - 15minutes
|
||||
sliderSetPosition [8845, 30];
|
||||
|
||||
buttonSetAction [8860, format[QUOTE([ARR_4(ACE_player,'%1','Timer',floor sliderPosition 8845)] call FUNC(setupExplosive);closeDialog 0;), _mag]];
|
||||
buttonSetAction [8855, format[QUOTE(['%1'] call FUNC(openTriggerSelectionUI);), _mag]];
|
||||
GVAR(explosive) = _explosive;
|
||||
|
||||
DFUNC(SetTimer) = {
|
||||
[
|
||||
ACE_player,
|
||||
getPosATL GVAR(explosive),
|
||||
GVAR(explosive) getVariable QGVAR(Direction),
|
||||
GVAR(explosive) getVariable QGVAR(class),
|
||||
"Timer",
|
||||
[floor sliderPosition 8845],
|
||||
GVAR(explosive)
|
||||
] call FUNC(placeExplosive);
|
||||
closeDialog 0;
|
||||
};
|
||||
|
||||
buttonSetAction [8860, QUOTE(call DFUNC(SetTimer);)];
|
||||
buttonSetAction [8855, QUOTE(closeDialog 0;)];
|
||||
|
||||
ctrlSetText [8870, format[localize "STR_ACE_Explosives_TimerMenu",0, 30]];
|
||||
|
@ -1,48 +0,0 @@
|
||||
/*
|
||||
* Author: Garth 'L-H' de Wet
|
||||
* Opens the UI for selecting the transmitter
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
*
|
||||
* Return Value:
|
||||
* Nothing
|
||||
*
|
||||
* Example:
|
||||
* [player] call ACE_Explosives_fnc_openTransmitterUI;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_items", "_unit", "_count", "_actions", "_config"];
|
||||
_unit = _this select 0;
|
||||
_items = (items _unit);
|
||||
|
||||
_actions = [localize "STR_ACE_Explosives_TriggerMenu", localize "STR_ACE_Explosives_SelectTrigger"]
|
||||
call EFUNC(interaction,prepareSelectMenu);
|
||||
_detonators = [_unit] call FUNC(getDetonators);
|
||||
{
|
||||
_config = ConfigFile >> "CfgWeapons" >> _x;
|
||||
_actions = [
|
||||
_actions,
|
||||
getText(_config >> "displayName"),
|
||||
getText(_config >> "picture"),
|
||||
_x
|
||||
] call EFUNC(interaction,addSelectableItem);
|
||||
} count _detonators;
|
||||
|
||||
if (count _detonators == 0) then {
|
||||
call EFUNC(interaction,hideMenu);
|
||||
"ACE_Explosives" call EFUNC(interaction,openMenuSelf);
|
||||
[format[localize "STR_ACE_Explosives_NoTriggersAvailable", "player"]] call EFUNC(Common,displayTextStructured);
|
||||
}else{
|
||||
[
|
||||
_actions,
|
||||
{
|
||||
[ACE_player, _this] call FUNC(openDetonateUI);
|
||||
},
|
||||
{
|
||||
call EFUNC(interaction,hideMenu);
|
||||
}
|
||||
] call EFUNC(interaction,openSelectMenu);
|
||||
};
|
@ -1,57 +0,0 @@
|
||||
/*
|
||||
* Author: Garth 'L-H' de Wet
|
||||
* Opens the UI for explosive trigger selection
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Explosive Magazine <STRING>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [lbData [8866, lbCurSel 8866]] call ACE_Explosives_fnc_openTriggerSelectionUI;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_magazine", "_hasRequiredItems","_triggerTypes", "_actions", "_detonators", "_required", "_magTriggers"];
|
||||
_magazine = _this select 0;
|
||||
_detonators = [ACE_player] call FUNC(getDetonators);
|
||||
|
||||
_triggerTypes = [_magazine] call FUNC(triggerType);
|
||||
_magTriggers = ConfigFile >> "CfgMagazines" >> _magazine >> "ACE_Triggers";
|
||||
_actions = [localize "STR_ACE_Explosives_TriggerMenu", localize "STR_ACE_Explosives_SelectTrigger"]
|
||||
call EFUNC(interaction,prepareSelectMenu);
|
||||
_count = 0;
|
||||
{
|
||||
_required = getArray (_x >> "requires");
|
||||
_hasRequiredItems = true;
|
||||
{
|
||||
if !(_x in _detonators) exitWith {
|
||||
_hasRequiredItems = false;
|
||||
};
|
||||
} count _required;
|
||||
if (_hasRequiredItems) then {
|
||||
_actions = [
|
||||
_actions,
|
||||
if(isText(_magTriggers >> configName _x >> "displayName"))then{getText(_magTriggers >> configName _x >> "displayName")}else{getText(_x >> "displayName")},
|
||||
if(isText(_magTriggers >> configName _x >> "picture"))then{getText(_magTriggers >> configName _x >> "picture")}else{getText(_x >> "picture")},
|
||||
[configName _x, _magazine]
|
||||
] call EFUNC(interaction,addSelectableItem);
|
||||
_count = _count + 1;
|
||||
};
|
||||
} count _triggerTypes;
|
||||
|
||||
if (_count == 0) then {
|
||||
[ACE_player] call FUNC(openPlaceUI);
|
||||
[format[localize "STR_ACE_Explosives_NoTriggersAvailable",
|
||||
getText(configFile >> "CfgMagazines" >> _magazine >> "DisplayName")]] call EFUNC(Common,displayTextStructured);
|
||||
}else{
|
||||
[
|
||||
_actions,
|
||||
{
|
||||
[_this select 1, _this select 0] call FUNC(selectTrigger);
|
||||
},
|
||||
{[ACE_player] call FUNC(openPlaceUI);}
|
||||
] call EFUNC(interaction,openSelectMenu);
|
||||
};
|
@ -7,9 +7,9 @@
|
||||
* 1: Position to place explosive <POSITION>
|
||||
* 2: Rotation <NUMBER>
|
||||
* 3: Magazine class <STRING>
|
||||
* 4: Config of trigger <CONFIG>
|
||||
* 4: Config of trigger <STRING>
|
||||
* 5: Variables required for the trigger type <ARRAY>
|
||||
* 6: Should direction be set <BOOL>
|
||||
* 6: Explosive placeholder <OBJECT> <OPTIONAL>
|
||||
*
|
||||
* Return Value:
|
||||
* Placed explosive <OBJECT>
|
||||
@ -21,16 +21,10 @@
|
||||
* Public: Yes
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_pos", "_dir", "_magazineClass", "_ammo", "_triggerSpecificVars", "_unit", "_triggerConfig", "_explosive"];
|
||||
_unit = _this select 0;
|
||||
_pos = _this select 1;
|
||||
_dir = _this select 2;
|
||||
_magazineClass = _this select 3;
|
||||
_triggerConfig = _this select 4;
|
||||
_triggerSpecificVars = _this select 5;
|
||||
_setDir = true;
|
||||
private ["_ammo", "_explosive"];
|
||||
EXPLODE_6_PVT(_this,_unit,_pos,_dir,_magazineClass,_triggerConfig,_triggerSpecificVars);
|
||||
if (count _this > 6) then {
|
||||
_setDir = _this select 6;
|
||||
deleteVehicle (_this select 6);
|
||||
};
|
||||
|
||||
if (isNil "_triggerConfig") exitWith {
|
||||
@ -51,11 +45,19 @@ if (isText(_magazineTrigger >> "ammo")) then {
|
||||
_ammo = getText (_magazineTrigger >> "ammo");
|
||||
};
|
||||
_triggerSpecificVars pushBack _triggerConfig;
|
||||
private ["_defuseHelper"];
|
||||
_defuseHelper = createVehicle ["ACE_DefuseObject", _pos, [], 0, "NONE"];
|
||||
_defuseHelper setPosATL _pos;
|
||||
|
||||
_explosive = createVehicle [_ammo, _pos, [], 0, "NONE"];
|
||||
_defuseHelper attachTo [_explosive, [0,0,0], ""];
|
||||
_defuseHelper setVariable [QGVAR(Explosive),_explosive,true];
|
||||
|
||||
_expPos = getPosATL _explosive;
|
||||
_defuseHelper setPosATL (((getPosATL _defuseHelper) vectorAdd (_pos vectorDiff _expPos)));
|
||||
_explosive setPosATL _pos;
|
||||
|
||||
if (isText(_triggerConfig >> "onPlace") && {[_unit,_explosive,_magazineClass,_triggerSpecificVars]
|
||||
call compile (getText (_triggerConfig >> "onPlace"))}) exitWith {_explosive};
|
||||
if (_setDir) then {
|
||||
[[_explosive, _dir, getNumber (_magazineTrigger >> "pitch")], QFUNC(setPosition)]
|
||||
call EFUNC(common,execRemoteFnc);
|
||||
};
|
||||
[[_explosive, _dir, getNumber (_magazineTrigger >> "pitch")], QFUNC(setPosition)] call EFUNC(common,execRemoteFnc);
|
||||
_explosive
|
||||
|
@ -23,10 +23,10 @@ private ["_mag", "_setup", "_player"];
|
||||
_setup = GVAR(Setup);
|
||||
GVAR(Setup) = objNull;
|
||||
[GVAR(placer), "ACE_Explosives", false] call EFUNC(Common,setForceWalkStatus);
|
||||
[ACE_player, "DefaultAction", ACE_player getVariable [QGVAR(Place), -1]] call EFUNC(Common,removeActionEventHandler);
|
||||
[ACE_player, "MenuBack", ACE_player getVariable [QGVAR(Cancel), -1]] call EFUNC(Common,removeActionEventHandler);
|
||||
GVAR(placer) = objNull;
|
||||
_player = ACE_player;
|
||||
[_player, "DefaultAction", _player getVariable [QGVAR(Place), -1]] call EFUNC(Common,removeActionEventHandler);
|
||||
[_player, "MenuBack", _player getVariable [QGVAR(Cancel), -1]] call EFUNC(Common,removeActionEventHandler);
|
||||
call EFUNC(interaction,hideMouseHint);
|
||||
if ((_setup getVariable [QGVAR(Class), ""]) == "") exitWith {
|
||||
deleteVehicle _setup;
|
||||
@ -39,67 +39,7 @@ if (_dir > 180) then {
|
||||
};
|
||||
_setup setVariable [QGVAR(Direction), _dir];
|
||||
_player setVariable [QGVAR(PlantingExplosive), true];
|
||||
_setup addEventHandler ["EpeContactStart", {
|
||||
if (!((_this select 0) getVariable [QGVAR(Handled), false])) then {
|
||||
private ["_player", "_pos", "_attachTo"];
|
||||
_player = ACE_player;
|
||||
_player setVariable [QGVAR(PlantingExplosive), false];
|
||||
_pos = getPosATL (_this select 0);
|
||||
(_this select 0) enableSimulationGlobal false;
|
||||
if (surfaceIsWater _pos) then {
|
||||
_pos = getPosASL (_this select 0);
|
||||
(_this select 0) setPosASL _pos;
|
||||
}else{
|
||||
(_this select 0) setPosATL _pos;
|
||||
};
|
||||
(_this select 0) setVariable [QGVAR(Handled), true];
|
||||
_attachTo = objNull;
|
||||
if (!isNull (_this select 1) && {(_this select 1) isKindOf "AllVehicles"}) then {
|
||||
_attachTo = (_this select 1);
|
||||
};
|
||||
[(_this select 0),_attachTo, _pos] spawn { // TODO: Change to scheduled delay execution
|
||||
private ["_mag", "_setup", "_dir", "_player"];
|
||||
_setup = _this select 0;
|
||||
_player = ACE_player;
|
||||
_mag = _setup getVariable [QGVAR(Class), ""];
|
||||
_dir = _setup getVariable [QGVAR(Direction), 0];
|
||||
|
||||
sleep getNumber(ConfigFile >> "CfgMagazines" >> _mag >> "ACE_DelayTime");
|
||||
_explosive = [_player, _this select 2, _dir, _mag, _setup getVariable QGVAR(Trigger),
|
||||
[_setup getVariable QGVAR(Timer)], isNull (_this select 1)] call FUNC(placeExplosive);
|
||||
deleteVehicle _setup;
|
||||
if (!isNull(_explosive)) then {
|
||||
_player RemoveMagazine _mag;
|
||||
if (!isNull (_this select 1)) then {
|
||||
_explosive attachTo [(_this select 1)];
|
||||
_dir = _dir - (getDir (_this select 1));
|
||||
[[_explosive, _dir, 0], QFUNC(setPosition)] call EFUNC(common,execRemoteFnc);
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}];
|
||||
_setup addEventHandler ["EpeContactStart", FUNC(onLanded)];
|
||||
_setup enableSimulationGlobal true;
|
||||
_player playActionNow "MedicOther";
|
||||
[_setup] spawn { // TODO: Change to scheduled delay execution
|
||||
private ["_setup", "_player"];
|
||||
_setup = _this select 0;
|
||||
_player = ACE_player;
|
||||
sleep 5;
|
||||
_player setVariable [QGVAR(PlantingExplosive), false];
|
||||
if (!isNull _setup) then {
|
||||
private ["_mag", "_dir", "_delayTime"];
|
||||
_mag = _setup getVariable [QGVAR(Class), ""];
|
||||
_dir = _setup getVariable [QGVAR(Direction), 0];
|
||||
_delayTime = (getNumber(ConfigFile >> "CfgMagazines" >> _mag >> "ACE_DelayTime")) - 5;
|
||||
if (_delayTime > 0) then {
|
||||
sleep _delayTime;
|
||||
};
|
||||
if (!isNull _setup) then {
|
||||
[_player, GetPosATL _setup, _dir, _mag, _setup getVariable QGVAR(Trigger),
|
||||
[_setup getVariable QGVAR(Timer)], true] call FUNC(placeExplosive);
|
||||
deleteVehicle _setup;
|
||||
_player RemoveMagazine _mag;
|
||||
};
|
||||
};
|
||||
};
|
||||
_player removeMagazine (_setup getVariable [QGVAR(Class), ""]);
|
||||
|
@ -29,4 +29,4 @@ if (isNil {GVAR(placer)}) then {
|
||||
GVAR(placer) = objNull;
|
||||
call EFUNC(interaction,hideMouseHint);
|
||||
[ACE_player, "DefaultAction", ACE_player getVariable [QGVAR(Place), -1]] call EFUNC(Common,removeActionEventHandler);
|
||||
[ACE_player, "MenuBack", ACE_player getVariable [QGVAR(Cancel), -1]] call EFUNC(Common,removeActionEventHandler);
|
||||
[ACE_player, "zoomtemp", ACE_player getVariable [QGVAR(Cancel), -1]] call EFUNC(Common,removeActionEventHandler);
|
||||
|
@ -3,26 +3,26 @@
|
||||
* Selects a trigger for an explosive.
|
||||
*
|
||||
* Arguments:
|
||||
* 0: Magazine <STRING>
|
||||
* 1: Trigger mode <STRING>
|
||||
* 0: Explosive <OBJECT>
|
||||
* 1: Magazine <STRING>
|
||||
* 2: Trigger mode <STRING>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* ["SatchelCharge_Remote_Mag","Timer"] call ACE_Explosives_fnc_selectTrigger;
|
||||
* [_explosive, "SatchelCharge_Remote_Mag","Timer"] call ACE_Explosives_fnc_selectTrigger;
|
||||
*
|
||||
* Public: No
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_magazine","_trigger"];
|
||||
private ["_config"];
|
||||
closeDialog 0;
|
||||
_magazine = _this select 0;
|
||||
_trigger = _this select 1;
|
||||
_config = ConfigFile >> "CfgACE_Triggers" >> _trigger;
|
||||
call EFUNC(interaction,hideMenu);
|
||||
EXPLODE_3_PVT(_this,_explosive,_magazine,_trigger);
|
||||
_config = ConfigFile >> "CfgACE_Triggers" >> _trigger;
|
||||
|
||||
// If the onSetup function returns true, it is handled elsewhere
|
||||
if (isText(_config >> "onSetup") && {[_magazine] call compile getText (_config >> "onSetup")}) exitWith {};
|
||||
if (isText(_config >> "onSetup") && {[_explosive,_magazine] call compile getText (_config >> "onSetup")}) exitWith {};
|
||||
|
||||
[ACE_player, _magazine, _trigger] call FUNC(setupExplosive);
|
||||
[ACE_player, getPosATL _explosive, _explosive getVariable [QGVAR(Direction), 0],_magazine, _trigger, [], _explosive] call ACE_Explosives_fnc_placeExplosive;
|
||||
|
@ -16,10 +16,8 @@
|
||||
* Public: Yes
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private "_ex";
|
||||
_ex = _this select 0;
|
||||
_ex setDir (_this select 1);
|
||||
if ((_this select 2) != 0) then {
|
||||
[_ex, _this select 2, 0] call CALLSTACK(BIS_fnc_setPitchBank);
|
||||
EXPLODE_3_PVT(_this,_explosive,_direction,_pitch);
|
||||
_explosive setDir _direction;
|
||||
if (_pitch != 0) then {
|
||||
[_explosive, _pitch, 0] call CALLSTACK(BIS_fnc_setPitchBank);
|
||||
};
|
||||
//_ex setVectorUp (surfaceNormal _pos);
|
||||
|
@ -5,60 +5,45 @@
|
||||
* Arguments:
|
||||
* 0: Unit <OBJECT>
|
||||
* 1: Classname of explosive to place. (CfgMagazine class) <STRING>
|
||||
* 2: Trigger Config <CONFIG>
|
||||
* 3: Timer (optional) <NUMBER>
|
||||
*
|
||||
* Return Value:
|
||||
* None
|
||||
*
|
||||
* Example:
|
||||
* [player, "SatchelCharge_Remote_Mag", "Command"] call ACE_Explosives_fnc_SetupExplosive;
|
||||
* [player, "SatchelCharge_Remote_Mag"] call ACE_Explosives_fnc_SetupExplosive;
|
||||
*
|
||||
* Public: Yes
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_unit", "_class", "_config", "_timer"];
|
||||
_unit = _this select 0;
|
||||
_class = _this select 1;
|
||||
_config = _this select 2;
|
||||
_timer = _this select 3;
|
||||
closeDialog 0;
|
||||
EXPLODE_2_PVT(_this,_unit,_class);
|
||||
GVAR(placer) = _unit;
|
||||
// Commented out due to the fact there is a distinction between who can deactivate mines and who can plant them in standard configs.
|
||||
// Would require custom config entries (ACE_ExplosiveSpecialist/ACE_Specialist) which excludes custom mods.
|
||||
//if (ACE_Explosives_RequireSpecialist && {!([_unit] call ACE_Core_fnc_isEOD)}) exitWith {};
|
||||
if (isNil "_config") then {
|
||||
_config = getArray(ConfigFile >> "CfgMagazines" >> _class >> "ACE_Triggers" >> "SupportedTriggers") select 0;
|
||||
};
|
||||
|
||||
GVAR(Setup) = getText(ConfigFile >> "CfgMagazines" >> _class >> "ACE_SetupObject") createVehicleLocal [0,0,-10000];
|
||||
// TODO: check MP performance and MP compatible.
|
||||
GVAR(Setup) = createVehicle [getText(ConfigFile >> "CfgMagazines" >> _class >> "ACE_SetupObject"),[0,0,-10000],[], 0, "NONE"];
|
||||
|
||||
GVAR(Setup) enableSimulationGlobal false;
|
||||
GVAR(Setup) setVariable [QGVAR(Class), _class];
|
||||
GVAR(Setup) setVariable [QGVAR(Trigger), _config];
|
||||
//GVAR(Setup) setVariable [QGVAR(Offset), GetArray(ConfigFile >> "CfgVehicles" >> typeof GVAR(Setup) >> "ACE_Offset")];
|
||||
if (!isNil "_timer") then {
|
||||
GVAR(Setup) setVariable [QGVAR(Timer), _timer];
|
||||
};
|
||||
GVAR(Setup) setVariable [QGVAR(class), _class, true];
|
||||
|
||||
[_unit, "ACE_Explosives", true] call EFUNC(common,setForceWalkStatus);
|
||||
GVAR(TweakedAngle) = 180;
|
||||
|
||||
[QGVAR(Placement),"OnEachFrame", {
|
||||
private "_player";
|
||||
_player = ACE_player;
|
||||
if (GVAR(placer) != _player) exitWith {
|
||||
call FUNC(place_Cancel);
|
||||
};
|
||||
GVAR(pfeh_running) = true;
|
||||
_pos = (ASLtoATL eyePos _player) vectorAdd (positionCameraToWorld [0,0,1] vectorDiff positionCameraToWorld [0,0,0]);
|
||||
//_pos = _pos vectorAdd ((VectorDir GVAR(Setup)) vectorCrossProduct (GVAR(Setup) getVariable [QGVAR(Offset), [0,0,0]]));
|
||||
GVAR(Setup) setPosATL _pos;
|
||||
if (ACE_Modifier == 0) then {
|
||||
GVAR(Setup) setDir (GVAR(TweakedAngle) + getDir _player);
|
||||
};
|
||||
private "_player";
|
||||
_player = ACE_player;
|
||||
if (GVAR(placer) != _player) exitWith {
|
||||
call FUNC(place_Cancel);
|
||||
};
|
||||
GVAR(pfeh_running) = true;
|
||||
_pos = (ASLtoATL eyePos _player) vectorAdd (positionCameraToWorld [0,0,1] vectorDiff positionCameraToWorld [0,0,0]);
|
||||
GVAR(Setup) setPosATL _pos;
|
||||
if (ACE_Modifier == 0) then {
|
||||
GVAR(Setup) setDir (GVAR(TweakedAngle) + getDir _player);
|
||||
};
|
||||
}] call CALLSTACK(BIS_fnc_addStackedEventHandler);
|
||||
|
||||
[localize "STR_ACE_Explosives_PlaceAction", localize "STR_ACE_Explosives_CancelAction",
|
||||
localize "STR_ACE_Explosives_ScrollAction"] call EFUNC(interaction,showMouseHint);
|
||||
localize "STR_ACE_Explosives_ScrollAction"] call EFUNC(interaction,showMouseHint);
|
||||
_unit setVariable [QGVAR(Place), [_unit, "DefaultAction",
|
||||
{GVAR(pfeh_running) AND !isNull (GVAR(Setup))}, {call FUNC(place_Approve);}] call EFUNC(common,AddActionEventHandler)];
|
||||
_unit setVariable [QGVAR(Cancel), [_unit, "MenuBack",
|
||||
{GVAR(pfeh_running) AND !isNull (GVAR(Setup))}, {call FUNC(place_Cancel);}] call EFUNC(common,AddActionEventHandler)];
|
||||
{GVAR(pfeh_running) AND !isNull (GVAR(Setup))}, {call FUNC(place_Approve);}] call EFUNC(common,AddActionEventHandler)];
|
||||
_unit setVariable [QGVAR(Cancel), [_unit, "zoomtemp",
|
||||
{GVAR(pfeh_running) AND !isNull (GVAR(Setup))}, {call FUNC(place_Cancel);}] call EFUNC(common,AddActionEventHandler)];
|
||||
|
@ -15,49 +15,48 @@
|
||||
* Public: Yes
|
||||
*/
|
||||
#include "script_component.hpp"
|
||||
private ["_unit","_target"];
|
||||
_unit = _this select 0;
|
||||
_target = _this select 1;
|
||||
EXPLODE_2_PVT(_this,_unit,_target);
|
||||
_target = attachedTo (_target);
|
||||
|
||||
_fnc_DefuseTime = {
|
||||
_target = _this select 1;
|
||||
EXPLODE_2_PVT(_this,_specialist,_target);
|
||||
|
||||
_defuseTime = 5;
|
||||
if (isNumber(ConfigFile >> "CfgAmmo" >> typeOf (_target) >> "ACE_DefuseTime")) then {
|
||||
_defuseTime = getNumber(ConfigFile >> "CfgAmmo" >> typeOf (_target) >> "ACE_DefuseTime");
|
||||
};
|
||||
if (!(_this select 0) && {GVAR(PunishNonSpecialists)}) then {
|
||||
_defuseTime = _defuseTime * 1.5;
|
||||
};
|
||||
_defuseTime
|
||||
_defuseTime = 5;
|
||||
if (isNumber(ConfigFile >> "CfgAmmo" >> typeOf (_target) >> "ACE_DefuseTime")) then {
|
||||
_defuseTime = getNumber(ConfigFile >> "CfgAmmo" >> typeOf (_target) >> "ACE_DefuseTime");
|
||||
};
|
||||
if (!_specialist && {GVAR(PunishNonSpecialists)}) then {
|
||||
_defuseTime = _defuseTime * 1.5;
|
||||
};
|
||||
_defuseTime
|
||||
};
|
||||
_actionToPlay = "MedicOther";
|
||||
if (STANCE _unit == "Prone") then {
|
||||
_actionToPlay = "PutDown";
|
||||
_actionToPlay = "PutDown";
|
||||
};
|
||||
|
||||
if (ACE_player != _unit) then {
|
||||
// If the unit is a player, call the function on the player.
|
||||
if (isPlayer _unit) then {
|
||||
[[_unit, _target], QFUNC(startDefuse), _unit] call EFUNC(common,execRemoteFnc);
|
||||
} else {
|
||||
// TODO: use scheduled delay execution
|
||||
[_unit, _target, [[_unit] call EFUNC(Common,isEOD), _target] call _fnc_DefuseTime] spawn {
|
||||
(_this select 0) playActionNow _actionToPlay;
|
||||
(_this select 0) disableAI "MOVE";
|
||||
(_this select 0) disableAI "TARGET";
|
||||
sleep (_this select 2);
|
||||
[(_this select 0), (_this select 1)] call FUNC(defuseExplosive);
|
||||
(_this select 0) enableAI "MOVE";
|
||||
(_this select 0) enableAI "TARGET";
|
||||
};
|
||||
};
|
||||
// If the unit is a player, call the function on the player.
|
||||
if (isPlayer _unit) then {
|
||||
[[_unit, _target], QFUNC(startDefuse), _unit] call EFUNC(common,execRemoteFnc);
|
||||
} else {
|
||||
// TODO: use scheduled delay execution
|
||||
[_unit, _target, [[_unit] call EFUNC(Common,isEOD), _target] call _fnc_DefuseTime] spawn {
|
||||
(_this select 0) playActionNow _actionToPlay;
|
||||
(_this select 0) disableAI "MOVE";
|
||||
(_this select 0) disableAI "TARGET";
|
||||
sleep (_this select 2);
|
||||
[(_this select 0), (_this select 1)] call FUNC(defuseExplosive);
|
||||
(_this select 0) enableAI "MOVE";
|
||||
(_this select 0) enableAI "TARGET";
|
||||
};
|
||||
};
|
||||
} else {
|
||||
_unit playActionNow _actionToPlay;
|
||||
private ["_defuseSeconds", "_isEOD"];
|
||||
_isEOD = [_unit] call EFUNC(Common,isEOD);
|
||||
_defuseSeconds = [_isEOD, _target] call _fnc_DefuseTime;
|
||||
if (_isEOD || {!GVAR(RequireSpecialist)}) then {
|
||||
[_defuseSeconds, [_unit,_target], {(_this select 0) call FUNC(defuseExplosive)}, {}, (localize "STR_ACE_Explosives_DefusingExplosive")] call EFUNC(common,progressBar);
|
||||
};
|
||||
_unit playActionNow _actionToPlay;
|
||||
private ["_defuseSeconds", "_isEOD"];
|
||||
_isEOD = [_unit] call EFUNC(Common,isEOD);
|
||||
_defuseSeconds = [_isEOD, _target] call _fnc_DefuseTime;
|
||||
if (_isEOD || {!GVAR(RequireSpecialist)}) then {
|
||||
[_defuseSeconds, [_unit,_target], {(_this select 0) call FUNC(defuseExplosive)}, {}, (localize "STR_ACE_Explosives_DefusingExplosive")] call EFUNC(common,progressBar);
|
||||
};
|
||||
};
|
||||
|
@ -21,6 +21,6 @@ EXPLODE_2_PVT(_this,_explosive,_delay);
|
||||
[{
|
||||
_explosive = _this;
|
||||
if (!isNull _explosive) then {
|
||||
[_explosive, -1, [_explosive, 0], true] call FUNC(detonateExplosive);
|
||||
[_explosive, -1, [_explosive, 0]] call FUNC(detonateExplosive);
|
||||
};
|
||||
}, _explosive, _delay, 0] call EFUNC(common,waitAndExecute);
|
||||
|
@ -1,494 +1,497 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Edited with tabler - 2014-12-16 -->
|
||||
<Project name="ACE">
|
||||
<Package name="Explosives">
|
||||
<Key ID="STR_ACE_Explosives_Menu">
|
||||
<English>Explosives</English>
|
||||
<German>Sprengstoffe</German>
|
||||
<Spanish>Explosivos</Spanish>
|
||||
<Polish>Ładunki wybuchowe</Polish>
|
||||
<French>Explosifs</French>
|
||||
<Czech>Výbušniny</Czech>
|
||||
<Italian>Esplosivi</Italian>
|
||||
<Hungarian>Robbanóanyagok</Hungarian>
|
||||
<Portuguese>Explosivos</Portuguese>
|
||||
<Russian>Взрывчатка</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Place">
|
||||
<English>Place >></English>
|
||||
<German>Platzieren >></German>
|
||||
<Spanish>Colocar >></Spanish>
|
||||
<Polish>Umieść >></Polish>
|
||||
<French>Placer >></French>
|
||||
<Czech>Položit >></Czech>
|
||||
<Italian>Piazza >></Italian>
|
||||
<Hungarian>Lerakás >></Hungarian>
|
||||
<Portuguese>Colocar >></Portuguese>
|
||||
<Russian>Установить >></Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Detonate">
|
||||
<English>Detonate >></English>
|
||||
<German>Zünden >></German>
|
||||
<Spanish>Detonar >></Spanish>
|
||||
<Polish>Detonuj >></Polish>
|
||||
<French>Mise à feu >></French>
|
||||
<Czech>Odpálit >></Czech>
|
||||
<Italian>Detona >></Italian>
|
||||
<Hungarian>Robbantás >></Hungarian>
|
||||
<Portuguese>Detonar >></Portuguese>
|
||||
<Russian>Подрыв >></Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_DetonateCode">
|
||||
<English>Explosive code: %1</English>
|
||||
<German>Sprengstoffcode: %1</German>
|
||||
<Spanish>Código del explosivo: %1</Spanish>
|
||||
<Polish>Kod ładunku: %1</Polish>
|
||||
<French>Code explosif: %1</French>
|
||||
<Czech>Kód výbušniny: %1</Czech>
|
||||
<Italian>Codice dell'esplosivo : %1</Italian>
|
||||
<Hungarian>Robbanóanyag kódja: %1</Hungarian>
|
||||
<Portuguese>Código do explosivo: %1</Portuguese>
|
||||
<Russian>Взрывная код: %1</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_PlaceAction">
|
||||
<English>Place</English>
|
||||
<German>Platzieren</German>
|
||||
<Spanish>Colocar</Spanish>
|
||||
<Polish>Umieść</Polish>
|
||||
<French>Placer</French>
|
||||
<Czech>Položit</Czech>
|
||||
<Italian>Piazza</Italian>
|
||||
<Hungarian>Elhelyezés</Hungarian>
|
||||
<Portuguese>Colocar</Portuguese>
|
||||
<Russian>Положить</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_CancelAction">
|
||||
<English>Cancel</English>
|
||||
<German>Abbrechen</German>
|
||||
<Spanish>Cancelar</Spanish>
|
||||
<Polish>Anuluj</Polish>
|
||||
<French>Annuler</French>
|
||||
<Czech>Zrušit</Czech>
|
||||
<Italian>Annulla</Italian>
|
||||
<Hungarian>Mégsem</Hungarian>
|
||||
<Portuguese>Cancelar</Portuguese>
|
||||
<Russian>Отмена</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_ScrollAction">
|
||||
<English>+ Modifier, rotates</English>
|
||||
<German>+ Modifikator, drehen</German>
|
||||
<Spanish>+ Modificador, girar</Spanish>
|
||||
<French>+ Modificateur, tourner</French>
|
||||
<Italian>+ Modificatore, rotazione</Italian>
|
||||
<Czech>+ Otočit</Czech>
|
||||
<Hungarian>+ Változtatás, forgatás</Hungarian>
|
||||
<Polish>+ modyfikator, obracanie</Polish>
|
||||
<Portuguese>+ Modificador, rotaciona</Portuguese>
|
||||
<Russian>+ Bращать</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Jammer_TurnOn">
|
||||
<English>Turn On Thor III</English>
|
||||
<German>Thor III aktivieren</German>
|
||||
<Spanish>Encender Thor III</Spanish>
|
||||
<Polish>Włącz Thor III</Polish>
|
||||
<French>Allumer Thor III</French>
|
||||
<Czech>Zapnout Thor III</Czech>
|
||||
<Italian>Accendi Thor III</Italian>
|
||||
<Hungarian>Thor III bekapcsolása</Hungarian>
|
||||
<Portuguese>Ativar Thor III</Portuguese>
|
||||
<Russian>Активировать Thor III</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Jammer_TurnOff">
|
||||
<English>Turn Off Thor III</English>
|
||||
<German>Thor III deaktivieren</German>
|
||||
<Spanish>Apagar Thor III</Spanish>
|
||||
<Polish>Wyłącz Thor III</Polish>
|
||||
<French>Éteindre Thor III</French>
|
||||
<Czech>Vypnout Thor III</Czech>
|
||||
<Italian>Spegni Thor III</Italian>
|
||||
<Hungarian>Thor III kikapcsolása</Hungarian>
|
||||
<Portuguese>Desativar Thor III</Portuguese>
|
||||
<Russian>Деактивировать Thor III</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_cellphone_displayName">
|
||||
<English>Cellphone</English>
|
||||
<German>Mobiltelefon</German>
|
||||
<Spanish>Télefono móvil</Spanish>
|
||||
<Polish>Telefon komórkowy</Polish>
|
||||
<French>Téléphone Portable</French>
|
||||
<Czech>Telefon</Czech>
|
||||
<Italian>Cellulare</Italian>
|
||||
<Hungarian>Mobil</Hungarian>
|
||||
<Portuguese>Celular</Portuguese>
|
||||
<Russian>Сотовый телефон</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_cellphone_description">
|
||||
<English>Used to remotely trigger explosives</English>
|
||||
<German>Wird benutzt um Sprengstoffe fernzuzünden</German>
|
||||
<Spanish>Usado para detonar remotamente explosivos</Spanish>
|
||||
<Polish>Używany do zdalnego detonowania ładunków wybuchowych</Polish>
|
||||
<French>Utilisé pour déclencher des explosifs à distance</French>
|
||||
<Czech>Používaný ke vzdálenému odpalování výbušnin</Czech>
|
||||
<Italian>Usato per l'attivazione a distanza degli esplosivi</Italian>
|
||||
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
|
||||
<Portuguese>Usado para acionar explosivos remotamente</Portuguese>
|
||||
<Russian>Используется для удаленного запуска взрывчатку</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_clacker_displayName">
|
||||
<English>M57 Firing Device</English>
|
||||
<German>M57 Zündvorrichtung</German>
|
||||
<Spanish>Dispositivo de detonación M57</Spanish>
|
||||
<Polish>Zapalnik M57</Polish>
|
||||
<French>M57 Dispositif de mise à feu</French>
|
||||
<Czech>M57 Odpalovací Zařízení</Czech>
|
||||
<Italian>Detonatore M57</Italian>
|
||||
<Hungarian>M57 Detonátor</Hungarian>
|
||||
<Portuguese>M57 Dispositivo de Detonação</Portuguese>
|
||||
<Russian>Взрыватель M57</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_clacker_description">
|
||||
<English>Used to remotely trigger explosives</English>
|
||||
<German>Wird benutzt um Sprengstoffe fernzuzünden</German>
|
||||
<Spanish>Usado para detonar remotamente explosivos</Spanish>
|
||||
<Polish>Używany do zdalnego detonowania ładunków wybuchowych</Polish>
|
||||
<French>Utilisé pour déclencher des explosifs à distance</French>
|
||||
<Czech>Použévané ke vzdálenému odpalování výbušnin</Czech>
|
||||
<Italian>Usato per l'attivazione a distanza degli esplosivi</Italian>
|
||||
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
|
||||
<Portuguese>Usado para acionar explosivos remotamente</Portuguese>
|
||||
<Russian>Используется для удаленного запуска взрывчатку</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_M26_displayName">
|
||||
<English>M26 Firing Device</English>
|
||||
<German>M26 Zündvorrichtung</German>
|
||||
<Spanish>Dispositivo de detonación MK26</Spanish>
|
||||
<Polish>Zapalnik M26</Polish>
|
||||
<French>M26 Dispositif de mise à feu</French>
|
||||
<Czech>M26 Odpalovací Zařízení</Czech>
|
||||
<Italian>Detonatore M26</Italian>
|
||||
<Hungarian>M26 Detonátor</Hungarian>
|
||||
<Portuguese>M26 Dispositivo de Detonação</Portuguese>
|
||||
<Russian>Взрыватель M26</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_MK16_displayName">
|
||||
<English>M152 RAMS</English>
|
||||
<German>M152 RAMS</German>
|
||||
<Czech>M152 RAMS</Czech>
|
||||
<French>M152 RAMS</French>
|
||||
<Hungarian>M152 RAMS</Hungarian>
|
||||
<Polish>M152 RAMS</Polish>
|
||||
<Portuguese>M152 RAMS</Portuguese>
|
||||
<Russian>M152 RAMS</Russian>
|
||||
<Spanish>M152 RAMS</Spanish>
|
||||
<Italian>M152 RAMS</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_DefusalKit_displayName">
|
||||
<English>Defusal Kit</English>
|
||||
<German>Entschärfungskit</German>
|
||||
<Spanish>Kit de desactivación</Spanish>
|
||||
<Polish>Zestaw do rozbrajania</Polish>
|
||||
<French>Kit de désamorçage</French>
|
||||
<Czech>Zneškodňovací sada</Czech>
|
||||
<Italian>Kit E.O.D.</Italian>
|
||||
<Hungarian>Hatástalanító felszerelés</Hungarian>
|
||||
<Portuguese>Kit de desarme</Portuguese>
|
||||
<Russian>Разминирование комплект</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_DefusalKit_description">
|
||||
<English>Allows defusing of explosives</English>
|
||||
<German>Erlaubt die Entschärfung von Sprengstoffen</German>
|
||||
<Spanish>Permite desactivar explosivos</Spanish>
|
||||
<Polish>Umożliwia rozbrajanie ładunków wybuchowych</Polish>
|
||||
<French>Permet de désamorçer des explosifs</French>
|
||||
<Czech>Dovoluje zneškodňování výbušnin</Czech>
|
||||
<Italian>Consente la disattivazione degli ordigni esplosivi</Italian>
|
||||
<Hungarian>Robbanóanyagok hatástalanításához</Hungarian>
|
||||
<Portuguese>Permite o desarme de explosivos</Portuguese>
|
||||
<Russian>Allows defusing of explosives</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Phone_AddToSpeedDial">
|
||||
<English>Add to Speed Dial</English>
|
||||
<German>Zur Schnellauswahl hinzufügen</German>
|
||||
<Spanish>Agregar a marcado rápido</Spanish>
|
||||
<Polish>Dodaj do szybkiego wybierania</Polish>
|
||||
<French>Ajouter à la composition rapide</French>
|
||||
<Czech>Přidat jako rychlou volbu</Czech>
|
||||
<Italian>Aggiungi alla selezione rapida</Italian>
|
||||
<Hungarian>Hozzáadás gyorshíváshoz</Hungarian>
|
||||
<Portuguese>Adicionar à ligação rápida</Portuguese>
|
||||
<Russian>Добавить в ускоренный набор</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Clear">
|
||||
<English>Clear</English>
|
||||
<German>Löschen</German>
|
||||
<Spanish>Borrar</Spanish>
|
||||
<Polish>Usuń</Polish>
|
||||
<French>Désamorçé</French>
|
||||
<Czech>Čistý</Czech>
|
||||
<Italian>Libera</Italian>
|
||||
<Hungarian>Törlés</Hungarian>
|
||||
<Portuguese>Limpar</Portuguese>
|
||||
<Russian>Pассеиваться</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Phone_Dial">
|
||||
<English>Dial</English>
|
||||
<German>Wählen</German>
|
||||
<Spanish>Marcar</Spanish>
|
||||
<Polish>Wybierz mumer</Polish>
|
||||
<French>Composer</French>
|
||||
<Czech>Vytočit</Czech>
|
||||
<Italian>Composizione numero</Italian>
|
||||
<Hungarian>Tárcsázás</Hungarian>
|
||||
<Portuguese>Discar</Portuguese>
|
||||
<Russian>Hабрать</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Phone_Up">
|
||||
<English>Up</English>
|
||||
<German>Hoch</German>
|
||||
<Spanish>Arriba</Spanish>
|
||||
<Polish>W górę</Polish>
|
||||
<French>Haut</French>
|
||||
<Czech>Nahoru</Czech>
|
||||
<Italian>Sopra</Italian>
|
||||
<Hungarian>Fel</Hungarian>
|
||||
<Portuguese>Cima</Portuguese>
|
||||
<Russian>Поднять</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Phone_Down">
|
||||
<English>Down</English>
|
||||
<German>Runter</German>
|
||||
<Spanish>Abajo</Spanish>
|
||||
<Polish>W dół</Polish>
|
||||
<French>Bas</French>
|
||||
<Czech>Dolu</Czech>
|
||||
<Italian>Sotto</Italian>
|
||||
<Hungarian>Le</Hungarian>
|
||||
<Portuguese>Baixo</Portuguese>
|
||||
<Russian>Опустить</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Cancel">
|
||||
<English>Cancel</English>
|
||||
<German>Abbrechen</German>
|
||||
<Spanish>Cancelar</Spanish>
|
||||
<Polish>Anuluj</Polish>
|
||||
<French>Annuler</French>
|
||||
<Czech>Zrušit</Czech>
|
||||
<Italian>Annulla</Italian>
|
||||
<Hungarian>Mégsem</Hungarian>
|
||||
<Portuguese>Cancelar</Portuguese>
|
||||
<Russian>Отмена</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_DetonateMenu">
|
||||
<English>Detonate Menu</English>
|
||||
<German>"Zünden"-Menü</German>
|
||||
<Spanish>Menú de detonación</Spanish>
|
||||
<Polish>Menu detonowania</Polish>
|
||||
<French>Menu de mise à feu</French>
|
||||
<Czech>Menu Detonace</Czech>
|
||||
<Italian>Menù di detonazione</Italian>
|
||||
<Hungarian>Robbantás menü</Hungarian>
|
||||
<Portuguese>Menu de detonação</Portuguese>
|
||||
<Russian>Меню Подрыв</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_PlaceMenu">
|
||||
<English>Place Menu</English>
|
||||
<German>"Platzieren"-Menü</German>
|
||||
<Spanish>Menú de colocación</Spanish>
|
||||
<Polish>Menu umieszczania</Polish>
|
||||
<French>Menu Placement</French>
|
||||
<Czech>Menu Umístění</Czech>
|
||||
<Italian>Menù di collocamento</Italian>
|
||||
<Hungarian>Lerakás menü</Hungarian>
|
||||
<Portuguese>Menu de posicionamento</Portuguese>
|
||||
<Russian>Меню Установить</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Defuse">
|
||||
<English>Defuse</English>
|
||||
<German>Entschärfen</German>
|
||||
<Spanish>Desactivar</Spanish>
|
||||
<Polish>Rozbrój</Polish>
|
||||
<French>Désamorçer</French>
|
||||
<Czech>Zneškodnit</Czech>
|
||||
<Italian>Disinnesca</Italian>
|
||||
<Hungarian>Hatástalanítás</Hungarian>
|
||||
<Portuguese>Desarmar</Portuguese>
|
||||
<Russian>Обезвредить</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_DefusingExplosive">
|
||||
<English>Defusing Explosive...</English>
|
||||
<German>Entschärfe Sprengstoff...</German>
|
||||
<Spanish>Desactivando explosivo...</Spanish>
|
||||
<Polish>Rozbrajanie ładunku...</Polish>
|
||||
<French>Désamorçage des explosifs...</French>
|
||||
<Czech>Zneškodňuji Výbušninu...</Czech>
|
||||
<Italian>Esposivo in fase di disattivazione...</Italian>
|
||||
<Hungarian>Robbanóanyag hatástalaníása...</Hungarian>
|
||||
<Portuguese>Desarmando Explosivo...</Portuguese>
|
||||
<Russian>Обезвреживание...</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_timerName">
|
||||
<English>Timer</English>
|
||||
<German>Zeitzünder</German>
|
||||
<Spanish>Temporizador</Spanish>
|
||||
<Polish>Czasomierz</Polish>
|
||||
<French>Retard</French>
|
||||
<Czech>Časovač</Czech>
|
||||
<Italian>Cronometro</Italian>
|
||||
<Hungarian>Időzített</Hungarian>
|
||||
<Portuguese>Timer</Portuguese>
|
||||
<Russian>Временной</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_TimerMenu">
|
||||
<English>Time: %1m %2s</English>
|
||||
<German>Zeit: %1m %2s</German>
|
||||
<Spanish>Tiempo: %1m %2s</Spanish>
|
||||
<Polish>Czas: %1m %2s</Polish>
|
||||
<French>Temps : %1m %2s</French>
|
||||
<Czech>Čas: %1m %2s</Czech>
|
||||
<Italian>Tempo : %1m %2s</Italian>
|
||||
<Hungarian>Idő: %1m %2s</Hungarian>
|
||||
<Portuguese>Tempo: %1m %2s</Portuguese>
|
||||
<Russian>Tемп: %1m %2c</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_SetTime">
|
||||
<English>Set Time</English>
|
||||
<German>Zeit einstellen</German>
|
||||
<Spanish>Configurar tiempo</Spanish>
|
||||
<Polish>Ustaw czas</Polish>
|
||||
<French>Régler retard</French>
|
||||
<Czech>Nastavit Čas</Czech>
|
||||
<Italian>Modifica il conto alla rovescia</Italian>
|
||||
<Hungarian>Idő állítása</Hungarian>
|
||||
<Portuguese>Configurar Tempo</Portuguese>
|
||||
<Russian>Xронометр</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_TriggerMenu">
|
||||
<English>Select a Trigger</English>
|
||||
<German>Wähle einen Zünder</German>
|
||||
<Spanish>Seleccionar un disparador</Spanish>
|
||||
<Polish>Wybierz zapalnik</Polish>
|
||||
<French>Sélectionner une mise à feu</French>
|
||||
<Czech>Zvolit Detonátor</Czech>
|
||||
<Italian>Seleziona un Attivatore</Italian>
|
||||
<Hungarian>Detonátor kiválasztása</Hungarian>
|
||||
<Portuguese>Selecionar um Gatilho</Portuguese>
|
||||
<Russian>Выберите</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_SelectTrigger">
|
||||
<English>Select</English>
|
||||
<German>Wählen</German>
|
||||
<Spanish>Seleccionar</Spanish>
|
||||
<Polish>Wybierz</Polish>
|
||||
<French>Sélectionner</French>
|
||||
<Czech>Zvolit</Czech>
|
||||
<Italian>Seleziona</Italian>
|
||||
<Hungarian>Kiválasztás</Hungarian>
|
||||
<Portuguese>Selecionar</Portuguese>
|
||||
<Russian>Выбрать защелка</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_PressurePlate">
|
||||
<English>Pressure Plate</English>
|
||||
<Polish>Płyta naciskowa</Polish>
|
||||
<Spanish>Placa de presión</Spanish>
|
||||
<German>Druckplatte</German>
|
||||
<French>Plaque de pression</French>
|
||||
<Czech>Nášlapná nástraha</Czech>
|
||||
<Italian>Piastra a Pressione</Italian>
|
||||
<Hungarian>Nyomólap</Hungarian>
|
||||
<Portuguese>Placa de pressão</Portuguese>
|
||||
<Russian>Давление</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_TripWire">
|
||||
<English>Tripwire</English>
|
||||
<Polish>Linka naciągu</Polish>
|
||||
<Spanish>Cable trampa</Spanish>
|
||||
<German>Stolperdraht</German>
|
||||
<French>Fil de butée</French>
|
||||
<Czech>Nástražný drát</Czech>
|
||||
<Italian>Filo a Inciampo</Italian>
|
||||
<Hungarian>Botlódrót</Hungarian>
|
||||
<Portuguese>Linha de tração</Portuguese>
|
||||
<Russian>Натяжной</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_IRSensor">
|
||||
<English>IR Sensor</English>
|
||||
<Polish>Czujnik podczerwieni</Polish>
|
||||
<Spanish>Sensor IR</Spanish>
|
||||
<German>Infrarotsensor</German>
|
||||
<French>Capteur IR</French>
|
||||
<Czech>IR Značkovač</Czech>
|
||||
<Italian>Sensore IR</Italian>
|
||||
<Hungarian>IR szenzor</Hungarian>
|
||||
<Portuguese>Sensor IV</Portuguese>
|
||||
<Russian>ИК</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_NoTriggersAvailable">
|
||||
<English>No triggers available for %1</English>
|
||||
<Polish>Brak dostępnych zapalników dla %1</Polish>
|
||||
<Spanish>No hay detonadores disponibles para %1</Spanish>
|
||||
<German>Keine Auslöser vorhanden für %1</German>
|
||||
<French>Pas de mise à feu disponible pour %1</French>
|
||||
<Czech>Žádný detonátor k dispozici pro %1</Czech>
|
||||
<Italian>Nessun attivatore disponibile per %1</Italian>
|
||||
<Hungarian>Nincs detonátor a %1</Hungarian>
|
||||
<Portuguese>Nenhum gatilho disponível para %1</Portuguese>
|
||||
<Russian>Нет защелка доступны для %1</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_SLAME_IRSensor">
|
||||
<English>IR Sensor (Side Attack)</English>
|
||||
<Polish>Czujnik podczerwieni (wybuch na bok)</Polish>
|
||||
<Spanish>Sensor IR (ataque lateral)</Spanish>
|
||||
<German>Infrarotsensor (Seitenangriff)</German>
|
||||
<French>Capteur IR (de flanc)</French>
|
||||
<Czech>IR Značkovač (Výbuch stranou)</Czech>
|
||||
<Italian>Sensore IR (Attacco laterale)</Italian>
|
||||
<Hungarian>IR Sensor (Side Attack)</Hungarian>
|
||||
<Portuguese>Sensor infravermelho (ataque lateral)</Portuguese>
|
||||
<Russian>ИК (боковая атака)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_SLAME_Magnetic">
|
||||
<English>Magnetic Influence Sensor (Bottom Attack)</English>
|
||||
<Polish>Czujnik magnetyczny (wybuch w górę)</Polish>
|
||||
<Spanish>Sensor IM (ataque inferior)</Spanish>
|
||||
<German>Magnetfeldsensor (Bodenangriff)</German>
|
||||
<French>Capteur Magnétique (par le bas)</French>
|
||||
<Czech>Magnetický Senzor (Výbuch ze spoda)</Czech>
|
||||
<Italian>Sensore Magnetico di Prossimità (Attacco inferiore)</Italian>
|
||||
<Hungarian>Mágneses (Bottom Attack)</Hungarian>
|
||||
<Portuguese>Influência magnética (ataque inferior)</Portuguese>
|
||||
<Russian>Магнитный (дно атака)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_NoExplosivesAvailable">
|
||||
<English>No explosives on trigger.</English>
|
||||
<German>Keine Sprengladungen auf diesem Auslöser.</German>
|
||||
<Spanish>Ningún explosivo en el detonador.</Spanish>
|
||||
<French>Pas d'explosif à mettre à feu.</French>
|
||||
<Italian>Nessun esplosivo sul sensore.</Italian>
|
||||
<Czech>Žádná výbušnina k odpálení.</Czech>
|
||||
<Hungarian>Nincs robbanóanyag a detonátorhoz.</Hungarian>
|
||||
<Polish>Brak ładunków na zapalnik.</Polish>
|
||||
<Portuguese>Nenhum explosivo no gatilho.</Portuguese>
|
||||
<Russian>Нет взрывчатки на курок.</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_DeadManSwitch_displayName">
|
||||
<English>Dead Man's Switch</English>
|
||||
<German>Totmannschalter</German>
|
||||
<French>Mise à feu par relâchement de pression</French>
|
||||
<Czech>Spínač mrtvého muže</Czech>
|
||||
<Polish>Czuwak</Polish>
|
||||
<Spanish>Detonador de hombre muerto</Spanish>
|
||||
<Hungarian>Dead Man's Switch</Hungarian>
|
||||
<Russian>Кнопка мертвеца</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_DeadManSwitch_description">
|
||||
<English>Used to remotely trigger explosives when released.</English>
|
||||
<German>Zündet Sprengladungen wenn losgelassen.</German>
|
||||
<French>Déclenche la mise à feu d'un explosif lorsqu'il est libéré.</French>
|
||||
<Czech>Používaný k vzdálenému odpálení, při uvolnění odpálí výbušniny</Czech>
|
||||
<Polish>Używany w celu zdalnej detonacji ładunków kiedy jego operator zostanie zabity.</Polish>
|
||||
<Spanish>Utilizado para detonar explosivos remotamente al soltarlo.</Spanish>
|
||||
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
|
||||
<Russian>Используется для дистанционного подрыва, после смерти оператора.</Russian>
|
||||
</Key>
|
||||
</Package>
|
||||
<Package name="Explosives">
|
||||
<Key ID="STR_ACE_Explosives_Menu">
|
||||
<English>Explosives</English>
|
||||
<German>Sprengstoffe</German>
|
||||
<Spanish>Explosivos</Spanish>
|
||||
<Polish>Ładunki wybuchowe</Polish>
|
||||
<French>Explosifs</French>
|
||||
<Czech>Výbušniny</Czech>
|
||||
<Italian>Esplosivi</Italian>
|
||||
<Hungarian>Robbanóanyagok</Hungarian>
|
||||
<Portuguese>Explosivos</Portuguese>
|
||||
<Russian>Взрывчатка</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Place">
|
||||
<English>Place >></English>
|
||||
<German>Platzieren >></German>
|
||||
<Spanish>Colocar >></Spanish>
|
||||
<Polish>Umieść >></Polish>
|
||||
<French>Placer >></French>
|
||||
<Czech>Položit >></Czech>
|
||||
<Italian>Piazza >></Italian>
|
||||
<Hungarian>Lerakás >></Hungarian>
|
||||
<Portuguese>Colocar >></Portuguese>
|
||||
<Russian>Установить >></Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Detonate">
|
||||
<English>Detonate >></English>
|
||||
<German>Zünden >></German>
|
||||
<Spanish>Detonar >></Spanish>
|
||||
<Polish>Detonuj >></Polish>
|
||||
<French>Mise à feu >></French>
|
||||
<Czech>Odpálit >></Czech>
|
||||
<Italian>Detona >></Italian>
|
||||
<Hungarian>Robbantás >></Hungarian>
|
||||
<Portuguese>Detonar >></Portuguese>
|
||||
<Russian>Подрыв >></Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_DetonateCode">
|
||||
<English>Explosive code: %1</English>
|
||||
<German>Sprengstoffcode: %1</German>
|
||||
<Spanish>Código del explosivo: %1</Spanish>
|
||||
<Polish>Kod ładunku: %1</Polish>
|
||||
<French>Code explosif: %1</French>
|
||||
<Czech>Kód výbušniny: %1</Czech>
|
||||
<Italian>Codice dell'esplosivo : %1</Italian>
|
||||
<Hungarian>Robbanóanyag kódja: %1</Hungarian>
|
||||
<Portuguese>Código do explosivo: %1</Portuguese>
|
||||
<Russian>Взрывная код: %1</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_PlaceAction">
|
||||
<English>Place</English>
|
||||
<German>Platzieren</German>
|
||||
<Spanish>Colocar</Spanish>
|
||||
<Polish>Umieść</Polish>
|
||||
<French>Placer</French>
|
||||
<Czech>Položit</Czech>
|
||||
<Italian>Piazza</Italian>
|
||||
<Hungarian>Elhelyezés</Hungarian>
|
||||
<Portuguese>Colocar</Portuguese>
|
||||
<Russian>Положить</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_CancelAction">
|
||||
<English>Cancel</English>
|
||||
<German>Abbrechen</German>
|
||||
<Spanish>Cancelar</Spanish>
|
||||
<Polish>Anuluj</Polish>
|
||||
<French>Annuler</French>
|
||||
<Czech>Zrušit</Czech>
|
||||
<Italian>Annulla</Italian>
|
||||
<Hungarian>Mégsem</Hungarian>
|
||||
<Portuguese>Cancelar</Portuguese>
|
||||
<Russian>Отмена</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_ScrollAction">
|
||||
<English>+ Modifier, rotates</English>
|
||||
<German>+ Modifikator, drehen</German>
|
||||
<Spanish>+ Modificador, girar</Spanish>
|
||||
<French>+ Modificateur, tourner</French>
|
||||
<Italian>+ Modificatore, rotazione</Italian>
|
||||
<Czech>+ Otočit</Czech>
|
||||
<Hungarian>+ Változtatás, forgatás</Hungarian>
|
||||
<Polish>+ modyfikator, obracanie</Polish>
|
||||
<Portuguese>+ Modificador, rotaciona</Portuguese>
|
||||
<Russian>+ Bращать</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Jammer_TurnOn">
|
||||
<English>Turn On Thor III</English>
|
||||
<German>Thor III aktivieren</German>
|
||||
<Spanish>Encender Thor III</Spanish>
|
||||
<Polish>Włącz Thor III</Polish>
|
||||
<French>Allumer Thor III</French>
|
||||
<Czech>Zapnout Thor III</Czech>
|
||||
<Italian>Accendi Thor III</Italian>
|
||||
<Hungarian>Thor III bekapcsolása</Hungarian>
|
||||
<Portuguese>Ativar Thor III</Portuguese>
|
||||
<Russian>Активировать Thor III</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Jammer_TurnOff">
|
||||
<English>Turn Off Thor III</English>
|
||||
<German>Thor III deaktivieren</German>
|
||||
<Spanish>Apagar Thor III</Spanish>
|
||||
<Polish>Wyłącz Thor III</Polish>
|
||||
<French>Éteindre Thor III</French>
|
||||
<Czech>Vypnout Thor III</Czech>
|
||||
<Italian>Spegni Thor III</Italian>
|
||||
<Hungarian>Thor III kikapcsolása</Hungarian>
|
||||
<Portuguese>Desativar Thor III</Portuguese>
|
||||
<Russian>Деактивировать Thor III</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_cellphone_displayName">
|
||||
<English>Cellphone</English>
|
||||
<German>Mobiltelefon</German>
|
||||
<Spanish>Télefono móvil</Spanish>
|
||||
<Polish>Telefon komórkowy</Polish>
|
||||
<French>Téléphone Portable</French>
|
||||
<Czech>Telefon</Czech>
|
||||
<Italian>Cellulare</Italian>
|
||||
<Hungarian>Mobil</Hungarian>
|
||||
<Portuguese>Celular</Portuguese>
|
||||
<Russian>Сотовый телефон</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_cellphone_description">
|
||||
<English>Used to remotely trigger explosives</English>
|
||||
<German>Wird benutzt um Sprengstoffe fernzuzünden</German>
|
||||
<Spanish>Usado para detonar remotamente explosivos</Spanish>
|
||||
<Polish>Używany do zdalnego detonowania ładunków wybuchowych</Polish>
|
||||
<French>Utilisé pour déclencher des explosifs à distance</French>
|
||||
<Czech>Používaný ke vzdálenému odpalování výbušnin</Czech>
|
||||
<Italian>Usato per l'attivazione a distanza degli esplosivi</Italian>
|
||||
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
|
||||
<Portuguese>Usado para acionar explosivos remotamente</Portuguese>
|
||||
<Russian>Используется для удаленного запуска взрывчатку</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_clacker_displayName">
|
||||
<English>M57 Firing Device</English>
|
||||
<German>M57 Zündvorrichtung</German>
|
||||
<Spanish>Dispositivo de detonación M57</Spanish>
|
||||
<Polish>Zapalnik M57</Polish>
|
||||
<French>M57 Dispositif de mise à feu</French>
|
||||
<Czech>M57 Odpalovací Zařízení</Czech>
|
||||
<Italian>Detonatore M57</Italian>
|
||||
<Hungarian>M57 Detonátor</Hungarian>
|
||||
<Portuguese>M57 Dispositivo de Detonação</Portuguese>
|
||||
<Russian>Взрыватель M57</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_clacker_description">
|
||||
<English>Used to remotely trigger explosives</English>
|
||||
<German>Wird benutzt um Sprengstoffe fernzuzünden</German>
|
||||
<Spanish>Usado para detonar remotamente explosivos</Spanish>
|
||||
<Polish>Używany do zdalnego detonowania ładunków wybuchowych</Polish>
|
||||
<French>Utilisé pour déclencher des explosifs à distance</French>
|
||||
<Czech>Použévané ke vzdálenému odpalování výbušnin</Czech>
|
||||
<Italian>Usato per l'attivazione a distanza degli esplosivi</Italian>
|
||||
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
|
||||
<Portuguese>Usado para acionar explosivos remotamente</Portuguese>
|
||||
<Russian>Используется для удаленного запуска взрывчатку</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_M26_displayName">
|
||||
<English>M26 Firing Device</English>
|
||||
<German>M26 Zündvorrichtung</German>
|
||||
<Spanish>Dispositivo de detonación MK26</Spanish>
|
||||
<Polish>Zapalnik M26</Polish>
|
||||
<French>M26 Dispositif de mise à feu</French>
|
||||
<Czech>M26 Odpalovací Zařízení</Czech>
|
||||
<Italian>Detonatore M26</Italian>
|
||||
<Hungarian>M26 Detonátor</Hungarian>
|
||||
<Portuguese>M26 Dispositivo de Detonação</Portuguese>
|
||||
<Russian>Взрыватель M26</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_MK16_displayName">
|
||||
<English>M152 RAMS</English>
|
||||
<German>M152 RAMS</German>
|
||||
<Czech>M152 RAMS</Czech>
|
||||
<French>M152 RAMS</French>
|
||||
<Hungarian>M152 RAMS</Hungarian>
|
||||
<Polish>M152 RAMS</Polish>
|
||||
<Portuguese>M152 RAMS</Portuguese>
|
||||
<Russian>M152 RAMS</Russian>
|
||||
<Spanish>M152 RAMS</Spanish>
|
||||
<Italian>M152 RAMS</Italian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_DefusalKit_displayName">
|
||||
<English>Defusal Kit</English>
|
||||
<German>Entschärfungskit</German>
|
||||
<Spanish>Kit de desactivación</Spanish>
|
||||
<Polish>Zestaw do rozbrajania</Polish>
|
||||
<French>Kit de désamorçage</French>
|
||||
<Czech>Zneškodňovací sada</Czech>
|
||||
<Italian>Kit E.O.D.</Italian>
|
||||
<Hungarian>Hatástalanító felszerelés</Hungarian>
|
||||
<Portuguese>Kit de desarme</Portuguese>
|
||||
<Russian>Разминирование комплект</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_DefusalKit_description">
|
||||
<English>Allows defusing of explosives</English>
|
||||
<German>Erlaubt die Entschärfung von Sprengstoffen</German>
|
||||
<Spanish>Permite desactivar explosivos</Spanish>
|
||||
<Polish>Umożliwia rozbrajanie ładunków wybuchowych</Polish>
|
||||
<French>Permet de désamorçer des explosifs</French>
|
||||
<Czech>Dovoluje zneškodňování výbušnin</Czech>
|
||||
<Italian>Consente la disattivazione degli ordigni esplosivi</Italian>
|
||||
<Hungarian>Robbanóanyagok hatástalanításához</Hungarian>
|
||||
<Portuguese>Permite o desarme de explosivos</Portuguese>
|
||||
<Russian>Allows defusing of explosives</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Phone_AddToSpeedDial">
|
||||
<English>Add to Speed Dial</English>
|
||||
<German>Zur Schnellauswahl hinzufügen</German>
|
||||
<Spanish>Agregar a marcado rápido</Spanish>
|
||||
<Polish>Dodaj do szybkiego wybierania</Polish>
|
||||
<French>Ajouter à la composition rapide</French>
|
||||
<Czech>Přidat jako rychlou volbu</Czech>
|
||||
<Italian>Aggiungi alla selezione rapida</Italian>
|
||||
<Hungarian>Hozzáadás gyorshíváshoz</Hungarian>
|
||||
<Portuguese>Adicionar à ligação rápida</Portuguese>
|
||||
<Russian>Добавить в ускоренный набор</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Clear">
|
||||
<English>Clear</English>
|
||||
<German>Löschen</German>
|
||||
<Spanish>Borrar</Spanish>
|
||||
<Polish>Usuń</Polish>
|
||||
<French>Désamorçé</French>
|
||||
<Czech>Čistý</Czech>
|
||||
<Italian>Libera</Italian>
|
||||
<Hungarian>Törlés</Hungarian>
|
||||
<Portuguese>Limpar</Portuguese>
|
||||
<Russian>Pассеиваться</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Phone_Dial">
|
||||
<English>Dial</English>
|
||||
<German>Wählen</German>
|
||||
<Spanish>Marcar</Spanish>
|
||||
<Polish>Wybierz mumer</Polish>
|
||||
<French>Composer</French>
|
||||
<Czech>Vytočit</Czech>
|
||||
<Italian>Composizione numero</Italian>
|
||||
<Hungarian>Tárcsázás</Hungarian>
|
||||
<Portuguese>Discar</Portuguese>
|
||||
<Russian>Hабрать</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Phone_Up">
|
||||
<English>Up</English>
|
||||
<German>Hoch</German>
|
||||
<Spanish>Arriba</Spanish>
|
||||
<Polish>W górę</Polish>
|
||||
<French>Haut</French>
|
||||
<Czech>Nahoru</Czech>
|
||||
<Italian>Sopra</Italian>
|
||||
<Hungarian>Fel</Hungarian>
|
||||
<Portuguese>Cima</Portuguese>
|
||||
<Russian>Поднять</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Phone_Down">
|
||||
<English>Down</English>
|
||||
<German>Runter</German>
|
||||
<Spanish>Abajo</Spanish>
|
||||
<Polish>W dół</Polish>
|
||||
<French>Bas</French>
|
||||
<Czech>Dolu</Czech>
|
||||
<Italian>Sotto</Italian>
|
||||
<Hungarian>Le</Hungarian>
|
||||
<Portuguese>Baixo</Portuguese>
|
||||
<Russian>Опустить</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Cancel">
|
||||
<English>Cancel</English>
|
||||
<German>Abbrechen</German>
|
||||
<Spanish>Cancelar</Spanish>
|
||||
<Polish>Anuluj</Polish>
|
||||
<French>Annuler</French>
|
||||
<Czech>Zrušit</Czech>
|
||||
<Italian>Annulla</Italian>
|
||||
<Hungarian>Mégsem</Hungarian>
|
||||
<Portuguese>Cancelar</Portuguese>
|
||||
<Russian>Отмена</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_DetonateMenu">
|
||||
<English>Detonate Menu</English>
|
||||
<German>"Zünden"-Menü</German>
|
||||
<Spanish>Menú de detonación</Spanish>
|
||||
<Polish>Menu detonowania</Polish>
|
||||
<French>Menu de mise à feu</French>
|
||||
<Czech>Menu Detonace</Czech>
|
||||
<Italian>Menù di detonazione</Italian>
|
||||
<Hungarian>Robbantás menü</Hungarian>
|
||||
<Portuguese>Menu de detonação</Portuguese>
|
||||
<Russian>Меню Подрыв</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_PlaceMenu">
|
||||
<English>Place Menu</English>
|
||||
<German>"Platzieren"-Menü</German>
|
||||
<Spanish>Menú de colocación</Spanish>
|
||||
<Polish>Menu umieszczania</Polish>
|
||||
<French>Menu Placement</French>
|
||||
<Czech>Menu Umístění</Czech>
|
||||
<Italian>Menù di collocamento</Italian>
|
||||
<Hungarian>Lerakás menü</Hungarian>
|
||||
<Portuguese>Menu de posicionamento</Portuguese>
|
||||
<Russian>Меню Установить</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Defuse">
|
||||
<English>Defuse</English>
|
||||
<German>Entschärfen</German>
|
||||
<Spanish>Desactivar</Spanish>
|
||||
<Polish>Rozbrój</Polish>
|
||||
<French>Désamorçer</French>
|
||||
<Czech>Zneškodnit</Czech>
|
||||
<Italian>Disinnesca</Italian>
|
||||
<Hungarian>Hatástalanítás</Hungarian>
|
||||
<Portuguese>Desarmar</Portuguese>
|
||||
<Russian>Обезвредить</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_DefusingExplosive">
|
||||
<English>Defusing Explosive...</English>
|
||||
<German>Entschärfe Sprengstoff...</German>
|
||||
<Spanish>Desactivando explosivo...</Spanish>
|
||||
<Polish>Rozbrajanie ładunku...</Polish>
|
||||
<French>Désamorçage des explosifs...</French>
|
||||
<Czech>Zneškodňuji Výbušninu...</Czech>
|
||||
<Italian>Esposivo in fase di disattivazione...</Italian>
|
||||
<Hungarian>Robbanóanyag hatástalaníása...</Hungarian>
|
||||
<Portuguese>Desarmando Explosivo...</Portuguese>
|
||||
<Russian>Обезвреживание...</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_timerName">
|
||||
<English>Timer</English>
|
||||
<German>Zeitzünder</German>
|
||||
<Spanish>Temporizador</Spanish>
|
||||
<Polish>Czasomierz</Polish>
|
||||
<French>Retard</French>
|
||||
<Czech>Časovač</Czech>
|
||||
<Italian>Cronometro</Italian>
|
||||
<Hungarian>Időzített</Hungarian>
|
||||
<Portuguese>Timer</Portuguese>
|
||||
<Russian>Временной</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_TimerMenu">
|
||||
<English>Time: %1m %2s</English>
|
||||
<German>Zeit: %1m %2s</German>
|
||||
<Spanish>Tiempo: %1m %2s</Spanish>
|
||||
<Polish>Czas: %1m %2s</Polish>
|
||||
<French>Temps : %1m %2s</French>
|
||||
<Czech>Čas: %1m %2s</Czech>
|
||||
<Italian>Tempo : %1m %2s</Italian>
|
||||
<Hungarian>Idő: %1m %2s</Hungarian>
|
||||
<Portuguese>Tempo: %1m %2s</Portuguese>
|
||||
<Russian>Tемп: %1m %2c</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_SetTime">
|
||||
<English>Set Time</English>
|
||||
<German>Zeit einstellen</German>
|
||||
<Spanish>Configurar tiempo</Spanish>
|
||||
<Polish>Ustaw czas</Polish>
|
||||
<French>Régler retard</French>
|
||||
<Czech>Nastavit Čas</Czech>
|
||||
<Italian>Modifica il conto alla rovescia</Italian>
|
||||
<Hungarian>Idő állítása</Hungarian>
|
||||
<Portuguese>Configurar Tempo</Portuguese>
|
||||
<Russian>Xронометр</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_TriggerMenu">
|
||||
<English>Select a Trigger</English>
|
||||
<German>Wähle einen Zünder</German>
|
||||
<Spanish>Seleccionar un disparador</Spanish>
|
||||
<Polish>Wybierz zapalnik</Polish>
|
||||
<French>Sélectionner une mise à feu</French>
|
||||
<Czech>Zvolit Detonátor</Czech>
|
||||
<Italian>Seleziona un Attivatore</Italian>
|
||||
<Hungarian>Detonátor kiválasztása</Hungarian>
|
||||
<Portuguese>Selecionar um Gatilho</Portuguese>
|
||||
<Russian>Выберите</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_SelectTrigger">
|
||||
<English>Select</English>
|
||||
<German>Wählen</German>
|
||||
<Spanish>Seleccionar</Spanish>
|
||||
<Polish>Wybierz</Polish>
|
||||
<French>Sélectionner</French>
|
||||
<Czech>Zvolit</Czech>
|
||||
<Italian>Seleziona</Italian>
|
||||
<Hungarian>Kiválasztás</Hungarian>
|
||||
<Portuguese>Selecionar</Portuguese>
|
||||
<Russian>Выбрать защелка</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_PressurePlate">
|
||||
<English>Pressure Plate</English>
|
||||
<Polish>Płyta naciskowa</Polish>
|
||||
<Spanish>Placa de presión</Spanish>
|
||||
<German>Druckplatte</German>
|
||||
<French>Plaque de pression</French>
|
||||
<Czech>Nášlapná nástraha</Czech>
|
||||
<Italian>Piastra a Pressione</Italian>
|
||||
<Hungarian>Nyomólap</Hungarian>
|
||||
<Portuguese>Placa de pressão</Portuguese>
|
||||
<Russian>Давление</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_TripWire">
|
||||
<English>Tripwire</English>
|
||||
<Polish>Linka naciągu</Polish>
|
||||
<Spanish>Cable trampa</Spanish>
|
||||
<German>Stolperdraht</German>
|
||||
<French>Fil de butée</French>
|
||||
<Czech>Nástražný drát</Czech>
|
||||
<Italian>Filo a Inciampo</Italian>
|
||||
<Hungarian>Botlódrót</Hungarian>
|
||||
<Portuguese>Linha de tração</Portuguese>
|
||||
<Russian>Натяжной</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_IRSensor">
|
||||
<English>IR Sensor</English>
|
||||
<Polish>Czujnik podczerwieni</Polish>
|
||||
<Spanish>Sensor IR</Spanish>
|
||||
<German>Infrarotsensor</German>
|
||||
<French>Capteur IR</French>
|
||||
<Czech>IR Značkovač</Czech>
|
||||
<Italian>Sensore IR</Italian>
|
||||
<Hungarian>IR szenzor</Hungarian>
|
||||
<Portuguese>Sensor IV</Portuguese>
|
||||
<Russian>ИК</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_NoTriggersAvailable">
|
||||
<English>No triggers available for %1</English>
|
||||
<Polish>Brak dostępnych zapalników dla %1</Polish>
|
||||
<Spanish>No hay detonadores disponibles para %1</Spanish>
|
||||
<German>Keine Auslöser vorhanden für %1</German>
|
||||
<French>Pas de mise à feu disponible pour %1</French>
|
||||
<Czech>Žádný detonátor k dispozici pro %1</Czech>
|
||||
<Italian>Nessun attivatore disponibile per %1</Italian>
|
||||
<Hungarian>Nincs detonátor a %1</Hungarian>
|
||||
<Portuguese>Nenhum gatilho disponível para %1</Portuguese>
|
||||
<Russian>Нет защелка доступны для %1</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_SLAME_IRSensor">
|
||||
<English>IR Sensor (Side Attack)</English>
|
||||
<Polish>Czujnik podczerwieni (wybuch na bok)</Polish>
|
||||
<Spanish>Sensor IR (ataque lateral)</Spanish>
|
||||
<German>Infrarotsensor (Seitenangriff)</German>
|
||||
<French>Capteur IR (de flanc)</French>
|
||||
<Czech>IR Značkovač (Výbuch stranou)</Czech>
|
||||
<Italian>Sensore IR (Attacco laterale)</Italian>
|
||||
<Hungarian>IR Sensor (Side Attack)</Hungarian>
|
||||
<Portuguese>Sensor infravermelho (ataque lateral)</Portuguese>
|
||||
<Russian>ИК (боковая атака)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_SLAME_Magnetic">
|
||||
<English>Magnetic Influence Sensor (Bottom Attack)</English>
|
||||
<Polish>Czujnik magnetyczny (wybuch w górę)</Polish>
|
||||
<Spanish>Sensor IM (ataque inferior)</Spanish>
|
||||
<German>Magnetfeldsensor (Bodenangriff)</German>
|
||||
<French>Capteur Magnétique (par le bas)</French>
|
||||
<Czech>Magnetický Senzor (Výbuch ze spoda)</Czech>
|
||||
<Italian>Sensore Magnetico di Prossimità (Attacco inferiore)</Italian>
|
||||
<Hungarian>Mágneses (Bottom Attack)</Hungarian>
|
||||
<Portuguese>Influência magnética (ataque inferior)</Portuguese>
|
||||
<Russian>Магнитный (дно атака)</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_NoExplosivesAvailable">
|
||||
<English>No explosives on trigger.</English>
|
||||
<German>Keine Sprengladungen auf diesem Auslöser.</German>
|
||||
<Spanish>Ningún explosivo en el detonador.</Spanish>
|
||||
<French>Pas d'explosif à mettre à feu.</French>
|
||||
<Italian>Nessun esplosivo sul sensore.</Italian>
|
||||
<Czech>Žádná výbušnina k odpálení.</Czech>
|
||||
<Hungarian>Nincs robbanóanyag a detonátorhoz.</Hungarian>
|
||||
<Polish>Brak ładunków na zapalnik.</Polish>
|
||||
<Portuguese>Nenhum explosivo no gatilho.</Portuguese>
|
||||
<Russian>Нет взрывчатки на курок.</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_DeadManSwitch_displayName">
|
||||
<English>Dead Man's Switch</English>
|
||||
<German>Totmannschalter</German>
|
||||
<French>Mise à feu par relâchement de pression</French>
|
||||
<Czech>Spínač mrtvého muže</Czech>
|
||||
<Polish>Czuwak</Polish>
|
||||
<Spanish>Detonador de hombre muerto</Spanish>
|
||||
<Hungarian>Dead Man's Switch</Hungarian>
|
||||
<Russian>Кнопка мертвеца</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_DeadManSwitch_description">
|
||||
<English>Used to remotely trigger explosives when released.</English>
|
||||
<German>Zündet Sprengladungen wenn losgelassen.</German>
|
||||
<French>Déclenche la mise à feu d'un explosif lorsqu'il est libéré.</French>
|
||||
<Czech>Používaný k vzdálenému odpálení, při uvolnění odpálí výbušniny</Czech>
|
||||
<Polish>Używany w celu zdalnej detonacji ładunków kiedy jego operator zostanie zabity.</Polish>
|
||||
<Spanish>Utilizado para detonar explosivos remotamente al soltarlo.</Spanish>
|
||||
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
|
||||
<Russian>Используется для дистанционного подрыва, после смерти оператора.</Russian>
|
||||
</Key>
|
||||
<Key ID="STR_ACE_Explosives_Pickup">
|
||||
<English>Pick up</English>
|
||||
</Key>
|
||||
</Package>
|
||||
</Project>
|
||||
|
Loading…
Reference in New Issue
Block a user