Changed the tabs to 4 spaces. Hopefully.

This commit is contained in:
Garth L-H de Wet 2015-04-06 22:20:11 +02:00
parent 44c597f7c5
commit 9d7d71b1b1
36 changed files with 1700 additions and 1700 deletions

View File

@ -8,47 +8,47 @@ Last Index: CfgACE_Triggers config of trigger type.
onSetup parameters: onSetup parameters:
0: STRING - Magazine Classname 0: STRING - Magazine Classname
*/ */
class Command { class Command {
displayName = $STR_ACE_Explosives_clacker_displayName; displayName = $STR_ACE_Explosives_clacker_displayName;
picture = PATHTOF(Data\UI\Clacker.paa); picture = PATHTOF(Data\UI\Clacker.paa);
onPlace = QUOTE(_this call FUNC(AddClacker);false); onPlace = QUOTE(_this call FUNC(AddClacker);false);
requires[] = {"ACE_Clacker"}; requires[] = {"ACE_Clacker"};
}; };
class MK16_Transmitter:Command { class MK16_Transmitter:Command {
displayName = $STR_ACE_Explosives_MK16_displayName; displayName = $STR_ACE_Explosives_MK16_displayName;
picture = PATHTOF(Data\UI\MK16_Reciever_ca.paa); picture = PATHTOF(Data\UI\MK16_Reciever_ca.paa);
requires[] = {"ACE_M26_Clacker"}; requires[] = {"ACE_M26_Clacker"};
}; };
class DeadManSwitch:Command { class DeadManSwitch:Command {
displayName = $STR_ACE_Explosives_DeadManSwitch_displayName; displayName = $STR_ACE_Explosives_DeadManSwitch_displayName;
picture = PATHTOF(Data\UI\DeadmanSwitch.paa); picture = PATHTOF(Data\UI\DeadmanSwitch.paa);
requires[] = {"ACE_DeadManSwitch"}; requires[] = {"ACE_DeadManSwitch"};
}; };
class Cellphone:Command { class Cellphone:Command {
displayName = $STR_ACE_Explosives_cellphone_displayName; displayName = $STR_ACE_Explosives_cellphone_displayName;
picture = PATHTOF(Data\UI\Cellphone_UI.paa); picture = PATHTOF(Data\UI\Cellphone_UI.paa);
onPlace = QUOTE(_this call FUNC(addCellphoneIED);false); onPlace = QUOTE(_this call FUNC(addCellphoneIED);false);
requires[] = {"ACE_Cellphone"}; requires[] = {"ACE_Cellphone"};
}; };
class PressurePlate { class PressurePlate {
displayName = $STR_ACE_Explosives_PressurePlate; displayName = $STR_ACE_Explosives_PressurePlate;
picture = PATHTOF(Data\UI\PressurePlate.paa); 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"; 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 { class IRSensor {
displayName = $STR_ACE_Explosives_IRSensor; displayName = $STR_ACE_Explosives_IRSensor;
picture = PATHTOF(Data\UI\PressurePlate.paa); picture = PATHTOF(Data\UI\PressurePlate.paa);
onPlace = "false"; onPlace = "false";
}; };
class Timer { class Timer {
displayName = $STR_ACE_Explosives_timerName; displayName = $STR_ACE_Explosives_timerName;
picture = PATHTOF(data\UI\Timer.paa); picture = PATHTOF(data\UI\Timer.paa);
onPlace = QUOTE([ARR_2(_this select 1,(_this select 3) select 0)] call FUNC(startTimer);false); onPlace = QUOTE([ARR_2(_this select 1,(_this select 3) select 0)] call FUNC(startTimer);false);
onSetup = QUOTE(_this call FUNC(openTimerSetUI);true); onSetup = QUOTE(_this call FUNC(openTimerSetUI);true);
}; };
class Tripwire { class Tripwire {
displayName = $STR_ACE_Explosives_TripWire; displayName = $STR_ACE_Explosives_TripWire;
picture = PATHTOF(Data\UI\Tripwire.paa); picture = PATHTOF(Data\UI\Tripwire.paa);
onPlace = "false"; onPlace = "false";
}; };
}; };

View File

@ -1,78 +1,78 @@
class CfgAmmo { class CfgAmmo {
// All explosive based Ammo classes. These are all listed in case they become required. // All explosive based Ammo classes. These are all listed in case they become required.
class Default; class Default;
class TimeBombCore:Default { class TimeBombCore:Default {
ACE_DefuseTime = 5; ACE_DefuseTime = 5;
}; };
/* /*
class BoundingMineCore:TimeBombCore; class BoundingMineCore:TimeBombCore;
class BoundingMineBase:BoundingMineCore; class BoundingMineBase:BoundingMineCore;
class APERSBoundingMine_Range_Ammo:BoundingMineBase; class APERSBoundingMine_Range_Ammo:BoundingMineBase;
class MineCore: TimeBombCore; class MineCore: TimeBombCore;
class MineBase:MineCore; class MineBase:MineCore;
class APERSMine_Range_Ammo:MineBase; class APERSMine_Range_Ammo:MineBase;
class ATMine_Range_Ammo:MineBase; class ATMine_Range_Ammo:MineBase;
class UnderwaterMine_Range_Ammo:MineBase; class UnderwaterMine_Range_Ammo:MineBase;
class UnderwaterMineAB_Range_Ammo:UnderwaterMine_Range_Ammo; class UnderwaterMineAB_Range_Ammo:UnderwaterMine_Range_Ammo;
class UnderwaterMinePDM_Range_Ammo:UnderwaterMine_Range_Ammo; class UnderwaterMinePDM_Range_Ammo:UnderwaterMine_Range_Ammo;
class DirectionalBombCore:TimeBombCore; class DirectionalBombCore:TimeBombCore;
class DirectionalBombBase:DirectionalBombCore; class DirectionalBombBase:DirectionalBombCore;
class APERSTripMine_Wire_Ammo:DirectionalBombBase; class APERSTripMine_Wire_Ammo:DirectionalBombBase;
class SLAMDirectionalMine_Wire_Ammo:DirectionalBombBase; class SLAMDirectionalMine_Wire_Ammo:DirectionalBombBase;
class PipeBombCore: TimeBombCore; class PipeBombCore: TimeBombCore;
class PipeBombBase:PipeBombCore; class PipeBombBase:PipeBombCore;
*/ */
class DirectionalBombBase; class DirectionalBombBase;
class ClaymoreDirectionalMine_Remote_Ammo:DirectionalBombBase{ class ClaymoreDirectionalMine_Remote_Ammo:DirectionalBombBase{
ACE_Explosive = "ClaymoreDirectionalMine_Remote_Ammo_Scripted"; ACE_Explosive = "ClaymoreDirectionalMine_Remote_Ammo_Scripted";
soundActivation[] = {"",0,0,0}; soundActivation[] = {"",0,0,0};
soundDeactivation[] = {"",0,0,0}; soundDeactivation[] = {"",0,0,0};
}; };
//class ClaymoreDirectionalMine_Remote_Ammo_Scripted:ClaymoreDirectionalMine_Remote_Ammo; //class ClaymoreDirectionalMine_Remote_Ammo_Scripted:ClaymoreDirectionalMine_Remote_Ammo;
class SLAMDirectionalMine_Wire_Ammo:DirectionalBombBase{ class SLAMDirectionalMine_Wire_Ammo:DirectionalBombBase{
indirectHitRange = 20; indirectHitRange = 20;
ACE_explodeOnDefuse = 1; ACE_explodeOnDefuse = 1;
}; };
class SLAMDirectionalMine_Command_Ammo:SLAMDirectionalMine_Wire_Ammo { class SLAMDirectionalMine_Command_Ammo:SLAMDirectionalMine_Wire_Ammo {
mineTrigger = "RemoteTrigger"; mineTrigger = "RemoteTrigger";
ACE_explodeOnDefuse = 0; ACE_explodeOnDefuse = 0;
}; };
class SLAMDirectionalMine_Timer_Ammo:SLAMDirectionalMine_Wire_Ammo { class SLAMDirectionalMine_Timer_Ammo:SLAMDirectionalMine_Wire_Ammo {
mineTrigger = "TimeTrigger"; mineTrigger = "TimeTrigger";
ACE_explodeOnDefuse = 0; ACE_explodeOnDefuse = 0;
}; };
class SLAMDirectionalMine_Magnetic_Ammo:SLAMDirectionalMine_Wire_Ammo { class SLAMDirectionalMine_Magnetic_Ammo:SLAMDirectionalMine_Wire_Ammo {
mineTrigger = "MagneticTrigger"; mineTrigger = "MagneticTrigger";
}; };
class PipeBombBase; class PipeBombBase;
class DemoCharge_Remote_Ammo:PipeBombBase{ class DemoCharge_Remote_Ammo:PipeBombBase{
ACE_Explosive = "DemoCharge_Remote_Ammo_Scripted"; ACE_Explosive = "DemoCharge_Remote_Ammo_Scripted";
soundActivation[] = {"",0,0,0}; soundActivation[] = {"",0,0,0};
soundDeactivation[] = {"",0,0,0}; soundDeactivation[] = {"",0,0,0};
hit = 500; hit = 500;
indirectHit = 500; indirectHit = 500;
indirectHitRange = 7; indirectHitRange = 7;
}; };
class SatchelCharge_Remote_Ammo:PipeBombBase{ class SatchelCharge_Remote_Ammo:PipeBombBase{
ACE_Explosive = "SatchelCharge_Remote_Ammo_Scripted"; ACE_Explosive = "SatchelCharge_Remote_Ammo_Scripted";
soundActivation[] = {"",0,0,0}; soundActivation[] = {"",0,0,0};
soundDeactivation[] = {"",0,0,0}; soundDeactivation[] = {"",0,0,0};
}; };
/* /*
class DemoCharge_Remote_Ammo_Scripted:DemoCharge_Remote_Ammo; class DemoCharge_Remote_Ammo_Scripted:DemoCharge_Remote_Ammo;
class SatchelCharge_Remote_Ammo_Scripted:SatchelCharge_Remote_Ammo; class SatchelCharge_Remote_Ammo_Scripted:SatchelCharge_Remote_Ammo;
TODO: Configure IEDs to use the system. TODO: Configure IEDs to use the system.
class IEDLandBig_Remote_Ammo:PipeBombBase{ class IEDLandBig_Remote_Ammo:PipeBombBase{
triggerWhenDestroyed = 1; triggerWhenDestroyed = 1;
}; };
class IEDLandSmall_Remote_Ammo:PipeBombBase{ class IEDLandSmall_Remote_Ammo:PipeBombBase{
triggerWhenDestroyed = 1; triggerWhenDestroyed = 1;

View File

@ -1,12 +1,12 @@
class Extended_PreInit_EventHandlers { class Extended_PreInit_EventHandlers {
class ADDON { class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit)); init = QUOTE(call COMPILE_FILE(XEH_preInit));
}; };
}; };
class Extended_PostInit_EventHandlers { class Extended_PostInit_EventHandlers {
class ADDON { class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_postInit)); init = QUOTE(call COMPILE_FILE(XEH_postInit));
}; };
}; };
/* /*

View File

@ -1,127 +1,127 @@
class CfgMagazines { class CfgMagazines {
class CA_Magazine; class CA_Magazine;
class ATMine_Range_Mag:CA_Magazine{ class ATMine_Range_Mag:CA_Magazine{
ACE_Placeable = 1; ACE_Placeable = 1;
useAction = 0; useAction = 0;
ACE_SetupObject = "ACE_Explosives_Place_ATMine"; // CfgVehicle class for setup object. ACE_SetupObject = "ACE_Explosives_Place_ATMine"; // CfgVehicle class for setup object.
ACE_DelayTime = 2.5; ACE_DelayTime = 2.5;
class ACE_Triggers { class ACE_Triggers {
SupportedTriggers[] = {"PressurePlate"}; SupportedTriggers[] = {"PressurePlate"};
class PressurePlate { class PressurePlate {
digDistance = 0.1; digDistance = 0.1;
}; };
}; };
}; };
class APERSBoundingMine_Range_Mag:ATMine_Range_Mag{ class APERSBoundingMine_Range_Mag:ATMine_Range_Mag{
ACE_SetupObject = "ACE_Explosives_Place_APERSBoundingMine"; ACE_SetupObject = "ACE_Explosives_Place_APERSBoundingMine";
class ACE_Triggers { class ACE_Triggers {
SupportedTriggers[] = {"PressurePlate"}; SupportedTriggers[] = {"PressurePlate"};
class PressurePlate { class PressurePlate {
digDistance = 0.075; digDistance = 0.075;
}; };
}; };
}; };
class APERSMine_Range_Mag:ATMine_Range_Mag{ class APERSMine_Range_Mag:ATMine_Range_Mag{
ACE_SetupObject = "ACE_Explosives_Place_APERSMine"; ACE_SetupObject = "ACE_Explosives_Place_APERSMine";
class ACE_Triggers { class ACE_Triggers {
SupportedTriggers[] = {"PressurePlate"}; SupportedTriggers[] = {"PressurePlate"};
class PressurePlate { class PressurePlate {
digDistance = 0.05; digDistance = 0.05;
}; };
}; };
}; };
class APERSTripMine_Wire_Mag:ATMine_Range_Mag{ class APERSTripMine_Wire_Mag:ATMine_Range_Mag{
ACE_SetupObject = "ACE_Explosives_Place_APERSTripwireMine"; ACE_SetupObject = "ACE_Explosives_Place_APERSTripwireMine";
class ACE_Triggers { class ACE_Triggers {
SupportedTriggers[] = {"Tripwire"}; SupportedTriggers[] = {"Tripwire"};
class Tripwire; class Tripwire;
}; };
}; };
class ClaymoreDirectionalMine_Remote_Mag:CA_Magazine{ class ClaymoreDirectionalMine_Remote_Mag:CA_Magazine{
ACE_Placeable = 1; ACE_Placeable = 1;
useAction = 0; useAction = 0;
ACE_SetupObject = "ACE_Explosives_Place_Claymore"; ACE_SetupObject = "ACE_Explosives_Place_Claymore";
ACE_DelayTime = 1.5; ACE_DelayTime = 1.5;
class ACE_Triggers { class ACE_Triggers {
SupportedTriggers[] = {"Command"}; SupportedTriggers[] = {"Command"};
class Command { class Command {
FuseTime = 0.5; FuseTime = 0.5;
}; };
}; };
}; };
class SatchelCharge_Remote_Mag:CA_Magazine{ class SatchelCharge_Remote_Mag:CA_Magazine{
ACE_Placeable = 1; ACE_Placeable = 1;
useAction = 0; useAction = 0;
ACE_SetupObject = "ACE_Explosives_Place_SatchelCharge"; ACE_SetupObject = "ACE_Explosives_Place_SatchelCharge";
ACE_DelayTime = 1; ACE_DelayTime = 1;
class ACE_Triggers { class ACE_Triggers {
SupportedTriggers[] = {"Timer","Command", "MK16_Transmitter", "DeadmanSwitch"}; SupportedTriggers[] = {"Timer","Command", "MK16_Transmitter", "DeadmanSwitch"};
class Timer { class Timer {
FuseTime = 0.5; FuseTime = 0.5;
}; };
class Command { class Command {
FuseTime = 0.5; FuseTime = 0.5;
}; };
class MK16_Transmitter:Command{}; class MK16_Transmitter:Command{};
class DeadmanSwitch:Command{}; class DeadmanSwitch:Command{};
}; };
}; };
class DemoCharge_Remote_Mag:SatchelCharge_Remote_Mag{ class DemoCharge_Remote_Mag:SatchelCharge_Remote_Mag{
ACE_SetupObject = "ACE_Explosives_Place_DemoCharge"; ACE_SetupObject = "ACE_Explosives_Place_DemoCharge";
model = "\A3\Weapons_F\explosives\c4_charge_small_d"; model = "\A3\Weapons_F\explosives\c4_charge_small_d";
}; };
class SLAMDirectionalMine_Wire_Mag: ATMine_Range_Mag{ class SLAMDirectionalMine_Wire_Mag: ATMine_Range_Mag{
ACE_SetupObject = "ACE_Explosives_Place_SLAM"; ACE_SetupObject = "ACE_Explosives_Place_SLAM";
class ACE_Triggers { class ACE_Triggers {
SupportedTriggers[] = {"IRSensor","PressurePlate","Timer","Command"}; SupportedTriggers[] = {"IRSensor","PressurePlate","Timer","Command"};
class PressurePlate{ class PressurePlate{
displayName = $STR_ACE_Explosives_SLAME_Magnetic; displayName = $STR_ACE_Explosives_SLAME_Magnetic;
digDistance = 0; digDistance = 0;
ammo = "SLAMDirectionalMine_Magnetic_Ammo"; ammo = "SLAMDirectionalMine_Magnetic_Ammo";
pitch = 90; pitch = 90;
}; };
class IRSensor{ class IRSensor{
displayName = $STR_ACE_Explosives_SLAME_IRSensor; displayName = $STR_ACE_Explosives_SLAME_IRSensor;
}; };
class Timer { class Timer {
ammo = "SLAMDirectionalMine_Timer_Ammo"; ammo = "SLAMDirectionalMine_Timer_Ammo";
}; };
class Command { class Command {
ammo = "SLAMDirectionalMine_Command_Ammo"; ammo = "SLAMDirectionalMine_Command_Ammo";
fuseTime = 0.5; fuseTime = 0.5;
}; };
}; };
}; };
class IEDUrbanBig_Remote_Mag: DemoCharge_Remote_Mag { class IEDUrbanBig_Remote_Mag: DemoCharge_Remote_Mag {
ACE_SetupObject = "ACE_Explosives_Place_IEDUrbanBig"; ACE_SetupObject = "ACE_Explosives_Place_IEDUrbanBig";
class ACE_Triggers { class ACE_Triggers {
SupportedTriggers[] = {"Command","DeadmanSwitch", "Cellphone"}; SupportedTriggers[] = {"Command","DeadmanSwitch", "Cellphone"};
class Command { class Command {
FuseTime = 0.5; FuseTime = 0.5;
}; };
class DeadmanSwitch:Command{}; class DeadmanSwitch:Command{};
class Cellphone:Command{}; class Cellphone:Command{};
}; };
}; };
class IEDLandBig_Remote_Mag: IEDUrbanBig_Remote_Mag{ class IEDLandBig_Remote_Mag: IEDUrbanBig_Remote_Mag{
ACE_SetupObject = "ACE_Explosives_Place_IEDLandBig"; ACE_SetupObject = "ACE_Explosives_Place_IEDLandBig";
}; };
class IEDUrbanSmall_Remote_Mag: DemoCharge_Remote_Mag { class IEDUrbanSmall_Remote_Mag: DemoCharge_Remote_Mag {
ACE_SetupObject = "ACE_Explosives_Place_IEDUrbanSmall"; ACE_SetupObject = "ACE_Explosives_Place_IEDUrbanSmall";
class ACE_Triggers { class ACE_Triggers {
SupportedTriggers[] = {"Command","DeadmanSwitch", "Cellphone"}; SupportedTriggers[] = {"Command","DeadmanSwitch", "Cellphone"};
class Command { class Command {
FuseTime = 0.5; FuseTime = 0.5;
}; };
class DeadmanSwitch:Command{}; class DeadmanSwitch:Command{};
class Cellphone:Command{}; class Cellphone:Command{};
}; };
}; };
class IEDLandSmall_Remote_Mag: IEDUrbanSmall_Remote_Mag { class IEDLandSmall_Remote_Mag: IEDUrbanSmall_Remote_Mag {
ACE_SetupObject = "ACE_Explosives_Place_IEDLandSmall"; ACE_SetupObject = "ACE_Explosives_Place_IEDLandSmall";
}; };
}; };

View File

@ -1,44 +1,44 @@
class Module_F; class Module_F;
class ACE_ModuleExplosive: Module_F { class ACE_ModuleExplosive: Module_F {
author = "$STR_ACE_Common_ACETeam"; author = "$STR_ACE_Common_ACETeam";
category = "ACE"; category = "ACE";
displayName = "Explosive System"; displayName = "Explosive System";
function = QUOTE(FUNC(module)); function = QUOTE(FUNC(module));
scope = 2; scope = 2;
isGlobal = 1; isGlobal = 1;
icon = PATHTOF(UI\Icon_Module_Explosives_ca.paa); icon = PATHTOF(UI\Icon_Module_Explosives_ca.paa);
class Arguments { class Arguments {
class RequireSpecialist { class RequireSpecialist {
displayName = "Require specialists?"; displayName = "Require specialists?";
description = "Require explosive specialists to disable explosives? Default: No"; description = "Require explosive specialists to disable explosives? Default: No";
typeName = "BOOL"; typeName = "BOOL";
class values { class values {
class Yes { class Yes {
name = "Yes"; name = "Yes";
value = 1; value = 1;
}; };
class No { class No {
default = 1; default = 1;
name = "No"; name = "No";
value = 0; value = 0;
}; };
}; };
}; };
class PunishNonSpecialists { class PunishNonSpecialists {
displayName = "Punish non-specialists?"; displayName = "Punish non-specialists?";
description = "Increase the time it takes to complete actions for non-specialists? Default: Yes"; description = "Increase the time it takes to complete actions for non-specialists? Default: Yes";
typeName = "BOOL"; typeName = "BOOL";
class values { class values {
class Yes { class Yes {
default = 1; default = 1;
name = "Yes"; name = "Yes";
value = 1; value = 1;
}; };
class No { class No {
name = "No"; name = "No";
value = 0; value = 0;
}; };
}; };
}; };
}; };
}; };

View File

@ -1,327 +1,327 @@
class CfgVehicles { class CfgVehicles {
class Man; class Man;
class CAManBase: Man { class CAManBase: Man {
class ACE_SelfActions { class ACE_SelfActions {
class ACE_Explosives { class ACE_Explosives {
displayName = $STR_ACE_Explosives_Menu; displayName = $STR_ACE_Explosives_Menu;
condition = QUOTE(!(_player getVariable [ARR_2('ace_explosives_PlantingExplosive',false)])); condition = QUOTE(!(_player getVariable [ARR_2('ace_explosives_PlantingExplosive',false)]));
statement = ""; statement = "";
exceptions[] = {"isNotSwimming", "isNotInside"}; exceptions[] = {"isNotSwimming", "isNotInside"};
showDisabled = 1; showDisabled = 1;
priority = 4; priority = 4;
icon = PATHTOF(UI\Explosives_Menu_ca.paa); icon = PATHTOF(UI\Explosives_Menu_ca.paa);
hotkey = "X"; hotkey = "X";
//Sub-menu items //Sub-menu items
class ACE_Detonate { class ACE_Detonate {
displayName = $STR_ACE_Explosives_Detonate; displayName = $STR_ACE_Explosives_Detonate;
condition = QUOTE([_player] call FUNC(canDetonate)); condition = QUOTE([_player] call FUNC(canDetonate));
statement = ""; statement = "";
insertChildren = QUOTE([_player] call FUNC(addTransmitterActions);); insertChildren = QUOTE([_player] call FUNC(addTransmitterActions););
exceptions[] = {"isNotSwimming", "isNotInside"}; exceptions[] = {"isNotSwimming", "isNotInside"};
showDisabled = 1; showDisabled = 1;
icon = PATHTOF(UI\Explosives_Menu_ca.paa); icon = PATHTOF(UI\Explosives_Menu_ca.paa);
priority = 2; priority = 2;
hotkey = "T"; hotkey = "T";
}; };
class ACE_Place { class ACE_Place {
displayName = $STR_ACE_Explosives_Place; displayName = $STR_ACE_Explosives_Place;
condition = QUOTE((vehicle _player == _player) and {[_player] call FUNC(hasExplosives)}); condition = QUOTE((vehicle _player == _player) and {[_player] call FUNC(hasExplosives)});
statement = ""; statement = "";
insertChildren = QUOTE([_player] call FUNC(addExplosiveActions);); insertChildren = QUOTE([_player] call FUNC(addExplosiveActions););
exceptions[] = {"isNotSwimming"}; exceptions[] = {"isNotSwimming"};
showDisabled = 1; showDisabled = 1;
icon = PATHTOF(UI\Place_Explosive_ca.paa); icon = PATHTOF(UI\Place_Explosive_ca.paa);
priority = 1; priority = 1;
hotkey = "P"; hotkey = "P";
}; };
class ACE_Cellphone { class ACE_Cellphone {
displayName = $STR_ACE_Explosives_cellphone_displayName; displayName = $STR_ACE_Explosives_cellphone_displayName;
condition = "('ACE_Cellphone' in (items ace_player))"; condition = "('ACE_Cellphone' in (items ace_player))";
statement = "closeDialog 0;createDialog 'Rsc_ACE_PhoneInterface';"; statement = "closeDialog 0;createDialog 'Rsc_ACE_PhoneInterface';";
exceptions[] = {"isNotSwimming", "isNotInside"}; exceptions[] = {"isNotSwimming", "isNotInside"};
showDisabled = 0; showDisabled = 0;
icon = PATHTOF(Data\UI\Cellphone_UI.paa); icon = PATHTOF(Data\UI\Cellphone_UI.paa);
priority = 0.8; priority = 0.8;
}; };
}; };
}; };
}; };
class Items_base_F; class Items_base_F;
class ACE_DefuseObject: Items_base_F { class ACE_DefuseObject: Items_base_F {
XEH_ENABLED; XEH_ENABLED;
author = "ACE"; author = "ACE";
_generalMacro = "ACE_DefuseObject"; _generalMacro = "ACE_DefuseObject";
displayName = "ACE Defuse Helper"; displayName = "ACE Defuse Helper";
mapSize = 0.2; mapSize = 0.2;
icon = "iconObject_1x2"; icon = "iconObject_1x2";
model = "\A3\Weapons_f\dummyweapon.p3d"; model = "\A3\Weapons_f\dummyweapon.p3d";
scope = 2; scope = 2;
scopeCurator = 1; scopeCurator = 1;
vehicleClass = "Cargo"; vehicleClass = "Cargo";
class ACE_Actions { class ACE_Actions {
class ACE_MainActions { class ACE_MainActions {
selection = ""; selection = "";
distance = 5; distance = 5;
condition = "true"; condition = "true";
class ACE_Defuse { class ACE_Defuse {
displayName = $STR_ACE_Explosives_Defuse; displayName = $STR_ACE_Explosives_Defuse;
condition = QUOTE([ARR_2(_player,_target)] call FUNC(canDefuse)); condition = QUOTE([ARR_2(_player,_target)] call FUNC(canDefuse));
statement = QUOTE([ARR_2(_player,_target)] call FUNC(startDefuse);); statement = QUOTE([ARR_2(_player,_target)] call FUNC(startDefuse););
exceptions[] = {"isNotSwimming"}; exceptions[] = {"isNotSwimming"};
showDisabled = 0; showDisabled = 0;
icon = PATHTOF(UI\Defuse_ca.paa); icon = PATHTOF(UI\Defuse_ca.paa);
priority = 0.8; priority = 0.8;
hotkey = "F"; hotkey = "F";
distance = 5; distance = 5;
}; };
}; };
}; };
}; };
class ACE_Explosives_Place: Items_base_F { class ACE_Explosives_Place: Items_base_F {
XEH_ENABLED; XEH_ENABLED;
author = "ACE"; author = "ACE";
_generalMacro = "ACE_Explosives_Place"; _generalMacro = "ACE_Explosives_Place";
displayName = "Multi-meter"; displayName = "Multi-meter";
mapSize = 0.2; mapSize = 0.2;
icon = "iconObject_1x2"; icon = "iconObject_1x2";
model = "\A3\Structures_F\Items\Tools\MultiMeter_F.p3d"; model = "\A3\Structures_F\Items\Tools\MultiMeter_F.p3d";
scope = 2; scope = 2;
scopeCurator = 1; scopeCurator = 1;
vehicleClass = "Cargo"; vehicleClass = "Cargo";
ACE_offset[] = {0,0,0}; ACE_offset[] = {0,0,0};
class ACE_Actions { class ACE_Actions {
class ACE_MainActions { class ACE_MainActions {
selection = ""; selection = "";
distance = 5; distance = 5;
condition = "true"; condition = "true";
class ACE_SetTrigger { class ACE_SetTrigger {
selection = ""; selection = "";
displayName = "$STR_ACE_Explosives_TriggerMenu"; displayName = "$STR_ACE_Explosives_TriggerMenu";
distance = 4; distance = 4;
condition = "true"; condition = "true";
statement = ""; statement = "";
insertChildren = QUOTE([ARR_3(_target getVariable QUOTE(QGVAR(class)),_target,_player)] call FUNC(addTriggerActions);); insertChildren = QUOTE([ARR_3(_target getVariable QUOTE(QGVAR(class)),_target,_player)] call FUNC(addTriggerActions););
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
priority = 5; priority = 5;
icon = QUOTE(PATHTOF(UI\Explosives_Menu_ca.paa)); icon = QUOTE(PATHTOF(UI\Explosives_Menu_ca.paa));
}; };
class ACE_PickUp { class ACE_PickUp {
selection = ""; selection = "";
displayName = "$STR_ACE_Explosives_Pickup"; displayName = "$STR_ACE_Explosives_Pickup";
distance = 4; distance = 4;
condition = "true"; condition = "true";
statement = QUOTE([ARR_2(_player,_target getVariable QUOTE(QGVAR(class)))] call EFUNC(common,addToInventory);deleteVehicle _target;); statement = QUOTE([ARR_2(_player,_target getVariable QUOTE(QGVAR(class)))] call EFUNC(common,addToInventory);deleteVehicle _target;);
showDisabled = 0; showDisabled = 0;
exceptions[] = {}; exceptions[] = {};
priority = 5; priority = 5;
icon = "\A3\ui_f\data\IGUI\Cfg\Actions\Obsolete\ui_action_takemine_ca.paa"; icon = "\A3\ui_f\data\IGUI\Cfg\Actions\Obsolete\ui_action_takemine_ca.paa";
}; };
}; };
}; };
}; };
class ACE_Explosives_Place_DemoCharge:ACE_Explosives_Place { class ACE_Explosives_Place_DemoCharge:ACE_Explosives_Place {
displayName = "Demo Charge"; displayName = "Demo Charge";
model = "\A3\Weapons_F\explosives\c4_charge_small_d"; model = "\A3\Weapons_F\explosives\c4_charge_small_d";
}; };
class ACE_Explosives_Place_APERSBoundingMine:ACE_Explosives_Place { class ACE_Explosives_Place_APERSBoundingMine:ACE_Explosives_Place {
displayName = "APERS Bounding Mine"; displayName = "APERS Bounding Mine";
model = "\A3\Weapons_F\explosives\mine_AP_bouncing"; model = "\A3\Weapons_F\explosives\mine_AP_bouncing";
}; };
class ACE_Explosives_Place_APERSMine:ACE_Explosives_Place { class ACE_Explosives_Place_APERSMine:ACE_Explosives_Place {
displayName = "APERS Mine"; displayName = "APERS Mine";
model = "\A3\Weapons_F\explosives\mine_ap"; model = "\A3\Weapons_F\explosives\mine_ap";
}; };
class ACE_Explosives_Place_APERSTripwireMine:ACE_Explosives_Place { class ACE_Explosives_Place_APERSTripwireMine:ACE_Explosives_Place {
displayName = "APERS Tripwire Mine"; displayName = "APERS Tripwire Mine";
model = "\A3\Weapons_F\explosives\mine_AP_tripwire"; model = "\A3\Weapons_F\explosives\mine_AP_tripwire";
ACE_offset[] = {1,0,0}; ACE_offset[] = {1,0,0};
}; };
class ACE_Explosives_Place_ATMine:ACE_Explosives_Place { class ACE_Explosives_Place_ATMine:ACE_Explosives_Place {
displayName = "AT Mine"; displayName = "AT Mine";
model = "\A3\Weapons_f\Explosives\mine_at"; model = "\A3\Weapons_f\Explosives\mine_at";
}; };
class ACE_Explosives_Place_Claymore:ACE_Explosives_Place { class ACE_Explosives_Place_Claymore:ACE_Explosives_Place {
displayName = "Claymore"; displayName = "Claymore";
model = "\A3\Weapons_F\explosives\mine_AP_miniclaymore"; model = "\A3\Weapons_F\explosives\mine_AP_miniclaymore";
}; };
class ACE_Explosives_Place_SatchelCharge:ACE_Explosives_Place { class ACE_Explosives_Place_SatchelCharge:ACE_Explosives_Place {
displayName = "Satchel Charge"; displayName = "Satchel Charge";
model = "\A3\Weapons_F\Explosives\satchel"; model = "\A3\Weapons_F\Explosives\satchel";
}; };
class ACE_Explosives_Place_SLAM:ACE_Explosives_Place { class ACE_Explosives_Place_SLAM:ACE_Explosives_Place {
displayName = "SLAM"; displayName = "SLAM";
model = "\A3\Weapons_F\Explosives\mine_SLAM_directional"; model = "\A3\Weapons_F\Explosives\mine_SLAM_directional";
}; };
// IEDs // IEDs
class ACE_Explosives_Place_IEDUrbanBig:ACE_Explosives_Place { class ACE_Explosives_Place_IEDUrbanBig:ACE_Explosives_Place {
displayName = "IED Urban Big"; displayName = "IED Urban Big";
model = "\A3\Weapons_F\Explosives\IED_urban_big"; model = "\A3\Weapons_F\Explosives\IED_urban_big";
}; };
class ACE_Explosives_Place_IEDLandBig:ACE_Explosives_Place { class ACE_Explosives_Place_IEDLandBig:ACE_Explosives_Place {
displayName = "IED Land Big"; displayName = "IED Land Big";
model = "\A3\Weapons_F\Explosives\IED_land_big"; model = "\A3\Weapons_F\Explosives\IED_land_big";
}; };
class ACE_Explosives_Place_IEDUrbanSmall:ACE_Explosives_Place { class ACE_Explosives_Place_IEDUrbanSmall:ACE_Explosives_Place {
displayName = "IED Urban Small"; displayName = "IED Urban Small";
model = "\A3\Weapons_F\Explosives\IED_urban_small"; model = "\A3\Weapons_F\Explosives\IED_urban_small";
}; };
class ACE_Explosives_Place_IEDLandSmall:ACE_Explosives_Place { class ACE_Explosives_Place_IEDLandSmall:ACE_Explosives_Place {
displayName = "IED Land Small"; displayName = "IED Land Small";
model = "\A3\Weapons_F\Explosives\IED_land_small"; model = "\A3\Weapons_F\Explosives\IED_land_small";
}; };
class NATO_Box_Base; class NATO_Box_Base;
class EAST_Box_Base; class EAST_Box_Base;
class IND_Box_Base; class IND_Box_Base;
class FIA_Box_Base_F; class FIA_Box_Base_F;
class Box_NATO_Support_F; class Box_NATO_Support_F;
class Box_NATO_AmmoOrd_F: NATO_Box_Base { class Box_NATO_AmmoOrd_F: NATO_Box_Base {
class TransportItems { class TransportItems {
MACRO_ADDITEM(ACE_Clacker,12); MACRO_ADDITEM(ACE_Clacker,12);
MACRO_ADDITEM(ACE_M26_Clacker,6); MACRO_ADDITEM(ACE_M26_Clacker,6);
MACRO_ADDITEM(ACE_DefusalKit,12); MACRO_ADDITEM(ACE_DefusalKit,12);
}; };
}; };
class Box_East_AmmoOrd_F: EAST_Box_Base { class Box_East_AmmoOrd_F: EAST_Box_Base {
class TransportItems { class TransportItems {
MACRO_ADDITEM(ACE_Clacker,12); MACRO_ADDITEM(ACE_Clacker,12);
MACRO_ADDITEM(ACE_M26_Clacker,6); MACRO_ADDITEM(ACE_M26_Clacker,6);
MACRO_ADDITEM(ACE_DefusalKit,12); MACRO_ADDITEM(ACE_DefusalKit,12);
}; };
}; };
class Box_IND_AmmoOrd_F: IND_Box_Base { class Box_IND_AmmoOrd_F: IND_Box_Base {
class TransportItems { class TransportItems {
MACRO_ADDITEM(ACE_Clacker,12); MACRO_ADDITEM(ACE_Clacker,12);
MACRO_ADDITEM(ACE_M26_Clacker,6); MACRO_ADDITEM(ACE_M26_Clacker,6);
MACRO_ADDITEM(ACE_DefusalKit,12); MACRO_ADDITEM(ACE_DefusalKit,12);
MACRO_ADDITEM(ACE_Deadmanswitch,2); MACRO_ADDITEM(ACE_Deadmanswitch,2);
MACRO_ADDITEM(ACE_Cellphone,3); MACRO_ADDITEM(ACE_Cellphone,3);
}; };
}; };
class Box_FIA_Ammo_F: FIA_Box_Base_F { class Box_FIA_Ammo_F: FIA_Box_Base_F {
class TransportItems { class TransportItems {
MACRO_ADDITEM(ACE_Clacker,2); MACRO_ADDITEM(ACE_Clacker,2);
MACRO_ADDITEM(ACE_M26_Clacker,2); MACRO_ADDITEM(ACE_M26_Clacker,2);
MACRO_ADDITEM(ACE_DefusalKit,2); MACRO_ADDITEM(ACE_DefusalKit,2);
MACRO_ADDITEM(ACE_Deadmanswitch,1); MACRO_ADDITEM(ACE_Deadmanswitch,1);
MACRO_ADDITEM(ACE_Cellphone,2); MACRO_ADDITEM(ACE_Cellphone,2);
}; };
}; };
class ACE_Box_Misc: Box_NATO_Support_F { class ACE_Box_Misc: Box_NATO_Support_F {
class TransportItems { class TransportItems {
MACRO_ADDITEM(ACE_Clacker,12); MACRO_ADDITEM(ACE_Clacker,12);
MACRO_ADDITEM(ACE_M26_Clacker,6); MACRO_ADDITEM(ACE_M26_Clacker,6);
MACRO_ADDITEM(ACE_DefusalKit,12); MACRO_ADDITEM(ACE_DefusalKit,12);
MACRO_ADDITEM(ACE_Deadmanswitch,6); MACRO_ADDITEM(ACE_Deadmanswitch,6);
MACRO_ADDITEM(ACE_Cellphone,10); MACRO_ADDITEM(ACE_Cellphone,10);
}; };
}; };
class B_Kitbag_rgr; class B_Kitbag_rgr;
class B_Kitbag_rgr_Exp: B_Kitbag_rgr { class B_Kitbag_rgr_Exp: B_Kitbag_rgr {
class TransportItems { class TransportItems {
class _xx_ToolKit { // xXToOlKiT420mLgXx class _xx_ToolKit { // xXToOlKiT420mLgXx
count = 0; count = 0;
}; };
}; };
}; };
class B_Carryall_ocamo; class B_Carryall_ocamo;
class B_Carryall_ocamo_Exp: B_Carryall_ocamo { class B_Carryall_ocamo_Exp: B_Carryall_ocamo {
class TransportItems { class TransportItems {
class _xx_ToolKit { class _xx_ToolKit {
count = 0; count = 0;
}; };
}; };
}; };
class B_Carryall_oucamo; class B_Carryall_oucamo;
class B_Carryall_oucamo_Exp: B_Carryall_oucamo { class B_Carryall_oucamo_Exp: B_Carryall_oucamo {
class TransportItems { class TransportItems {
class _xx_ToolKit { class _xx_ToolKit {
count = 0; count = 0;
}; };
}; };
}; };
class B_Carryall_oli; class B_Carryall_oli;
class G_Carryall_Exp: B_Carryall_oli { class G_Carryall_Exp: B_Carryall_oli {
class TransportItems { class TransportItems {
class _xx_ToolKit { class _xx_ToolKit {
count = 0; count = 0;
}; };
}; };
}; };
class I_Carryall_oli_Exp: B_Carryall_oli { class I_Carryall_oli_Exp: B_Carryall_oli {
class TransportItems { class TransportItems {
class _xx_ToolKit { class _xx_ToolKit {
count = 0; count = 0;
}; };
}; };
}; };
#include "CfgModule.hpp" #include "CfgModule.hpp"
// Add ACE_Clacker and ACE_DefusalKit to every explosive unit. // Add ACE_Clacker and ACE_DefusalKit to every explosive unit.
#define MACRO_ADDMINEKIT \ #define MACRO_ADDMINEKIT \
items[] = {"FirstAidKit", "ACE_Clacker", "ACE_DefusalKit"}; \ items[] = {"FirstAidKit", "ACE_Clacker", "ACE_DefusalKit"}; \
respawnitems[] = {"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_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_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_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_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 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_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 I_G_Soldier_exp_F:I_G_Soldier_base_F {MACRO_ADDMINEKIT};
class B_G_engineer_F:I_G_engineer_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 O_G_engineer_F:I_G_engineer_F {MACRO_ADDMINEKIT};
class B_G_Soldier_exp_F:I_G_Soldier_exp_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 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_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_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 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_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_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_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_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_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 O_engineer_U_F:O_Soldier_Urban_base {MACRO_ADDMINEKIT};
class B_Protagonist_VR_F:B_Soldier_base_F {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 O_Protagonist_VR_F:O_Soldier_base_F {MACRO_ADDMINEKIT};
class I_Protagonist_VR_F:I_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_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 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_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 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_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 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 // Add ACE_Clacker to snipers and spotters for setting off Claymores
#define MACRO_ADDCLAYMOREKIT \ #define MACRO_ADDCLAYMOREKIT \
items[] = {"FirstAidKit","ACE_Clacker"}; \ items[] = {"FirstAidKit","ACE_Clacker"}; \
respawnitems[] = {"FirstAidKit","ACE_Clacker"}; respawnitems[] = {"FirstAidKit","ACE_Clacker"};
class B_Soldier_sniper_base_F; class B_Soldier_sniper_base_F;
class B_sniper_F: B_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT}; class B_sniper_F: B_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
class B_spotter_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_Soldier_sniper_base_F;
class I_Sniper_F: I_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT}; class I_Sniper_F: I_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
class I_Spotter_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_Soldier_sniper_base_F;
class O_sniper_F: O_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT}; class O_sniper_F: O_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
class O_spotter_F: O_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT}; class O_spotter_F: O_Soldier_sniper_base_F {MACRO_ADDCLAYMOREKIT};
}; };

View File

@ -1,69 +1,69 @@
class CfgWeapons { class CfgWeapons {
class ACE_ItemCore; class ACE_ItemCore;
class InventoryItem_Base_f; class InventoryItem_Base_f;
class ACE_ExplosiveItem: InventoryItem_Base_f { class ACE_ExplosiveItem: InventoryItem_Base_f {
allowedSlots[] = {801,701,901}; allowedSlots[] = {801,701,901};
//type = 201; //type = 201;
}; };
class ACE_Clacker: ACE_ItemCore { class ACE_Clacker: ACE_ItemCore {
scope = 2; scope = 2;
displayName = $STR_ACE_Explosives_clacker_displayName; displayName = $STR_ACE_Explosives_clacker_displayName;
descriptionShort = $STR_ACE_Explosives_clacker_description; descriptionShort = $STR_ACE_Explosives_clacker_description;
picture = PATHTOF(Data\UI\Clacker.paa); picture = PATHTOF(Data\UI\Clacker.paa);
model = "\A3\weapons_F\ammo\mag_univ.p3d"; model = "\A3\weapons_F\ammo\mag_univ.p3d";
ACE_Range = 250; ACE_Range = 250;
ACE_Detonator = 1; ACE_Detonator = 1;
class ItemInfo: ACE_ExplosiveItem { class ItemInfo: ACE_ExplosiveItem {
mass = 3; mass = 3;
uniformModel = "\A3\weapons_F\ammo\mag_univ.p3d"; uniformModel = "\A3\weapons_F\ammo\mag_univ.p3d";
}; };
}; };
class ACE_M26_Clacker: ACE_Clacker { class ACE_M26_Clacker: ACE_Clacker {
displayName = $STR_ACE_Explosives_M26_displayName; displayName = $STR_ACE_Explosives_M26_displayName;
picture = PATHTOF(Data\UI\MK26_Transmitter_ca.paa); picture = PATHTOF(Data\UI\MK26_Transmitter_ca.paa);
ACE_Range = 5000; ACE_Range = 5000;
}; };
class ACE_DefusalKit: ACE_ItemCore { class ACE_DefusalKit: ACE_ItemCore {
scope = 2; scope = 2;
displayName = $STR_ACE_Explosives_DefusalKit_displayName; displayName = $STR_ACE_Explosives_DefusalKit_displayName;
descriptionShort = $STR_ACE_Explosives_DefusalKit_description; descriptionShort = $STR_ACE_Explosives_DefusalKit_description;
picture = PATHTOF(Data\UI\Pliers.paa); picture = PATHTOF(Data\UI\Pliers.paa);
model = "\A3\Structures_F\Items\Tools\Pliers_F.p3d"; model = "\A3\Structures_F\Items\Tools\Pliers_F.p3d";
class ItemInfo: ACE_ExplosiveItem { class ItemInfo: ACE_ExplosiveItem {
mass = 5; mass = 5;
uniformModel = "\A3\Structures_F\Items\Tools\Pliers_F.p3d"; uniformModel = "\A3\Structures_F\Items\Tools\Pliers_F.p3d";
}; };
}; };
class ACE_DeadManSwitch: ACE_ItemCore { class ACE_DeadManSwitch: ACE_ItemCore {
scope = 2; scope = 2;
displayName = $STR_ACE_Explosives_DeadManSwitch_displayName; displayName = $STR_ACE_Explosives_DeadManSwitch_displayName;
descriptionShort = $STR_ACE_Explosives_DeadManSwitch_description; descriptionShort = $STR_ACE_Explosives_DeadManSwitch_description;
picture = PATHTOF(Data\UI\DeadmanSwitch.paa); picture = PATHTOF(Data\UI\DeadmanSwitch.paa);
model = "\A3\weapons_F\ammo\mag_univ.p3d"; model = "\A3\weapons_F\ammo\mag_univ.p3d";
ACE_Range = 100; ACE_Range = 100;
ACE_Detonator = 1; ACE_Detonator = 1;
class ItemInfo: ACE_ExplosiveItem { class ItemInfo: ACE_ExplosiveItem {
mass = 2; mass = 2;
uniformModel = "\A3\weapons_F\ammo\mag_univ.p3d"; uniformModel = "\A3\weapons_F\ammo\mag_univ.p3d";
}; };
}; };
class ACE_Cellphone: ACE_ItemCore { class ACE_Cellphone: ACE_ItemCore {
scope = 2; scope = 2;
displayName = $STR_ACE_Explosives_cellphone_displayName; displayName = $STR_ACE_Explosives_cellphone_displayName;
descriptionShort = $STR_ACE_Explosives_cellphone_description; descriptionShort = $STR_ACE_Explosives_cellphone_description;
picture = PATHTOF(Data\UI\Cellphone_UI.paa); picture = PATHTOF(Data\UI\Cellphone_UI.paa);
model = "\A3\weapons_F\ammo\mag_univ.p3d"; model = "\A3\weapons_F\ammo\mag_univ.p3d";
ACE_Range = 15000; ACE_Range = 15000;
ACE_Detonator = 1; ACE_Detonator = 1;
class ItemInfo: ACE_ExplosiveItem { class ItemInfo: ACE_ExplosiveItem {
mass = 2; mass = 2;
uniformModel = "\A3\weapons_F\ammo\mag_univ.p3d"; uniformModel = "\A3\weapons_F\ammo\mag_univ.p3d";
}; };
}; };
}; };

View File

@ -14,275 +14,275 @@ class RscPicture;
class RscEdit; class RscEdit;
class Rsc_ACE_CallScreen_Edit:RscEdit { class Rsc_ACE_CallScreen_Edit:RscEdit {
canModify = 1; canModify = 1;
colorBackground[] = {0,0,0,1}; colorBackground[] = {0,0,0,1};
colorText[] = {0,0,0,1}; colorText[] = {0,0,0,1};
colorDisabled[] = {1,1,1,0.25}; colorDisabled[] = {1,1,1,0.25};
colorSelection[] = { colorSelection[] = {
"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])", "(profilenamespace getvariable ['GUI_BCG_RGB_R',0.69])",
"(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.75])",
"(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.5])",
1 1
}; };
text = ""; text = "";
style = "0x00 + 0x40 + 0x200"; style = "0x00 + 0x40 + 0x200";
shadow = 1; shadow = 1;
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) * 1)"; SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 20) * 1)";
x = 0.288594 * safezoneW + safezoneX; x = 0.288594 * safezoneW + safezoneX;
w = 0.0825 * safezoneW; w = 0.0825 * safezoneW;
h = 0.044 * safezoneH; h = 0.044 * safezoneH;
}; };
class Rsc_ACE_HiddenButton:RscButton { class Rsc_ACE_HiddenButton:RscButton {
colorText[] = {0, 0, 0, 0}; colorText[] = {0, 0, 0, 0};
colorDisabled[] = {0, 0, 0, 0}; colorDisabled[] = {0, 0, 0, 0};
colorBackground[] = {0, 0, 0, 0}; colorBackground[] = {0, 0, 0, 0};
colorBackgroundDisabled[] = {0, 0, 0, 0}; colorBackgroundDisabled[] = {0, 0, 0, 0};
colorBackgroundActive[] = {0, 0, 0, 0}; colorBackgroundActive[] = {0, 0, 0, 0};
colorFocused[] = {0, 0, 0, 0}; colorFocused[] = {0, 0, 0, 0};
colorShadow[] = {0, 0, 0, 0}; colorShadow[] = {0, 0, 0, 0};
colorBorder[] = {0, 0, 0, 0}; colorBorder[] = {0, 0, 0, 0};
w = 0.095589; w = 0.095589;
h = 0.039216; h = 0.039216;
shadow = 0; shadow = 0;
}; };
class Rsc_ACE_Timer_Slider:RscXSliderH { class Rsc_ACE_Timer_Slider:RscXSliderH {
x = 0.4; x = 0.4;
y = 0.2; y = 0.2;
w = 0.3; w = 0.3;
h = "1*((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)"; h = "1*((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
colorBackground[] = {0,0,0,0.5}; colorBackground[] = {0,0,0,0.5};
}; };
class RscACE_SelectTimeUI { class RscACE_SelectTimeUI {
idd = 8854; idd = 8854;
movingEnable = 0; movingEnable = 0;
class controls { class controls {
class back:IGUIBack { class back:IGUIBack {
x = X_OFFSET; x = X_OFFSET;
y = 0; y = 0;
w = 0.5; w = 0.5;
h = 0.2; h = 0.2;
colorBackground[] = {0, 0, 0, 0.5}; colorBackground[] = {0, 0, 0, 0.5};
}; };
class header: RscText{ class header: RscText{
idc = 8870; idc = 8870;
x = X_OFFSET + 0.005; x = X_OFFSET + 0.005;
y = 0.005; y = 0.005;
w = 0.49; w = 0.49;
h = 0.05; h = 0.05;
style = ST_CENTER; style = ST_CENTER;
text = ""; text = "";
}; };
class slider: Rsc_ACE_Timer_Slider { class slider: Rsc_ACE_Timer_Slider {
idc = 8845; idc = 8845;
x = X_OFFSET + 0.005; x = X_OFFSET + 0.005;
y = 0.06; y = 0.06;
w = 0.49; w = 0.49;
h = 0.025; 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]];"; 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 { class cancelBtn: RscButton {
idc = 8855; idc = 8855;
x = X_OFFSET + 0.005; x = X_OFFSET + 0.005;
w = 0.15; w = 0.15;
h = 0.1; h = 0.1;
y = 0.09; y = 0.09;
style = ST_CENTER; style = ST_CENTER;
text = $STR_ACE_Explosives_Cancel; text = $STR_ACE_Explosives_Cancel;
action = "closeDialog 0;"; action = "closeDialog 0;";
}; };
class approveBtn: RscButton { class approveBtn: RscButton {
idc = 8860; idc = 8860;
x = X_OFFSET + 0.345; x = X_OFFSET + 0.345;
y = 0.09; y = 0.09;
h = 0.1; h = 0.1;
w = 0.15; w = 0.15;
style = ST_CENTER; style = ST_CENTER;
text = $STR_ACE_Explosives_SetTime; text = $STR_ACE_Explosives_SetTime;
action = "closeDialog 0;"; action = "closeDialog 0;";
}; };
}; };
}; };
class Rsc_ACE_NumKeyButton: Rsc_ACE_HiddenButton{}; class Rsc_ACE_NumKeyButton: Rsc_ACE_HiddenButton{};
class Rsc_ACE_PhoneInterface { class Rsc_ACE_PhoneInterface {
idd = 8855; idd = 8855;
movingEnable = 1; movingEnable = 1;
onLoad = QUOTE(GVAR(IED_CurrentSpeedDial) = -1); onLoad = QUOTE(GVAR(IED_CurrentSpeedDial) = -1);
class controls { class controls {
class RscPicture_1200: RscPicture { class RscPicture_1200: RscPicture {
idc = 1200; idc = 1200;
text = PATHTOF(Data\UI\Cellphone_Background.paa); text = PATHTOF(Data\UI\Cellphone_Background.paa);
x = 0.231875 * safezoneW + safezoneX; x = 0.231875 * safezoneW + safezoneX;
y = 0.104 * safezoneH + safezoneY; y = 0.104 * safezoneH + safezoneY;
w = 0.195937 * safezoneW; w = 0.195937 * safezoneW;
h = 0.704 * safezoneH; h = 0.704 * safezoneH;
}; };
class numkey_1: Rsc_ACE_NumKeyButton { class numkey_1: Rsc_ACE_NumKeyButton {
idc = 1600; idc = 1600;
x = 0.278281 * safezoneW + safezoneX; x = 0.278281 * safezoneW + safezoneX;
y = 0.533 * safezoneH + safezoneY; y = 0.533 * safezoneH + safezoneY;
w = 0.0309375 * safezoneW; w = 0.0309375 * safezoneW;
h = 0.033 * safezoneH; h = 0.033 * safezoneH;
tooltip = "1"; tooltip = "1";
action = "ctrlSetText [1400,((ctrlText 1400) + '1')];"; action = "ctrlSetText [1400,((ctrlText 1400) + '1')];";
}; };
class numkey_2: Rsc_ACE_NumKeyButton { class numkey_2: Rsc_ACE_NumKeyButton {
idc = 1601; idc = 1601;
x = 0.314375 * safezoneW + safezoneX; x = 0.314375 * safezoneW + safezoneX;
y = 0.533 * safezoneH + safezoneY; y = 0.533 * safezoneH + safezoneY;
w = 0.0309375 * safezoneW; w = 0.0309375 * safezoneW;
h = 0.033 * safezoneH; h = 0.033 * safezoneH;
tooltip = "2"; tooltip = "2";
action = "ctrlSetText [1400,((ctrlText 1400) + '2')];"; action = "ctrlSetText [1400,((ctrlText 1400) + '2')];";
}; };
class numkey_3: Rsc_ACE_NumKeyButton { class numkey_3: Rsc_ACE_NumKeyButton {
idc = 1602; idc = 1602;
x = 0.350469 * safezoneW + safezoneX; x = 0.350469 * safezoneW + safezoneX;
y = 0.533 * safezoneH + safezoneY; y = 0.533 * safezoneH + safezoneY;
w = 0.0309375 * safezoneW; w = 0.0309375 * safezoneW;
h = 0.033 * safezoneH; h = 0.033 * safezoneH;
tooltip = "3"; tooltip = "3";
action = "ctrlSetText [1400,((ctrlText 1400) + '3')];"; action = "ctrlSetText [1400,((ctrlText 1400) + '3')];";
}; };
class numkey_4: Rsc_ACE_NumKeyButton { class numkey_4: Rsc_ACE_NumKeyButton {
idc = 1603; idc = 1603;
x = 0.278281 * safezoneW + safezoneX; x = 0.278281 * safezoneW + safezoneX;
y = 0.577 * safezoneH + safezoneY; y = 0.577 * safezoneH + safezoneY;
w = 0.0309375 * safezoneW; w = 0.0309375 * safezoneW;
h = 0.033 * safezoneH; h = 0.033 * safezoneH;
tooltip = "4"; tooltip = "4";
action = "ctrlSetText [1400,((ctrlText 1400) + '4')];"; action = "ctrlSetText [1400,((ctrlText 1400) + '4')];";
}; };
class numkey_5: Rsc_ACE_NumKeyButton { class numkey_5: Rsc_ACE_NumKeyButton {
idc = 1604; idc = 1604;
x = 0.314375 * safezoneW + safezoneX; x = 0.314375 * safezoneW + safezoneX;
y = 0.577 * safezoneH + safezoneY; y = 0.577 * safezoneH + safezoneY;
w = 0.0309375 * safezoneW; w = 0.0309375 * safezoneW;
h = 0.033 * safezoneH; h = 0.033 * safezoneH;
tooltip = "5"; tooltip = "5";
action = "ctrlSetText [1400,((ctrlText 1400) + '5')];"; action = "ctrlSetText [1400,((ctrlText 1400) + '5')];";
}; };
class numkey_6: Rsc_ACE_NumKeyButton { class numkey_6: Rsc_ACE_NumKeyButton {
idc = 1605; idc = 1605;
x = 0.350469 * safezoneW + safezoneX; x = 0.350469 * safezoneW + safezoneX;
y = 0.577 * safezoneH + safezoneY; y = 0.577 * safezoneH + safezoneY;
w = 0.0309375 * safezoneW; w = 0.0309375 * safezoneW;
h = 0.033 * safezoneH; h = 0.033 * safezoneH;
tooltip = "6"; tooltip = "6";
action = "ctrlSetText [1400,((ctrlText 1400) + '6')];"; action = "ctrlSetText [1400,((ctrlText 1400) + '6')];";
}; };
class numkey_7: Rsc_ACE_NumKeyButton { class numkey_7: Rsc_ACE_NumKeyButton {
idc = 1606; idc = 1606;
x = 0.278281 * safezoneW + safezoneX; x = 0.278281 * safezoneW + safezoneX;
y = 0.621 * safezoneH + safezoneY; y = 0.621 * safezoneH + safezoneY;
w = 0.0309375 * safezoneW; w = 0.0309375 * safezoneW;
h = 0.033 * safezoneH; h = 0.033 * safezoneH;
tooltip = "7"; tooltip = "7";
action = "ctrlSetText [1400,((ctrlText 1400) + '7')];"; action = "ctrlSetText [1400,((ctrlText 1400) + '7')];";
}; };
class numkey_8: Rsc_ACE_NumKeyButton { class numkey_8: Rsc_ACE_NumKeyButton {
idc = 1607; idc = 1607;
x = 0.314375 * safezoneW + safezoneX; x = 0.314375 * safezoneW + safezoneX;
y = 0.621 * safezoneH + safezoneY; y = 0.621 * safezoneH + safezoneY;
w = 0.0309375 * safezoneW; w = 0.0309375 * safezoneW;
h = 0.033 * safezoneH; h = 0.033 * safezoneH;
tooltip = "8"; tooltip = "8";
action = "ctrlSetText [1400,((ctrlText 1400) + '8')];"; action = "ctrlSetText [1400,((ctrlText 1400) + '8')];";
}; };
class numkey_9: Rsc_ACE_NumKeyButton { class numkey_9: Rsc_ACE_NumKeyButton {
idc = 1608; idc = 1608;
x = 0.350469 * safezoneW + safezoneX; x = 0.350469 * safezoneW + safezoneX;
y = 0.621 * safezoneH + safezoneY; y = 0.621 * safezoneH + safezoneY;
w = 0.0309375 * safezoneW; w = 0.0309375 * safezoneW;
h = 0.033 * safezoneH; h = 0.033 * safezoneH;
tooltip = "9"; tooltip = "9";
action = "ctrlSetText [1400,((ctrlText 1400) + '9')];"; action = "ctrlSetText [1400,((ctrlText 1400) + '9')];";
}; };
class numkey_0: Rsc_ACE_NumKeyButton { class numkey_0: Rsc_ACE_NumKeyButton {
idc = 1609; idc = 1609;
x = 0.314375 * safezoneW + safezoneX; x = 0.314375 * safezoneW + safezoneX;
y = 0.676 * safezoneH + safezoneY; y = 0.676 * safezoneH + safezoneY;
w = 0.0309375 * safezoneW; w = 0.0309375 * safezoneW;
h = 0.033 * safezoneH; h = 0.033 * safezoneH;
tooltip = "0"; tooltip = "0";
action = "ctrlSetText [1400,((ctrlText 1400) + '0')];"; action = "ctrlSetText [1400,((ctrlText 1400) + '0')];";
}; };
class speedDialAdd: Rsc_ACE_NumKeyButton { class speedDialAdd: Rsc_ACE_NumKeyButton {
idc = 1610; idc = 1610;
x = 0.278281 * safezoneW + safezoneX; x = 0.278281 * safezoneW + safezoneX;
y = 0.676 * safezoneH + safezoneY; y = 0.676 * safezoneH + safezoneY;
w = 0.0309375 * safezoneW; w = 0.0309375 * safezoneW;
h = 0.033 * safezoneH; h = 0.033 * safezoneH;
tooltip = "$STR_ACE_Explosives_Phone_AddToSpeedDial"; tooltip = "$STR_ACE_Explosives_Phone_AddToSpeedDial";
action = QUOTE([ARR_2(ctrlText 1401,ctrlText 1400)] call FUNC(addToSpeedDial);); action = QUOTE([ARR_2(ctrlText 1401,ctrlText 1400)] call FUNC(addToSpeedDial););
}; };
class clear: Rsc_ACE_HiddenButton { class clear: Rsc_ACE_HiddenButton {
idc = 1610; idc = 1610;
x = 0.278281 * safezoneW + safezoneX; x = 0.278281 * safezoneW + safezoneX;
y = 0.445 * safezoneH + safezoneY; y = 0.445 * safezoneH + safezoneY;
w = 0.020625 * safezoneW; w = 0.020625 * safezoneW;
h = 0.033 * safezoneH; h = 0.033 * safezoneH;
tooltip = "$STR_ACE_Explosives_Clear"; tooltip = "$STR_ACE_Explosives_Clear";
action = QUOTE(ctrlSetText [ARR_2(1400,'')];[ctrlText 1401] call FUNC(removeFromSpeedDial);ctrlSetText [ARR_2(1401,'')];); action = QUOTE(ctrlSetText [ARR_2(1400,'')];[ctrlText 1401] call FUNC(removeFromSpeedDial);ctrlSetText [ARR_2(1401,'')];);
}; };
class dial: Rsc_ACE_HiddenButton { class dial: Rsc_ACE_HiddenButton {
idc = 1611; idc = 1611;
x = 0.309219 * safezoneW + safezoneX; x = 0.309219 * safezoneW + safezoneX;
y = 0.445 * safezoneH + safezoneY; y = 0.445 * safezoneH + safezoneY;
w = 0.04125 * safezoneW; w = 0.04125 * safezoneW;
h = 0.033 * safezoneH; h = 0.033 * safezoneH;
tooltip = "$STR_ACE_Explosives_Phone_Dial"; tooltip = "$STR_ACE_Explosives_Phone_Dial";
action = QUOTE([ARR_2(ace_player,ctrlText 1400)] call FUNC(dialPhone);); action = QUOTE([ARR_2(ace_player,ctrlText 1400)] call FUNC(dialPhone););
}; };
class up: Rsc_ACE_HiddenButton { class up: Rsc_ACE_HiddenButton {
idc = 1612; idc = 1612;
x = 0.360781 * safezoneW + safezoneX; x = 0.360781 * safezoneW + safezoneX;
y = 0.445 * safezoneH + safezoneY; y = 0.445 * safezoneH + safezoneY;
w = 0.020625 * safezoneW; w = 0.020625 * safezoneW;
h = 0.033 * safezoneH; h = 0.033 * safezoneH;
tooltip = "$STR_ACE_Explosives_Phone_Up"; tooltip = "$STR_ACE_Explosives_Phone_Up";
action = QUOTE([true] call FUNC(setSpeedDial)); action = QUOTE([true] call FUNC(setSpeedDial));
}; };
class down: Rsc_ACE_HiddenButton { class down: Rsc_ACE_HiddenButton {
idc = 1613; idc = 1613;
x = 0.345312 * safezoneW + safezoneX; x = 0.345312 * safezoneW + safezoneX;
y = 0.485 * safezoneH + safezoneY; y = 0.485 * safezoneH + safezoneY;
w = 0.020625 * safezoneW; w = 0.020625 * safezoneW;
h = 0.033 * safezoneH; h = 0.033 * safezoneH;
tooltip = "$STR_ACE_Explosives_Phone_Down"; tooltip = "$STR_ACE_Explosives_Phone_Down";
action = QUOTE([false] call FUNC(setSpeedDial)); action = QUOTE([false] call FUNC(setSpeedDial));
}; };
class speedDial_Text: RscText { class speedDial_Text: RscText {
idc = 1405; idc = 1405;
y = 0.302 * safezoneH + safezoneY; y = 0.302 * safezoneH + safezoneY;
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 22) * 1)"; SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 22) * 1)";
x = 0.288594 * safezoneW + safezoneX; x = 0.288594 * safezoneW + safezoneX;
w = 0.0825 * safezoneW; w = 0.0825 * safezoneW;
h = 0.044 * safezoneH; h = 0.044 * safezoneH;
text = "Name"; text = "Name";
}; };
class speedDial_edit: Rsc_ACE_CallScreen_Edit { class speedDial_edit: Rsc_ACE_CallScreen_Edit {
idc = 1401; idc = 1401;
y = 0.302 * safezoneH + safezoneY; y = 0.302 * safezoneH + safezoneY;
x = 0.318 * safezoneW + safezoneX; x = 0.318 * safezoneW + safezoneX;
w = 0.1; w = 0.1;
}; };
class numberEdit_Text: RscText { class numberEdit_Text: RscText {
idc = 1406; idc = 1406;
y = 0.348 * safezoneH + safezoneY; y = 0.348 * safezoneH + safezoneY;
SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 22) * 1)"; SizeEx = "(((((safezoneW / safezoneH) min 1.2) / 1.2) / 22) * 1)";
x = 0.288594 * safezoneW + safezoneX; x = 0.288594 * safezoneW + safezoneX;
w = 0.0825 * safezoneW; w = 0.0825 * safezoneW;
h = 0.044 * safezoneH; h = 0.044 * safezoneH;
text = "#"; text = "#";
}; };
class number_edit: Rsc_ACE_CallScreen_Edit { class number_edit: Rsc_ACE_CallScreen_Edit {
canModify = 0; canModify = 0;
idc = 1400; idc = 1400;
y = 0.348 * safezoneH + safezoneY; y = 0.348 * safezoneH + safezoneY;
x = 0.3 * safezoneW + safezoneX; x = 0.3 * safezoneW + safezoneX;
}; };
}; };
}; };

View File

@ -22,46 +22,46 @@ GVAR(CurrentSpeedDial) = 0;
[{(_this select 0) call FUNC(handleScrollWheel);}] call EFUNC(Common,addScrollWheelEventHandler); [{(_this select 0) call FUNC(handleScrollWheel);}] call EFUNC(Common,addScrollWheelEventHandler);
player addEventHandler ["Killed", { player addEventHandler ["Killed", {
private "_deadman"; private "_deadman";
call FUNC(place_Cancel); call FUNC(place_Cancel);
_deadman = [(_this select 0), "DeadManSwitch"] call FUNC(getPlacedExplosives); _deadman = [(_this select 0), "DeadManSwitch"] call FUNC(getPlacedExplosives);
{ {
[(_this select 0), -1, _x, true] call FUNC(detonateExplosive); [(_this select 0), -1, _x, true] call FUNC(detonateExplosive);
} count _deadman; } count _deadman;
}]; }];
player addEventHandler ["Take", { player addEventHandler ["Take", {
private ["_item", "_getter", "_giver", "_config"]; private ["_item", "_getter", "_giver", "_config"];
_item = _this select 2; _item = _this select 2;
_getter = _this select 0; _getter = _this select 0;
_giver = _this select 1; _giver = _this select 1;
_config = ConfigFile >> "CfgWeapons" >> _item; _config = ConfigFile >> "CfgWeapons" >> _item;
if (isClass _config && {getNumber(_config >> "ACE_Detonator") == 1}) then { if (isClass _config && {getNumber(_config >> "ACE_Detonator") == 1}) then {
private ["_clackerItems"]; private ["_clackerItems"];
_clackerItems = _giver getVariable [QGVAR(Clackers), []]; _clackerItems = _giver getVariable [QGVAR(Clackers), []];
_getter SetVariable [QGVAR(Clackers), (_getter getVariable [QGVAR(Clackers), []]) + _clackerItems, true]; _getter SetVariable [QGVAR(Clackers), (_getter getVariable [QGVAR(Clackers), []]) + _clackerItems, true];
_detonators = [_giver] call FUNC(getDetonators); _detonators = [_giver] call FUNC(getDetonators);
if (count _detonators == 0) then { if (count _detonators == 0) then {
_giver setVariable [QGVAR(Clackers), nil, true]; _giver setVariable [QGVAR(Clackers), nil, true];
}; };
}; };
}]; }];
player addEventHandler ["Put", { player addEventHandler ["Put", {
private ["_item", "_getter", "_giver", "_config"]; private ["_item", "_getter", "_giver", "_config"];
_item = _this select 2; _item = _this select 2;
_getter = _this select 1; _getter = _this select 1;
_giver = _this select 0; _giver = _this select 0;
_config = ConfigFile >> "CfgWeapons" >> _item; _config = ConfigFile >> "CfgWeapons" >> _item;
if (isClass _config && {getNumber(_config >> "ACE_Detonator") == 1}) then { if (isClass _config && {getNumber(_config >> "ACE_Detonator") == 1}) then {
private ["_clackerItems"]; private ["_clackerItems"];
_clackerItems = _giver getVariable [QGVAR(Clackers), []]; _clackerItems = _giver getVariable [QGVAR(Clackers), []];
_getter SetVariable [QGVAR(Clackers), (_getter getVariable [QGVAR(Clackers), []]) + _clackerItems, true]; _getter SetVariable [QGVAR(Clackers), (_getter getVariable [QGVAR(Clackers), []]) + _clackerItems, true];
_detonators = [_giver] call FUNC(getDetonators); _detonators = [_giver] call FUNC(getDetonators);
if (count _detonators == 0) then { if (count _detonators == 0) then {
_giver setVariable [QGVAR(Clackers), nil, true]; _giver setVariable [QGVAR(Clackers), nil, true];
}; };
}; };
}]; }];

View File

@ -1,15 +1,15 @@
#include "script_component.hpp" #include "script_component.hpp"
class CfgPatches { class CfgPatches {
class ADDON { class ADDON {
units[] = {}; units[] = {};
weapons[] = {"ACE_Clacker", "ACE_DefusalKit", "ACE_M26_Clacker", "ACE_DeadManSwitch", "ACE_Cellphone"}; weapons[] = {"ACE_Clacker", "ACE_DefusalKit", "ACE_M26_Clacker", "ACE_DeadManSwitch", "ACE_Cellphone"};
requiredVersion = REQUIRED_VERSION; requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction"}; requiredAddons[] = {"ace_interaction"};
author[] = {"Garth 'L-H' de Wet"}; author[] = {"Garth 'L-H' de Wet"};
authorUrl = "http://garth.snakebiteink.co.za/"; authorUrl = "http://garth.snakebiteink.co.za/";
VERSION_CONFIG; VERSION_CONFIG;
}; };
}; };
#include "CfgEventHandlers.hpp" #include "CfgEventHandlers.hpp"
@ -22,30 +22,30 @@ class CfgPatches {
#include "ExplosivesUI.hpp" #include "ExplosivesUI.hpp"
class CfgActions { class CfgActions {
class None; class None;
class Deactivate:None { class Deactivate:None {
show = 0; show = 0;
}; };
class DeactivateMine:None { class DeactivateMine:None {
show = 0; show = 0;
}; };
}; };
class CfgMineTriggers { class CfgMineTriggers {
class RangeTrigger; class RangeTrigger;
class MagneticTrigger: RangeTrigger { class MagneticTrigger: RangeTrigger {
mineMagnetic = 1; mineMagnetic = 1;
mineTriggerRange = 1; mineTriggerRange = 1;
}; };
}; };
class ACE_Settings { class ACE_Settings {
class GVAR(RequireSpecialist) { class GVAR(RequireSpecialist) {
value = 0; value = 0;
typeName = "BOOL"; typeName = "BOOL";
}; };
class GVAR(PunishNonSpecialists) { class GVAR(PunishNonSpecialists) {
value = 1; value = 1;
typeName = "BOOL"; typeName = "BOOL";
}; };
}; };

View File

@ -25,23 +25,23 @@ _requiredItems = getArray(_config >> "requires");
_hasRequired = true; _hasRequired = true;
_detonators = [_unit] call FUNC(getDetonators); _detonators = [_unit] call FUNC(getDetonators);
{ {
if !(_x in _detonators) exitWith{ if !(_x in _detonators) exitWith{
_hasRequired = false; _hasRequired = false;
}; };
} count _requiredItems; } count _requiredItems;
private ["_code", "_count", "_codeSet"]; private ["_code", "_count", "_codeSet"];
_codeSet = false; _codeSet = false;
while {!_codeSet} do { while {!_codeSet} do {
_code = str(round (random 9999)); _code = str(round (random 9999));
_count = 4 - count (toArray _code); _count = 4 - count (toArray _code);
while {_count > 0} do { while {_count > 0} do {
_code = "0" + _code; _code = "0" + _code;
_count = _count - 1; _count = _count - 1;
}; };
_codeSet = (count ([_code] call FUNC(getSpeedDialExplosive))) == 0; _codeSet = (count ([_code] call FUNC(getSpeedDialExplosive))) == 0;
}; };
if (isNil QGVAR(CellphoneIEDs)) then { if (isNil QGVAR(CellphoneIEDs)) then {
GVAR(CellphoneIEDs) = []; GVAR(CellphoneIEDs) = [];
}; };
_count = GVAR(CellphoneIEDs) pushBack [_explosive,_code,GetNumber(ConfigFile >> "CfgMagazines" >> _magazineClass >> "ACE_Triggers" >> "Cellphone" >> "FuseTime")]; _count = GVAR(CellphoneIEDs) pushBack [_explosive,_code,GetNumber(ConfigFile >> "CfgMagazines" >> _magazineClass >> "ACE_Triggers" >> "Cellphone" >> "FuseTime")];
_count = _count + 1; _count = _count + 1;

View File

@ -26,9 +26,9 @@ _requiredItems = getArray(_config >> "requires");
_hasRequired = true; _hasRequired = true;
_detonators = [_unit] call FUNC(getDetonators); _detonators = [_unit] call FUNC(getDetonators);
{ {
if !(_x in _detonators) exitWith{ if !(_x in _detonators) exitWith{
_hasRequired = false; _hasRequired = false;
}; };
} count _requiredItems; } count _requiredItems;
if !(_hasRequired) exitWith {}; if !(_hasRequired) exitWith {};
@ -38,7 +38,7 @@ _clacker = _unit getVariable [QGVAR(Clackers), []];
GVAR(PlacedCount) = GVAR(PlacedCount) + 1; GVAR(PlacedCount) = GVAR(PlacedCount) + 1;
_clacker pushBack [_explosive, getNumber(_config >> "FuseTime"), format [localize "STR_ACE_Explosives_DetonateCode", _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))]; GVAR(PlacedCount)], _magazineClass, configName ((_this select 3) select (count (_this select 3) - 1))];
_unit setVariable [QGVAR(Clackers), _clacker, true]; _unit setVariable [QGVAR(Clackers), _clacker, true];
_unit sideChat format [localize "STR_ACE_Explosives_DetonateCode", GVAR(PlacedCount)]; _unit sideChat format [localize "STR_ACE_Explosives_DetonateCode", GVAR(PlacedCount)];

View File

@ -23,27 +23,27 @@ _range = GetNumber (ConfigFile >> "CfgWeapons" >> _detonator >> "ACE_Range");
_result = [_unit] call FUNC(getPlacedExplosives); _result = [_unit] call FUNC(getPlacedExplosives);
_children = []; _children = [];
{ {
if (!isNull(_x select 0)) then { if (!isNull(_x select 0)) then {
_required = getArray (ConfigFile >> "CfgACE_Triggers" >> (_x select 4) >> "requires"); _required = getArray (ConfigFile >> "CfgACE_Triggers" >> (_x select 4) >> "requires");
if (_detonator in _required) then { if (_detonator in _required) then {
_item = ConfigFile >> "CfgMagazines" >> (_x select 3); _item = ConfigFile >> "CfgMagazines" >> (_x select 3);
_children pushBack _children pushBack
[ [
[ [
format ["Explosive_%1", _forEachIndex], format ["Explosive_%1", _forEachIndex],
_x select 2, _x select 2,
getText(_item >> "picture"), getText(_item >> "picture"),
{(_this select 2) call FUNC(detonateExplosive);}, {(_this select 2) call FUNC(detonateExplosive);},
{true}, {true},
{}, {},
[ACE_player,_range,_x] [ACE_player,_range,_x]
] call EFUNC(interact_menu,createAction), ] call EFUNC(interact_menu,createAction),
[], [],
ACE_Player ACE_Player
]; ];
}; };
}; };
} foreach _result; } foreach _result;
_children _children

View File

@ -22,16 +22,16 @@ _found = false;
EXPLODE_2_PVT(_this,_name,_code); EXPLODE_2_PVT(_this,_name,_code);
if ((_code) == "") ExitWith { if ((_code) == "") ExitWith {
[_name] call FUNC(removeFromSpeedDial); [_name] call FUNC(removeFromSpeedDial);
}; };
{ {
if ((_x select 0) == _name) exitWith { if ((_x select 0) == _name) exitWith {
_speedDial set [_foreachindex, _this]; _speedDial set [_foreachindex, _this];
_found = true; _found = true;
}; };
} foreach _speedDial; } foreach _speedDial;
if (!_found) then { if (!_found) then {
_speedDial pushBack _this; _speedDial pushBack _this;
}; };
ace_player setVariable [QGVAR(SpeedDial), _speedDial]; ace_player setVariable [QGVAR(SpeedDial), _speedDial];

View File

@ -19,21 +19,21 @@ _unit = _this select 0;
_detonators = [_unit] call FUNC(getDetonators); _detonators = [_unit] call FUNC(getDetonators);
_children = []; _children = [];
{ {
_config = ConfigFile >> "CfgWeapons" >> _x; _config = ConfigFile >> "CfgWeapons" >> _x;
_children pushBack _children pushBack
[ [
[ [
format ["Trigger_%1", _forEachIndex], format ["Trigger_%1", _forEachIndex],
getText(_config >> "displayName"), getText(_config >> "displayName"),
getText(_config >> "picture"), getText(_config >> "picture"),
{}, {},
{true}, {true},
{(_this select 2) call FUNC(addDetonateActions);}, {(_this select 2) call FUNC(addDetonateActions);},
[ACE_player,_x] [ACE_player,_x]
] call EFUNC(interact_menu,createAction), ] call EFUNC(interact_menu,createAction),
[], [],
ACE_Player ACE_Player
]; ];
} foreach _detonators; } foreach _detonators;
_children _children

View File

@ -16,7 +16,7 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
private ["_hasRequiredItems","_triggerTypes", "_children", private ["_hasRequiredItems","_triggerTypes", "_children",
"_detonators", "_required", "_magTriggers"]; "_detonators", "_required", "_magTriggers"];
EXPLODE_2_PVT(_this,_magazine,_explosive); EXPLODE_2_PVT(_this,_magazine,_explosive);
_detonators = [ACE_player] call FUNC(getDetonators); _detonators = [ACE_player] call FUNC(getDetonators);
@ -24,33 +24,33 @@ _triggerTypes = [_magazine] call FUNC(triggerType);
_magTriggers = ConfigFile >> "CfgMagazines" >> _magazine >> "ACE_Triggers"; _magTriggers = ConfigFile >> "CfgMagazines" >> _magazine >> "ACE_Triggers";
_children = []; _children = [];
{ {
_required = getArray (_x >> "requires"); _required = getArray (_x >> "requires");
_hasRequiredItems = true; _hasRequiredItems = true;
{ {
if !(_x in _detonators) exitWith { if !(_x in _detonators) exitWith {
_hasRequiredItems = false; _hasRequiredItems = false;
}; };
} count _required; } count _required;
if (_hasRequiredItems) then { if (_hasRequiredItems) then {
_children pushBack _children pushBack
[ [
[ [
format ["Trigger_%1", _forEachIndex], format ["Trigger_%1", _forEachIndex],
if(isText(_magTriggers >> configName _x >> "displayName"))then if(isText(_magTriggers >> configName _x >> "displayName"))then
{getText(_magTriggers >> configName _x >> "displayName")} {getText(_magTriggers >> configName _x >> "displayName")}
else{getText(_x >> "displayName")}, else{getText(_x >> "displayName")},
if(isText(_magTriggers >> configName _x >> "picture"))then if(isText(_magTriggers >> configName _x >> "picture"))then
{getText(_magTriggers >> configName _x >> "picture")} {getText(_magTriggers >> configName _x >> "picture")}
else{getText(_x >> "picture")}, else{getText(_x >> "picture")},
{(_this select 2) call FUNC(selectTrigger);}, {(_this select 2) call FUNC(selectTrigger);},
{true}, {true},
{}, {},
[_explosive, _magazine, configName _x] [_explosive, _magazine, configName _x]
] call EFUNC(interact_menu,createAction), ] call EFUNC(interact_menu,createAction),
[], [],
ACE_Player ACE_Player
]; ];
}; };
} foreach _triggerTypes; } foreach _triggerTypes;
_children _children

View File

@ -18,13 +18,13 @@
EXPLODE_2_PVT(_this,_unit,_explosive); EXPLODE_2_PVT(_this,_unit,_explosive);
if (getNumber (ConfigFile >> "CfgAmmo" >> typeof _explosive >> "ACE_explodeOnDefuse") == 1) exitWith { if (getNumber (ConfigFile >> "CfgAmmo" >> typeof _explosive >> "ACE_explodeOnDefuse") == 1) exitWith {
[_unit, -1, [_explosive, 1], true] call FUNC(detonateExplosive); [_unit, -1, [_explosive, 1], true] call FUNC(detonateExplosive);
}; };
{ {
detach _x; detach _x;
deleteVehicle _x; deleteVehicle _x;
false false
} count (attachedObjects (_explosive)); } count (attachedObjects (_explosive));
_unit action ["Deactivate", _unit, _explosive]; _unit action ["Deactivate", _unit, _explosive];

View File

@ -6,8 +6,8 @@
* 0: Unit <OBJECT> * 0: Unit <OBJECT>
* 1: Max range (-1 to ignore) <NUMBER> * 1: Max range (-1 to ignore) <NUMBER>
* 2: Explosive <ARRAY> * 2: Explosive <ARRAY>
* 0: Explosive <OBJECT> * 0: Explosive <OBJECT>
* 1: Fuse time <NUMBER> * 1: Fuse time <NUMBER>
* *
* Return Value: * Return Value:
* None * None
@ -28,28 +28,28 @@ if (!_ignoreRange && {(_unit distance (_item select 0)) > _range}) exitWith {fal
_helper = (attachedTo (_item select 0)); _helper = (attachedTo (_item select 0));
if (!isNull(_helper)) then { if (!isNull(_helper)) then {
detach (_item select 0); detach (_item select 0);
deleteVehicle _helper; deleteVehicle _helper;
}; };
if (getNumber (ConfigFile >> "CfgAmmo" >> typeof (_item select 0) >> "TriggerWhenDestroyed") == 0) then { if (getNumber (ConfigFile >> "CfgAmmo" >> typeof (_item select 0) >> "TriggerWhenDestroyed") == 0) then {
private ["_exp", "_previousExp"]; private ["_exp", "_previousExp"];
_previousExp = _item select 0; _previousExp = _item select 0;
_exp = getText (ConfigFile >> "CfgAmmo" >> typeof (_previousExp) >> "ACE_Explosive"); _exp = getText (ConfigFile >> "CfgAmmo" >> typeof (_previousExp) >> "ACE_Explosive");
if (_exp != "") then { if (_exp != "") then {
_exp = createVehicle [_exp, [0,0,15001], [], 0, "NONE"]; _exp = createVehicle [_exp, [0,0,15001], [], 0, "NONE"];
_exp setDir (getDir _previousExp); _exp setDir (getDir _previousExp);
_item set [0, _exp]; _item set [0, _exp];
_pos = getPosASL _previousExp; _pos = getPosASL _previousExp;
deleteVehicle _previousExp; deleteVehicle _previousExp;
_exp setPosASL _pos; _exp setPosASL _pos;
}; };
}; };
[{ [{
_explosive = _this; _explosive = _this;
if (!isNull _explosive) then { if (!isNull _explosive) then {
_explosive setDamage 1; _explosive setDamage 1;
}; };
}, _item select 0, _item select 1, 0] call EFUNC(common,waitAndExecute); }, _item select 0, _item select 1, 0] call EFUNC(common,waitAndExecute);
_result _result

View File

@ -24,19 +24,19 @@ _unit setVariable [QGVAR(Dialing), true, true];
_ran = (ceil(random 8)) + 1; _ran = (ceil(random 8)) + 1;
_arr = []; _arr = [];
for [{_i=0}, {_i<_ran}, {_i=_i+1}] do { for [{_i=0}, {_i<_ran}, {_i=_i+1}] do {
_arr = _arr + ['.','..','...','']; _arr = _arr + ['.','..','...',''];
}; };
if (_unit == ace_player) then { if (_unit == ace_player) then {
ctrlSetText [1400,"Calling"]; ctrlSetText [1400,"Calling"];
[FUNC(dialingPhone), 0.25, [_unit,4,_arr,_code]] call CALLSTACK(CBA_fnc_addPerFrameHandler); [FUNC(dialingPhone), 0.25, [_unit,4,_arr,_code]] call CALLSTACK(CBA_fnc_addPerFrameHandler);
} else { } else {
private ["_explosive"]; private ["_explosive"];
_explosive = [_code] call FUNC(getSpeedDialExplosive); _explosive = [_code] call FUNC(getSpeedDialExplosive);
if ((count _explosive) > 0) then { if ((count _explosive) > 0) then {
[{ [{
playSound3D [QUOTE(PATHTO_R(Data\Audio\Cellphone_Ring.wss)),objNull, false, getPosASL (_this select 1),3.16228,1,75]; playSound3D [QUOTE(PATHTO_R(Data\Audio\Cellphone_Ring.wss)),objNull, false, getPosASL (_this select 1),3.16228,1,75];
(_this select 0) setVariable [QGVAR(Dialing), false, true]; (_this select 0) setVariable [QGVAR(Dialing), false, true];
}, [_unit,_explosive select 0], 0.25 * (count _arr - 4), 0] call EFUNC(common,waitAndExecute); }, [_unit,_explosive select 0], 0.25 * (count _arr - 4), 0] call EFUNC(common,waitAndExecute);
[_explosive select 0,(0.25 * (count _arr - 1)) + (_explosive select 2)] call FUNC(startTimer); [_explosive select 0,(0.25 * (count _arr - 1)) + (_explosive select 2)] call FUNC(startTimer);
}; };
}; };

View File

@ -20,10 +20,10 @@ _items = (items _unit);
_result = []; _result = [];
{ {
_config = ConfigFile >> "CfgWeapons" >> _x; _config = ConfigFile >> "CfgWeapons" >> _x;
if (getNumber (_config >> "ACE_Detonator") == 1) then { if (getNumber (_config >> "ACE_Detonator") == 1) then {
_result pushBack _x; _result pushBack _x;
}; };
} forEach _items; } forEach _items;
_result _result

View File

@ -20,29 +20,29 @@ private ["_unit", "_clackerList", "_adjustedList", "_list", "_filter"];
_unit = _this select 0; _unit = _this select 0;
_filter = nil; _filter = nil;
if (count _this > 1) then { if (count _this > 1) then {
_filter = ConfigFile >> "CfgACE_Triggers" >> (_this select 1); _filter = ConfigFile >> "CfgACE_Triggers" >> (_this select 1);
}; };
_clackerList = []; _clackerList = [];
_adjustedList = false; _adjustedList = false;
_clackerList = _unit getVariable [QGVAR(Clackers), []]; _clackerList = _unit getVariable [QGVAR(Clackers), []];
_list = []; _list = [];
{ {
if (isNull (_x select 0)) then { if (isNull (_x select 0)) then {
_clackerList set [_foreachIndex, "X"]; _clackerList set [_foreachIndex, "X"];
_adjustedList = true; _adjustedList = true;
} else { } else {
if (isNil "_filter" || {(ConfigFile >> "CfgACE_Triggers" >> (_x select 4)) == _filter}) then { if (isNil "_filter" || {(ConfigFile >> "CfgACE_Triggers" >> (_x select 4)) == _filter}) then {
_list pushBack _x; _list pushBack _x;
}; };
}; };
} foreach _clackerList; } foreach _clackerList;
if (_adjustedList) then { if (_adjustedList) then {
_clackerList = _clackerList - ["X"]; _clackerList = _clackerList - ["X"];
if (count _clackerList == 0) then { if (count _clackerList == 0) then {
_unit SetVariable [QGVAR(Clackers), nil, true]; _unit SetVariable [QGVAR(Clackers), nil, true];
} else { } else {
_unit SetVariable [QGVAR(Clackers), _clackerList, true]; _unit SetVariable [QGVAR(Clackers), _clackerList, true];
}; };
}; };
_list _list

View File

@ -19,9 +19,9 @@ private ["_explosive"];
if (isNil QGVAR(CellphoneIEDs)) exitWith {[]}; if (isNil QGVAR(CellphoneIEDs)) exitWith {[]};
_explosive = []; _explosive = [];
{ {
if ((_x select 1) == _code) exitWith { if ((_x select 1) == _code) exitWith {
_explosive = _x; _explosive = _x;
}; };
false false
} count GVAR(CellphoneIEDs); } count GVAR(CellphoneIEDs);
_explosive _explosive

View File

@ -19,9 +19,9 @@ _result = false;
_unit = _this select 0; _unit = _this select 0;
_magazines = magazines _unit; _magazines = magazines _unit;
{ {
if (getNumber (ConfigFile >> "CfgMagazines" >> _x >> "ACE_Placeable") == 1) exitWith { if (getNumber (ConfigFile >> "CfgMagazines" >> _x >> "ACE_Placeable") == 1) exitWith {
_result = true; _result = true;
}; };
} count _magazines; } count _magazines;
_result _result

View File

@ -21,8 +21,8 @@ _activated = _this select 2;
if !(_activated) exitWith {}; if !(_activated) exitWith {};
[_logic, QGVAR(RequireSpecialist), "RequireSpecialist"] [_logic, QGVAR(RequireSpecialist), "RequireSpecialist"]
call EFUNC(Common,readSettingFromModule); call EFUNC(Common,readSettingFromModule);
[_logic, QGVAR(PunishNonSpecialists),"PunishNonSpecialists"] [_logic, QGVAR(PunishNonSpecialists),"PunishNonSpecialists"]
call EFUNC(Common,readSettingFromModule); call EFUNC(Common,readSettingFromModule);
diag_log text "[ACE]: Explosive Module Initialized."; diag_log text "[ACE]: Explosive Module Initialized.";

View File

@ -18,22 +18,22 @@ if ((_explosive getVariable [QGVAR(Handled), false])) exitWith {};
_explosive setVariable [QGVAR(Handled), true]; _explosive setVariable [QGVAR(Handled), true];
if (!isNull _hitTarget && {_hitTarget isKindOf "AllVehicles"}) then { if (!isNull _hitTarget && {_hitTarget isKindOf "AllVehicles"}) then {
_explosive attachTo [_hitTarget]; _explosive attachTo [_hitTarget];
private "_dir"; private "_dir";
_dir = _setup getVariable [QGVAR(Direction), 0]; _dir = _setup getVariable [QGVAR(Direction), 0];
_dir = _dir - (getDir _hitTarget); _dir = _dir - (getDir _hitTarget);
[[_explosive, _dir, 0], QFUNC(setPosition)] call EFUNC(common,execRemoteFnc); [[_explosive, _dir, 0], QFUNC(setPosition)] call EFUNC(common,execRemoteFnc);
} else { } else {
[{ [{
EXPLODE_2_PVT(_this,_player,_explosive); EXPLODE_2_PVT(_this,_player,_explosive);
private "_pos"; private "_pos";
_player setVariable [QGVAR(PlantingExplosive), false]; _player setVariable [QGVAR(PlantingExplosive), false];
if (surfaceIsWater _pos) then { if (surfaceIsWater _pos) then {
_pos = getPosASL _explosive; _pos = getPosASL _explosive;
_explosive setPosASL _pos; _explosive setPosASL _pos;
}else{ }else{
_pos = getPosATL _explosive; _pos = getPosATL _explosive;
_explosive setPosATL _pos; _explosive setPosATL _pos;
}; };
}, [ACE_player, _explosive], 0.5, 0.1] call EFUNC(common,waitAndExecute); }, [ACE_player, _explosive], 0.5, 0.1] call EFUNC(common,waitAndExecute);
}; };

View File

@ -23,16 +23,16 @@ sliderSetPosition [8845, 30];
GVAR(explosive) = _explosive; GVAR(explosive) = _explosive;
DFUNC(SetTimer) = { DFUNC(SetTimer) = {
[ [
ACE_player, ACE_player,
getPosATL GVAR(explosive), getPosATL GVAR(explosive),
GVAR(explosive) getVariable QGVAR(Direction), GVAR(explosive) getVariable QGVAR(Direction),
GVAR(explosive) getVariable QGVAR(class), GVAR(explosive) getVariable QGVAR(class),
"Timer", "Timer",
[floor sliderPosition 8845], [floor sliderPosition 8845],
GVAR(explosive) GVAR(explosive)
] call FUNC(placeExplosive); ] call FUNC(placeExplosive);
closeDialog 0; closeDialog 0;
}; };
buttonSetAction [8860, QUOTE(call DFUNC(SetTimer);)]; buttonSetAction [8860, QUOTE(call DFUNC(SetTimer);)];

View File

@ -16,7 +16,7 @@
* *
* Example: * Example:
* _explosive = [player, player modelToWorld [0,0.5, 0.1], 134, * _explosive = [player, player modelToWorld [0,0.5, 0.1], 134,
* "SatchelCharge_Remote_Mag", "Command", []] call ACE_Explosives_fnc_placeExplosive; * "SatchelCharge_Remote_Mag", "Command", []] call ACE_Explosives_fnc_placeExplosive;
* *
* Public: Yes * Public: Yes
*/ */
@ -24,25 +24,25 @@
private ["_ammo", "_explosive"]; private ["_ammo", "_explosive"];
EXPLODE_6_PVT(_this,_unit,_pos,_dir,_magazineClass,_triggerConfig,_triggerSpecificVars); EXPLODE_6_PVT(_this,_unit,_pos,_dir,_magazineClass,_triggerConfig,_triggerSpecificVars);
if (count _this > 6) then { if (count _this > 6) then {
deleteVehicle (_this select 6); deleteVehicle (_this select 6);
}; };
if (isNil "_triggerConfig") exitWith { if (isNil "_triggerConfig") exitWith {
diag_log format ["ACE_Explosives: Error config not passed to PlaceExplosive: %1", _this]; diag_log format ["ACE_Explosives: Error config not passed to PlaceExplosive: %1", _this];
objNull objNull
}; };
_magazineTrigger = ConfigFile >> "CfgMagazines" >> _magazineClass >> "ACE_Triggers" >> _triggerConfig; _magazineTrigger = ConfigFile >> "CfgMagazines" >> _magazineClass >> "ACE_Triggers" >> _triggerConfig;
_triggerConfig = ConfigFile >> "CfgACE_Triggers" >> _triggerConfig; _triggerConfig = ConfigFile >> "CfgACE_Triggers" >> _triggerConfig;
if (isNil "_triggerConfig") exitWith { if (isNil "_triggerConfig") exitWith {
diag_log format ["ACE_Explosives: Error config not found in PlaceExplosive: %1", _this]; diag_log format ["ACE_Explosives: Error config not found in PlaceExplosive: %1", _this];
objNull objNull
}; };
_ammo = getText(ConfigFile >> "CfgMagazines" >> _magazineClass >> "ammo"); _ammo = getText(ConfigFile >> "CfgMagazines" >> _magazineClass >> "ammo");
if (isText(_magazineTrigger >> "ammo")) then { if (isText(_magazineTrigger >> "ammo")) then {
_ammo = getText (_magazineTrigger >> "ammo"); _ammo = getText (_magazineTrigger >> "ammo");
}; };
_triggerSpecificVars pushBack _triggerConfig; _triggerSpecificVars pushBack _triggerConfig;
private ["_defuseHelper"]; private ["_defuseHelper"];
@ -58,6 +58,6 @@ _defuseHelper setPosATL (((getPosATL _defuseHelper) vectorAdd (_pos vectorDiff _
_explosive setPosATL _pos; _explosive setPosATL _pos;
if (isText(_triggerConfig >> "onPlace") && {[_unit,_explosive,_magazineClass,_triggerSpecificVars] if (isText(_triggerConfig >> "onPlace") && {[_unit,_explosive,_magazineClass,_triggerSpecificVars]
call compile (getText (_triggerConfig >> "onPlace"))}) exitWith {_explosive}; call compile (getText (_triggerConfig >> "onPlace"))}) exitWith {_explosive};
[[_explosive, _dir, getNumber (_magazineTrigger >> "pitch")], QFUNC(setPosition)] call EFUNC(common,execRemoteFnc); [[_explosive, _dir, getNumber (_magazineTrigger >> "pitch")], QFUNC(setPosition)] call EFUNC(common,execRemoteFnc);
_explosive _explosive

View File

@ -16,8 +16,8 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
if (GVAR(pfeh_running)) then { if (GVAR(pfeh_running)) then {
[QGVAR(Placement),"OnEachFrame"] call CALLSTACK(BIS_fnc_removeStackedEventHandler); [QGVAR(Placement),"OnEachFrame"] call CALLSTACK(BIS_fnc_removeStackedEventHandler);
GVAR(pfeh_running) = false; GVAR(pfeh_running) = false;
}; };
private ["_mag", "_setup", "_player"]; private ["_mag", "_setup", "_player"];
_setup = GVAR(Setup); _setup = GVAR(Setup);
@ -29,13 +29,13 @@ GVAR(placer) = objNull;
_player = ACE_player; _player = ACE_player;
call EFUNC(interaction,hideMouseHint); call EFUNC(interaction,hideMouseHint);
if ((_setup getVariable [QGVAR(Class), ""]) == "") exitWith { if ((_setup getVariable [QGVAR(Class), ""]) == "") exitWith {
deleteVehicle _setup; deleteVehicle _setup;
}; };
_dir = (getDir _setup); _dir = (getDir _setup);
if (_dir > 180) then { if (_dir > 180) then {
_dir = _dir - 180; _dir = _dir - 180;
} else { } else {
_dir = 180 + _dir; _dir = 180 + _dir;
}; };
_setup setVariable [QGVAR(Direction), _dir]; _setup setVariable [QGVAR(Direction), _dir];
_player setVariable [QGVAR(PlantingExplosive), true]; _player setVariable [QGVAR(PlantingExplosive), true];

View File

@ -15,15 +15,15 @@
*/ */
#include "script_component.hpp" #include "script_component.hpp"
if (GVAR(pfeh_running)) then { if (GVAR(pfeh_running)) then {
[QGVAR(Placement),"OnEachFrame"] call CALLSTACK(BIS_fnc_removeStackedEventHandler); [QGVAR(Placement),"OnEachFrame"] call CALLSTACK(BIS_fnc_removeStackedEventHandler);
GVAR(pfeh_running) = false; GVAR(pfeh_running) = false;
}; };
if (!isNull (GVAR(Setup))) then { if (!isNull (GVAR(Setup))) then {
deleteVehicle GVAR(Setup); deleteVehicle GVAR(Setup);
}; };
GVAR(Setup) = objNull; GVAR(Setup) = objNull;
if (isNil {GVAR(placer)}) then { if (isNil {GVAR(placer)}) then {
GVAR(placer) = objNull; GVAR(placer) = objNull;
}; };
[GVAR(placer), "ACE_Explosives", false] call EFUNC(Common,setForceWalkStatus); [GVAR(placer), "ACE_Explosives", false] call EFUNC(Common,setForceWalkStatus);
GVAR(placer) = objNull; GVAR(placer) = objNull;

View File

@ -18,9 +18,9 @@ private "_speedDial";
_speedDial = ace_player getVariable [QGVAR(SpeedDial), []]; _speedDial = ace_player getVariable [QGVAR(SpeedDial), []];
if (count _speedDial == 0) exitWith {}; if (count _speedDial == 0) exitWith {};
{ {
if ((_x select 0) == (_this select 0)) exitWith { if ((_x select 0) == (_this select 0)) exitWith {
_speedDial set [_foreachIndex, "x"]; _speedDial set [_foreachIndex, "x"];
_speedDial = _speedDial - ["x"]; _speedDial = _speedDial - ["x"];
ace_player setVariable [QGVAR(SpeedDial),_speedDial]; ace_player setVariable [QGVAR(SpeedDial),_speedDial];
}; };
} foreach _speedDial; } foreach _speedDial;

View File

@ -19,5 +19,5 @@
EXPLODE_3_PVT(_this,_explosive,_direction,_pitch); EXPLODE_3_PVT(_this,_explosive,_direction,_pitch);
_explosive setDir _direction; _explosive setDir _direction;
if (_pitch != 0) then { if (_pitch != 0) then {
[_explosive, _pitch, 0] call CALLSTACK(BIS_fnc_setPitchBank); [_explosive, _pitch, 0] call CALLSTACK(BIS_fnc_setPitchBank);
}; };

View File

@ -28,22 +28,22 @@ GVAR(Setup) setVariable [QGVAR(class), _class, true];
GVAR(TweakedAngle) = 180; GVAR(TweakedAngle) = 180;
[QGVAR(Placement),"OnEachFrame", { [QGVAR(Placement),"OnEachFrame", {
private "_player"; private "_player";
_player = ACE_player; _player = ACE_player;
if (GVAR(placer) != _player) exitWith { if (GVAR(placer) != _player) exitWith {
call FUNC(place_Cancel); call FUNC(place_Cancel);
}; };
GVAR(pfeh_running) = true; GVAR(pfeh_running) = true;
_pos = (ASLtoATL eyePos _player) vectorAdd (positionCameraToWorld [0,0,1] vectorDiff positionCameraToWorld [0,0,0]); _pos = (ASLtoATL eyePos _player) vectorAdd (positionCameraToWorld [0,0,1] vectorDiff positionCameraToWorld [0,0,0]);
GVAR(Setup) setPosATL _pos; GVAR(Setup) setPosATL _pos;
if (ACE_Modifier == 0) then { if (ACE_Modifier == 0) then {
GVAR(Setup) setDir (GVAR(TweakedAngle) + getDir _player); GVAR(Setup) setDir (GVAR(TweakedAngle) + getDir _player);
}; };
}] call CALLSTACK(BIS_fnc_addStackedEventHandler); }] call CALLSTACK(BIS_fnc_addStackedEventHandler);
[localize "STR_ACE_Explosives_PlaceAction", localize "STR_ACE_Explosives_CancelAction", [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", _unit setVariable [QGVAR(Place), [_unit, "DefaultAction",
{GVAR(pfeh_running) AND !isNull (GVAR(Setup))}, {call FUNC(place_Approve);}] 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", _unit setVariable [QGVAR(Cancel), [_unit, "zoomtemp",
{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_Cancel);}] call EFUNC(common,AddActionEventHandler)];

View File

@ -19,44 +19,44 @@ EXPLODE_2_PVT(_this,_unit,_target);
_target = attachedTo (_target); _target = attachedTo (_target);
_fnc_DefuseTime = { _fnc_DefuseTime = {
EXPLODE_2_PVT(_this,_specialist,_target); EXPLODE_2_PVT(_this,_specialist,_target);
_defuseTime = 5; _defuseTime = 5;
if (isNumber(ConfigFile >> "CfgAmmo" >> typeOf (_target) >> "ACE_DefuseTime")) then { if (isNumber(ConfigFile >> "CfgAmmo" >> typeOf (_target) >> "ACE_DefuseTime")) then {
_defuseTime = getNumber(ConfigFile >> "CfgAmmo" >> typeOf (_target) >> "ACE_DefuseTime"); _defuseTime = getNumber(ConfigFile >> "CfgAmmo" >> typeOf (_target) >> "ACE_DefuseTime");
}; };
if (!_specialist && {GVAR(PunishNonSpecialists)}) then { if (!_specialist && {GVAR(PunishNonSpecialists)}) then {
_defuseTime = _defuseTime * 1.5; _defuseTime = _defuseTime * 1.5;
}; };
_defuseTime _defuseTime
}; };
_actionToPlay = "MedicOther"; _actionToPlay = "MedicOther";
if (STANCE _unit == "Prone") then { if (STANCE _unit == "Prone") then {
_actionToPlay = "PutDown"; _actionToPlay = "PutDown";
}; };
if (ACE_player != _unit) then { if (ACE_player != _unit) then {
// If the unit is a player, call the function on the player. // If the unit is a player, call the function on the player.
if (isPlayer _unit) then { if (isPlayer _unit) then {
[[_unit, _target], QFUNC(startDefuse), _unit] call EFUNC(common,execRemoteFnc); [[_unit, _target], QFUNC(startDefuse), _unit] call EFUNC(common,execRemoteFnc);
} else { } else {
// TODO: use scheduled delay execution // TODO: use scheduled delay execution
[_unit, _target, [[_unit] call EFUNC(Common,isEOD), _target] call _fnc_DefuseTime] spawn { [_unit, _target, [[_unit] call EFUNC(Common,isEOD), _target] call _fnc_DefuseTime] spawn {
(_this select 0) playActionNow _actionToPlay; (_this select 0) playActionNow _actionToPlay;
(_this select 0) disableAI "MOVE"; (_this select 0) disableAI "MOVE";
(_this select 0) disableAI "TARGET"; (_this select 0) disableAI "TARGET";
sleep (_this select 2); sleep (_this select 2);
[(_this select 0), (_this select 1)] call FUNC(defuseExplosive); [(_this select 0), (_this select 1)] call FUNC(defuseExplosive);
(_this select 0) enableAI "MOVE"; (_this select 0) enableAI "MOVE";
(_this select 0) enableAI "TARGET"; (_this select 0) enableAI "TARGET";
}; };
}; };
} else { } else {
_unit playActionNow _actionToPlay; _unit playActionNow _actionToPlay;
private ["_defuseSeconds", "_isEOD"]; private ["_defuseSeconds", "_isEOD"];
_isEOD = [_unit] call EFUNC(Common,isEOD); _isEOD = [_unit] call EFUNC(Common,isEOD);
_defuseSeconds = [_isEOD, _target] call _fnc_DefuseTime; _defuseSeconds = [_isEOD, _target] call _fnc_DefuseTime;
if (_isEOD || {!GVAR(RequireSpecialist)}) then { if (_isEOD || {!GVAR(RequireSpecialist)}) then {
[_defuseSeconds, [_unit,_target], {(_this select 0) call FUNC(defuseExplosive)}, {}, (localize "STR_ACE_Explosives_DefusingExplosive")] call EFUNC(common,progressBar); [_defuseSeconds, [_unit,_target], {(_this select 0) call FUNC(defuseExplosive)}, {}, (localize "STR_ACE_Explosives_DefusingExplosive")] call EFUNC(common,progressBar);
}; };
}; };

View File

@ -20,6 +20,6 @@ _config = getArray (ConfigFile >> "CfgMagazines" >> (_this select 0) >> "ACE_Tri
_count = count _config; _count = count _config;
for "_index" from 0 to (_count - 1) do { for "_index" from 0 to (_count - 1) do {
_result set [_index, ConfigFile >> "CfgACE_Triggers" >> (_config select _index)]; _result set [_index, ConfigFile >> "CfgACE_Triggers" >> (_config select _index)];
}; };
_result _result

View File

@ -2,11 +2,11 @@
#include "\z\ace\addons\main\script_mod.hpp" #include "\z\ace\addons\main\script_mod.hpp"
#ifdef DEBUG_ENABLED_EXPLOSIVES #ifdef DEBUG_ENABLED_EXPLOSIVES
#define DEBUG_MODE_FULL #define DEBUG_MODE_FULL
#endif #endif
#ifdef DEBUG_SETTINGS_EXPLOSIVES #ifdef DEBUG_SETTINGS_EXPLOSIVES
#define DEBUG_SETTINGS DEBUG_SETTINGS_EXPLOSIVES #define DEBUG_SETTINGS DEBUG_SETTINGS_EXPLOSIVES
#endif #endif
#include "\z\ace\addons\main\script_macros.hpp" #include "\z\ace\addons\main\script_macros.hpp"

View File

@ -1,497 +1,497 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- Edited with tabler - 2014-12-16 --> <!-- Edited with tabler - 2014-12-16 -->
<Project name="ACE"> <Project name="ACE">
<Package name="Explosives"> <Package name="Explosives">
<Key ID="STR_ACE_Explosives_Menu"> <Key ID="STR_ACE_Explosives_Menu">
<English>Explosives</English> <English>Explosives</English>
<German>Sprengstoffe</German> <German>Sprengstoffe</German>
<Spanish>Explosivos</Spanish> <Spanish>Explosivos</Spanish>
<Polish>Ładunki wybuchowe</Polish> <Polish>Ładunki wybuchowe</Polish>
<French>Explosifs</French> <French>Explosifs</French>
<Czech>Výbušniny</Czech> <Czech>Výbušniny</Czech>
<Italian>Esplosivi</Italian> <Italian>Esplosivi</Italian>
<Hungarian>Robbanóanyagok</Hungarian> <Hungarian>Robbanóanyagok</Hungarian>
<Portuguese>Explosivos</Portuguese> <Portuguese>Explosivos</Portuguese>
<Russian>Взрывчатка</Russian> <Russian>Взрывчатка</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Place"> <Key ID="STR_ACE_Explosives_Place">
<English>Place &gt;&gt;</English> <English>Place &gt;&gt;</English>
<German>Platzieren &gt;&gt;</German> <German>Platzieren &gt;&gt;</German>
<Spanish>Colocar &gt;&gt;</Spanish> <Spanish>Colocar &gt;&gt;</Spanish>
<Polish>Umieść &gt;&gt;</Polish> <Polish>Umieść &gt;&gt;</Polish>
<French>Placer &gt;&gt;</French> <French>Placer &gt;&gt;</French>
<Czech>Položit &gt;&gt;</Czech> <Czech>Položit &gt;&gt;</Czech>
<Italian>Piazza &gt;&gt;</Italian> <Italian>Piazza &gt;&gt;</Italian>
<Hungarian>Lerakás &gt;&gt;</Hungarian> <Hungarian>Lerakás &gt;&gt;</Hungarian>
<Portuguese>Colocar &gt;&gt;</Portuguese> <Portuguese>Colocar &gt;&gt;</Portuguese>
<Russian>Установить &gt;&gt;</Russian> <Russian>Установить &gt;&gt;</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Detonate"> <Key ID="STR_ACE_Explosives_Detonate">
<English>Detonate &gt;&gt;</English> <English>Detonate &gt;&gt;</English>
<German>Zünden &gt;&gt;</German> <German>Zünden &gt;&gt;</German>
<Spanish>Detonar &gt;&gt;</Spanish> <Spanish>Detonar &gt;&gt;</Spanish>
<Polish>Detonuj &gt;&gt;</Polish> <Polish>Detonuj &gt;&gt;</Polish>
<French>Mise à feu &gt;&gt;</French> <French>Mise à feu &gt;&gt;</French>
<Czech>Odpálit &gt;&gt;</Czech> <Czech>Odpálit &gt;&gt;</Czech>
<Italian>Detona &gt;&gt;</Italian> <Italian>Detona &gt;&gt;</Italian>
<Hungarian>Robbantás &gt;&gt;</Hungarian> <Hungarian>Robbantás &gt;&gt;</Hungarian>
<Portuguese>Detonar &gt;&gt;</Portuguese> <Portuguese>Detonar &gt;&gt;</Portuguese>
<Russian>Подрыв &gt;&gt;</Russian> <Russian>Подрыв &gt;&gt;</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_DetonateCode"> <Key ID="STR_ACE_Explosives_DetonateCode">
<English>Explosive code: %1</English> <English>Explosive code: %1</English>
<German>Sprengstoffcode: %1</German> <German>Sprengstoffcode: %1</German>
<Spanish>Código del explosivo: %1</Spanish> <Spanish>Código del explosivo: %1</Spanish>
<Polish>Kod ładunku: %1</Polish> <Polish>Kod ładunku: %1</Polish>
<French>Code explosif: %1</French> <French>Code explosif: %1</French>
<Czech>Kód výbušniny: %1</Czech> <Czech>Kód výbušniny: %1</Czech>
<Italian>Codice dell'esplosivo : %1</Italian> <Italian>Codice dell'esplosivo : %1</Italian>
<Hungarian>Robbanóanyag kódja: %1</Hungarian> <Hungarian>Robbanóanyag kódja: %1</Hungarian>
<Portuguese>Código do explosivo: %1</Portuguese> <Portuguese>Código do explosivo: %1</Portuguese>
<Russian>Взрывная код: %1</Russian> <Russian>Взрывная код: %1</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_PlaceAction"> <Key ID="STR_ACE_Explosives_PlaceAction">
<English>Place</English> <English>Place</English>
<German>Platzieren</German> <German>Platzieren</German>
<Spanish>Colocar</Spanish> <Spanish>Colocar</Spanish>
<Polish>Umieść</Polish> <Polish>Umieść</Polish>
<French>Placer</French> <French>Placer</French>
<Czech>Položit</Czech> <Czech>Položit</Czech>
<Italian>Piazza</Italian> <Italian>Piazza</Italian>
<Hungarian>Elhelyezés</Hungarian> <Hungarian>Elhelyezés</Hungarian>
<Portuguese>Colocar</Portuguese> <Portuguese>Colocar</Portuguese>
<Russian>Положить</Russian> <Russian>Положить</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_CancelAction"> <Key ID="STR_ACE_Explosives_CancelAction">
<English>Cancel</English> <English>Cancel</English>
<German>Abbrechen</German> <German>Abbrechen</German>
<Spanish>Cancelar</Spanish> <Spanish>Cancelar</Spanish>
<Polish>Anuluj</Polish> <Polish>Anuluj</Polish>
<French>Annuler</French> <French>Annuler</French>
<Czech>Zrušit</Czech> <Czech>Zrušit</Czech>
<Italian>Annulla</Italian> <Italian>Annulla</Italian>
<Hungarian>Mégsem</Hungarian> <Hungarian>Mégsem</Hungarian>
<Portuguese>Cancelar</Portuguese> <Portuguese>Cancelar</Portuguese>
<Russian>Отмена</Russian> <Russian>Отмена</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_ScrollAction"> <Key ID="STR_ACE_Explosives_ScrollAction">
<English>+ Modifier, rotates</English> <English>+ Modifier, rotates</English>
<German>+ Modifikator, drehen</German> <German>+ Modifikator, drehen</German>
<Spanish>+ Modificador, girar</Spanish> <Spanish>+ Modificador, girar</Spanish>
<French>+ Modificateur, tourner</French> <French>+ Modificateur, tourner</French>
<Italian>+ Modificatore, rotazione</Italian> <Italian>+ Modificatore, rotazione</Italian>
<Czech>+ Otočit</Czech> <Czech>+ Otočit</Czech>
<Hungarian>+ Változtatás, forgatás</Hungarian> <Hungarian>+ Változtatás, forgatás</Hungarian>
<Polish>+ modyfikator, obracanie</Polish> <Polish>+ modyfikator, obracanie</Polish>
<Portuguese>+ Modificador, rotaciona</Portuguese> <Portuguese>+ Modificador, rotaciona</Portuguese>
<Russian>+ Bращать</Russian> <Russian>+ Bращать</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Jammer_TurnOn"> <Key ID="STR_ACE_Explosives_Jammer_TurnOn">
<English>Turn On Thor III</English> <English>Turn On Thor III</English>
<German>Thor III aktivieren</German> <German>Thor III aktivieren</German>
<Spanish>Encender Thor III</Spanish> <Spanish>Encender Thor III</Spanish>
<Polish>Włącz Thor III</Polish> <Polish>Włącz Thor III</Polish>
<French>Allumer Thor III</French> <French>Allumer Thor III</French>
<Czech>Zapnout Thor III</Czech> <Czech>Zapnout Thor III</Czech>
<Italian>Accendi Thor III</Italian> <Italian>Accendi Thor III</Italian>
<Hungarian>Thor III bekapcsolása</Hungarian> <Hungarian>Thor III bekapcsolása</Hungarian>
<Portuguese>Ativar Thor III</Portuguese> <Portuguese>Ativar Thor III</Portuguese>
<Russian>Активировать Thor III</Russian> <Russian>Активировать Thor III</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Jammer_TurnOff"> <Key ID="STR_ACE_Explosives_Jammer_TurnOff">
<English>Turn Off Thor III</English> <English>Turn Off Thor III</English>
<German>Thor III deaktivieren</German> <German>Thor III deaktivieren</German>
<Spanish>Apagar Thor III</Spanish> <Spanish>Apagar Thor III</Spanish>
<Polish>Wyłącz Thor III</Polish> <Polish>Wyłącz Thor III</Polish>
<French>Éteindre Thor III</French> <French>Éteindre Thor III</French>
<Czech>Vypnout Thor III</Czech> <Czech>Vypnout Thor III</Czech>
<Italian>Spegni Thor III</Italian> <Italian>Spegni Thor III</Italian>
<Hungarian>Thor III kikapcsolása</Hungarian> <Hungarian>Thor III kikapcsolása</Hungarian>
<Portuguese>Desativar Thor III</Portuguese> <Portuguese>Desativar Thor III</Portuguese>
<Russian>Деактивировать Thor III</Russian> <Russian>Деактивировать Thor III</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_cellphone_displayName"> <Key ID="STR_ACE_Explosives_cellphone_displayName">
<English>Cellphone</English> <English>Cellphone</English>
<German>Mobiltelefon</German> <German>Mobiltelefon</German>
<Spanish>Télefono móvil</Spanish> <Spanish>Télefono móvil</Spanish>
<Polish>Telefon komórkowy</Polish> <Polish>Telefon komórkowy</Polish>
<French>Téléphone Portable</French> <French>Téléphone Portable</French>
<Czech>Telefon</Czech> <Czech>Telefon</Czech>
<Italian>Cellulare</Italian> <Italian>Cellulare</Italian>
<Hungarian>Mobil</Hungarian> <Hungarian>Mobil</Hungarian>
<Portuguese>Celular</Portuguese> <Portuguese>Celular</Portuguese>
<Russian>Сотовый телефон</Russian> <Russian>Сотовый телефон</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_cellphone_description"> <Key ID="STR_ACE_Explosives_cellphone_description">
<English>Used to remotely trigger explosives</English> <English>Used to remotely trigger explosives</English>
<German>Wird benutzt um Sprengstoffe fernzuzünden</German> <German>Wird benutzt um Sprengstoffe fernzuzünden</German>
<Spanish>Usado para detonar remotamente explosivos</Spanish> <Spanish>Usado para detonar remotamente explosivos</Spanish>
<Polish>Używany do zdalnego detonowania ładunków wybuchowych</Polish> <Polish>Używany do zdalnego detonowania ładunków wybuchowych</Polish>
<French>Utilisé pour déclencher des explosifs à distance</French> <French>Utilisé pour déclencher des explosifs à distance</French>
<Czech>Používaný ke vzdálenému odpalování výbušnin</Czech> <Czech>Používaný ke vzdálenému odpalování výbušnin</Czech>
<Italian>Usato per l'attivazione a distanza degli esplosivi</Italian> <Italian>Usato per l'attivazione a distanza degli esplosivi</Italian>
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian> <Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
<Portuguese>Usado para acionar explosivos remotamente</Portuguese> <Portuguese>Usado para acionar explosivos remotamente</Portuguese>
<Russian>Используется для удаленного запуска взрывчатку</Russian> <Russian>Используется для удаленного запуска взрывчатку</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_clacker_displayName"> <Key ID="STR_ACE_Explosives_clacker_displayName">
<English>M57 Firing Device</English> <English>M57 Firing Device</English>
<German>M57 Zündvorrichtung</German> <German>M57 Zündvorrichtung</German>
<Spanish>Dispositivo de detonación M57</Spanish> <Spanish>Dispositivo de detonación M57</Spanish>
<Polish>Zapalnik M57</Polish> <Polish>Zapalnik M57</Polish>
<French>M57 Dispositif de mise à feu</French> <French>M57 Dispositif de mise à feu</French>
<Czech>M57 Odpalovací Zařízení</Czech> <Czech>M57 Odpalovací Zařízení</Czech>
<Italian>Detonatore M57</Italian> <Italian>Detonatore M57</Italian>
<Hungarian>M57 Detonátor</Hungarian> <Hungarian>M57 Detonátor</Hungarian>
<Portuguese>M57 Dispositivo de Detonação</Portuguese> <Portuguese>M57 Dispositivo de Detonação</Portuguese>
<Russian>Взрыватель M57</Russian> <Russian>Взрыватель M57</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_clacker_description"> <Key ID="STR_ACE_Explosives_clacker_description">
<English>Used to remotely trigger explosives</English> <English>Used to remotely trigger explosives</English>
<German>Wird benutzt um Sprengstoffe fernzuzünden</German> <German>Wird benutzt um Sprengstoffe fernzuzünden</German>
<Spanish>Usado para detonar remotamente explosivos</Spanish> <Spanish>Usado para detonar remotamente explosivos</Spanish>
<Polish>Używany do zdalnego detonowania ładunków wybuchowych</Polish> <Polish>Używany do zdalnego detonowania ładunków wybuchowych</Polish>
<French>Utilisé pour déclencher des explosifs à distance</French> <French>Utilisé pour déclencher des explosifs à distance</French>
<Czech>Použévané ke vzdálenému odpalování výbušnin</Czech> <Czech>Použévané ke vzdálenému odpalování výbušnin</Czech>
<Italian>Usato per l'attivazione a distanza degli esplosivi</Italian> <Italian>Usato per l'attivazione a distanza degli esplosivi</Italian>
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian> <Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
<Portuguese>Usado para acionar explosivos remotamente</Portuguese> <Portuguese>Usado para acionar explosivos remotamente</Portuguese>
<Russian>Используется для удаленного запуска взрывчатку</Russian> <Russian>Используется для удаленного запуска взрывчатку</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_M26_displayName"> <Key ID="STR_ACE_Explosives_M26_displayName">
<English>M26 Firing Device</English> <English>M26 Firing Device</English>
<German>M26 Zündvorrichtung</German> <German>M26 Zündvorrichtung</German>
<Spanish>Dispositivo de detonación MK26</Spanish> <Spanish>Dispositivo de detonación MK26</Spanish>
<Polish>Zapalnik M26</Polish> <Polish>Zapalnik M26</Polish>
<French>M26 Dispositif de mise à feu</French> <French>M26 Dispositif de mise à feu</French>
<Czech>M26 Odpalovací Zařízení</Czech> <Czech>M26 Odpalovací Zařízení</Czech>
<Italian>Detonatore M26</Italian> <Italian>Detonatore M26</Italian>
<Hungarian>M26 Detonátor</Hungarian> <Hungarian>M26 Detonátor</Hungarian>
<Portuguese>M26 Dispositivo de Detonação</Portuguese> <Portuguese>M26 Dispositivo de Detonação</Portuguese>
<Russian>Взрыватель M26</Russian> <Russian>Взрыватель M26</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_MK16_displayName"> <Key ID="STR_ACE_Explosives_MK16_displayName">
<English>M152 RAMS</English> <English>M152 RAMS</English>
<German>M152 RAMS</German> <German>M152 RAMS</German>
<Czech>M152 RAMS</Czech> <Czech>M152 RAMS</Czech>
<French>M152 RAMS</French> <French>M152 RAMS</French>
<Hungarian>M152 RAMS</Hungarian> <Hungarian>M152 RAMS</Hungarian>
<Polish>M152 RAMS</Polish> <Polish>M152 RAMS</Polish>
<Portuguese>M152 RAMS</Portuguese> <Portuguese>M152 RAMS</Portuguese>
<Russian>M152 RAMS</Russian> <Russian>M152 RAMS</Russian>
<Spanish>M152 RAMS</Spanish> <Spanish>M152 RAMS</Spanish>
<Italian>M152 RAMS</Italian> <Italian>M152 RAMS</Italian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_DefusalKit_displayName"> <Key ID="STR_ACE_Explosives_DefusalKit_displayName">
<English>Defusal Kit</English> <English>Defusal Kit</English>
<German>Entschärfungskit</German> <German>Entschärfungskit</German>
<Spanish>Kit de desactivación</Spanish> <Spanish>Kit de desactivación</Spanish>
<Polish>Zestaw do rozbrajania</Polish> <Polish>Zestaw do rozbrajania</Polish>
<French>Kit de désamorçage</French> <French>Kit de désamorçage</French>
<Czech>Zneškodňovací sada</Czech> <Czech>Zneškodňovací sada</Czech>
<Italian>Kit E.O.D.</Italian> <Italian>Kit E.O.D.</Italian>
<Hungarian>Hatástalanító felszerelés</Hungarian> <Hungarian>Hatástalanító felszerelés</Hungarian>
<Portuguese>Kit de desarme</Portuguese> <Portuguese>Kit de desarme</Portuguese>
<Russian>Разминирование комплект</Russian> <Russian>Разминирование комплект</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_DefusalKit_description"> <Key ID="STR_ACE_Explosives_DefusalKit_description">
<English>Allows defusing of explosives</English> <English>Allows defusing of explosives</English>
<German>Erlaubt die Entschärfung von Sprengstoffen</German> <German>Erlaubt die Entschärfung von Sprengstoffen</German>
<Spanish>Permite desactivar explosivos</Spanish> <Spanish>Permite desactivar explosivos</Spanish>
<Polish>Umożliwia rozbrajanie ładunków wybuchowych</Polish> <Polish>Umożliwia rozbrajanie ładunków wybuchowych</Polish>
<French>Permet de désamorçer des explosifs</French> <French>Permet de désamorçer des explosifs</French>
<Czech>Dovoluje zneškodňování výbušnin</Czech> <Czech>Dovoluje zneškodňování výbušnin</Czech>
<Italian>Consente la disattivazione degli ordigni esplosivi</Italian> <Italian>Consente la disattivazione degli ordigni esplosivi</Italian>
<Hungarian>Robbanóanyagok hatástalanításához</Hungarian> <Hungarian>Robbanóanyagok hatástalanításához</Hungarian>
<Portuguese>Permite o desarme de explosivos</Portuguese> <Portuguese>Permite o desarme de explosivos</Portuguese>
<Russian>Allows defusing of explosives</Russian> <Russian>Allows defusing of explosives</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Phone_AddToSpeedDial"> <Key ID="STR_ACE_Explosives_Phone_AddToSpeedDial">
<English>Add to Speed Dial</English> <English>Add to Speed Dial</English>
<German>Zur Schnellauswahl hinzufügen</German> <German>Zur Schnellauswahl hinzufügen</German>
<Spanish>Agregar a marcado rápido</Spanish> <Spanish>Agregar a marcado rápido</Spanish>
<Polish>Dodaj do szybkiego wybierania</Polish> <Polish>Dodaj do szybkiego wybierania</Polish>
<French>Ajouter à la composition rapide</French> <French>Ajouter à la composition rapide</French>
<Czech>Přidat jako rychlou volbu</Czech> <Czech>Přidat jako rychlou volbu</Czech>
<Italian>Aggiungi alla selezione rapida</Italian> <Italian>Aggiungi alla selezione rapida</Italian>
<Hungarian>Hozzáadás gyorshíváshoz</Hungarian> <Hungarian>Hozzáadás gyorshíváshoz</Hungarian>
<Portuguese>Adicionar à ligação rápida</Portuguese> <Portuguese>Adicionar à ligação rápida</Portuguese>
<Russian>Добавить в ускоренный набор</Russian> <Russian>Добавить в ускоренный набор</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Clear"> <Key ID="STR_ACE_Explosives_Clear">
<English>Clear</English> <English>Clear</English>
<German>Löschen</German> <German>Löschen</German>
<Spanish>Borrar</Spanish> <Spanish>Borrar</Spanish>
<Polish>Usuń</Polish> <Polish>Usuń</Polish>
<French>Désamorçé</French> <French>Désamorçé</French>
<Czech>Čistý</Czech> <Czech>Čistý</Czech>
<Italian>Libera</Italian> <Italian>Libera</Italian>
<Hungarian>Törlés</Hungarian> <Hungarian>Törlés</Hungarian>
<Portuguese>Limpar</Portuguese> <Portuguese>Limpar</Portuguese>
<Russian>Pассеиваться</Russian> <Russian>Pассеиваться</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Phone_Dial"> <Key ID="STR_ACE_Explosives_Phone_Dial">
<English>Dial</English> <English>Dial</English>
<German>Wählen</German> <German>Wählen</German>
<Spanish>Marcar</Spanish> <Spanish>Marcar</Spanish>
<Polish>Wybierz mumer</Polish> <Polish>Wybierz mumer</Polish>
<French>Composer</French> <French>Composer</French>
<Czech>Vytočit</Czech> <Czech>Vytočit</Czech>
<Italian>Composizione numero</Italian> <Italian>Composizione numero</Italian>
<Hungarian>Tárcsázás</Hungarian> <Hungarian>Tárcsázás</Hungarian>
<Portuguese>Discar</Portuguese> <Portuguese>Discar</Portuguese>
<Russian>Hабрать</Russian> <Russian>Hабрать</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Phone_Up"> <Key ID="STR_ACE_Explosives_Phone_Up">
<English>Up</English> <English>Up</English>
<German>Hoch</German> <German>Hoch</German>
<Spanish>Arriba</Spanish> <Spanish>Arriba</Spanish>
<Polish>W górę</Polish> <Polish>W górę</Polish>
<French>Haut</French> <French>Haut</French>
<Czech>Nahoru</Czech> <Czech>Nahoru</Czech>
<Italian>Sopra</Italian> <Italian>Sopra</Italian>
<Hungarian>Fel</Hungarian> <Hungarian>Fel</Hungarian>
<Portuguese>Cima</Portuguese> <Portuguese>Cima</Portuguese>
<Russian>Поднять</Russian> <Russian>Поднять</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Phone_Down"> <Key ID="STR_ACE_Explosives_Phone_Down">
<English>Down</English> <English>Down</English>
<German>Runter</German> <German>Runter</German>
<Spanish>Abajo</Spanish> <Spanish>Abajo</Spanish>
<Polish>W dół</Polish> <Polish>W dół</Polish>
<French>Bas</French> <French>Bas</French>
<Czech>Dolu</Czech> <Czech>Dolu</Czech>
<Italian>Sotto</Italian> <Italian>Sotto</Italian>
<Hungarian>Le</Hungarian> <Hungarian>Le</Hungarian>
<Portuguese>Baixo</Portuguese> <Portuguese>Baixo</Portuguese>
<Russian>Опустить</Russian> <Russian>Опустить</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Cancel"> <Key ID="STR_ACE_Explosives_Cancel">
<English>Cancel</English> <English>Cancel</English>
<German>Abbrechen</German> <German>Abbrechen</German>
<Spanish>Cancelar</Spanish> <Spanish>Cancelar</Spanish>
<Polish>Anuluj</Polish> <Polish>Anuluj</Polish>
<French>Annuler</French> <French>Annuler</French>
<Czech>Zrušit</Czech> <Czech>Zrušit</Czech>
<Italian>Annulla</Italian> <Italian>Annulla</Italian>
<Hungarian>Mégsem</Hungarian> <Hungarian>Mégsem</Hungarian>
<Portuguese>Cancelar</Portuguese> <Portuguese>Cancelar</Portuguese>
<Russian>Отмена</Russian> <Russian>Отмена</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_DetonateMenu"> <Key ID="STR_ACE_Explosives_DetonateMenu">
<English>Detonate Menu</English> <English>Detonate Menu</English>
<German>&quot;Zünden&quot;-Menü</German> <German>&quot;Zünden&quot;-Menü</German>
<Spanish>Menú de detonación</Spanish> <Spanish>Menú de detonación</Spanish>
<Polish>Menu detonowania</Polish> <Polish>Menu detonowania</Polish>
<French>Menu de mise à feu</French> <French>Menu de mise à feu</French>
<Czech>Menu Detonace</Czech> <Czech>Menu Detonace</Czech>
<Italian>Menù di detonazione</Italian> <Italian>Menù di detonazione</Italian>
<Hungarian>Robbantás menü</Hungarian> <Hungarian>Robbantás menü</Hungarian>
<Portuguese>Menu de detonação</Portuguese> <Portuguese>Menu de detonação</Portuguese>
<Russian>Меню Подрыв</Russian> <Russian>Меню Подрыв</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_PlaceMenu"> <Key ID="STR_ACE_Explosives_PlaceMenu">
<English>Place Menu</English> <English>Place Menu</English>
<German>&quot;Platzieren&quot;-Menü</German> <German>&quot;Platzieren&quot;-Menü</German>
<Spanish>Menú de colocación</Spanish> <Spanish>Menú de colocación</Spanish>
<Polish>Menu umieszczania</Polish> <Polish>Menu umieszczania</Polish>
<French>Menu Placement</French> <French>Menu Placement</French>
<Czech>Menu Umístění</Czech> <Czech>Menu Umístění</Czech>
<Italian>Menù di collocamento</Italian> <Italian>Menù di collocamento</Italian>
<Hungarian>Lerakás menü</Hungarian> <Hungarian>Lerakás menü</Hungarian>
<Portuguese>Menu de posicionamento</Portuguese> <Portuguese>Menu de posicionamento</Portuguese>
<Russian>Меню Установить</Russian> <Russian>Меню Установить</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Defuse"> <Key ID="STR_ACE_Explosives_Defuse">
<English>Defuse</English> <English>Defuse</English>
<German>Entschärfen</German> <German>Entschärfen</German>
<Spanish>Desactivar</Spanish> <Spanish>Desactivar</Spanish>
<Polish>Rozbrój</Polish> <Polish>Rozbrój</Polish>
<French>Désamorçer</French> <French>Désamorçer</French>
<Czech>Zneškodnit</Czech> <Czech>Zneškodnit</Czech>
<Italian>Disinnesca</Italian> <Italian>Disinnesca</Italian>
<Hungarian>Hatástalanítás</Hungarian> <Hungarian>Hatástalanítás</Hungarian>
<Portuguese>Desarmar</Portuguese> <Portuguese>Desarmar</Portuguese>
<Russian>Обезвредить</Russian> <Russian>Обезвредить</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_DefusingExplosive"> <Key ID="STR_ACE_Explosives_DefusingExplosive">
<English>Defusing Explosive...</English> <English>Defusing Explosive...</English>
<German>Entschärfe Sprengstoff...</German> <German>Entschärfe Sprengstoff...</German>
<Spanish>Desactivando explosivo...</Spanish> <Spanish>Desactivando explosivo...</Spanish>
<Polish>Rozbrajanie ładunku...</Polish> <Polish>Rozbrajanie ładunku...</Polish>
<French>Désamorçage des explosifs...</French> <French>Désamorçage des explosifs...</French>
<Czech>Zneškodňuji Výbušninu...</Czech> <Czech>Zneškodňuji Výbušninu...</Czech>
<Italian>Esposivo in fase di disattivazione...</Italian> <Italian>Esposivo in fase di disattivazione...</Italian>
<Hungarian>Robbanóanyag hatástalaníása...</Hungarian> <Hungarian>Robbanóanyag hatástalaníása...</Hungarian>
<Portuguese>Desarmando Explosivo...</Portuguese> <Portuguese>Desarmando Explosivo...</Portuguese>
<Russian>Обезвреживание...</Russian> <Russian>Обезвреживание...</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_timerName"> <Key ID="STR_ACE_Explosives_timerName">
<English>Timer</English> <English>Timer</English>
<German>Zeitzünder</German> <German>Zeitzünder</German>
<Spanish>Temporizador</Spanish> <Spanish>Temporizador</Spanish>
<Polish>Czasomierz</Polish> <Polish>Czasomierz</Polish>
<French>Retard</French> <French>Retard</French>
<Czech>Časovač</Czech> <Czech>Časovač</Czech>
<Italian>Cronometro</Italian> <Italian>Cronometro</Italian>
<Hungarian>Időzített</Hungarian> <Hungarian>Időzített</Hungarian>
<Portuguese>Timer</Portuguese> <Portuguese>Timer</Portuguese>
<Russian>Временной</Russian> <Russian>Временной</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_TimerMenu"> <Key ID="STR_ACE_Explosives_TimerMenu">
<English>Time: %1m %2s</English> <English>Time: %1m %2s</English>
<German>Zeit: %1m %2s</German> <German>Zeit: %1m %2s</German>
<Spanish>Tiempo: %1m %2s</Spanish> <Spanish>Tiempo: %1m %2s</Spanish>
<Polish>Czas: %1m %2s</Polish> <Polish>Czas: %1m %2s</Polish>
<French>Temps : %1m %2s</French> <French>Temps : %1m %2s</French>
<Czech>Čas: %1m %2s</Czech> <Czech>Čas: %1m %2s</Czech>
<Italian>Tempo : %1m %2s</Italian> <Italian>Tempo : %1m %2s</Italian>
<Hungarian>Idő: %1m %2s</Hungarian> <Hungarian>Idő: %1m %2s</Hungarian>
<Portuguese>Tempo: %1m %2s</Portuguese> <Portuguese>Tempo: %1m %2s</Portuguese>
<Russian>Tемп: %1m %2c</Russian> <Russian>Tемп: %1m %2c</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_SetTime"> <Key ID="STR_ACE_Explosives_SetTime">
<English>Set Time</English> <English>Set Time</English>
<German>Zeit einstellen</German> <German>Zeit einstellen</German>
<Spanish>Configurar tiempo</Spanish> <Spanish>Configurar tiempo</Spanish>
<Polish>Ustaw czas</Polish> <Polish>Ustaw czas</Polish>
<French>Régler retard</French> <French>Régler retard</French>
<Czech>Nastavit Čas</Czech> <Czech>Nastavit Čas</Czech>
<Italian>Modifica il conto alla rovescia</Italian> <Italian>Modifica il conto alla rovescia</Italian>
<Hungarian>Idő állítása</Hungarian> <Hungarian>Idő állítása</Hungarian>
<Portuguese>Configurar Tempo</Portuguese> <Portuguese>Configurar Tempo</Portuguese>
<Russian>Xронометр</Russian> <Russian>Xронометр</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_TriggerMenu"> <Key ID="STR_ACE_Explosives_TriggerMenu">
<English>Select a Trigger</English> <English>Select a Trigger</English>
<German>Wähle einen Zünder</German> <German>Wähle einen Zünder</German>
<Spanish>Seleccionar un disparador</Spanish> <Spanish>Seleccionar un disparador</Spanish>
<Polish>Wybierz zapalnik</Polish> <Polish>Wybierz zapalnik</Polish>
<French>Sélectionner une mise à feu</French> <French>Sélectionner une mise à feu</French>
<Czech>Zvolit Detonátor</Czech> <Czech>Zvolit Detonátor</Czech>
<Italian>Seleziona un Attivatore</Italian> <Italian>Seleziona un Attivatore</Italian>
<Hungarian>Detonátor kiválasztása</Hungarian> <Hungarian>Detonátor kiválasztása</Hungarian>
<Portuguese>Selecionar um Gatilho</Portuguese> <Portuguese>Selecionar um Gatilho</Portuguese>
<Russian>Выберите</Russian> <Russian>Выберите</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_SelectTrigger"> <Key ID="STR_ACE_Explosives_SelectTrigger">
<English>Select</English> <English>Select</English>
<German>Wählen</German> <German>Wählen</German>
<Spanish>Seleccionar</Spanish> <Spanish>Seleccionar</Spanish>
<Polish>Wybierz</Polish> <Polish>Wybierz</Polish>
<French>Sélectionner</French> <French>Sélectionner</French>
<Czech>Zvolit</Czech> <Czech>Zvolit</Czech>
<Italian>Seleziona</Italian> <Italian>Seleziona</Italian>
<Hungarian>Kiválasztás</Hungarian> <Hungarian>Kiválasztás</Hungarian>
<Portuguese>Selecionar</Portuguese> <Portuguese>Selecionar</Portuguese>
<Russian>Выбрать защелка</Russian> <Russian>Выбрать защелка</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_PressurePlate"> <Key ID="STR_ACE_Explosives_PressurePlate">
<English>Pressure Plate</English> <English>Pressure Plate</English>
<Polish>Płyta naciskowa</Polish> <Polish>Płyta naciskowa</Polish>
<Spanish>Placa de presión</Spanish> <Spanish>Placa de presión</Spanish>
<German>Druckplatte</German> <German>Druckplatte</German>
<French>Plaque de pression</French> <French>Plaque de pression</French>
<Czech>Nášlapná nástraha</Czech> <Czech>Nášlapná nástraha</Czech>
<Italian>Piastra a Pressione</Italian> <Italian>Piastra a Pressione</Italian>
<Hungarian>Nyomólap</Hungarian> <Hungarian>Nyomólap</Hungarian>
<Portuguese>Placa de pressão</Portuguese> <Portuguese>Placa de pressão</Portuguese>
<Russian>Давление</Russian> <Russian>Давление</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_TripWire"> <Key ID="STR_ACE_Explosives_TripWire">
<English>Tripwire</English> <English>Tripwire</English>
<Polish>Linka naciągu</Polish> <Polish>Linka naciągu</Polish>
<Spanish>Cable trampa</Spanish> <Spanish>Cable trampa</Spanish>
<German>Stolperdraht</German> <German>Stolperdraht</German>
<French>Fil de butée</French> <French>Fil de butée</French>
<Czech>Nástražný drát</Czech> <Czech>Nástražný drát</Czech>
<Italian>Filo a Inciampo</Italian> <Italian>Filo a Inciampo</Italian>
<Hungarian>Botlódrót</Hungarian> <Hungarian>Botlódrót</Hungarian>
<Portuguese>Linha de tração</Portuguese> <Portuguese>Linha de tração</Portuguese>
<Russian>Натяжной</Russian> <Russian>Натяжной</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_IRSensor"> <Key ID="STR_ACE_Explosives_IRSensor">
<English>IR Sensor</English> <English>IR Sensor</English>
<Polish>Czujnik podczerwieni</Polish> <Polish>Czujnik podczerwieni</Polish>
<Spanish>Sensor IR</Spanish> <Spanish>Sensor IR</Spanish>
<German>Infrarotsensor</German> <German>Infrarotsensor</German>
<French>Capteur IR</French> <French>Capteur IR</French>
<Czech>IR Značkovač</Czech> <Czech>IR Značkovač</Czech>
<Italian>Sensore IR</Italian> <Italian>Sensore IR</Italian>
<Hungarian>IR szenzor</Hungarian> <Hungarian>IR szenzor</Hungarian>
<Portuguese>Sensor IV</Portuguese> <Portuguese>Sensor IV</Portuguese>
<Russian>ИК</Russian> <Russian>ИК</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_NoTriggersAvailable"> <Key ID="STR_ACE_Explosives_NoTriggersAvailable">
<English>No triggers available for %1</English> <English>No triggers available for %1</English>
<Polish>Brak dostępnych zapalników dla %1</Polish> <Polish>Brak dostępnych zapalników dla %1</Polish>
<Spanish>No hay detonadores disponibles para %1</Spanish> <Spanish>No hay detonadores disponibles para %1</Spanish>
<German>Keine Auslöser vorhanden für %1</German> <German>Keine Auslöser vorhanden für %1</German>
<French>Pas de mise à feu disponible pour %1</French> <French>Pas de mise à feu disponible pour %1</French>
<Czech>Žádný detonátor k dispozici pro %1</Czech> <Czech>Žádný detonátor k dispozici pro %1</Czech>
<Italian>Nessun attivatore disponibile per %1</Italian> <Italian>Nessun attivatore disponibile per %1</Italian>
<Hungarian>Nincs detonátor a %1</Hungarian> <Hungarian>Nincs detonátor a %1</Hungarian>
<Portuguese>Nenhum gatilho disponível para %1</Portuguese> <Portuguese>Nenhum gatilho disponível para %1</Portuguese>
<Russian>Нет защелка доступны для %1</Russian> <Russian>Нет защелка доступны для %1</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_SLAME_IRSensor"> <Key ID="STR_ACE_Explosives_SLAME_IRSensor">
<English>IR Sensor (Side Attack)</English> <English>IR Sensor (Side Attack)</English>
<Polish>Czujnik podczerwieni (wybuch na bok)</Polish> <Polish>Czujnik podczerwieni (wybuch na bok)</Polish>
<Spanish>Sensor IR (ataque lateral)</Spanish> <Spanish>Sensor IR (ataque lateral)</Spanish>
<German>Infrarotsensor (Seitenangriff)</German> <German>Infrarotsensor (Seitenangriff)</German>
<French>Capteur IR (de flanc)</French> <French>Capteur IR (de flanc)</French>
<Czech>IR Značkovač (Výbuch stranou)</Czech> <Czech>IR Značkovač (Výbuch stranou)</Czech>
<Italian>Sensore IR (Attacco laterale)</Italian> <Italian>Sensore IR (Attacco laterale)</Italian>
<Hungarian>IR Sensor (Side Attack)</Hungarian> <Hungarian>IR Sensor (Side Attack)</Hungarian>
<Portuguese>Sensor infravermelho (ataque lateral)</Portuguese> <Portuguese>Sensor infravermelho (ataque lateral)</Portuguese>
<Russian>ИК (боковая атака)</Russian> <Russian>ИК (боковая атака)</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_SLAME_Magnetic"> <Key ID="STR_ACE_Explosives_SLAME_Magnetic">
<English>Magnetic Influence Sensor (Bottom Attack)</English> <English>Magnetic Influence Sensor (Bottom Attack)</English>
<Polish>Czujnik magnetyczny (wybuch w górę)</Polish> <Polish>Czujnik magnetyczny (wybuch w górę)</Polish>
<Spanish>Sensor IM (ataque inferior)</Spanish> <Spanish>Sensor IM (ataque inferior)</Spanish>
<German>Magnetfeldsensor (Bodenangriff)</German> <German>Magnetfeldsensor (Bodenangriff)</German>
<French>Capteur Magnétique (par le bas)</French> <French>Capteur Magnétique (par le bas)</French>
<Czech>Magnetický Senzor (Výbuch ze spoda)</Czech> <Czech>Magnetický Senzor (Výbuch ze spoda)</Czech>
<Italian>Sensore Magnetico di Prossimità (Attacco inferiore)</Italian> <Italian>Sensore Magnetico di Prossimità (Attacco inferiore)</Italian>
<Hungarian>Mágneses (Bottom Attack)</Hungarian> <Hungarian>Mágneses (Bottom Attack)</Hungarian>
<Portuguese>Influência magnética (ataque inferior)</Portuguese> <Portuguese>Influência magnética (ataque inferior)</Portuguese>
<Russian>Магнитный (дно атака)</Russian> <Russian>Магнитный (дно атака)</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_NoExplosivesAvailable"> <Key ID="STR_ACE_Explosives_NoExplosivesAvailable">
<English>No explosives on trigger.</English> <English>No explosives on trigger.</English>
<German>Keine Sprengladungen auf diesem Auslöser.</German> <German>Keine Sprengladungen auf diesem Auslöser.</German>
<Spanish>Ningún explosivo en el detonador.</Spanish> <Spanish>Ningún explosivo en el detonador.</Spanish>
<French>Pas d'explosif à mettre à feu.</French> <French>Pas d'explosif à mettre à feu.</French>
<Italian>Nessun esplosivo sul sensore.</Italian> <Italian>Nessun esplosivo sul sensore.</Italian>
<Czech>Žádná výbušnina k odpálení.</Czech> <Czech>Žádná výbušnina k odpálení.</Czech>
<Hungarian>Nincs robbanóanyag a detonátorhoz.</Hungarian> <Hungarian>Nincs robbanóanyag a detonátorhoz.</Hungarian>
<Polish>Brak ładunków na zapalnik.</Polish> <Polish>Brak ładunków na zapalnik.</Polish>
<Portuguese>Nenhum explosivo no gatilho.</Portuguese> <Portuguese>Nenhum explosivo no gatilho.</Portuguese>
<Russian>Нет взрывчатки на курок.</Russian> <Russian>Нет взрывчатки на курок.</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_DeadManSwitch_displayName"> <Key ID="STR_ACE_Explosives_DeadManSwitch_displayName">
<English>Dead Man's Switch</English> <English>Dead Man's Switch</English>
<German>Totmannschalter</German> <German>Totmannschalter</German>
<French>Mise à feu par relâchement de pression</French> <French>Mise à feu par relâchement de pression</French>
<Czech>Spínač mrtvého muže</Czech> <Czech>Spínač mrtvého muže</Czech>
<Polish>Czuwak</Polish> <Polish>Czuwak</Polish>
<Spanish>Detonador de hombre muerto</Spanish> <Spanish>Detonador de hombre muerto</Spanish>
<Hungarian>Dead Man's Switch</Hungarian> <Hungarian>Dead Man's Switch</Hungarian>
<Russian>Кнопка мертвеца</Russian> <Russian>Кнопка мертвеца</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_DeadManSwitch_description"> <Key ID="STR_ACE_Explosives_DeadManSwitch_description">
<English>Used to remotely trigger explosives when released.</English> <English>Used to remotely trigger explosives when released.</English>
<German>Zündet Sprengladungen wenn losgelassen.</German> <German>Zündet Sprengladungen wenn losgelassen.</German>
<French>Déclenche la mise à feu d'un explosif lorsqu'il est libéré.</French> <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> <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> <Polish>Używany w celu zdalnej detonacji ładunków kiedy jego operator zostanie zabity.</Polish>
<Spanish>Utilizado para detonar explosivos remotamente al soltarlo.</Spanish> <Spanish>Utilizado para detonar explosivos remotamente al soltarlo.</Spanish>
<Hungarian>Robbanóanyagok távoli robbantásához</Hungarian> <Hungarian>Robbanóanyagok távoli robbantásához</Hungarian>
<Russian>Используется для дистанционного подрыва, после смерти оператора.</Russian> <Russian>Используется для дистанционного подрыва, после смерти оператора.</Russian>
</Key> </Key>
<Key ID="STR_ACE_Explosives_Pickup"> <Key ID="STR_ACE_Explosives_Pickup">
<English>Pick up</English> <English>Pick up</English>
</Key> </Key>
</Package> </Package>
</Project> </Project>