Merge pull request #1 from usecforce/wiki-wording

Wiki wording
This commit is contained in:
Bracconiere 2015-04-17 19:59:24 +03:00
commit 61d023456d
44 changed files with 287 additions and 143 deletions

View File

@ -2,7 +2,7 @@
class CfgAmmo {
class BulletBase;
class B_20mm : BulletBase {
hit = 80;
hit = 80;
indirectHit = 12;
indirectHitRange = 2; //2;
caliber = 1.4;
@ -13,7 +13,7 @@ class CfgAmmo {
tracerEndTime = 3.5;
CraterEffects = "ExploAmmoCrater";
explosionEffects = "ExploAmmoExplosion";
explosionEffects = "ExploAmmoExplosion";
model = "\A3\Weapons_f\Data\bullettracer\tracer_red";
};
class ACE_20mm_HE : B_20mm {};
@ -23,7 +23,7 @@ class CfgAmmo {
indirectHitRange = 0.3; //2;
explosive = 0;
CraterEffects = "";
explosionEffects = "";
explosionEffects = "";
};
// adjust minigun caliber and deflection to other ammo

View File

@ -907,7 +907,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
thermalMode[] = {0,1};
gunnerOpticsColor[] = {0,0,0,1};
directionStabilized = 1;
horizontallyStabilized = 1;
horizontallyStabilized = 1;
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_wide_F";
};
class Medium: Wide
@ -918,7 +918,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
maxFov = 0.093;
gunnerOpticsColor[] = {0,0,0,1};
directionStabilized = 1;
horizontallyStabilized = 1;
horizontallyStabilized = 1;
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_medium_F";
};
class Narrow: Wide
@ -929,7 +929,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
maxFov = 0.029;
gunnerOpticsColor[] = {0,0,0,1};
directionStabilized = 1;
horizontallyStabilized = 1;
horizontallyStabilized = 1;
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_narrow_F";
};
@ -941,7 +941,7 @@ class Heli_Attack_01_base_F: Helicopter_Base_F {
maxFov = 0.01;
gunnerOpticsColor[] = {0,0,0,1};
directionStabilized = 1;
horizontallyStabilized = 1;
horizontallyStabilized = 1;
gunnerOpticsModel = "\A3\Weapons_F_Beta\Reticle\Heli_Attack_01_Optics_Gunner_narrow_F";
};

View File

@ -95,7 +95,7 @@
<Portuguese>Algema Plástica</Portuguese>
<Italian>Fascietta</Italian>
<Hungarian>Gyorskötöző</Hungarian>
<Russian>Пластиковые наручники</Russian>
<Russian>Кабельная стяжка</Russian>
</Key>
<Key ID="STR_ACE_Captives_CableTieDescription">
<English>Cable ties that allow you to restrain prisoners.</English>
@ -107,7 +107,7 @@
<Portuguese>A algema plástica permite que você contenha prisioneiros.</Portuguese>
<Italian>Fascietta che ti consente di arrestare i prigionieri.</Italian>
<Hungarian>Gyorskötöző, emberek foglyulejtéséhez használható.</Hungarian>
<Russian>Пластиковые наручники позволяют связывать пленников.</Russian>
<Russian>Кабельные стяжки позволяют связывать пленников.</Russian>
</Key>
<Key ID="STR_ACE_Captives_FriskMenuHeader">
<English>Inventory of frisked person</English>

View File

@ -1,7 +1,7 @@
class GVAR(ProgressBar_Dialog) {
idd = -1;
movingEnable = false;
onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBar)),(_this select 0) displayCtrl 1)]; uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBarTitle)),(_this select 0) displayCtrl 2)];);
onLoad = QUOTE(uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBG)),(_this select 0) displayCtrl 1)]; uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBar)),(_this select 0) displayCtrl 2)]; uiNamespace setVariable [ARR_2(QUOTE(QGVAR(ctrlProgressBarTitle)),(_this select 0) displayCtrl 3)];);
objects[] = {};
class controlsBackground {
@ -23,26 +23,31 @@ class GVAR(ProgressBar_Dialog) {
w = "safezoneW";
h = "safezoneH";
};
class Progress: ACE_gui_RscProgress {
class TitleBackground: ACE_gui_staticBase {
idc = 1;
x = "1.2 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "0.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "37.8 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = ".8 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
colorFrame[] = {0,0,0,0.0};
colorBar[] = {0.27,0.5,0.31,0.8};
texture = "#(argb,8,8,3)color(1,1,1,0.7)";
};
class Title_Bar : ACE_gui_staticBase {
idc = 2;
style = 0x22;
colorBackground[] = {0, 0, 0, 0};
style = ST_CENTER;
sizeEx = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
colorBackground[] = {0, 0, 0, 0.5};
colorText[] = {1, 1, 1, 1};
x = "1 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "0 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
};
class Progress: ACE_gui_RscProgress {
idc = 2;
x = "1.2 * (((safezoneW / safezoneH) min 1.2) / 40) + (safezoneX + (safezoneW - ((safezoneW / safezoneH) min 1.2))/2)";
y = "0.1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2)";
w = "38 * (((safezoneW / safezoneH) min 1.2) / 40)";
h = "1 * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25)";
colorFrame[] = {1,1,1,0.5};
colorBar[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.77])","(profilenamespace getvariable ['GUI_BCG_RGB_G',0.51])","(profilenamespace getvariable ['GUI_BCG_RGB_B',0.08])","(profilenamespace getvariable ['GUI_BCG_RGB_A',0.8])"};
texture = "#(argb,8,8,3)color(1,1,1,0.7)";
};
class TitleText: TitleBackground {
idc = 3;
colorBackground[] = {0, 0, 0, 0};
};
};
};

View File

@ -38,12 +38,14 @@ createDialog QGVAR(ProgressBar_Dialog);
//Adjust position based on user setting:
_ctrlPos = ctrlPosition (uiNamespace getVariable QGVAR(ctrlProgressBarTitle));
_ctrlPos set [1, ((0 + 29 * GVAR(SettingProgressBarLocation)) * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2))];
(uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlSetPosition _ctrlPos;
(uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlCommit 0;
_ctrlPos = ctrlPosition (uiNamespace getVariable QGVAR(ctrlProgressBar));
_ctrlPos set [1, ((0.1 + 29 * GVAR(SettingProgressBarLocation)) * ((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) + (safezoneY + (safezoneH - (((safezoneW / safezoneH) min 1.2) / 1.2))/2))];
(uiNamespace getVariable QGVAR(ctrlProgressBG)) ctrlSetPosition _ctrlPos;
(uiNamespace getVariable QGVAR(ctrlProgressBG)) ctrlCommit 0;
(uiNamespace getVariable QGVAR(ctrlProgressBar)) ctrlSetPosition _ctrlPos;
(uiNamespace getVariable QGVAR(ctrlProgressBar)) ctrlCommit 0;
(uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlSetPosition _ctrlPos;
(uiNamespace getVariable QGVAR(ctrlProgressBarTitle)) ctrlCommit 0;
_perFrameFunction = {

View File

@ -1,44 +1,28 @@
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE( call COMPILE_FILE(XEH_preInit) );
init = QUOTE(call COMPILE_FILE(XEH_preInit));
};
};
class Extended_PostInit_EventHandlers {
class ADDON {
clientInit = QUOTE( call COMPILE_FILE(XEH_postInitClient) );
init = QUOTE(call COMPILE_FILE(XEH_postInit));
};
};
class Extended_FiredBIS_EventHandlers {
class CAManBase {
class ADDON {
firedBIS = QUOTE( _this call FUNC(replaceATWeapon) );
firedBIS = QUOTE(_this call FUNC(replaceATWeapon));
};
};
};
// handle preloaded missile
class Extended_Init_EventHandlers {
class Extended_InitPost_EventHandlers {
class CAManBase {
class ADDON {
init = QUOTE( _this call FUNC(takeLoadedATWeapon) );
};
};
};
class Extended_Take_EventHandlers {
class CAManBase {
class ADDON {
take = QUOTE( _this call FUNC(takeLoadedATWeapon); [_this select 0] call FUNC(updateInventoryDisplay); );
};
};
};
class Extended_Put_EventHandlers {
class CAManBase {
class ADDON {
put = QUOTE( [_this select 0] call FUNC(updateInventoryDisplay); );
init = QUOTE([ARR_2(_this select 0, secondaryWeapon (_this select 0))] call FUNC(takeLoadedATWeapon); systemChat str [ARR_2(_this select 0, secondaryWeapon (_this select 0))]);
};
};
};

View File

@ -3,6 +3,7 @@ class CfgMagazines {
class ACE_PreloadedMissileDummy: NLAW_F { // The dummy magazine
author = "$STR_ACE_Common_ACETeam";
scope = 1;
scopeArsenal = 1;
displayName = "$STR_ACE_Disposable_PreloadedMissileDummy";
picture = PATHTOEF(common,UI\blank_CO.paa);
weaponPoolAvailable = 0;

View File

@ -0,0 +1,10 @@
// by commy2
#include "script_component.hpp"
if (!hasInterface) exitWith {};
["inventoryDisplayLoaded", {[ACE_player, _this select 0] call FUNC(updateInventoryDisplay)}] call EFUNC(common,addEventHandler);
["playerInventoryChanged", {
[_this select 0, _this select 1 select 11] call FUNC(takeLoadedATWeapon);
[_this select 0] call FUNC(updateInventoryDisplay);
}] call EFUNC(common,addEventHandler);

View File

@ -1,10 +0,0 @@
// by commy2
// The Arma InventoryOpened EH fires actually before the inventory dialog is opened (findDisplay 602 => displayNull).
#include "script_component.hpp"
["inventoryDisplayLoaded",{
[ACE_player] call FUNC(takeLoadedATWeapon);
[ACE_player, (_this select 0)] call FUNC(updateInventoryDisplay);
}] call EFUNC(common,addEventHandler);

View File

@ -1,4 +1,3 @@
class Extended_PreInit_EventHandlers {
class ADDON {
init = QUOTE(call COMPILE_FILE(XEH_preInit));

View File

@ -1,12 +0,0 @@
class CfgSounds {
class ACE_Wirecutter_sound {
name = "ACE_wirecutter_sound";
sound[] = {QUOTE(PATHTOF(sound\wire_cut.ogg)), "db-0", 1};
titles[] = {};
};
class ACE_Wirecutter_sound_long {
name = "ACE_wirecutter_sound_long";
sound[] = {QUOTE(PATHTOF(sound\wire_cut_long.ogg)), "db-0", 1};
titles[] = {};
};
};

View File

@ -0,0 +1,8 @@
class CfgVehicles {
class Box_NATO_Support_F;
class ACE_Box_Misc: Box_NATO_Support_F {
class TransportItems {
MACRO_ADDITEM(ACE_wirecutter,4);
};
};
};

View File

@ -1,16 +1,16 @@
class CfgWeapons {
class InventoryItem_Base_F;
class ACE_ItemCore;
class InventoryItem_Base_F;
class ACE_ItemCore;
class ACE_wirecutter: ACE_ItemCore {
author = "$STR_ACE_Common_ACETeam";
displayName = "$STR_ACE_logistics_wirecutter_wirecutterName";
descriptionShort = "$STR_ACE_logistics_wirecutter_wirecutterDescription";
model = "\A3\weapons_F\ammo\mag_univ.p3d";
picture = QUOTE(PATHTOF(ui\item_wirecutter_ca.paa));
scope = 2;
class ItemInfo: InventoryItem_Base_F {
mass = 100;
class ACE_wirecutter: ACE_ItemCore {
author = "$STR_ACE_Common_ACETeam";
displayName = "$STR_ACE_logistics_wirecutter_wirecutterName";
descriptionShort = "$STR_ACE_logistics_wirecutter_wirecutterDescription";
model = "\A3\weapons_F\ammo\mag_univ.p3d";
picture = QUOTE(PATHTOF(ui\item_wirecutter_ca.paa));
scope = 2;
class ItemInfo: InventoryItem_Base_F {
mass = 100;
};
};
};
};

View File

@ -3,7 +3,7 @@
class CfgPatches {
class ADDON {
units[] = {};
weapons[] = {};
weapons[] = {"ACE_wirecutter"};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interaction"};
author[] = {"gpgpgpgp", "PabstMirror"};
@ -13,5 +13,5 @@ class CfgPatches {
};
#include "CfgEventHandlers.hpp"
#include "CfgSounds.hpp"
#include "CfgWeapons.hpp"
#include "CfgVehicles.hpp"

View File

@ -16,19 +16,26 @@
*/
#include "script_component.hpp"
#define SOUND_CLIP_TIME_SPACEING 1.5
private ["_timeToCut"];
PARAMS_2(_unit,_fenceObject);
if (_unit != ACE_player) exitWith {};
_timeToCut = if ([ACE_player] call EFUNC(common,isEngineer)) then {5} else {10};
_timeToCut = if ([ACE_player] call EFUNC(common,isEngineer)) then {7.5} else {11};
[ACE_player, "AinvPknlMstpSnonWnonDr_medic5", 0] call EFUNC(common,doAnimation);
if (_timeToCut > 5) then {
playSound "ACE_wirecutter_sound_long";
} else {
playSound "ACE_wirecutter_sound";
_progressCheck = {
PARAMS_2(_args,_passedTime);
EXPLODE_2_PVT(_args,_fenceObject,_lastSoundEffectTime);
if (_passedTime > (_lastSoundEffectTime + SOUND_CLIP_TIME_SPACEING)) then {
// playSound "ACE_wirecutter_sound";
playSound3D [QUOTE(PATHTO_R(sound\wirecut.ogg)), objNull, false, (getPosASL ACE_player), 3, 1, 10];
_args set [1, _passedTime];
};
((!isNull _fenceObject) && {(damage _fenceObject) < 1} && {("ACE_wirecutter" in (items ACE_player))})
};
[_timeToCut, [_fenceObject], {(_this select 0) call FUNC(cutDownFenceCallback)}, {(_this select 0) call FUNC(cutDownFenceAbort)}, localize "STR_ACE_logistics_wirecutter_CuttingFence"] call EFUNC(common,progressBar);
[_timeToCut, [_fenceObject,0], {(_this select 0) call FUNC(cutDownFenceCallback)}, {(_this select 0) call FUNC(cutDownFenceAbort)}, localize "STR_ACE_logistics_wirecutter_CuttingFence", _progressCheck] call EFUNC(common,progressBar);

View File

@ -20,9 +20,9 @@ PARAMS_1(_unit);
_nearestFence = objNull;
{
if ((isNull _nearestFence) && {[_x] call FUNC(isFence)}) then {
_nearestFence = _x;
};
if ((isNull _nearestFence) && {[_x] call FUNC(isFence)}) then {
_nearestFence = _x;
};
} forEach nearestObjects [_unit, [], 15];
_nearestFence

View File

@ -35,7 +35,7 @@ if (!("ACE_wirecutter" in (items ace_player))) exitWith {};
} else {
// Prevent Rare Error when ending mission with interact key down:
if (isNull ace_player) exitWith {};
//If player moved >5 meters from last pos, then rescan
if (((getPosASL ace_player) distance _setPosition) > 5) then {

View File

@ -17,11 +17,9 @@
#include "script_component.hpp"
//find is case sensitive, so keep everything lowercase
#define FENCE_A3_TYPENAMES ["land_net_fence_4m_f", "land_net_fence_8m_f", "land_net_fenced_8m_f", "land_new_wiredfence_5m_f", "land_new_wiredfence_10m_dam_f", "land_new_wiredfence_10m_f", "land_pipe_fence_4m_f", "land_pipe_fence_4mnolc_f", "land_sportground_fence_f", "land_wired_fence_4m_f", "land_wired_fence_4md_f", "land_wired_fence_8m_f", "land_wired_fence_8md_f", "land_razorwire_f"]
#define FENCE_A3_P3DS ["mil_wiredfence_f.p3d"]
#define FENCE_TYPENAMES ["land_net_fence_4m_f", "land_net_fence_8m_f", "land_net_fenced_8m_f", "land_new_wiredfence_5m_f", "land_new_wiredfence_10m_dam_f", "land_new_wiredfence_10m_f", "land_pipe_fence_4m_f", "land_pipe_fence_4mnolc_f", "land_sportground_fence_f", "land_wired_fence_4m_f", "land_wired_fence_4md_f", "land_wired_fence_8m_f", "land_wired_fence_8md_f", "land_razorwire_f"]
#define FENCE_AIA_TYPENAMES []
#define FENCE_AIA_P3DS ["wall_indfnc_3.p3d", "wall_indfnc_9.p3d", "wall_indfnc_corner.p3d", "pletivo_wired.p3d", "wall_fen1_5.p3d"]
#define FENCE_P3DS ["mil_wiredfence_f.p3d","wall_indfnc_3.p3d", "wall_indfnc_9.p3d", "wall_indfnc_corner.p3d", "pletivo_wired.p3d", "wall_fen1_5.p3d"]
private ["_typeOf", "_returnValue"];
PARAMS_1(_object);
@ -30,14 +28,15 @@ _typeOf = toLower (typeOf _object);
_returnValue = false;
if (_typeOf != "") then {
_returnValue = _typeOf in (FENCE_A3_TYPENAMES + FENCE_AIA_TYPENAMES);
//If the fence has configEntry we can check it directly
_returnValue = _typeOf in FENCE_TYPENAMES;
} else {
_typeOf = toLower (str _object); //something like "123201: wall_indfnc_9.p3d"
{
if ((_typeOf find _x) != -1) then {
if ((_typeOf find _x) != -1) exitWith {
_returnValue = true;
};
} forEach (FENCE_A3_P3DS + FENCE_AIA_P3DS);
} forEach FENCE_P3DS;
};
_returnValue

View File

@ -10,6 +10,7 @@
<Polish>Pokaż imiona</Polish>
<Hungarian>Nevek mutatása</Hungarian>
<Russian>Показать имена</Russian>
<Italian>Mostra i nomi</Italian>
</Key>
<Key ID="STR_ACE_NameTags_ShowPlayerNames">
<English>Show player names</English>
@ -30,7 +31,7 @@
<German>Zeige Spielernamen nur an, wenn die Maus auf sie gerrichtet ist (benötigt Spielernamen)</German>
<French>Noms uniquement sous le curseur (si noms affichés)</French>
<Czech>Zobrazit jméno hráče jenom na kurzor (vyžaduje jména hráčů)</Czech>
<Italian>Mostra i nomi solo se puntati (richiede i nomi dei giocatori abilitati)</Italian>
<Italian>Mostra i nomi solo se puntati (richiede mostra nomi abilitato)</Italian>
<Portuguese>Mostrar nome de jogador somente no cursor (requer nome de jogadores)</Portuguese>
<Hungarian>Játékosok nevének mutatása csak a kurzoron (a nevek mutatása szükséges)</Hungarian>
<Russian>Показать имена игроков только под курсором (требует имен игроков)</Russian>
@ -44,6 +45,7 @@
<Polish>Pokaż imiona graczy tylko po przytrzymaniu klawisza (wymagana opcja Pokaż imiona graczy)</Polish>
<Hungarian>Játékosnevek mutatása csak gombnyomásra (a nevek mutatása szükséges)</Hungarian>
<Russian>Показать имена игроков только по нажатию клавиши (требует имен игроков)</Russian>
<Italian>Mostra i nomi solo se si preme il tasto (richiede mostra nomi abilitato)</Italian>
</Key>
<Key ID="STR_ACE_NameTags_ShowPlayerRanks">
<English>Show player ranks (requires player names)</English>
@ -52,7 +54,7 @@
<Spanish>Mostrar rango de los jugadores (requiere Mostrar nombres de jugadores)</Spanish>
<French>Grade des joueurs (si noms affichés)</French>
<Czech>Zobrazit hodnosti hráčů (vyžaduje jména hráčů)</Czech>
<Italian>Mostra i gradi (richiede i nomi dei giocatori abilitati)</Italian>
<Italian>Mostra i gradi (richiede mostra nomi abilitato)</Italian>
<Portuguese>Mostrar patente de jogadores (requer nome de jogadores)</Portuguese>
<Hungarian>Játékosok rendfokozatának mutatása (a nevek mutatása szükséges)</Hungarian>
<Russian>Показать звания игроков (требует имен игроков)</Russian>
@ -66,6 +68,7 @@
<Czech>Zobrazit info o posádce vozidla</Czech>
<Russian>Показать экипаж</Russian>
<Hungarian>Jármű-legénység adatainak mutatása</Hungarian>
<Italian>Mostra le informazioni sull'equipaggio del veicolo</Italian>
</Key>
<Key ID="STR_ACE_NameTags_ShowNamesForAI">
<English>Show name tags for AI units</English>
@ -76,6 +79,7 @@
<Polish>Wyświetl imiona jednostek AI</Polish>
<French>Afficher les noms des IA</French>
<Hungarian>Névcímkék mutatása MI-egységeknél</Hungarian>
<Italian>Mostra le tag nomi per le unità AI</Italian>
</Key>
<Key ID="STR_ACE_NameTags_ShowSoundWaves">
<English>Show SoundWaves (requires player names)</English>
@ -86,6 +90,7 @@
<Polish>Pokaż fale dźwiękowe (wymagana opcja Pokaż imiona graczy)</Polish>
<French>Afficher "qui parle" (si noms affichés)</French>
<Hungarian>"Hanghullámok" mutatása (a nevek mutatása szükséges)</Hungarian>
<Italian>Mostra barra movimento audio (richiede mostra nomi abilitato)</Italian>
</Key>
<Key ID="STR_ACE_NameTags_DefaultNametagColor">
<English>Default Nametag Color (Non Group Members)</English>
@ -96,6 +101,7 @@
<French>Couleur d'affichage par défaut (si dans aucun groupe)</French>
<Czech>Standardní barva jmenovek (pro nečleny jednotky)</Czech>
<Hungarian>Alap névcímke-szín (csoporton kívüli személyek)</Hungarian>
<Italian>Colore nametag di default (membri non del gruppo)</Italian>
</Key>
</Package>
</Project>

View File

@ -5,20 +5,20 @@ class CfgWeapons {
class Default;
class Binocular: Default {
forceOptics = 0; // Allow using compass with Binocular
opticsZoomMin = 0.056889; // 5.25x power
opticsZoomMax = 0.056889; // 9 px/mil
modelOptics = "\z\ace\addons\optics\models\NWD_M22_5x"; // 7° horizontal field of view
visionMode[] = {"Normal"}; // Can't use nvgs with binoculars any more than you can with scopes
// Fix AI using Binocs on short range - #18737
forceOptics = 0; // Allow using compass with Binocular
opticsZoomMin = 0.056889; // 5.25x power
opticsZoomMax = 0.056889; // 9 px/mil
modelOptics = "\z\ace\addons\optics\models\NWD_M22_5x"; // 7° horizontal field of view
visionMode[] = {"Normal"}; // Can't use nvgs with binoculars any more than you can with scopes
// Fix AI using Binocs on short range - #18737
// minRange = 300; // 300 = uses Rangefinder often (runs a few meters, stops, uses RF, repeats)
minRange = 500; //500 = seem almost never use it..?
minRangeProbab = 0.001;
minRangeProbab = 0.001;
midRange = 1000;
midRangeProbab = 0.01;
maxRange = 5000;
maxRangeProbab = 0.01;
};
};
// zooming reticle scopes
class optic_DMS: ItemCore {

View File

@ -22,6 +22,7 @@
<Polish>Napraw animację</Polish>
<French>Corriger animation</French>
<Hungarian>Animációk kijavítása</Hungarian>
<Italian>Fixa l'animazione</Italian>
</Key>
<Key ID="STR_ACE_OptionsMenu_ResetAll">
<English>Reset All</English>
@ -32,6 +33,7 @@
<Polish>Resetuj wszystko</Polish>
<French>Défaut</French>
<Hungarian>Minden visszaállítása</Hungarian>
<Italian>Resetta tutto</Italian>
</Key>
<Key ID="STR_ACE_OptionsMenu_TabColors">
<English>Colors</English>
@ -42,6 +44,7 @@
<Czech>Barvy</Czech>
<Polish>Kolory</Polish>
<Hungarian>Színek</Hungarian>
<Italian>Colori</Italian>
</Key>
<Key ID="STR_ACE_OptionsMenu_TabOptions">
<English>Options</English>
@ -64,6 +67,7 @@
<French>Valeurs</French>
<German>Werte</German>
<Hungarian>Értékek</Hungarian>
<Italian>Valori</Italian>
</Key>
<Key ID="STR_ACE_OptionsMenu_Enabled">
<English>Yes</English>
@ -98,6 +102,7 @@
<Polish>Ustawienie:</Polish>
<French>Paramètres</French>
<Hungarian>Opció:</Hungarian>
<Italian>Parametri:</Italian>
</Key>
<Key ID="STR_ACE_OptionsMenu_Export">
<English>Export</English>
@ -108,6 +113,7 @@
<Polish>Eksport</Polish>
<French>Exporter</French>
<Hungarian>Exportálás</Hungarian>
<Italian>Esporta</Italian>
</Key>
<Key ID="STR_ACE_OptionsMenu_OpenExport">
<English>Open Export Menu</English>
@ -118,6 +124,7 @@
<Polish>Otwórz menu eksportowania</Polish>
<French>Ouvrir le menu d'exportation</French>
<Hungarian>Exportálási menü megnyitása</Hungarian>
<Italian>Apri menù esportazione</Italian>
</Key>
<Key ID="STR_ACE_OptionsMenu_stringType">
<English>String input.</English>
@ -127,6 +134,7 @@
<Polish>Wpisywanie tekstu.</Polish>
<French>Entrée</French>
<Hungarian>String bevitel.</Hungarian>
<Italian>Stringa di unput.</Italian>
</Key>
<Key ID="STR_ACE_OptionsMenu_arrayType">
<English>Array. Seperate elements by using ,.</English>
@ -137,6 +145,7 @@
<French>Tableau. Séparation par ,.</French>
<Czech>Tabulka. Odděl elementy použitím ,.</Czech>
<Hungarian>Array. Válasszad el az elemeket vesszővel.</Hungarian>
<Italian>Array. Separa gli elementi usando ,.</Italian>
</Key>
<Key ID="STR_ACE_OptionsMenu_scalarType">
<English>Number</English>
@ -147,6 +156,7 @@
<Polish>Cyfra</Polish>
<French>Nombre</French>
<Hungarian>Szám</Hungarian>
<Italian>Numero</Italian>
</Key>
<Key ID="STR_ACE_optionsMenu_unknownType">
<English>Uknown input type</English>
@ -157,6 +167,7 @@
<Polish>Nieznany rodzaj danych</Polish>
<French>Type d'entrée inconnue</French>
<Hungarian>Ismeretlen beviteli típus</Hungarian>
<Italian>Input inserito sconosciuto</Italian>
</Key>
<Key ID="STR_ACE_OptionsMenu_SaveInput">
<English>Save input</English>
@ -167,6 +178,7 @@
<Polish>Zapisz dane</Polish>
<French>Sauvegarder</French>
<Hungarian>Bevitel elmentése</Hungarian>
<Italian>Salva input</Italian>
</Key>
<Key ID="STR_ACE_OptionsMenu_inClientSettings">
<English>Include Client Settings</English>
@ -177,6 +189,7 @@
<Polish>Zawrzyj ustawienia klienta</Polish>
<French>Inclure paramètres client</French>
<Hungarian>Kliens-beállítások melléklése</Hungarian>
<Italian>Includi i parametri del client</Italian>
</Key>
<Key ID="STR_ACE_OptionsMenu_exClientSettings">
<English>Exclude Client Settings</English>
@ -187,6 +200,7 @@
<Polish>Wyklucz ustawienia klienta</Polish>
<French>Exclure paramètres client</French>
<Hungarian>Kliens-beállítások elhagyása</Hungarian>
<Italian>Escludi i parametri del client</Italian>
</Key>
<Key ID="STR_ACE_OptionsMenu_settingsExported">
<English>Settings exported to clipboard</English>
@ -197,6 +211,7 @@
<Polish>Ustawienia wyeksportowano do schowka</Polish>
<French>Paramètres exportés dans le presse papier</French>
<Hungarian>Beállítások exportálva a vágólapba</Hungarian>
<Italian>Parametri esportati alla clipboard</Italian>
</Key>
</Package>
</Project>

View File

@ -14,12 +14,13 @@
* Public: No
*/
#include "script_component.hpp"
if (!hasInterface) exitWith {};
["ACE3", QGVAR(showAltimeter), localize "STR_ACE_Parachute_showAltimeter",
{
// Conditions: canInteract
if !([ACE_player, objNull, ["isNotEscorting"]] call EFUNC(common,canInteractWith)) exitWith {false};
if !([ACE_player, objNull, ["isNotEscorting", "isNotInside"]] call EFUNC(common,canInteractWith)) exitWith {false};
if (!('ACE_Altimeter' in assignedItems ace_player)) exitWith {false};
if (!(missionNamespace getVariable [QGVAR(AltimeterActive), false])) then {
[ace_player] call FUNC(showAltimeter);
@ -40,5 +41,4 @@ GVAR(PFH) = false;
}] call EFUNC(common,addEventHandler);
// don't show speed and height when in expert mode
["Parachute", {if (!cadetMode) then {_dlg = _this select 0; {(_dlg displayCtrl _x) ctrlShow false} forEach [121, 122, 1004, 1005, 1006, 1014];};}] call EFUNC(common,addInfoDisplayEventHandler); //@todo addEventHandler infoDisplayChanged with select 1 == "Parachute"
["Soldier", {if (!cadetMode) then {_dlg = _this select 0; {_ctrl = (_dlg displayCtrl _x); _ctrl ctrlSetPosition [0,0,0,0]; _ctrl ctrlCommit 0;} forEach [380, 382]};}] call EFUNC(common,addInfoDisplayEventHandler); //@todo addEventHandler infoDisplayChanged with select 1 == "Soldier"
["infoDisplayChanged", {_this call FUNC(handleInfoDisplayChanged)}] call EFUNC(common,addEventHandler);

View File

@ -18,6 +18,7 @@
ADDON = false;
PREP(doLanding);
PREP(handleInfoDisplayChanged);
PREP(hideAltimeter);
PREP(onEachFrame);
PREP(showAltimeter);

View File

@ -0,0 +1,41 @@
/*
* Author: commy2
* Hides the height and velocity display while freefalling or parachuting on higher difficulties.
*
* Arguments:
* Stuff from infoDisplayChanged eventhandler.
*
* Return Value:
* None
*
* Public: No
*/
#include "script_component.hpp"
private ["_dialog", "_type"];
_dialog = _this select 0;
_type = _this select 1;
// don't do anything in noob mode
if (cadetMode) exitWith {};
switch (_type) do {
case ("Parachute"): {
{
(_dialog displayCtrl _x) ctrlShow false;
} forEach [121, 122, 1004, 1005, 1006, 1014];
};
case ("Soldier"): {
{
private "_control";
_control = (_dialog displayCtrl _x);
// these reset ctrlShow every frame by the engine. Set height/width to 0 as work around.
_control ctrlSetPosition [0,0,0,0];
_control ctrlCommit 0;
} forEach [380, 382];
};
};
nil // switch might return true if no case was found. Just to make sure the return value matches

View File

@ -14,19 +14,24 @@
* Public: Yes
*/
#include "script_component.hpp"
private ["_unit"];
_unit = _this select 0;
(["ACE_Altimeter"] call BIS_fnc_rscLayer) cutRsc ["ACE_Altimeter", "PLAIN",0,true];
(["ACE_Altimeter"] call BIS_fnc_rscLayer) cutRsc ["ACE_Altimeter", "PLAIN", 0, true];
if (isNull (uiNamespace getVariable ["ACE_Altimeter", displayNull])) exitWith {};
GVAR(AltimeterActive) = true;
[{
if (!GVAR(AltimeterActive)) exitWith {[_this select 1] call CALLSTACK(cba_fnc_removePerFrameEventHandler);};
if (!GVAR(AltimeterActive)) exitWith {[_this select 1] call CALLSTACK(cba_fnc_removePerFrameEventHandler)};
disableSerialization;
EXPLODE_4_PVT(_this select 0,_display,_unit,_oldHeight,_prevTime);
if !("ACE_Altimeter" in assignedItems _unit) exitWith {[_this select 1] call CALLSTACK(cba_fnc_removePerFrameEventHandler);call FUNC(hideAltimeter);};
if !("ACE_Altimeter" in assignedItems _unit) exitWith {[_this select 1] call CALLSTACK(cba_fnc_removePerFrameEventHandler); call FUNC(hideAltimeter)};
private ["_height", "_hour", "_minute", "_descentRate","_HeightText", "_DecendRate", "_TimeText", "_curTime", "_timeDiff"];
private ["_height", "_hour", "_minute", "_descentRate","_HeightText", "_DecendRate", "_TimeText", "_curTime"];
_HeightText = _display displayCtrl 1100;
_DecendRate = _display displayCtrl 1000;
_TimeText = _display displayCtrl 1001;
@ -35,7 +40,8 @@ GVAR(AltimeterActive) = true;
_height = (getPosASL _unit) select 2;
_curTime = time;
_descentRate = floor ((_oldHeight - _height) / (_curTime - _prevTime));
_timeDiff = _curTime - _prevTime;
_descentRate = if(_timeDiff > 0) then {floor((_oldHeight - _height) / _timeDiff)} else {0};
_TimeText ctrlSetText (format ["%1:%2",[_hour, 2] call EFUNC(common,numberToDigitsString),[_minute, 2] call EFUNC(common,numberToDigitsString)]);
_HeightText ctrlSetText (format ["%1", floor(_height)]);

View File

@ -11,6 +11,7 @@
<Spanish>Altímetro</Spanish>
<Hungarian>Magasságmérő</Hungarian>
<Russian>Высотомер</Russian>
<Italian>Altimetro</Italian>
</Key>
<Key ID="STR_ACE_Parachute_AltimeterDisplayName">
<English>Altimeter Watch</English>
@ -21,6 +22,7 @@
<Spanish>Reloj altímetro</Spanish>
<Hungarian>Magasságmérős karóra</Hungarian>
<Russian>Часы с высотомером</Russian>
<Italian>Controlla l'altimetro</Italian>
</Key>
<Key ID="STR_ACE_Parachute_AltimeterDescription">
<English>Used to show height, descent rate and the time.</English>
@ -31,6 +33,7 @@
<Spanish>Utilizado para mostrar altura, tasa de descenso y hora.</Spanish>
<Hungarian>Mutatja a magasságot, a zuhanási sebességet, és az időt.</Hungarian>
<Russian>Используется для определения высоты, скорости снижения и времени.</Russian>
<Italian>Usato per mostrare l'altitudine, la velocità di discesa e l'ora.</Italian>
</Key>
<Key ID="STR_ACE_Parachute_NonSteerableParachute">
<English>Non-Steerable Parachute</English>
@ -41,6 +44,7 @@
<Czech>Neříditelný padák</Czech>
<Hungarian>Irányíthatatlan ejtőernyő</Hungarian>
<Russian>Неуправляемый парашют</Russian>
<Italian>Paracadute non manovrabile</Italian>
</Key>
</Package>
</Project>
</Project>

View File

@ -10,6 +10,7 @@
<Polish>Sprawdź stan amunicji przy przeładowaniu broni</Polish>
<French>Vérification des munitions au rechargement</French>
<Hungarian>Lőszer ellenőrzése a fegyver újratöltésekor</Hungarian>
<Italian>Controlla le munizioni ricaricando</Italian>
</Key>
<Key ID="STR_ACE_reload_SettingDisplayTextDesc">
<English>Check the ammo in your new magazine on magazine reload.</English>
@ -20,6 +21,7 @@
<Polish>Pokaż stan amunicji w nowym magazynku przy przeładowaniu broni</Polish>
<French>Vérification du nombre de munition au rechargement</French>
<Hungarian>A lőszer ellenőrzése az új tárad behelyezésekor újratöltés közben.</Hungarian>
<Italian>Controlla le munizioni rimanenti nel caricatore in fase di cambio caricatore.</Italian>
</Key>
<Key ID="STR_ACE_Reload_checkAmmo">
<English>Check Ammo</English>
@ -54,6 +56,7 @@
<Polish>Podłącz taśmę</Polish>
<German>Gurt anhängen</German>
<Hungarian>Töltényheveder összekötése</Hungarian>
<Italian>Attacca la tracolla</Italian>
</Key>
<Key ID="STR_ACE_Reload_LinkingBelt">
<English>Linking belt...</English>
@ -64,6 +67,7 @@
<Polish>Podłączanie taśmy...</Polish>
<German>Gurt anhängen ...</German>
<Hungarian>Töltényheveder összekötése folyamatban...</Hungarian>
<Italian>Attacco la tracolla...</Italian>
</Key>
</Package>
</Project>

View File

@ -11,6 +11,7 @@
<Polish>Załaduj wyrzutnię</Polish>
<French>Charger lanceur</French>
<Hungarian>Kilövö betöltése</Hungarian>
<Italian>Carica lanciamissili</Italian>
</Key>
<Key ID="STR_ACE_ReloadLaunchers_LoadingLauncher">
<English>Loading launcher ...</English>
@ -21,6 +22,7 @@
<Czech>Nabíjím odpalovač ...</Czech>
<Polish>Ładowanie wyrzutni ...</Polish>
<Hungarian>Kilövő betöltés alatt ...</Hungarian>
<Italian>Carico il lanciamissili ...</Italian>
</Key>
<Key ID="STR_ACE_ReloadLaunchers_LauncherLoaded">
<English>Launcher loaded</English>
@ -31,6 +33,7 @@
<Czech>Odpalovač nabit</Czech>
<Polish>Wyrzutnia załadowana</Polish>
<Hungarian>Kilövő betöltve</Hungarian>
<Italian>Lanciamissili caricato</Italian>
</Key>
<Key ID="STR_ACE_ReloadLaunchers_LoadMagazine">
<English>Load %1</English>
@ -41,6 +44,7 @@
<Czech>Nabít %1</Czech>
<Polish>Załadowano %1</Polish>
<Hungarian>%1 betöltése</Hungarian>
<Italian>Caricato %1</Italian>
</Key>
</Package>
</Project>

View File

@ -10,6 +10,7 @@
<Polish>Rozmieszczenie za 5 sekund ...</Polish>
<Czech>Respawn za 5 sekund...</Czech>
<Hungarian>Kihelyezés 5 másodperc múlva ...</Hungarian>
<Italian>Dispiegamento in 5 secondi ...</Italian>
</Key>
<Key ID="STR_ACE_Respawn_Deployed">
<English>Rallypoint deployed</English>
@ -20,6 +21,7 @@
<Polish>Punkt zbiórki rozmieszczony</Polish>
<Czech>Rallypoint umístěn</Czech>
<Hungarian>Gyülekezőpont elhelyezve</Hungarian>
<Italian>Rallypoint dispiegato</Italian>
</Key>
<Key ID="STR_ACE_Respawn_TeleportedToBase">
<English>Teleported to Base</English>
@ -30,6 +32,7 @@
<Polish>Przeteleportowano do bazy</Polish>
<Czech>Odteleportován na základnu</Czech>
<Hungarian>Bázisra teleportálva</Hungarian>
<Italian>Teleportato alla base</Italian>
</Key>
<Key ID="STR_ACE_Respawn_TeleportedToRallypoint">
<English>Teleported to Rallypoint</English>
@ -40,36 +43,43 @@
<Polish>Przeteleportowano do punktu zbiórki</Polish>
<Czech>Odteleportován na rallypoint</Czech>
<Hungarian>Gyülekezőpontra teleportálva</Hungarian>
<Italian>Teleportato al rallypoint</Italian>
</Key>
<Key ID="STR_ACE_Respawn_RallypointWestBase">
<English>Rallypoint West (Base)</English>
<German>Sammelpunkt West (Basis)</German>
<Spanish>Punto de reunión Oeste (Base)</Spanish>
<Russian>Точка сбора Синих (База)</Russian>
</Key>
<Key ID="STR_ACE_Respawn_RallypointEastBase">
<English>Rallypoint East (Base)</English>
<German>Sammelpunkt Ost (Basis)</German>
<Spanish>Punto de reunión Este (Base)</Spanish>
<Russian>Точка сбора Красных (База)</Russian>
</Key>
<Key ID="STR_ACE_Respawn_RallypointIndependentBase">
<English>Rallypoint Independent (Base)</English>
<German>Sammelpunkt Widerstand (Basis)</German>
<Spanish>Punto de reunión Independiente (Base)</Spanish>
<Russian>Точка сбора Независимых (База</Russian>
</Key>
<Key ID="STR_ACE_Respawn_RallypointWest">
<English>Rallypoint West</English>
<German>Sammelpunkt West</German>
<Spanish>Punto de reunión Oeste</Spanish>
<Russian>Точка сбора Синих</Russian>
</Key>
<Key ID="STR_ACE_Respawn_RallypointEast">
<English>Rallypoint East</English>
<German>Sammelpunkt Ost</German>
<Spanish>Punto de reunión Este</Spanish>
<Russian>Точка сбора Красных</Russian>
</Key>
<Key ID="STR_ACE_Respawn_RallypointIndependent">
<English>Rallypoint Independent</English>
<German>Sammelpunkt Widerstand</German>
<Spanish>Punto de reunión Independiente</Spanish>
<Russian>Точка сбора Независимых</Russian>
</Key>
</Package>
</Project>

View File

@ -10,6 +10,7 @@
<Hungarian>Biztonságos mód</Hungarian>
<Russian>Предохранитель</Russian>
<French>Sécurité</French>
<Italian>Sicura inserita</Italian>
</Key>
<Key ID="STR_ACE_SafeMode_TakeOffSafety">
<English>Take off Safety</English>
@ -20,6 +21,7 @@
<Hungarian>Biztonsági kapcsoló eltolása</Hungarian>
<Russian>Снять с предохранителя</Russian>
<French>Enlever sécurité</French>
<Italian>Togli la sicura</Italian>
</Key>
<Key ID="STR_ACE_SafeMode_PutOnSafety">
<English>Put on Safety</English>
@ -30,6 +32,7 @@
<Hungarian>Biztonsági kapcsoló helyretolása</Hungarian>
<Russian>Поставить на предохранитель</Russian>
<French>Sécurité mise</French>
<Italian>Inserisci la sicura</Italian>
</Key>
<Key ID="STR_ACE_SafeMode_TookOffSafety">
<English>Took off Safety</English>
@ -40,6 +43,7 @@
<Hungarian>Biztonságos mód megszüntetve</Hungarian>
<Russian>Снят с предохранителя</Russian>
<French>Sécurité enlevée</French>
<Italian>Togli la sicura</Italian>
</Key>
</Package>
</Project>

View File

@ -6,54 +6,63 @@
<Polish>Zerowanie powoli w górę</Polish>
<Russian>Малая корректировка ВВЕРХ</Russian>
<Spanish>Ajuste menor arriba</Spanish>
<Italian>Regola leggermente alzata in alto</Italian>
</Key>
<Key ID="STR_ACE_Scopes_AdjustDownMinor">
<English>Minor adjustment down</English>
<Polish>Zerowanie powoli w dół</Polish>
<Russian>Малая корректировка ВНИЗ</Russian>
<Spanish>Ajuste menor abajo</Spanish>
<Italian>Regola leggermente alzata in basso</Italian>
</Key>
<Key ID="STR_ACE_Scopes_AdjustRightMinor">
<English>Minor adjustment right</English>
<Polish>Zerowanie powoli w prawo</Polish>
<Russian>Малая корректировка ВПРАВО</Russian>
<Spanish>Ajuste menor derecha</Spanish>
<Italian>Regola leggermente il tiro a destra</Italian>
</Key>
<Key ID="STR_ACE_Scopes_AdjustLeftMinor">
<English>Minor adjustment left</English>
<Polish>Zerowanie powoli w lewo</Polish>
<Russian>Малая корректировка ВЛЕВО</Russian>
<Spanish>Ajuste menor izquierda</Spanish>
<Italian>Regola leggermete il tiro a sinistra</Italian>
</Key>
<Key ID="STR_ACE_Scopes_AdjustUpMajor">
<English>Major adjustment up</English>
<Polish>Zerowanie w górę</Polish>
<Russian>Большая корректировка ВВЕРХ</Russian>
<Spanish>Ajuste mayor arriba</Spanish>
<Italian>Regola l'alzata in alto</Italian>
</Key>
<Key ID="STR_ACE_Scopes_AdjustDownMajor">
<English>Major adjustment down</English>
<Polish>Zerowanie w dół</Polish>
<Russian>Большая корректировка ВНИЗ</Russian>
<Spanish>Ajuste mayor abajo</Spanish>
<Italian>Regola l'alzata in basso</Italian>
</Key>
<Key ID="STR_ACE_Scopes_AdjustRightMajor">
<English>Major adjustment right</English>
<Polish>Zerowanie w prawo</Polish>
<Russian>Большая корректировка ВПРАВО</Russian>
<Spanish>Ajuste mayor derecha</Spanish>
<Italian>Regola il tiro a destra</Italian>
</Key>
<Key ID="STR_ACE_Scopes_AdjustLeftMajor">
<English>Major adjustment left</English>
<Polish>Zerowanie w lewo</Polish>
<Russian>Большая корректировка ВЛЕВО</Russian>
<Spanish>Ajuste mayor izquierda</Spanish>
<Italian>Regola il tiro a sinistra</Italian>
</Key>
<Key ID="STR_ACE_Scopes_AdjustZero">
<English>Set zero adjustment</English>
<Polish>Zresetuj wyzerowanie</Polish>
<Russian>Сбросить корректировку</Russian>
<Spanish>Establecer ajuste a cero</Spanish>
<Italian>Resetta i valori del tiro</Italian>
</Key>
</Package>
</Project>

View File

@ -10,6 +10,7 @@
<Spanish>Cambiado de unidad</Spanish>
<French>Unité changée</French>
<Hungarian>Egység átváltva</Hungarian>
<Italian>Cambia unità</Italian>
</Key>
<Key ID="STR_ACE_SwitchUnits_TooCloseToEnemy">
<English>This unit is too close to the enemy.</English>
@ -20,6 +21,7 @@
<Spanish>Esta unidad está demasiado cerca del enemigo.</Spanish>
<French>Cette unité est trop proche des ennemis</French>
<Hungarian>Ez az egység túl közel van az ellenséghez.</Hungarian>
<Italian>Questa unità è troppo vicina al nemico.</Italian>
</Key>
</Package>
</Project>

View File

@ -10,6 +10,7 @@
<Czech>Odemknout vozidlo</Czech>
<Hungarian>Jármű nyitása</Hungarian>
<Russian>Открыть машину</Russian>
<Italian>Apri il veicolo</Italian>
</Key>
<Key ID="STR_ACE_Vehicle_Action_Lock">
<English>Lock Vehicle</English>
@ -20,6 +21,7 @@
<Czech>Zamknout vozidlo</Czech>
<Hungarian>Jármű zárása</Hungarian>
<Russian>Закрыть машину</Russian>
<Italian>Chiudi il veicolo</Italian>
</Key>
<Key ID="STR_ACE_Vehicle_Action_Lockpick">
<English>Lockpick Vehicle</English>
@ -30,6 +32,7 @@
<Czech>Vypáčit vozidlo</Czech>
<Hungarian>Jármű feltörése</Hungarian>
<Russian>Взломать замок</Russian>
<Italian>Scassina veicolo</Italian>
</Key>
<Key ID="STR_ACE_Vehicle_Action_LockpickInUse">
<English>Picking Lock....</English>
@ -40,6 +43,7 @@
<Czech>Páčim vozidlo...</Czech>
<Hungarian>Zár feltörése...</Hungarian>
<Russian>Взламываем замок...</Russian>
<Italian>Scassino il veicolo....</Italian>
</Key>
<Key ID="STR_ACE_Vehicle_Item_Custom_Description">
<English>A custom key that will open a specific vehicle.</English>
@ -50,6 +54,7 @@
<Czech>Vlastní klíč, který otevře konkrétní vozidlo.</Czech>
<Hungarian>Egy egyedi kulcs, ami egy meghatározott járművet nyit ki.</Hungarian>
<Russian>Ключ от конкретной машины.</Russian>
<Italian>Una chiave personalizzata che apre determinati veicoli.</Italian>
</Key>
<Key ID="STR_ACE_Vehicle_Item_Master_Description">
<English>A Master Key will open any lock, no matter what!</English>
@ -60,6 +65,7 @@
<Czech>Hlavní klíč otevře libovolný zámek, bez vyjímek!</Czech>
<Hungarian>Egy főkulcs, ami minden zárat kinyit, helyzettől függetlenül!</Hungarian>
<Russian>Универсальный ключ, открывающий любой замок.</Russian>
<Italian>Una chiave principale che apre qualsiasi serratura!</Italian>
</Key>
<Key ID="STR_ACE_Vehicle_Item_Lockpick_Description">
<English>A lockpick set that can pick the locks of most vehicles.</English>
@ -70,6 +76,7 @@
<Czech>Sada paklíčů, která dokáže odemknout zámky u většiny vozidel.</Czech>
<Hungarian>Egy tolvajkulcs-készlet, mely a legtöbb jármű zárjait fel tudja törni.</Hungarian>
<Russian>Набор отмычек, которым можно взломать почти любую машину.</Russian>
<Italian>Un grimardello per forzare la maggior parte dei veicoli</Italian>
</Key>
<Key ID="STR_ACE_Vehicle_Item_West_Description">
<English>A key that should open most WEST vehicles.</English>
@ -79,7 +86,8 @@
<Polish>Klucz, który powinien otworzyć większość pojazdów ZACHODU.</Polish>
<Czech>Klíč který by měl otevřít většinou Západních vozidel.</Czech>
<Hungarian>Egy kulcs, ami a NYUGAT egységeinek legtöbb járművét ki tudja nyitni.</Hungarian>
<Russian>Ключ для открытия большинства машин Запада.</Russian>
<Russian>Ключ для открытия большинства машин Красных.</Russian>
<Italian>Una chiave che apre la maggior parte dei veicoli WEST</Italian>
</Key>
<Key ID="STR_ACE_Vehicle_Item_East_Description">
<English>A key that should open most EAST vehicle.</English>
@ -89,7 +97,8 @@
<Polish>Klucz, który powinien otworzyć większość pojazdów WSCHODU.</Polish>
<Hungarian>Egy kulcs, ami a KELET egységeinek legtöbb járművét ki tudja nyitni.</Hungarian>
<Czech>Klíč který by měl otevřít vetšinu Východních vozidel.</Czech>
<Russian>Ключ для открытия большинства машин Востока.</Russian>
<Russian>Ключ для открытия большинства машин Синих.</Russian>
<Italian>Una chaive che apr ela maggior parte dei veicoli EAST</Italian>
</Key>
<Key ID="STR_ACE_Vehicle_Item_Indp_Description">
<English>A key that should open most INDEP vehicle.</English>
@ -100,6 +109,7 @@
<Hungarian>Egy kulcs, ami a FÜGGETLEN egységek legtöbb járművét ki tudja nyitni.</Hungarian>
<Czech>Klíč který by měl otevřít většinu Nezávislých vozidel.</Czech>
<Russian>Ключ для открытия большинства машин Независимых.</Russian>
<Italian>Una chaive che apr ela maggior parte dei veicoli INDEP</Italian>
</Key>
<Key ID="STR_ACE_Vehicle_Item_Civ_Description">
<English>A key that should open most CIV vehicle.</English>
@ -110,6 +120,7 @@
<Czech>Klíč který by měl otevřít většinu Civilních vozidel.</Czech>
<Hungarian>Egy kulcs, ami a CIVIL járművek többségét ki tudja nyitni.</Hungarian>
<Russian>Ключ для открытия большинства машин Гражданских.</Russian>
<Italian>Una chaive che apr ela maggior parte dei veicoli CIV</Italian>
</Key>
</Package>
</Project>

View File

@ -10,6 +10,7 @@
<Polish>Wyświetl tekst przy rzucie granatem</Polish>
<French>Afficher texte lors d'un lancé de grenade</French>
<Hungarian>Szöveg mutatása gránát eldobásakor</Hungarian>
<Italian>Mostra indicazioni nel lancio granate</Italian>
</Key>
<Key ID="STR_ACE_Weaponselect_SettingDisplayTextDesc">
<English>Display a hint or text on grenade throw.</English>
@ -20,6 +21,7 @@
<Polish>Wyświetla powiadomienie lub tekst przy rzucie granatem.</Polish>
<French>Afficher texte/info au lancé de grenade</French>
<Hungarian>Jelez egy súgót vagy szöveget a gránát eldobásakor.</Hungarian>
<Italian>Mostra un suggerimento quando si lanciano granate</Italian>
</Key>
<Key ID="STR_ACE_WeaponSelect_SelectPistol">
<English>Select Pistol</English>
@ -55,7 +57,7 @@
<French>Sélectionner Lanceur</French>
<Hungarian>Rakétavető Kiválasztása</Hungarian>
<Portuguese>Selecionar Lançador</Portuguese>
<Italian>Seleziona il Lanciatore</Italian>
<Italian>Seleziona il Lanciamissili</Italian>
</Key>
<Key ID="STR_ACE_WeaponSelect_SelectRifleMuzzle">
<English>Select Grenade Launcher</English>
@ -162,6 +164,7 @@
<Hungarian>Gránát: %1</Hungarian>
<Russian>Граната %1</Russian>
<French>Grenade %1</French>
<Italian>Granata %1</Italian>
</Key>
<Key ID="STR_ACE_WeaponSelect_ReadyGrenade">
<English>Ready Grenade</English>
@ -172,6 +175,7 @@
<Hungarian>Gránát előkészítése</Hungarian>
<Russian>Подготовить гранату</Russian>
<French>Grenade prête</French>
<Italian>Granata pronta</Italian>
</Key>
<Key ID="STR_ACE_WeaponSelect_SelectGrenadeFrag">
<English>Select Frag Grenade</English>
@ -194,7 +198,7 @@
<Hungarian>Nem-robbanó Gránát Kiválasztása</Hungarian>
<Czech>Zvolit Ne-Výbušný Granát</Czech>
<Portuguese>Selecionar Granada</Portuguese>
<Italian>Seleziona Altre Granate</Italian>
<Italian>Seleziona granate non a frammentazione</Italian>
<Russian>Выбрать гранату</Russian>
</Key>
<Key ID="STR_ACE_WeaponSelect_ThrowGrenade">
@ -218,6 +222,7 @@
<Czech>Žádné granáty</Czech>
<Hungarian>Nincs több gránát</Hungarian>
<Russian>Гранат не осталось</Russian>
<Italian>Granate esaurite</Italian>
</Key>
<Key ID="STR_ACE_WeaponSelect_NoFragsLeft">
<English>No frags left</English>
@ -229,7 +234,7 @@
<Czech>Už nejsou granáty</Czech>
<Portuguese>Não há granadas de fragmentação restantes</Portuguese>
<Italian>Nessuna granata a frammentazione rimanente</Italian>
<Russian>Осколочныких гранат нет</Russian>
<Russian>Осколочных гранат нет</Russian>
</Key>
<Key ID="STR_ACE_WeaponSelect_NoMiscGrenadeLeft">
<English>No misc. grenades left</English>
@ -264,6 +269,7 @@
<Polish>Wystrzel granat dymny</Polish>
<Hungarian>Füstvető eltüzelése</Hungarian>
<Russian>Запустить дымовую завесу</Russian>
<Italian>Lancia fumogeno</Italian>
</Key>
</Package>
</Project>
</Project>

View File

@ -39,6 +39,7 @@ _fnc_updateWind = {
// Update Rain
_fnc_updateRain = {
private ["_oldStrength","_rainStrength","_transitionTime","_periodPosition","_periodPercent"];
if(GVAR(enableRain)) then {
if(!isNil "ACE_RAIN_PARAMS" && {!isNil QGVAR(rain_period_start_time)}) then {
_oldStrength = ACE_RAIN_PARAMS select 0;
@ -56,6 +57,7 @@ _fnc_updateRain = {
// Update Temperature
_fnc_updateTemperature = {
private ["_time","_month","_hourlyCoef","_avgTemperature","_pS1","_pS2"];
_time = daytime;
_month = date select 1;

View File

@ -1,6 +1,5 @@
/*
* Author: Ruthberg
*
* Displays a wind info (colored arrow) in the top left corner of the screen
*
* Argument:
@ -29,13 +28,13 @@ GVAR(WindInfo) = true;
[{
private ["_windSpeed", "_windDir", "_playerDir", "_windIndex", "_windColor", "_newWindSpeed", "_windSource", "_height"];
if !(GVAR(WindInfo) && !(underwater ACE_player) && vehicle ACE_player == ACE_player) exitWith {
GVAR(WindInfo) = false;
0 cutText ["", "PLAIN"];
[_this select 1] call cba_fnc_removePerFrameHandler;
};
_windIndex = 12;
_windColor = [1, 1, 1, 1];
@ -46,7 +45,7 @@ GVAR(WindInfo) = true;
} else {
vectorMagnitude ACE_wind;
};
if (_windSpeed > 0.2) then {
_playerDir = getDir ACE_player;
_windDir = (ACE_wind select 0) atan2 (ACE_wind select 1);

View File

@ -1,6 +1,5 @@
/*
* Author: Ruthberg, esteldunedain
*
* Get the weather data for the current map
*
* Argument:

View File

@ -1,4 +1,15 @@
/*
* Author: ACE2 Team
* Calculate current wind locally from the data broadcasted by the server
*
* Argument:
* None
*
* Return value:
* Wind <ARRAY>
*/
#include "script_component.hpp"
private ["_dir","_dirInc","_dirRange","_period","_periodPercent","_periodPosition","_return","_spd","_spdInc","_spdRange"];
_return = [0,0,0];
if(!isNil "ACE_WIND_PARAMS") then {

View File

@ -1,4 +1,15 @@
/*
* Author: ACE2 Team, esteldunedain
* Calculate the wind and rain evolution on the server. Broadcast the current and next values to the clients
*
* Argument:
* None
*
* Return value:
* None
*/
#include "script_component.hpp"
private ["_gustCount","_gustDir","_gustSpeed","_gustTime","_gusts","_i","_lastRain","_maxInterval","_rainOverCast","_startDir","_startSpeed","_time","_timeTillGust","_transitionTime"];
// Rain simulation
if(GVAR(rain_period_count) > GVAR(rain_next_period)) then {

View File

@ -7,6 +7,7 @@
<Russian>Показать информацию о погоде</Russian>
<French>Afficher information du vent</French>
<Spanish>Mostrar información del viento</Spanish>
<Italian>Mostra informazioni sul vento</Italian>
</Key>
</Package>
</Project>

View File

@ -11,6 +11,7 @@
<French>Vent</French>
<German>Windinformationen</German>
<Hungarian>Szélinformáció</Hungarian>
<Italian>Informazioni sul vento</Italian>
</Key>
<Key ID="STR_ACE_WEATHER_METER_WIND_DIRECTION">
<English>Direction: %1</English>
@ -21,6 +22,7 @@
<French>Direction %1</French>
<German>Windrichtung: %1</German>
<Hungarian>Irány: %1</Hungarian>
<Italian>Direzione: %1</Italian>
</Key>
<Key ID="STR_ACE_WEATHER_METER_WIND_SPEED">
<English>Speed: %1 m/s</English>
@ -31,6 +33,7 @@
<French>Vitesse %1 m/s</French>
<German>Geschwindigkeit: %1m/s</German>
<Hungarian>Sebesség: %1 m/s</Hungarian>
<Italian>Velocità: %1 m/s</Italian>
</Key>
<Key ID="STR_ACE_WEATHER_METER_WEATHER_CATEGORY">
<English>Weather Information</English>
@ -41,6 +44,7 @@
<French>Météo</French>
<German>Wetterinformationen</German>
<Hungarian>Időjárás-Információ</Hungarian>
<Italian>Meteo</Italian>
</Key>
<Key ID="STR_ACE_WEATHER_METER_WEATHER_HUMIDITY">
<English>Humidity: %1%</English>
@ -51,6 +55,7 @@
<French>Humidité: %1%</French>
<German>Luftfeuchtigkeit: %1</German>
<Hungarian>Páratartalom: %1%</Hungarian>
<Italian>Umidità: %1%</Italian>
</Key>
</Container>
</Package>

View File

@ -35,8 +35,8 @@ Tabs can be tricky sometimes, especially when it comes to sharing code with othe
## Braces
- opening bracket on the same line as keyword
- closing bracket in own line, same level of indentation as keyword
- opening brace on the same line as keyword
- closing brace in own line, same level of indentation as keyword
**Yes:**
@ -70,7 +70,7 @@ class Something : Or {
};
```
When using `if`/`else`, it is encouraged to put `else` on the same line as the closing bracket to save space:
When using `if`/`else`, it is encouraged to put `else` on the same line as the closing brace to save space:
```c++
if (alive player) then {
@ -90,7 +90,7 @@ class Three {foo = 3;};
#### Reasoning
Putting the opening bracket in it's own line wastes a lot of space, and keeping the closing bracket on the same level as the keyword makes it easier to recognize what exactly the bracket closes.
Putting the opening brace in it's own line wastes a lot of space, and keeping the closing brace on the same level as the keyword makes it easier to recognize what exactly the brace closes.
## How to create a new module

View File

@ -11,7 +11,7 @@ order: 9
### Requirements
- A compiler (VS/GCC/Clang)
- If starting with visual studio, you need to make sure to use the Visual studio command prompt
- If starting with Visual Studio, you need to make sure to use the Visual studio command prompt
- cmake 3.0 or later in your path
### Cross-Platform Guidelines

View File

@ -10,23 +10,23 @@ order: 4
Main principles:
- As much stuff as possible should be modular
- Strive to make as much stuff as possible run-time toogable. Adding/removing PBOS would still be requiring to toogle any feature relying on config changes.
- Strive to make as much stuff as possible run-time togglable. Adding/removing PBOS would still be requiring to toggle any feature relying on config changes.
### PBO Structure
Main principles:
- Try to keep single module dependencies as much as possible
- InteractionMenu would be the requirement for most modules.
- Anything that is 100% config should require common and not interaction.
- Interact_Menu would be the requirement for most modules.
- Anything that is 100% config should require Common and not Interact_Menu.
```
Main -> Common -> OptionsMenu -> InteractionMenu -> Most things
Main -> Common -> OptionsMenu -> Interact_Menu -> Most things
Main -> Common -> Config things
Main -> Common -> 3D Models |
InteractionMenu | -> Feature
Main -> Common -> 3D Models |
Interact_Menu | -> Feature
```