mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
Merge branch 'master' into armake
This commit is contained in:
commit
b99b11d066
@ -1,7 +1,7 @@
|
|||||||
root = true
|
root = true
|
||||||
|
|
||||||
[*]
|
[*]
|
||||||
end_of_line = crlf
|
end_of_line = lf
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
charset = utf-8
|
charset = utf-8
|
||||||
indent_style = space
|
indent_style = space
|
||||||
@ -10,4 +10,3 @@ trim_trailing_whitespace = true
|
|||||||
|
|
||||||
[*.md]
|
[*.md]
|
||||||
trim_trailing_whitespace = false
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
|
4
.gitattributes
vendored
Normal file
4
.gitattributes
vendored
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
* text=auto
|
||||||
|
*.png binary
|
||||||
|
*.jpg binary
|
||||||
|
*.paa binary
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,4 +1,6 @@
|
|||||||
@ace/*
|
@ace/*
|
||||||
|
release/*
|
||||||
|
tools/temp
|
||||||
*.cache
|
*.cache
|
||||||
*.pbo
|
*.pbo
|
||||||
texHeaders.bin
|
texHeaders.bin
|
||||||
|
@ -88,6 +88,7 @@ Kllrt <kllrtik@gmail.com>
|
|||||||
legman <juicemelon@msn.com>
|
legman <juicemelon@msn.com>
|
||||||
Legolasindar "Viper" <legolasindar@gmail.com>
|
Legolasindar "Viper" <legolasindar@gmail.com>
|
||||||
licht-im-Norden87 <lichtimnorden87@gmail.com>
|
licht-im-Norden87 <lichtimnorden87@gmail.com>
|
||||||
|
looter <looter222@gmail.com>
|
||||||
Macusercom <macusercom@gmail.com>
|
Macusercom <macusercom@gmail.com>
|
||||||
MarcBook
|
MarcBook
|
||||||
meat <p.humberdroz@gmail.com>
|
meat <p.humberdroz@gmail.com>
|
||||||
@ -108,6 +109,7 @@ Riccardo Petricca <petriccarcc@gmail.com>
|
|||||||
Robert Boklahánics <bokirobi@gmail.com>
|
Robert Boklahánics <bokirobi@gmail.com>
|
||||||
ruPaladin <happyworm24@rambler.ru>
|
ruPaladin <happyworm24@rambler.ru>
|
||||||
simon84 <badguy360th@gmail.com>
|
simon84 <badguy360th@gmail.com>
|
||||||
|
Skengman2
|
||||||
Sniperwolf572 <tenga6@gmail.com>
|
Sniperwolf572 <tenga6@gmail.com>
|
||||||
System98
|
System98
|
||||||
SzwedzikPL <szwedzikpl@gmail.com>
|
SzwedzikPL <szwedzikpl@gmail.com>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://github.com/acemod/ACE3/releases/latest">
|
<a href="https://github.com/acemod/ACE3/releases/latest">
|
||||||
<img src="https://img.shields.io/badge/Version-3.5.1-blue.svg?style=flat-square" alt="ACE3 Version">
|
<img src="https://img.shields.io/badge/Version-3.6.0-blue.svg?style=flat-square" alt="ACE3 Version">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/acemod/ACE3/issues">
|
<a href="https://github.com/acemod/ACE3/issues">
|
||||||
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 Issues">
|
<img src="https://img.shields.io/github/issues-raw/acemod/ACE3.svg?style=flat-square&label=Issues" alt="ACE3 Issues">
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
ace_fcs.dll
BIN
ace_fcs.dll
Binary file not shown.
BIN
ace_medical.dll
BIN
ace_medical.dll
Binary file not shown.
Binary file not shown.
@ -3,7 +3,7 @@ class CfgVehicles {
|
|||||||
class GVAR(ModuleSettings): ACE_Module {
|
class GVAR(ModuleSettings): ACE_Module {
|
||||||
scope = 2;
|
scope = 2;
|
||||||
displayName = CSTRING(DisplayName);
|
displayName = CSTRING(DisplayName);
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_Wind_ca.paa));
|
icon = QPATHTOF(UI\Icon_Module_Wind_ca.paa);
|
||||||
category = "ACE";
|
category = "ACE";
|
||||||
function = QUOTE(DFUNC(initModuleSettings));
|
function = QUOTE(DFUNC(initModuleSettings));
|
||||||
functionPriority = 1;
|
functionPriority = 1;
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
GVAR(currentbulletID) = -1;
|
GVAR(currentbulletID) = -1;
|
||||||
|
|
||||||
GVAR(Protractor) = false;
|
GVAR(Protractor) = false;
|
||||||
GVAR(ProtractorStart) = ACE_time;
|
GVAR(ProtractorStart) = CBA_missionTime;
|
||||||
GVAR(allBullets) = [];
|
GVAR(allBullets) = [];
|
||||||
GVAR(currentGrid) = 0;
|
GVAR(currentGrid) = 0;
|
||||||
|
|
||||||
@ -24,7 +24,7 @@ if (!GVAR(extensionAvailable)) exitWith {
|
|||||||
|
|
||||||
if (!hasInterface) exitWith {};
|
if (!hasInterface) exitWith {};
|
||||||
|
|
||||||
["SettingsInitialized", {
|
["ace_settingsInitialized", {
|
||||||
//If not enabled, dont't add PFEH
|
//If not enabled, dont't add PFEH
|
||||||
if (!GVAR(enabled)) exitWith {};
|
if (!GVAR(enabled)) exitWith {};
|
||||||
|
|
||||||
@ -32,8 +32,8 @@ if (!hasInterface) exitWith {};
|
|||||||
[] call FUNC(initializeTerrainExtension);
|
[] call FUNC(initializeTerrainExtension);
|
||||||
|
|
||||||
// Register fire event handler
|
// Register fire event handler
|
||||||
["firedPlayer", DFUNC(handleFired)] call EFUNC(common,addEventHandler);
|
["ace_firedPlayer", DFUNC(handleFired)] call CBA_fnc_addEventHandler;
|
||||||
["firedPlayerNonLocal", DFUNC(handleFired)] call EFUNC(common,addEventHandler);
|
["ace_firedPlayerNonLocal", DFUNC(handleFired)] call CBA_fnc_addEventHandler;
|
||||||
|
|
||||||
//Add warnings for missing compat PBOs (only if AB is on)
|
//Add warnings for missing compat PBOs (only if AB is on)
|
||||||
{
|
{
|
||||||
@ -50,7 +50,7 @@ if (!hasInterface) exitWith {};
|
|||||||
["iansky_opt","ace_compat_sma3_iansky"],
|
["iansky_opt","ace_compat_sma3_iansky"],
|
||||||
["R3F_Armes","ace_compat_r3f"]
|
["R3F_Armes","ace_compat_r3f"]
|
||||||
];
|
];
|
||||||
}] call EFUNC(common,addEventHandler);
|
}] call CBA_fnc_addEventHandler;
|
||||||
|
|
||||||
#ifdef DEBUG_MODE_FULL
|
#ifdef DEBUG_MODE_FULL
|
||||||
call FUNC(diagnoseWeapons);
|
call FUNC(diagnoseWeapons);
|
||||||
|
@ -2,12 +2,14 @@
|
|||||||
|
|
||||||
class CfgPatches {
|
class CfgPatches {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
|
name = COMPONENT_NAME;
|
||||||
units[] = {};
|
units[] = {};
|
||||||
weapons[] = {};
|
weapons[] = {};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_ballistics", "ace_weather"};
|
requiredAddons[] = {"ace_ballistics", "ace_weather"};
|
||||||
author[] = {"Ruthberg"};
|
author = ECSTRING(common,ACETeam);
|
||||||
authorUrl = "https://github.com/ulteq";
|
authors[] = {"Ruthberg"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -3,10 +3,10 @@
|
|||||||
*
|
*
|
||||||
* Displays a protractor in the top left corner of the screen
|
* Displays a protractor in the top left corner of the screen
|
||||||
*
|
*
|
||||||
* Argument:
|
* Arguments:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Public: No
|
* Public: No
|
||||||
@ -43,13 +43,13 @@ GVAR(Protractor) = true;
|
|||||||
|
|
||||||
__ctrl1 ctrlSetScale 1;
|
__ctrl1 ctrlSetScale 1;
|
||||||
__ctrl1 ctrlCommit 0;
|
__ctrl1 ctrlCommit 0;
|
||||||
__ctrl1 ctrlSetText QUOTE(PATHTOF(UI\protractor.paa));
|
__ctrl1 ctrlSetText QPATHTOF(UI\protractor.paa);
|
||||||
__ctrl1 ctrlSetTextColor [1, 1, 1, 1];
|
__ctrl1 ctrlSetTextColor [1, 1, 1, 1];
|
||||||
|
|
||||||
__ctrl2 ctrlSetScale 1;
|
__ctrl2 ctrlSetScale 1;
|
||||||
__ctrl2 ctrlSetPosition [SafeZoneX + 0.001, SafeZoneY - 0.001 - 0.1074 * (-0.86 max ((ACE_player weaponDirection currentWeapon ACE_player) select 2) min 0.86), 0.2, 0.2 * 4/3];
|
__ctrl2 ctrlSetPosition [SafeZoneX + 0.001, SafeZoneY - 0.001 - 0.1074 * (-0.86 max ((ACE_player weaponDirection currentWeapon ACE_player) select 2) min 0.86), 0.2, 0.2 * 4/3];
|
||||||
__ctrl2 ctrlCommit 0;
|
__ctrl2 ctrlCommit 0;
|
||||||
__ctrl2 ctrlSetText QUOTE(PATHTOF(UI\protractor_marker.paa));
|
__ctrl2 ctrlSetText QPATHTOF(UI\protractor_marker.paa);
|
||||||
__ctrl2 ctrlSetTextColor [1, 1, 1, 1];
|
__ctrl2 ctrlSetTextColor [1, 1, 1, 1];
|
||||||
|
|
||||||
}, 0.1, []] call CBA_fnc_addPerFrameHandler;
|
}, 0.1, []] call CBA_fnc_addPerFrameHandler;
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
*/
|
*/
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
private _aceTimeSecond = floor ACE_time;
|
private _aceTimeSecond = floor CBA_missionTime;
|
||||||
|
|
||||||
{
|
{
|
||||||
private ["_bulletVelocity", "_bulletPosition", "_bulletSpeed"];
|
private ["_bulletVelocity", "_bulletPosition", "_bulletSpeed"];
|
||||||
@ -31,7 +31,7 @@ private _aceTimeSecond = floor ACE_time;
|
|||||||
drop ["\A3\data_f\ParticleEffects\Universal\Refract","","Billboard",1,0.1,getPos _bullet,[0,0,0],0,1.275,1,0,[0.02*_caliber,0.01*_caliber],[[0,0,0,0.65],[0,0,0,0.2]],[1,0],0,0,"","",""];
|
drop ["\A3\data_f\ParticleEffects\Universal\Refract","","Billboard",1,0.1,getPos _bullet,[0,0,0],0,1.275,1,0,[0.02*_caliber,0.01*_caliber],[[0,0,0,0.65],[0,0,0,0.2]],[1,0],0,0,"","",""];
|
||||||
};
|
};
|
||||||
|
|
||||||
call compile ("ace_advanced_ballistics" callExtension format["simulate:%1:%2:%3:%4:%5:%6:%7", _index, _bulletVelocity, _bulletPosition, ACE_wind, ASLToATL(_bulletPosition) select 2, _aceTimeSecond, ACE_time - _aceTimeSecond]);
|
call compile ("ace_advanced_ballistics" callExtension format["simulate:%1:%2:%3:%4:%5:%6:%7", _index, _bulletVelocity, _bulletPosition, ACE_wind, ASLToATL(_bulletPosition) select 2, _aceTimeSecond, CBA_missionTime - _aceTimeSecond]);
|
||||||
};
|
};
|
||||||
nil
|
nil
|
||||||
} count +GVAR(allBullets);
|
} count +GVAR(allBullets);
|
||||||
|
@ -110,8 +110,8 @@ if (_caliber > 0 && _bulletLength > 0 && _bulletMass > 0 && _barrelTwist > 0) th
|
|||||||
|
|
||||||
GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000;
|
GVAR(currentbulletID) = (GVAR(currentbulletID) + 1) % 10000;
|
||||||
|
|
||||||
_aceTimeSecond = floor ACE_time;
|
_aceTimeSecond = floor CBA_missionTime;
|
||||||
"ace_advanced_ballistics" callExtension format["new:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:%17:%18", GVAR(currentbulletID), _airFriction, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _dragModel, _stabilityFactor, _twistDirection, _muzzleVelocity, _transonicStabilityCoef, getPosASL _projectile, EGVAR(common,mapLatitude), EGVAR(weather,currentTemperature), EGVAR(common,mapAltitude), EGVAR(weather,currentHumidity), overcast, _aceTimeSecond, ACE_time - _aceTimeSecond];
|
"ace_advanced_ballistics" callExtension format["new:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13:%14:%15:%16:%17:%18", GVAR(currentbulletID), _airFriction, _ballisticCoefficients, _velocityBoundaries, _atmosphereModel, _dragModel, _stabilityFactor, _twistDirection, _muzzleVelocity, _transonicStabilityCoef, getPosASL _projectile, EGVAR(common,mapLatitude), EGVAR(weather,currentTemperature), EGVAR(common,mapAltitude), EGVAR(weather,currentHumidity), overcast, _aceTimeSecond, CBA_missionTime - _aceTimeSecond];
|
||||||
|
|
||||||
GVAR(allBullets) pushBack [_projectile, _caliber, _bulletTraceVisible, GVAR(currentbulletID)];
|
GVAR(allBullets) pushBack [_projectile, _caliber, _bulletTraceVisible, GVAR(currentbulletID)];
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@ if (!GVAR(extensionAvailable)) exitWith {};
|
|||||||
|
|
||||||
private ["_initStartTime", "_mapSize", "_mapGrids", "_gridCells", "_x", "_y", "_gridCenter", "_gridHeight", "_gridNumObjects", "_gridSurfaceIsWater"];
|
private ["_initStartTime", "_mapSize", "_mapGrids", "_gridCells", "_x", "_y", "_gridCenter", "_gridHeight", "_gridNumObjects", "_gridSurfaceIsWater"];
|
||||||
|
|
||||||
_initStartTime = ACE_time;
|
_initStartTime = CBA_missionTime;
|
||||||
_mapSize = getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize");
|
_mapSize = getNumber (configFile >> "CfgWorlds" >> worldName >> "MapSize");
|
||||||
|
|
||||||
if (("ace_advanced_ballistics" callExtension format["init:%1:%2", worldName, _mapSize]) == "Terrain already initialized") exitWith {
|
if (("ace_advanced_ballistics" callExtension format["init:%1:%2", worldName, _mapSize]) == "Terrain already initialized") exitWith {
|
||||||
@ -38,7 +38,7 @@ GVAR(currentGrid) = 0;
|
|||||||
|
|
||||||
if (GVAR(currentGrid) >= _gridCells) exitWith {
|
if (GVAR(currentGrid) >= _gridCells) exitWith {
|
||||||
#ifdef DEBUG_MODE_FULL
|
#ifdef DEBUG_MODE_FULL
|
||||||
systemChat format["AdvancedBallistics: Finished terrain initialization in %1 seconds", ceil(ACE_time - _initStartTime)];
|
systemChat format["AdvancedBallistics: Finished terrain initialization in %1 seconds", ceil(CBA_missionTime - _initStartTime)];
|
||||||
#endif
|
#endif
|
||||||
[_idPFH] call CBA_fnc_removePerFrameHandler;
|
[_idPFH] call CBA_fnc_removePerFrameHandler;
|
||||||
};
|
};
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#define COMPONENT advanced_ballistics
|
#define COMPONENT advanced_ballistics
|
||||||
|
#define COMPONENT_BEAUTIFIED Advanced Ballistics
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#include "\z\ace\addons\main\script_mod.hpp"
|
||||||
|
|
||||||
// #define DEBUG_MODE_FULL
|
// #define DEBUG_MODE_FULL
|
||||||
|
@ -68,7 +68,7 @@
|
|||||||
<German>Für Scharfschützen aktiviert</German>
|
<German>Für Scharfschützen aktiviert</German>
|
||||||
<Czech>Povoleno pro odstřelovače</Czech>
|
<Czech>Povoleno pro odstřelovače</Czech>
|
||||||
<Portuguese>Ativar para caçadores</Portuguese>
|
<Portuguese>Ativar para caçadores</Portuguese>
|
||||||
<French>Activer pour les snipers</French>
|
<French>Activé pour les snipers</French>
|
||||||
<Hungarian>Mesterlövészeknek engedélyezve</Hungarian>
|
<Hungarian>Mesterlövészeknek engedélyezve</Hungarian>
|
||||||
<Russian>Включена для снайперов</Russian>
|
<Russian>Включена для снайперов</Russian>
|
||||||
<Italian>Abilita per Tiratori Scelti</Italian>
|
<Italian>Abilita per Tiratori Scelti</Italian>
|
||||||
@ -92,7 +92,7 @@
|
|||||||
<German>Für Gruppenmitglieder aktiviert</German>
|
<German>Für Gruppenmitglieder aktiviert</German>
|
||||||
<Czech>Povoleno pro členy skupiny</Czech>
|
<Czech>Povoleno pro členy skupiny</Czech>
|
||||||
<Portuguese>Ativada para membros do grupo</Portuguese>
|
<Portuguese>Ativada para membros do grupo</Portuguese>
|
||||||
<French>Activer pour les membres du groupe</French>
|
<French>Activé pour les membres groupés</French>
|
||||||
<Hungarian>Csoporttagoknak engedélyezve</Hungarian>
|
<Hungarian>Csoporttagoknak engedélyezve</Hungarian>
|
||||||
<Russian>Включена для группы</Russian>
|
<Russian>Включена для группы</Russian>
|
||||||
<Italian>Abilita per Membri del Gruppo</Italian>
|
<Italian>Abilita per Membri del Gruppo</Italian>
|
||||||
@ -116,7 +116,7 @@
|
|||||||
<German>Für jeden aktiviert</German>
|
<German>Für jeden aktiviert</German>
|
||||||
<Czech>Povoleno pro všechny</Czech>
|
<Czech>Povoleno pro všechny</Czech>
|
||||||
<Portuguese>Ativada para todos</Portuguese>
|
<Portuguese>Ativada para todos</Portuguese>
|
||||||
<French>Activer pour tout le monde</French>
|
<French>Activé pour tout le monde</French>
|
||||||
<Hungarian>Mindenkinek engedélyezve</Hungarian>
|
<Hungarian>Mindenkinek engedélyezve</Hungarian>
|
||||||
<Russian>Включена для всех</Russian>
|
<Russian>Включена для всех</Russian>
|
||||||
<Italian>Abilita per tutti</Italian>
|
<Italian>Abilita per tutti</Italian>
|
||||||
@ -164,7 +164,7 @@
|
|||||||
<German>Beim vollautomatischen Feuern deaktiviert</German>
|
<German>Beim vollautomatischen Feuern deaktiviert</German>
|
||||||
<Czech>Zakázáno v automatickém režimu střelby</Czech>
|
<Czech>Zakázáno v automatickém režimu střelby</Czech>
|
||||||
<Portuguese>Desabilitar no modo automático</Portuguese>
|
<Portuguese>Desabilitar no modo automático</Portuguese>
|
||||||
<French>Désactiver en mode rafale libre</French>
|
<French>Désactiver en mode automatique</French>
|
||||||
<Hungarian>Automata módban letiltva</Hungarian>
|
<Hungarian>Automata módban letiltva</Hungarian>
|
||||||
<Russian>Выкл. для автомат. режима</Russian>
|
<Russian>Выкл. для автомат. режима</Russian>
|
||||||
<Italian>Disabilita in modalità di fuoco automatico</Italian>
|
<Italian>Disabilita in modalità di fuoco automatico</Italian>
|
||||||
@ -176,7 +176,7 @@
|
|||||||
<German>Deaktiviert die erweiterte Ballistik beim vollautomatischen Feuern</German>
|
<German>Deaktiviert die erweiterte Ballistik beim vollautomatischen Feuern</German>
|
||||||
<Czech>Zákáže pokročilou balistiku během střelby v režimu automat</Czech>
|
<Czech>Zákáže pokročilou balistiku během střelby v režimu automat</Czech>
|
||||||
<Portuguese>Desabilitar a balística avançada durante fogo automático</Portuguese>
|
<Portuguese>Desabilitar a balística avançada durante fogo automático</Portuguese>
|
||||||
<French>Désactive la balistique avancée pour les tirs en rafale libre</French>
|
<French>Désactive la balistique avancée pour les tirs en automatique</French>
|
||||||
<Hungarian>Letiltja a fejlett ballisztikát automata tüzelés folyamán</Hungarian>
|
<Hungarian>Letiltja a fejlett ballisztikát automata tüzelés folyamán</Hungarian>
|
||||||
<Russian>Выключает продвинутую баллистику при стрельбе в полностью автоматическом режиме</Russian>
|
<Russian>Выключает продвинутую баллистику при стрельбе в полностью автоматическом режиме</Russian>
|
||||||
<Italian>Disabilita Balistica Avanzata durante fuoco automatico</Italian>
|
<Italian>Disabilita Balistica Avanzata durante fuoco automatico</Italian>
|
||||||
@ -188,7 +188,7 @@
|
|||||||
<German>Simulation der Munitionstemperatur aktivieren</German>
|
<German>Simulation der Munitionstemperatur aktivieren</German>
|
||||||
<Czech>Povolit simulaci teploty munice</Czech>
|
<Czech>Povolit simulaci teploty munice</Czech>
|
||||||
<Portuguese>Ativar simulação de temperatura de munição</Portuguese>
|
<Portuguese>Ativar simulação de temperatura de munição</Portuguese>
|
||||||
<French>Activer la simulation de la température</French>
|
<French>Active la simulation de la température</French>
|
||||||
<Hungarian>Lőszer-hő szimuláció engedélyezése</Hungarian>
|
<Hungarian>Lőszer-hő szimuláció engedélyezése</Hungarian>
|
||||||
<Russian>Симуляция температуры для боеприпасов</Russian>
|
<Russian>Симуляция температуры для боеприпасов</Russian>
|
||||||
<Italian>Abilita simulazione della temperatura delle munizioni</Italian>
|
<Italian>Abilita simulazione della temperatura delle munizioni</Italian>
|
||||||
@ -236,7 +236,7 @@
|
|||||||
<German>Geschossspureffekt aktivieren</German>
|
<German>Geschossspureffekt aktivieren</German>
|
||||||
<Czech>Povolit efekt trasírek</Czech>
|
<Czech>Povolit efekt trasírek</Czech>
|
||||||
<Portuguese>Ativa efeito traçante de projétil</Portuguese>
|
<Portuguese>Ativa efeito traçante de projétil</Portuguese>
|
||||||
<French>Activer l'effet traçante</French>
|
<French>Activer l'effet balle traçante</French>
|
||||||
<Hungarian>Nyomkövető-effekt engedélyezése</Hungarian>
|
<Hungarian>Nyomkövető-effekt engedélyezése</Hungarian>
|
||||||
<Russian>Следы пуль</Russian>
|
<Russian>Следы пуль</Russian>
|
||||||
<Italian>Abilita effetto di tracciatura dei proiettili</Italian>
|
<Italian>Abilita effetto di tracciatura dei proiettili</Italian>
|
||||||
@ -307,7 +307,7 @@
|
|||||||
<Polish>Moduł ten pozwala aktywować zaawansowaną balistykę biorącą przy obliczeniach trajektorii lotu pocisku pod uwagę takie rzeczy jak temperatura powietrza, ciśnienie atmosferyczne, wilgotność powietrza, siły Coriolisa i Eotvosa, grawitację a także broń z jakiej wykonywany jest strzał oraz rodzaj amunicji. Wszystko to sprowadza się na bardzo dokładne odwzorowanie balistyki.</Polish>
|
<Polish>Moduł ten pozwala aktywować zaawansowaną balistykę biorącą przy obliczeniach trajektorii lotu pocisku pod uwagę takie rzeczy jak temperatura powietrza, ciśnienie atmosferyczne, wilgotność powietrza, siły Coriolisa i Eotvosa, grawitację a także broń z jakiej wykonywany jest strzał oraz rodzaj amunicji. Wszystko to sprowadza się na bardzo dokładne odwzorowanie balistyki.</Polish>
|
||||||
<Czech>Tento modul umožňuje aktivovat pokročilou balistiku, která vypočítává trajektorii kulky a bere do úvahy věci jako je teplota vzduchu, atmosférický tlak, vlhkost vzduchu, gravitaci, typ munice a zbraň, ze které je náboj vystřelen. To vše přispívá k velmi přesné balistice.</Czech>
|
<Czech>Tento modul umožňuje aktivovat pokročilou balistiku, která vypočítává trajektorii kulky a bere do úvahy věci jako je teplota vzduchu, atmosférický tlak, vlhkost vzduchu, gravitaci, typ munice a zbraň, ze které je náboj vystřelen. To vše přispívá k velmi přesné balistice.</Czech>
|
||||||
<Portuguese>Este módulo permite que você ative cálculos de balística avançada, fazendo a trajetória do projétil levar em consideração coisas como temperatura do ar, pressão atmosférica, umidade, força de Coriolis, a gravidade, o modelo da arma no qual o disparo é realizado e o tipo de munição. Tudo isso acrescenta-se a um balística muito precisa.</Portuguese>
|
<Portuguese>Este módulo permite que você ative cálculos de balística avançada, fazendo a trajetória do projétil levar em consideração coisas como temperatura do ar, pressão atmosférica, umidade, força de Coriolis, a gravidade, o modelo da arma no qual o disparo é realizado e o tipo de munição. Tudo isso acrescenta-se a um balística muito precisa.</Portuguese>
|
||||||
<French>Ce module active la simulation de balistique avancée - ie les projectiles sont influencés par des varibles comme le vent, la température, la pression atmosphérique, l'humidité, la gravité, le type de munition et l'arme avec laquelle ils sont tirés.</French>
|
<French>Ce module active la simulation de balistique avancée - les projectiles sont influencés par des variables comme le vent, la température, la pression atmosphérique, l'humidité, la gravité, le type de munition et l'arme avec laquelles ils sont tirés.</French>
|
||||||
<Hungarian>Ez a modul engedélyezi a fejlett ballisztikai szimulációt - a lövedékek röppályáját befolyásolni fogja a levegő hőmérséklete, légnyomás, páratartalom, gravitáció, a lövedék fajtája, valamint a fegyver, amiből kilőtték a lövedéket.</Hungarian>
|
<Hungarian>Ez a modul engedélyezi a fejlett ballisztikai szimulációt - a lövedékek röppályáját befolyásolni fogja a levegő hőmérséklete, légnyomás, páratartalom, gravitáció, a lövedék fajtája, valamint a fegyver, amiből kilőtték a lövedéket.</Hungarian>
|
||||||
<Russian>Этот модуль включает симуляцию продвинутой баллистики - при этом на траекторию полета снаряда влияют различные параметры, такие как температура воздуха, атмосферное давление, влажность, гравитация, тип боеприпаса и оружия, из которого произвели выстрел.</Russian>
|
<Russian>Этот модуль включает симуляцию продвинутой баллистики - при этом на траекторию полета снаряда влияют различные параметры, такие как температура воздуха, атмосферное давление, влажность, гравитация, тип боеприпаса и оружия, из которого произвели выстрел.</Russian>
|
||||||
<Spanish>Este módulo permite la simulación balística avanzada - es decir, la trayectoria de los proyectiles está influenciada por variables como la temperatura del aire, la presión atmosférica, la humedad, la gravedad, el tipo de municiones y el arma desde el que fue disparada.</Spanish>
|
<Spanish>Este módulo permite la simulación balística avanzada - es decir, la trayectoria de los proyectiles está influenciada por variables como la temperatura del aire, la presión atmosférica, la humedad, la gravedad, el tipo de municiones y el arma desde el que fue disparada.</Spanish>
|
||||||
|
@ -2,12 +2,14 @@
|
|||||||
|
|
||||||
class CfgPatches {
|
class CfgPatches {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
|
name = COMPONENT_NAME;
|
||||||
units[] = {};
|
units[] = {};
|
||||||
weapons[] = {};
|
weapons[] = {};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_common"};
|
requiredAddons[] = {"ace_common"};
|
||||||
author[] = {"KoffeinFlummi","commy2"};
|
author = ECSTRING(common,ACETeam);
|
||||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
authors[] = {"KoffeinFlummi","commy2"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#define COMPONENT ai
|
#define COMPONENT ai
|
||||||
|
#define COMPONENT_BEAUTIFIED AI
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#include "\z\ace\addons\main\script_mod.hpp"
|
||||||
|
|
||||||
// #define DEBUG_MODE_FULL
|
// #define DEBUG_MODE_FULL
|
||||||
|
@ -145,7 +145,7 @@ class RscInGameUI
|
|||||||
sizeEx = "0.038*SafezoneH";
|
sizeEx = "0.038*SafezoneH";
|
||||||
shadow = 0;
|
shadow = 0;
|
||||||
font = "EtelkaMonospacePro";
|
font = "EtelkaMonospacePro";
|
||||||
text = PATHTOF(data\Helo_LaserON.paa);
|
text = QPATHTOF(data\Helo_LaserON.paa);
|
||||||
x = "20.45 * (0.01875 * SafezoneH)";
|
x = "20.45 * (0.01875 * SafezoneH)";
|
||||||
y = "14.1 * (0.025 * SafezoneH)";
|
y = "14.1 * (0.025 * SafezoneH)";
|
||||||
w = "12.5 * (0.01875 * SafezoneH)";
|
w = "12.5 * (0.01875 * SafezoneH)";
|
||||||
@ -335,7 +335,7 @@ class RscInGameUI
|
|||||||
shadow = 0;
|
shadow = 0;
|
||||||
align = "right";
|
align = "right";
|
||||||
font = "EtelkaMonospacePro";
|
font = "EtelkaMonospacePro";
|
||||||
text = PATHTOF(data\Helo_LaserON.paa);
|
text = QPATHTOF(data\Helo_LaserON.paa);
|
||||||
x = "20.45 * (0.01875 * SafezoneH)";
|
x = "20.45 * (0.01875 * SafezoneH)";
|
||||||
y = "14.1 * (0.025 * SafezoneH)";
|
y = "14.1 * (0.025 * SafezoneH)";
|
||||||
w = "12.5 * (0.01875 * SafezoneH)";
|
w = "12.5 * (0.01875 * SafezoneH)";
|
||||||
|
@ -2,13 +2,18 @@
|
|||||||
|
|
||||||
class CfgPatches {
|
class CfgPatches {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
|
name = COMPONENT_NAME;
|
||||||
units[] = {};
|
units[] = {};
|
||||||
weapons[] = {};
|
weapons[] = {};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_common"};
|
requiredAddons[] = {"ace_common"};
|
||||||
author[] = {"KoffeinFlummi","Crusty","commy2","jaynus","Kimi"};
|
author = ECSTRING(common,ACETeam);
|
||||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
authors[] = {"KoffeinFlummi","Crusty","commy2","jaynus","Kimi"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
|
|
||||||
|
// this prevents any patched class from requiring this addon
|
||||||
|
addonRootClass = "A3_Characters_F";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -20,4 +20,3 @@ envelope[] = {0,0,0.75,2.4,3.6,3.8,3.7,3.2,2.2,1.7,0.9};
|
|||||||
thrustCoef[] = {1,1.2,1.3,1.25,1.06,1.01,1,0.92,0.75,0.65,0.5,0.25,0};
|
thrustCoef[] = {1,1.2,1.3,1.25,1.06,1.01,1,0.92,0.75,0.65,0.5,0.25,0};
|
||||||
acceleration = 265;
|
acceleration = 265;
|
||||||
landingSpeed = 220;
|
landingSpeed = 220;
|
||||||
gunAimDown = 0.087266463;
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#define COMPONENT aircraft
|
#define COMPONENT aircraft
|
||||||
|
#define COMPONENT_BEAUTIFIED Aircraft
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#include "\z\ace\addons\main\script_mod.hpp"
|
||||||
|
|
||||||
// #define DEBUG_MODE_FULL
|
// #define DEBUG_MODE_FULL
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
<Spanish>Ráfaga</Spanish>
|
<Spanish>Ráfaga</Spanish>
|
||||||
<Polish>Seria</Polish>
|
<Polish>Seria</Polish>
|
||||||
<Czech>Dávka</Czech>
|
<Czech>Dávka</Czech>
|
||||||
<French>Contre mesures</French>
|
<French>Rafale</French>
|
||||||
<Russian>Очередь</Russian>
|
<Russian>Очередь</Russian>
|
||||||
<Hungarian>Sorozat</Hungarian>
|
<Hungarian>Sorozat</Hungarian>
|
||||||
<Portuguese>Rajada</Portuguese>
|
<Portuguese>Rajada</Portuguese>
|
||||||
|
@ -2,12 +2,13 @@
|
|||||||
|
|
||||||
class CfgPatches {
|
class CfgPatches {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
|
name = COMPONENT_NAME;
|
||||||
units[] = {};
|
units[] = {};
|
||||||
weapons[] = {};
|
weapons[] = {};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_main"};
|
requiredAddons[] = {"ace_main"};
|
||||||
author[] = {"Bohemia Interactive"};
|
author = "Bohemia Interactive";
|
||||||
authorUrl = "http://ace3mod.com";
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#define COMPONENT APL
|
#define COMPONENT APL
|
||||||
|
#define COMPONENT_BEAUTIFIED APL
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#include "\z\ace\addons\main\script_mod.hpp"
|
||||||
|
|
||||||
// #define DEBUG_MODE_FULL
|
// #define DEBUG_MODE_FULL
|
||||||
|
@ -9,7 +9,7 @@ class CfgVehicles {
|
|||||||
statement = QUOTE(call FUNC(create_dialog));
|
statement = QUOTE(call FUNC(create_dialog));
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
priority = 2;
|
priority = 2;
|
||||||
icon = PATHTOF(UI\ATRAG_Icon.paa);
|
icon = QPATHTOF(UI\ATRAG_Icon.paa);
|
||||||
exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
|
exceptions[] = {"notOnMap", "isNotInside", "isNotSitting"};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -8,8 +8,8 @@ class CfgWeapons {
|
|||||||
scope = 2;
|
scope = 2;
|
||||||
displayName = CSTRING(Name);
|
displayName = CSTRING(Name);
|
||||||
descriptionShort = CSTRING(Description);
|
descriptionShort = CSTRING(Description);
|
||||||
model = PATHTOF(data\tdsrecon.p3d);
|
model = QPATHTOF(data\tdsrecon.p3d);
|
||||||
picture = PATHTOF(UI\ATRAG_Icon.paa);
|
picture = QPATHTOF(UI\ATRAG_Icon.paa);
|
||||||
icon = "iconObject_circle";
|
icon = "iconObject_circle";
|
||||||
mapSize = 0.034;
|
mapSize = 0.034;
|
||||||
|
|
||||||
|
@ -49,4 +49,4 @@ if ((profileNamespace getVariable ["ACE_ATragMX_profileNamespaceVersion", 0]) ==
|
|||||||
[] call FUNC(init);
|
[] call FUNC(init);
|
||||||
[] call FUNC(restore_user_data);
|
[] call FUNC(restore_user_data);
|
||||||
|
|
||||||
["RangerfinderData", {_this call FUNC(sord)}] call EFUNC(common,addEventHandler);
|
[QEGVAR(vector,rangefinderData), {_this call FUNC(sord)}] call CBA_fnc_addEventHandler;
|
||||||
|
@ -2,11 +2,14 @@
|
|||||||
|
|
||||||
class CfgPatches {
|
class CfgPatches {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
|
name = COMPONENT_NAME;
|
||||||
units[] = {"ACE_Item_ATragMX"};
|
units[] = {"ACE_Item_ATragMX"};
|
||||||
weapons[] = {"ACE_ATragMX"};
|
weapons[] = {"ACE_ATragMX"};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ACE_common", "ACE_weather"};
|
requiredAddons[] = {"ACE_common", "ACE_weather"};
|
||||||
author = "Ruthberg";
|
author = ECSTRING(common,ACETeam);
|
||||||
|
authors[] = {"Ruthberg"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -15,3 +18,7 @@ class CfgPatches {
|
|||||||
#include "CfgVehicles.hpp"
|
#include "CfgVehicles.hpp"
|
||||||
#include "CfgWeapons.hpp"
|
#include "CfgWeapons.hpp"
|
||||||
#include "RscTitles.hpp"
|
#include "RscTitles.hpp"
|
||||||
|
|
||||||
|
class ACE_newEvents {
|
||||||
|
RangerfinderData = QEGVAR(vector,rangefinderData);
|
||||||
|
};
|
||||||
|
@ -56,7 +56,7 @@ GVAR(DialogPFH) = [{
|
|||||||
if (!GVAR(active)) exitWith {
|
if (!GVAR(active)) exitWith {
|
||||||
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||||
};
|
};
|
||||||
__ctrlBackground ctrlSetText format [QUOTE(PATHTOF(UI\ATRAG_%1.paa)), ["N", "D"] select (call EFUNC(common,ambientBrightness))];
|
__ctrlBackground ctrlSetText format [QPATHTOF(UI\ATRAG_%1.paa), ["N", "D"] select (call EFUNC(common,ambientBrightness))];
|
||||||
}, 60, []] call CBA_fnc_addPerFrameHandler;
|
}, 60, []] call CBA_fnc_addPerFrameHandler;
|
||||||
|
|
||||||
true
|
true
|
||||||
|
@ -30,7 +30,7 @@ if !(ctrlVisible 9000) then {
|
|||||||
if (!(GVAR(speedAssistTimer))) exitWith {
|
if (!(GVAR(speedAssistTimer))) exitWith {
|
||||||
GVAR(speedAssistTimer) = true;
|
GVAR(speedAssistTimer) = true;
|
||||||
|
|
||||||
ctrlSetText [8006, Str(Round((ACE_time - _startTime) * 10) / 10)];
|
ctrlSetText [8006, Str(Round((CBA_missionTime - _startTime) * 10) / 10)];
|
||||||
|
|
||||||
[] call FUNC(calculate_target_speed_assist);
|
[] call FUNC(calculate_target_speed_assist);
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ if !(ctrlVisible 9000) then {
|
|||||||
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||||
};
|
};
|
||||||
|
|
||||||
ctrlSetText [9001, Str(Round((ACE_time - _startTime) * 10) / 10)];
|
ctrlSetText [9001, Str(Round((CBA_missionTime - _startTime) * 10) / 10)];
|
||||||
|
|
||||||
}, 0.1, [ACE_time]] call CBA_fnc_addPerFrameHandler;
|
}, 0.1, [CBA_missionTime]] call CBA_fnc_addPerFrameHandler;
|
||||||
};
|
};
|
||||||
|
@ -33,4 +33,4 @@ _closeCode = {
|
|||||||
closeDialog 0;
|
closeDialog 0;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
[(localize LSTRING(Name)), QUOTE(PATHTOF(UI\ATRAG_Icon.paa)), _conditonCode, _toggleCode, _closeCode] call EFUNC(common,deviceKeyRegisterNew);
|
[(localize LSTRING(Name)), QPATHTOF(UI\ATRAG_Icon.paa), _conditonCode, _toggleCode, _closeCode] call EFUNC(common,deviceKeyRegisterNew);
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#define COMPONENT atragmx
|
#define COMPONENT atragmx
|
||||||
|
#define COMPONENT_BEAUTIFIED ATragMX
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#include "\z\ace\addons\main\script_mod.hpp"
|
||||||
|
|
||||||
// #define DEBUG_MODE_FULL
|
// #define DEBUG_MODE_FULL
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
<Polish>Otwórz ATragMX</Polish>
|
<Polish>Otwórz ATragMX</Polish>
|
||||||
<Russian>Открыть ATragMX</Russian>
|
<Russian>Открыть ATragMX</Russian>
|
||||||
<Spanish>Abrir ATragMX</Spanish>
|
<Spanish>Abrir ATragMX</Spanish>
|
||||||
<French>Ouvrir ATragMX</French>
|
<French>Ouvrir l'ATragMX</French>
|
||||||
<German>ATragMX öffnen</German>
|
<German>ATragMX öffnen</German>
|
||||||
<Italian>Apri ATragMX</Italian>
|
<Italian>Apri ATragMX</Italian>
|
||||||
<Hungarian>ATragMX elővétele</Hungarian>
|
<Hungarian>ATragMX elővétele</Hungarian>
|
||||||
@ -42,7 +42,7 @@
|
|||||||
<Polish>Otwórz ATragMX</Polish>
|
<Polish>Otwórz ATragMX</Polish>
|
||||||
<Russian>Открыть ATragMX</Russian>
|
<Russian>Открыть ATragMX</Russian>
|
||||||
<Spanish>Abrir ATragMX</Spanish>
|
<Spanish>Abrir ATragMX</Spanish>
|
||||||
<French>Ouvrir ATragMX</French>
|
<French>Ouvrir l'ATragMX</French>
|
||||||
<German>ATragMX öffnen</German>
|
<German>ATragMX öffnen</German>
|
||||||
<Italian>Apri ATragMX</Italian>
|
<Italian>Apri ATragMX</Italian>
|
||||||
<Hungarian>ATragMX elővétele</Hungarian>
|
<Hungarian>ATragMX elővétele</Hungarian>
|
||||||
|
@ -3,17 +3,17 @@ class CfgMagazines {
|
|||||||
class CA_Magazine;
|
class CA_Magazine;
|
||||||
class B_IR_Grenade: CA_Magazine {
|
class B_IR_Grenade: CA_Magazine {
|
||||||
ACE_Attachable = "B_IRStrobe";
|
ACE_Attachable = "B_IRStrobe";
|
||||||
model = QUOTE(PATHTOF(data\ace_IRStrobe.p3d));
|
model = QPATHTOF(data\ace_IRStrobe.p3d);
|
||||||
};
|
};
|
||||||
|
|
||||||
class O_IR_Grenade: B_IR_Grenade {
|
class O_IR_Grenade: B_IR_Grenade {
|
||||||
ACE_Attachable = "O_IRStrobe";
|
ACE_Attachable = "O_IRStrobe";
|
||||||
model = QUOTE(PATHTOF(data\ace_IRStrobe.p3d));
|
model = QPATHTOF(data\ace_IRStrobe.p3d);
|
||||||
};
|
};
|
||||||
|
|
||||||
class I_IR_Grenade: B_IR_Grenade {
|
class I_IR_Grenade: B_IR_Grenade {
|
||||||
ACE_Attachable = "I_IRStrobe";
|
ACE_Attachable = "I_IRStrobe";
|
||||||
model = QUOTE(PATHTOF(data\ace_IRStrobe.p3d));
|
model = QPATHTOF(data\ace_IRStrobe.p3d);
|
||||||
};
|
};
|
||||||
|
|
||||||
class SmokeShell;
|
class SmokeShell;
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
exceptions[] = {}; \
|
exceptions[] = {}; \
|
||||||
showDisabled = 0; \
|
showDisabled = 0; \
|
||||||
priority = 0; \
|
priority = 0; \
|
||||||
icon = PATHTOF(UI\attach_ca.paa); \
|
icon = QPATHTOF(UI\attach_ca.paa); \
|
||||||
distance = 4.5; \
|
distance = 4.5; \
|
||||||
}; \
|
}; \
|
||||||
class GVAR(DetachVehicle) { \
|
class GVAR(DetachVehicle) { \
|
||||||
@ -19,7 +19,7 @@
|
|||||||
exceptions[] = {}; \
|
exceptions[] = {}; \
|
||||||
showDisabled = 0; \
|
showDisabled = 0; \
|
||||||
priority = 0.1; \
|
priority = 0.1; \
|
||||||
icon = PATHTOF(UI\detach_ca.paa); \
|
icon = QPATHTOF(UI\detach_ca.paa); \
|
||||||
distance = 4.5; \
|
distance = 4.5; \
|
||||||
}; \
|
}; \
|
||||||
}; \
|
}; \
|
||||||
@ -60,7 +60,7 @@ class CfgVehicles {
|
|||||||
exceptions[] = {"isNotDragging"};
|
exceptions[] = {"isNotDragging"};
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
priority = 5;
|
priority = 5;
|
||||||
icon = PATHTOF(UI\attach_ca.paa);
|
icon = QPATHTOF(UI\attach_ca.paa);
|
||||||
};
|
};
|
||||||
class GVAR(Detach) {
|
class GVAR(Detach) {
|
||||||
displayName = CSTRING(Detach);
|
displayName = CSTRING(Detach);
|
||||||
@ -69,7 +69,7 @@ class CfgVehicles {
|
|||||||
exceptions[] = {"isNotDragging"};
|
exceptions[] = {"isNotDragging"};
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
priority = 5;
|
priority = 5;
|
||||||
icon = PATHTOF(UI\detach_ca.paa);
|
icon = QPATHTOF(UI\detach_ca.paa);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -8,8 +8,8 @@ class CfgWeapons {
|
|||||||
scope = 2;
|
scope = 2;
|
||||||
displayName = CSTRING(IrStrobe_Name);
|
displayName = CSTRING(IrStrobe_Name);
|
||||||
descriptionShort = CSTRING(IrStrobe_Description);
|
descriptionShort = CSTRING(IrStrobe_Description);
|
||||||
model = QUOTE(PATHTOF(data\ace_IRStrobe.p3d));
|
model = QPATHTOF(data\ace_IRStrobe.p3d);
|
||||||
picture = PATHTOF(UI\irstrobe_item.paa);
|
picture = QPATHTOF(UI\irstrobe_item.paa);
|
||||||
|
|
||||||
class ItemInfo: InventoryItem_Base_F {
|
class ItemInfo: InventoryItem_Base_F {
|
||||||
mass = 1;
|
mass = 1;
|
||||||
|
@ -3,4 +3,4 @@
|
|||||||
if (!hasInterface) exitWith {};
|
if (!hasInterface) exitWith {};
|
||||||
|
|
||||||
//If attach placing, stop when opening menu:
|
//If attach placing, stop when opening menu:
|
||||||
["interactMenuOpened", {GVAR(placeAction) = 0;}] call EFUNC(common,addEventHandler);
|
["ace_interactMenuOpened", {GVAR(placeAction) = 0;}] call CBA_fnc_addEventHandler;
|
||||||
|
@ -2,12 +2,14 @@
|
|||||||
|
|
||||||
class CfgPatches {
|
class CfgPatches {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
|
name = COMPONENT_NAME;
|
||||||
units[] = {};
|
units[] = {};
|
||||||
weapons[] = {"ACE_IR_Strobe_Item"};
|
weapons[] = {"ACE_IR_Strobe_Item"};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_interaction"};
|
requiredAddons[] = {"ace_interaction"};
|
||||||
author[] = {"KoffeinFlummi","eRazeri","esteldunedain"};
|
author = ECSTRING(common,ACETeam);
|
||||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
authors[] = {"KoffeinFlummi","eRazeri","esteldunedain"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -17,3 +19,7 @@ class CfgPatches {
|
|||||||
#include "CfgVehicles.hpp"
|
#include "CfgVehicles.hpp"
|
||||||
#include "CfgWeapons.hpp"
|
#include "CfgWeapons.hpp"
|
||||||
#include "GUI_VirtualAmmo.hpp"
|
#include "GUI_VirtualAmmo.hpp"
|
||||||
|
|
||||||
|
class ACE_newEvents {
|
||||||
|
interactMenuOpened = "ace_interactMenuOpened";
|
||||||
|
};
|
@ -40,7 +40,7 @@ _onAtachText = format [localize LSTRING(Item_Attached), _onAtachText];
|
|||||||
|
|
||||||
if (_unit == _attachToVehicle) then { //Self Attachment
|
if (_unit == _attachToVehicle) then { //Self Attachment
|
||||||
_attachedItem = _itemVehClass createVehicle [0,0,0];
|
_attachedItem = _itemVehClass createVehicle [0,0,0];
|
||||||
_attachedItem attachTo [_unit, [-0.05, 0, 0.12], "rightshoulder"];
|
_attachedItem attachTo [_unit, [0.05, -0.09, 0.1], "leftshoulder"];
|
||||||
if (!_silentScripted) then {
|
if (!_silentScripted) then {
|
||||||
_unit removeItem _itemClassname; // Remove item
|
_unit removeItem _itemClassname; // Remove item
|
||||||
[_onAtachText] call EFUNC(common,displayTextStructured);
|
[_onAtachText] call EFUNC(common,displayTextStructured);
|
||||||
@ -51,7 +51,7 @@ if (_unit == _attachToVehicle) then { //Self Attachment
|
|||||||
|
|
||||||
[_unit, "forceWalk", "ACE_Attach", true] call EFUNC(common,statusEffect_set);
|
[_unit, "forceWalk", "ACE_Attach", true] call EFUNC(common,statusEffect_set);
|
||||||
|
|
||||||
[{[localize LSTRING(PlaceAction), ""] call EFUNC(interaction,showMouseHint)}, []] call EFUNC(common,execNextFrame);
|
[{[localize LSTRING(PlaceAction), ""] call EFUNC(interaction,showMouseHint)}, []] call CBA_fnc_execNextFrame;
|
||||||
_unit setVariable [QGVAR(placeActionEH), [_unit, "DefaultAction", {true}, {GVAR(placeAction) = PLACE_APPROVE;}] call EFUNC(common,AddActionEventHandler)];
|
_unit setVariable [QGVAR(placeActionEH), [_unit, "DefaultAction", {true}, {GVAR(placeAction) = PLACE_APPROVE;}] call EFUNC(common,AddActionEventHandler)];
|
||||||
|
|
||||||
_actionID = _unit addAction [format ["<t color='#FF0000'>%1</t>", localize LSTRING(CancelAction)], {GVAR(placeAction) = PLACE_CANCEL}];
|
_actionID = _unit addAction [format ["<t color='#FF0000'>%1</t>", localize LSTRING(CancelAction)], {GVAR(placeAction) = PLACE_CANCEL}];
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
params ["_attachToVehicle","_unit"],
|
params ["_attachToVehicle","_unit"],
|
||||||
TRACE_2("params",_attachToVehicle,_unit);
|
TRACE_2("params",_attachToVehicle,_unit);
|
||||||
|
|
||||||
private ["_attachedList", "_itemDisplayName", "_attachedObject", "_attachedIndex", "_itemName", "_minDistance"];
|
private ["_attachedList", "_itemDisplayName", "_attachedObject", "_attachedIndex", "_itemName", "_minDistance", "_isChemlight"];
|
||||||
|
|
||||||
_attachedList = _attachToVehicle getVariable [QGVAR(attached), []];
|
_attachedList = _attachToVehicle getVariable [QGVAR(attached), []];
|
||||||
|
|
||||||
@ -44,22 +44,28 @@ _minDistance = 1000;
|
|||||||
// Check if unit has an attached item
|
// Check if unit has an attached item
|
||||||
if (isNull _attachedObject || {_itemName == ""}) exitWith {ERROR("Could not find attached object")};
|
if (isNull _attachedObject || {_itemName == ""}) exitWith {ERROR("Could not find attached object")};
|
||||||
|
|
||||||
|
// Check if item is a chemlight
|
||||||
|
_isChemlight = _attachedObject isKindOf "Chemlight_base";
|
||||||
|
|
||||||
// Exit if can't add the item
|
// Exit if can't add the item
|
||||||
if !(_unit canAdd _itemName) exitWith {
|
if (!(_unit canAdd _itemName) && {!_isChemlight}) exitWith {
|
||||||
[localize LSTRING(Inventory_Full)] call EFUNC(common,displayTextStructured);
|
[localize LSTRING(Inventory_Full)] call EFUNC(common,displayTextStructured);
|
||||||
};
|
};
|
||||||
|
|
||||||
// Add item to inventory
|
// Add item to inventory (unless it's a chemlight)
|
||||||
|
if (!_isChemlight) then {
|
||||||
_unit addItem _itemName;
|
_unit addItem _itemName;
|
||||||
|
};
|
||||||
|
|
||||||
if (toLower _itemName in ["b_ir_grenade", "o_ir_grenade", "i_ir_grenade"]) then {
|
if (toLower _itemName in ["b_ir_grenade", "o_ir_grenade", "i_ir_grenade"]) then {
|
||||||
// Hack for dealing with X_IR_Grenade effect not dissapearing on deleteVehicle
|
// Hack for dealing with X_IR_Grenade effect not dissapearing on deleteVehicle
|
||||||
detach _attachedObject;
|
detach _attachedObject;
|
||||||
_attachedObject setPos ((getPos _unit) vectorAdd [0, 0, -1000]);
|
_attachedObject setPos ((getPos _unit) vectorAdd [0, 0, -1000]);
|
||||||
// Delete attached item after 0.5 seconds
|
// Delete attached item after 0.5 seconds
|
||||||
[{deleteVehicle (_this select 0)}, [_attachedObject], 2] call EFUNC(common,waitAndExecute);
|
[{deleteVehicle (_this select 0)}, [_attachedObject], 2] call CBA_fnc_waitAndExecute;
|
||||||
} else {
|
} else {
|
||||||
// Delete attached item
|
// Delete attached item
|
||||||
|
detach _attachedObject;
|
||||||
deleteVehicle _attachedObject;
|
deleteVehicle _attachedObject;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
* Show the ammo counts for a static weapon.
|
* Show the ammo counts for a static weapon.
|
||||||
* Called from "insertChildren" on interact_menu
|
* Called from "insertChildren" on interact_menu
|
||||||
*
|
*
|
||||||
* Argument:
|
* Arguments:
|
||||||
* 0: Target <OBJECT>
|
* 0: Target <OBJECT>
|
||||||
* 1: Player <OBJECT>
|
* 1: Player <OBJECT>
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* ChildActiosn<ARRAY>
|
* ChildActiosn<ARRAY>
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
@ -31,7 +31,7 @@ _actions = [];
|
|||||||
if (getText (_item >> "ACE_Attachable") != "") then {
|
if (getText (_item >> "ACE_Attachable") != "") then {
|
||||||
_displayName = getText(_item >> "displayName");
|
_displayName = getText(_item >> "displayName");
|
||||||
_picture = getText(_item >> "picture");
|
_picture = getText(_item >> "picture");
|
||||||
_action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call EFUNC(common,execNextFrame)}, {_this call FUNC(canAttach)}, {}, [_x]] call EFUNC(interact_menu,createAction);
|
_action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call CBA_fnc_execNextFrame}, {_this call FUNC(canAttach)}, {}, [_x]] call EFUNC(interact_menu,createAction);
|
||||||
_actions pushBack [_action, [], _target];
|
_actions pushBack [_action, [], _target];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -44,7 +44,7 @@ _actions = [];
|
|||||||
if (getText (_item >> "ACE_Attachable") != "") then {
|
if (getText (_item >> "ACE_Attachable") != "") then {
|
||||||
_displayName = getText(_item >> "displayName");
|
_displayName = getText(_item >> "displayName");
|
||||||
_picture = getText(_item >> "picture");
|
_picture = getText(_item >> "picture");
|
||||||
_action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call EFUNC(common,execNextFrame)}, {_this call FUNC(canAttach)}, {}, [_x]] call EFUNC(interact_menu,createAction);
|
_action = [_x, _displayName, _picture, {[{_this call FUNC(attach)}, _this] call CBA_fnc_execNextFrame}, {_this call FUNC(canAttach)}, {}, [_x]] call EFUNC(interact_menu,createAction);
|
||||||
_actions pushBack [_action, [], _target];
|
_actions pushBack [_action, [], _target];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -36,7 +36,7 @@ if (!isNull _xObject) then {
|
|||||||
params ["_detachedLight"];
|
params ["_detachedLight"];
|
||||||
TRACE_1("delayed delete",_detachedLight);
|
TRACE_1("delayed delete",_detachedLight);
|
||||||
deleteVehicle _detachedLight;
|
deleteVehicle _detachedLight;
|
||||||
}, [_xObject], 2] call EFUNC(common,waitAndExecute);
|
}, [_xObject], 2] call CBA_fnc_waitAndExecute;
|
||||||
(_attachedList select 0) set [0, objNull];
|
(_attachedList select 0) set [0, objNull];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ if ((count _attachedList) == 0) exitWith {};
|
|||||||
//If it's a vehicle, also delete the attached
|
//If it's a vehicle, also delete the attached
|
||||||
if (!(_deadUnit isKindOf "CAManBase")) then {
|
if (!(_deadUnit isKindOf "CAManBase")) then {
|
||||||
_xObject setPos ((getPos _deadUnit) vectorAdd [0, 0, -1000]);
|
_xObject setPos ((getPos _deadUnit) vectorAdd [0, 0, -1000]);
|
||||||
[{deleteVehicle (_this select 0)}, [_xObject], 2] call EFUNC(common,waitAndExecute);
|
[{deleteVehicle (_this select 0)}, [_xObject], 2] call CBA_fnc_waitAndExecute;
|
||||||
};
|
};
|
||||||
} forEach _attachedList;
|
} forEach _attachedList;
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#define COMPONENT attach
|
#define COMPONENT attach
|
||||||
|
#define COMPONENT_BEAUTIFIED Attach
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#include "\z\ace\addons\main\script_mod.hpp"
|
||||||
|
|
||||||
// #define DEBUG_MODE_FULL
|
// #define DEBUG_MODE_FULL
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
["backpackOpened", {_this call FUNC(backpackOpened)}] call EFUNC(common,addEventHandler);
|
["ace_backpackOpened", {_this call FUNC(backpackOpened)}] call CBA_fnc_addEventHandler;
|
||||||
|
@ -2,14 +2,20 @@
|
|||||||
|
|
||||||
class CfgPatches {
|
class CfgPatches {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
|
name = COMPONENT_NAME;
|
||||||
units[] = {};
|
units[] = {};
|
||||||
weapons[] = {};
|
weapons[] = {};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_common"};
|
requiredAddons[] = {"ace_common"};
|
||||||
author[] = {"bux","commy2"};
|
author = ECSTRING(common,ACETeam);
|
||||||
authorUrl = "https://github.com/commy2/";
|
authors[] = {"bux","commy2"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
#include "CfgEventHandlers.hpp"
|
#include "CfgEventHandlers.hpp"
|
||||||
|
|
||||||
|
class ACE_newEvents {
|
||||||
|
backpackOpened = "ace_backpackOpened";
|
||||||
|
};
|
||||||
|
@ -24,7 +24,7 @@ private _target = objectParent _backpack;
|
|||||||
if (isNull _target) exitWith {false};
|
if (isNull _target) exitWith {false};
|
||||||
|
|
||||||
// raise event on target unit
|
// raise event on target unit
|
||||||
["backpackOpened", _target, [_target, _backpack]] call EFUNC(common,targetEvent);
|
["ace_backpackOpened", [_target, _backpack], _target] call CBA_fnc_targetEvent;
|
||||||
|
|
||||||
// return false to open inventory as usual
|
// return false to open inventory as usual
|
||||||
false
|
false
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#define COMPONENT backpacks
|
#define COMPONENT backpacks
|
||||||
|
#define COMPONENT_BEAUTIFIED Backpacks
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#include "\z\ace\addons\main\script_mod.hpp"
|
||||||
|
|
||||||
// #define DEBUG_MODE_FULL
|
// #define DEBUG_MODE_FULL
|
||||||
|
@ -2,11 +2,14 @@
|
|||||||
|
|
||||||
class CfgPatches {
|
class CfgPatches {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
|
name = COMPONENT_NAME;
|
||||||
units[] = {"ACE_TargetWall","ACE_Box_Ammo"};
|
units[] = {"ACE_TargetWall","ACE_Box_Ammo"};
|
||||||
weapons[] = {};
|
weapons[] = {};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_common"};
|
requiredAddons[] = {"ace_common"};
|
||||||
author[] = {"commy2","Ruthberg"};
|
author = ECSTRING(common,ACETeam);
|
||||||
|
authors[] = {"commy2","Ruthberg"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#define COMPONENT ballistics
|
#define COMPONENT ballistics
|
||||||
|
#define COMPONENT_BEAUTIFIED Ballistics
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#include "\z\ace\addons\main\script_mod.hpp"
|
||||||
|
|
||||||
// #define DEBUG_MODE_FULL
|
// #define DEBUG_MODE_FULL
|
||||||
|
@ -11,5 +11,5 @@ if (local _wall) then {
|
|||||||
_paper attachTo [_wall, [0,-0.02,0.6]];
|
_paper attachTo [_wall, [0,-0.02,0.6]];
|
||||||
_paper setDir getDir _wall;
|
_paper setDir getDir _wall;
|
||||||
|
|
||||||
_paper setObjectTextureGlobal [0, QUOTE(PATHTOF(textures\target_ca.paa))];
|
_paper setObjectTextureGlobal [0, QPATHTOF(textures\target_ca.paa)];
|
||||||
};
|
};
|
||||||
|
@ -55,3 +55,11 @@ class Extended_Respawn_EventHandlers {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class Extended_Local_EventHandlers {
|
||||||
|
class CAManBase {
|
||||||
|
class ADDON {
|
||||||
|
local = QUOTE(call FUNC(handleLocal));
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
@ -10,7 +10,7 @@ class CfgVehicles {
|
|||||||
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canApplyHandcuffs));
|
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canApplyHandcuffs));
|
||||||
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doApplyHandcuffs));
|
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doApplyHandcuffs));
|
||||||
exceptions[] = {};
|
exceptions[] = {};
|
||||||
icon = QUOTE(PATHTOF(UI\handcuff_ca.paa));
|
icon = QPATHTOF(UI\handcuff_ca.paa);
|
||||||
};
|
};
|
||||||
|
|
||||||
class ACE_MainActions {
|
class ACE_MainActions {
|
||||||
@ -21,7 +21,7 @@ class CfgVehicles {
|
|||||||
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canRemoveHandcuffs));
|
condition = QUOTE([ARR_2(_player, _target)] call FUNC(canRemoveHandcuffs));
|
||||||
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doRemoveHandcuffs));
|
statement = QUOTE([ARR_2(_player, _target)] call FUNC(doRemoveHandcuffs));
|
||||||
exceptions[] = {};
|
exceptions[] = {};
|
||||||
icon = QUOTE(PATHTOF(UI\handcuff_ca.paa));
|
icon = QPATHTOF(UI\handcuff_ca.paa);
|
||||||
};
|
};
|
||||||
class ACE_EscortCaptive {
|
class ACE_EscortCaptive {
|
||||||
displayName = CSTRING(EscortCaptive);
|
displayName = CSTRING(EscortCaptive);
|
||||||
@ -30,7 +30,7 @@ class CfgVehicles {
|
|||||||
statement = QUOTE([ARR_3(_player, _target, true)] call FUNC(doEscortCaptive));
|
statement = QUOTE([ARR_3(_player, _target, true)] call FUNC(doEscortCaptive));
|
||||||
exceptions[] = {};
|
exceptions[] = {};
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
icon = QPATHTOF(UI\captive_ca.paa);
|
||||||
priority = 2.3;
|
priority = 2.3;
|
||||||
};
|
};
|
||||||
class ACE_StopEscorting {
|
class ACE_StopEscorting {
|
||||||
@ -40,7 +40,7 @@ class CfgVehicles {
|
|||||||
statement = QUOTE([ARR_3(_player,_target, false)] call FUNC(doEscortCaptive));
|
statement = QUOTE([ARR_3(_player,_target, false)] call FUNC(doEscortCaptive));
|
||||||
exceptions[] = {"isNotEscorting"};
|
exceptions[] = {"isNotEscorting"};
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
icon = QPATHTOF(UI\captive_ca.paa);
|
||||||
priority = 2.3;
|
priority = 2.3;
|
||||||
};
|
};
|
||||||
class ACE_LoadCaptive {
|
class ACE_LoadCaptive {
|
||||||
@ -50,7 +50,7 @@ class CfgVehicles {
|
|||||||
statement = QUOTE([ARR_3(_player, _target, objNull)] call FUNC(doLoadCaptive));
|
statement = QUOTE([ARR_3(_player, _target, objNull)] call FUNC(doLoadCaptive));
|
||||||
exceptions[] = {"isNotEscorting"};
|
exceptions[] = {"isNotEscorting"};
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
icon = QUOTE(PATHTOF(UI\captive_ca.paa));
|
icon = QPATHTOF(UI\captive_ca.paa);
|
||||||
priority = 2.2;
|
priority = 2.2;
|
||||||
};
|
};
|
||||||
class GVAR(UnloadCaptive) {
|
class GVAR(UnloadCaptive) {
|
||||||
@ -79,7 +79,7 @@ class CfgVehicles {
|
|||||||
exceptions[] = {};
|
exceptions[] = {};
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
priority = 0;
|
priority = 0;
|
||||||
icon = QUOTE(PATHTOF(UI\Surrender_ca.paa));
|
icon = QPATHTOF(UI\Surrender_ca.paa);
|
||||||
};
|
};
|
||||||
class ACE_StopSurrenderingSelf {
|
class ACE_StopSurrenderingSelf {
|
||||||
displayName = CSTRING(StopSurrendering);
|
displayName = CSTRING(StopSurrendering);
|
||||||
@ -88,7 +88,7 @@ class CfgVehicles {
|
|||||||
exceptions[] = {"isNotSurrendering"};
|
exceptions[] = {"isNotSurrendering"};
|
||||||
showDisabled = 0;
|
showDisabled = 0;
|
||||||
priority = 0;
|
priority = 0;
|
||||||
icon = QUOTE(PATHTOF(UI\Surrender_ca.paa));
|
icon = QPATHTOF(UI\Surrender_ca.paa);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -154,7 +154,7 @@ class CfgVehicles {
|
|||||||
scope = 2; //show in editor
|
scope = 2; //show in editor
|
||||||
isGlobal = 0; //run on server
|
isGlobal = 0; //run on server
|
||||||
isTriggerActivated = 1; //Wait for triggers
|
isTriggerActivated = 1; //Wait for triggers
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Surrender_ca.paa));
|
icon = QPATHTOF(UI\Icon_Module_Make_Unit_Surrender_ca.paa);
|
||||||
functionPriority = 0;
|
functionPriority = 0;
|
||||||
class Arguments {};
|
class Arguments {};
|
||||||
class ModuleDescription: ModuleDescription {
|
class ModuleDescription: ModuleDescription {
|
||||||
@ -170,7 +170,7 @@ class CfgVehicles {
|
|||||||
scope = 2; //show in editor
|
scope = 2; //show in editor
|
||||||
isGlobal = 0; //run on server
|
isGlobal = 0; //run on server
|
||||||
isTriggerActivated = 1; //Wait for triggers
|
isTriggerActivated = 1; //Wait for triggers
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_Make_Unit_Handcuffed_ca.paa));
|
icon = QPATHTOF(UI\Icon_Module_Make_Unit_Handcuffed_ca.paa);
|
||||||
functionPriority = 0;
|
functionPriority = 0;
|
||||||
class Arguments {};
|
class Arguments {};
|
||||||
class ModuleDescription: ModuleDescription {
|
class ModuleDescription: ModuleDescription {
|
||||||
@ -186,7 +186,7 @@ class CfgVehicles {
|
|||||||
displayName = CSTRING(ModuleSettings_DisplayName);
|
displayName = CSTRING(ModuleSettings_DisplayName);
|
||||||
function = QFUNC(moduleSettings);
|
function = QFUNC(moduleSettings);
|
||||||
scope = 2;
|
scope = 2;
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_settings_ca.paa));
|
icon = QPATHTOF(UI\Icon_Module_settings_ca.paa);
|
||||||
isGlobal = 1;
|
isGlobal = 1;
|
||||||
isSingular = 1;
|
isSingular = 1;
|
||||||
class Arguments {
|
class Arguments {
|
||||||
|
@ -5,8 +5,8 @@ class CfgWeapons {
|
|||||||
class ACE_CableTie: ACE_ItemCore {
|
class ACE_CableTie: ACE_ItemCore {
|
||||||
displayName = CSTRING(CableTie);
|
displayName = CSTRING(CableTie);
|
||||||
descriptionShort = CSTRING(CableTieDescription);
|
descriptionShort = CSTRING(CableTieDescription);
|
||||||
model = QUOTE(PATHTOF(models\ace_cabletie.p3d));
|
model = QPATHTOF(models\ace_cabletie.p3d);
|
||||||
picture = QUOTE(PATHTOF(UI\ace_cabletie_ca.paa));
|
picture = QPATHTOF(UI\ace_cabletie_ca.paa);
|
||||||
scope = 2;
|
scope = 2;
|
||||||
class ItemInfo: InventoryItem_Base_F {
|
class ItemInfo: InventoryItem_Base_F {
|
||||||
mass = 1;
|
mass = 1;
|
||||||
|
@ -14,8 +14,11 @@ PREP(doLoadCaptive);
|
|||||||
PREP(doRemoveHandcuffs);
|
PREP(doRemoveHandcuffs);
|
||||||
PREP(doUnloadCaptive);
|
PREP(doUnloadCaptive);
|
||||||
PREP(findEmptyNonFFVCargoSeat);
|
PREP(findEmptyNonFFVCargoSeat);
|
||||||
|
PREP(handleAnimChangedHandcuffed);
|
||||||
|
PREP(handleAnimChangedSurrendered);
|
||||||
PREP(handleGetIn);
|
PREP(handleGetIn);
|
||||||
PREP(handleGetOut);
|
PREP(handleGetOut);
|
||||||
|
PREP(handleLocal);
|
||||||
PREP(handleOnUnconscious);
|
PREP(handleOnUnconscious);
|
||||||
PREP(handlePlayerChanged);
|
PREP(handlePlayerChanged);
|
||||||
PREP(handleRespawn);
|
PREP(handleRespawn);
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
["SettingsInitialized", {
|
["ace_settingsInitialized", {
|
||||||
// Hold on a little bit longer to ensure anims will work
|
// Hold on a little bit longer to ensure anims will work
|
||||||
[{
|
[{
|
||||||
GVAR(captivityEnabled) = true;
|
GVAR(captivityEnabled) = true;
|
||||||
}, [], 0.05] call EFUNC(common,waitAndExecute);
|
}, [], 0.05] call CBA_fnc_waitAndExecute;
|
||||||
}] call EFUNC(common,addEventHandler);
|
}] call CBA_fnc_addEventHandler;
|
||||||
|
|
||||||
//Handles when someone starts escorting and then disconnects, leaving the captive attached
|
//Handles when someone starts escorting and then disconnects, leaving the captive attached
|
||||||
//This is normaly handled by the PFEH in doEscortCaptive, but that won't be running if they DC
|
//This is normaly handled by the PFEH in doEscortCaptive, but that won't be running if they DC
|
||||||
@ -24,15 +24,15 @@ if (isServer) then {
|
|||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
|
|
||||||
["playerChanged", {_this call FUNC(handlePlayerChanged)}] call EFUNC(common,addEventhandler);
|
["unit", FUNC(handlePlayerChanged)] call CBA_fnc_addPlayerEventHandler;
|
||||||
["MoveInCaptive", {_this call FUNC(vehicleCaptiveMoveIn)}] call EFUNC(common,addEventHandler);
|
[QGVAR(moveInCaptive), FUNC(vehicleCaptiveMoveIn)] call CBA_fnc_addEventHandler;
|
||||||
["MoveOutCaptive", {_this call FUNC(vehicleCaptiveMoveOut)}] call EFUNC(common,addEventHandler);
|
[QGVAR(moveOutCaptive), FUNC(vehicleCaptiveMoveOut)] call CBA_fnc_addEventHandler;
|
||||||
|
|
||||||
["SetHandcuffed", {_this call FUNC(setHandcuffed)}] call EFUNC(common,addEventHandler);
|
[QGVAR(setHandcuffed), FUNC(setHandcuffed)] call CBA_fnc_addEventHandler;
|
||||||
["SetSurrendered", {_this call FUNC(setSurrendered)}] call EFUNC(common,addEventHandler);
|
[QGVAR(setSurrendered), FUNC(setSurrendered)] call CBA_fnc_addEventHandler;
|
||||||
|
|
||||||
//Medical Integration Events
|
//Medical Integration Events
|
||||||
["medical_onUnconscious", {_this call ACE_Captives_fnc_handleOnUnconscious}] call EFUNC(common,addEventHandler);
|
["ace_unconscious", FUNC(handleOnUnconscious)] call CBA_fnc_addEventHandler;
|
||||||
|
|
||||||
if (!hasInterface) exitWith {};
|
if (!hasInterface) exitWith {};
|
||||||
|
|
||||||
|
@ -2,12 +2,14 @@
|
|||||||
|
|
||||||
class CfgPatches {
|
class CfgPatches {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
|
name = COMPONENT_NAME;
|
||||||
units[] = {QGVAR(ModuleSettings), QGVAR(ModuleSurrender), QGVAR(ModuleHandcuffed)};
|
units[] = {QGVAR(ModuleSettings), QGVAR(ModuleSurrender), QGVAR(ModuleHandcuffed)};
|
||||||
weapons[] = {"ACE_CableTie"};
|
weapons[] = {"ACE_CableTie"};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ACE_Interaction"};
|
requiredAddons[] = {"ACE_Interaction"};
|
||||||
author[] = {"commy2", "KoffeinFlummi"};
|
author = ECSTRING(common,ACETeam);
|
||||||
authorUrl = "https://github.com/commy2/";
|
authors[] = {"commy2", "KoffeinFlummi"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -18,3 +20,11 @@ class CfgPatches {
|
|||||||
#include "CfgVehicles.hpp"
|
#include "CfgVehicles.hpp"
|
||||||
#include "CfgWeapons.hpp"
|
#include "CfgWeapons.hpp"
|
||||||
#include "CfgEden.hpp"
|
#include "CfgEden.hpp"
|
||||||
|
|
||||||
|
class ACE_newEvents {
|
||||||
|
SetSurrendered = QGVAR(setSurrendered);
|
||||||
|
SetHandcuffed = QGVAR(setHandcuffed);
|
||||||
|
MoveOutCaptive = QGVAR(moveOutCaptive);
|
||||||
|
MoveInCaptive = QGVAR(moveInCaptive);
|
||||||
|
CaptiveStatusChanged = "ace_captiveStatusChanged";
|
||||||
|
};
|
||||||
|
@ -21,6 +21,6 @@ params ["_unit", "_target"];
|
|||||||
|
|
||||||
playSound3D [QUOTE(PATHTO_R(sounds\cable_tie_zipping.ogg)), objNull, false, (getPosASL _target), 1, 1, 10];
|
playSound3D [QUOTE(PATHTO_R(sounds\cable_tie_zipping.ogg)), objNull, false, (getPosASL _target), 1, 1, 10];
|
||||||
|
|
||||||
["SetHandcuffed", [_target], [_target, true]] call EFUNC(common,targetEvent);
|
[QGVAR(setHandcuffed), [_target, true], [_target]] call CBA_fnc_targetEvent;
|
||||||
|
|
||||||
_unit removeItem "ACE_CableTie";
|
_unit removeItem "ACE_CableTie";
|
||||||
|
@ -47,4 +47,4 @@ if (isNull _vehicle) then {
|
|||||||
if (isNull _vehicle) exitWith {ERROR("");};
|
if (isNull _vehicle) exitWith {ERROR("");};
|
||||||
|
|
||||||
_unit setVariable [QGVAR(isEscorting), false, true];
|
_unit setVariable [QGVAR(isEscorting), false, true];
|
||||||
["MoveInCaptive", [_target], [_target, _vehicle]] call EFUNC(common,targetEvent);
|
[QGVAR(moveInCaptive), [_target, _vehicle], [_target]] call CBA_fnc_targetEvent;
|
||||||
|
@ -17,4 +17,4 @@
|
|||||||
|
|
||||||
params ["_unit", "_target"];
|
params ["_unit", "_target"];
|
||||||
|
|
||||||
["SetHandcuffed", [_target], [_target, false]] call EFUNC(common,targetEvent);
|
[QGVAR(setHandcuffed), [_target, false], [_target]] call CBA_fnc_targetEvent;
|
||||||
|
@ -18,4 +18,4 @@
|
|||||||
|
|
||||||
params ["_unit", "_target"];
|
params ["_unit", "_target"];
|
||||||
|
|
||||||
["MoveOutCaptive", [_target], [_target]] call EFUNC(common,targetEvent);
|
[QGVAR(moveOutCaptive), [_target], [_target]] call CBA_fnc_targetEvent;
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* Author: Nic547, commy2
|
||||||
|
* Restart the handcuffing animation if it got interrupted. Called from a AnimChanged EH.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: The Unit <OBJECT>
|
||||||
|
* 1: New animation <STRING>
|
||||||
|
*
|
||||||
|
* ReturnValue:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
params ["_unit", "_newAnimation"];
|
||||||
|
TRACE_2("AnimChanged",_unit,_newAnimation);
|
||||||
|
if (_unit == (vehicle _unit)) then {
|
||||||
|
if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then {
|
||||||
|
TRACE_1("Handcuff animation interrupted",_newAnimation);
|
||||||
|
[_unit, "ACE_AmovPercMstpScapWnonDnon", 1] call EFUNC(common,doAnimation);
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
_turretPath = [];
|
||||||
|
{
|
||||||
|
_x params ["_xUnit", "", "", "_xTurretPath"];
|
||||||
|
if (_unit == _xUnit) exitWith {_turretPath = _xTurretPath};
|
||||||
|
} forEach (fullCrew (vehicle _unit));
|
||||||
|
TRACE_1("turret Path",_turretPath);
|
||||||
|
if (_turretPath isEqualTo []) exitWith {};
|
||||||
|
|
||||||
|
TRACE_1("Handcuff (FFV) animation interrupted",_newAnimation);
|
||||||
|
[_unit, "ACE_HandcuffedFFV", 2] call EFUNC(common,doAnimation);
|
||||||
|
[_unit, "ACE_HandcuffedFFV", 1] call EFUNC(common,doAnimation);
|
||||||
|
};
|
@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
* Author: Nic547, commy2
|
||||||
|
* Restart the surrendering animation if it got interrupted. Called from a AnimChanged EH.
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: The Unit <OBJECT>
|
||||||
|
* 1: New animation <STRING>
|
||||||
|
*
|
||||||
|
* ReturnValue:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
params ["_unit", "_newAnimation"];
|
||||||
|
|
||||||
|
TRACE_2("AnimChanged",_unit,_newAnimation);
|
||||||
|
if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then {
|
||||||
|
TRACE_1("Surrender animation interrupted",_newAnimation);
|
||||||
|
[_unit, "ACE_AmovPercMstpSsurWnonDnon", 1] call EFUNC(common,doAnimation);
|
||||||
|
};
|
63
addons/captives/functions/fnc_handleLocal.sqf
Normal file
63
addons/captives/functions/fnc_handleLocal.sqf
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
/*
|
||||||
|
* Author: esteldunedain
|
||||||
|
* Called when a unit switched locality
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* 0: The Unit <OBJECT>
|
||||||
|
* 1: Is local <BOOL>
|
||||||
|
*
|
||||||
|
* ReturnValue:
|
||||||
|
* None
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
params ["_unit", "_local"];
|
||||||
|
|
||||||
|
// Make sure that if the unit is captive or surrendered it has a AnimChanged EH running ONLY on the machine that owns it
|
||||||
|
if (_local) then {
|
||||||
|
|
||||||
|
// If the unit is handcuffed
|
||||||
|
if (_unit getVariable [QGVAR(isHandcuffed), false]) then {
|
||||||
|
// If the unit already has an AnimChanged EH here then there's nothing to do either
|
||||||
|
if (_unit getVariable [QGVAR(handcuffAnimEHID), -1] != -1) exitWith {};
|
||||||
|
|
||||||
|
// Otherwise, restart the AnimChanged EH in the new machine
|
||||||
|
private _animChangedEHID = _unit addEventHandler ["AnimChanged", DFUNC(handleAnimChangedHandcuffed)];
|
||||||
|
TRACE_2("Adding animChangedEH",_unit,_animChangedEHID);
|
||||||
|
_unit setVariable [QGVAR(handcuffAnimEHID), _animChangedEHID];
|
||||||
|
};
|
||||||
|
|
||||||
|
// If the unit is surrendering
|
||||||
|
if (_unit getVariable [QGVAR(isSurrendering), false]) then {
|
||||||
|
// If the unit already has an AnimChanged EH here then there's nothing to do either
|
||||||
|
if (_unit getVariable [QGVAR(surrenderAnimEHID), -1] != -1) exitWith {};
|
||||||
|
|
||||||
|
// Otherwise, restart the AnimChanged EH in the new machine
|
||||||
|
private _animChangedEHID = _unit addEventHandler ["AnimChanged", DFUNC(handleAnimChangedSurrendered)];
|
||||||
|
TRACE_2("Adding animChangedEH",_unit,_animChangedEHID);
|
||||||
|
_unit setVariable [QGVAR(surrenderAnimEHID), _animChangedEHID];
|
||||||
|
};
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
private _animChangedEHID = _unit getVariable [QGVAR(handcuffAnimEHID), -1];
|
||||||
|
if (_animChangedEHID != -1) then {
|
||||||
|
// If the unit had a AnimChanged EH for handcuffing in the old machine then remove it
|
||||||
|
TRACE_1("Removing animChanged EH",_animChangedEHID);
|
||||||
|
_unit removeEventHandler ["AnimChanged", _animChangedEHID];
|
||||||
|
_unit setVariable [QGVAR(handcuffAnimEHID), -1];
|
||||||
|
};
|
||||||
|
|
||||||
|
_animChangedEHID = _unit getVariable [QGVAR(surrenderAnimEHID), -1];
|
||||||
|
if (_animChangedEHID != -1) then {
|
||||||
|
// If the unit had a AnimChanged EH for handcuffing in the old machine then remove it
|
||||||
|
TRACE_1("Removing animChanged EH",_animChangedEHID);
|
||||||
|
_unit removeEventHandler ["AnimChanged", _animChangedEHID];
|
||||||
|
_unit setVariable [QGVAR(surrenderAnimEHID), -1];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Author: commy2, PabstMirror
|
* Author: commy2, PabstMirror
|
||||||
* Handles the "medical_onUnconscious" event
|
* Handles the "ace_unconscious" event
|
||||||
*
|
*
|
||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Unit <OBJECT>
|
* 0: Unit <OBJECT>
|
||||||
|
@ -30,9 +30,9 @@ if (!isServer) exitWith {};
|
|||||||
params ["_units"];
|
params ["_units"];
|
||||||
{
|
{
|
||||||
TRACE_2("event",_x,local _x);
|
TRACE_2("event",_x,local _x);
|
||||||
["SetHandcuffed", [_x], [_x, true]] call EFUNC(common,targetEvent);
|
[QGVAR(setHandcuffed), [_x, true], [_x]] call CBA_fnc_targetEvent;
|
||||||
} forEach _units;
|
} forEach _units;
|
||||||
}, [_units], 0.05] call EFUNC(common,waitAndExecute);
|
}, [_units], 0.05] call CBA_fnc_waitAndExecute;
|
||||||
|
|
||||||
if (!isNull _logic) then {
|
if (!isNull _logic) then {
|
||||||
deleteVehicle _logic;
|
deleteVehicle _logic;
|
||||||
|
@ -30,9 +30,9 @@ if (!isServer) exitWith {};
|
|||||||
params ["_units"];
|
params ["_units"];
|
||||||
{
|
{
|
||||||
TRACE_2("event",_x,local _x);
|
TRACE_2("event",_x,local _x);
|
||||||
["SetSurrendered", [_x], [_x, true]] call EFUNC(common,targetEvent);
|
[QGVAR(setSurrendered), [_x, true], [_x]] call CBA_fnc_targetEvent;
|
||||||
} forEach _units;
|
} forEach _units;
|
||||||
}, [_units], 0.05] call EFUNC(common,waitAndExecute);
|
}, [_units], 0.05] call CBA_fnc_waitAndExecute;
|
||||||
|
|
||||||
if (!isNull _logic) then {
|
if (!isNull _logic) then {
|
||||||
deleteVehicle _logic;
|
deleteVehicle _logic;
|
||||||
|
@ -27,7 +27,7 @@ if !(missionNamespace getVariable [QGVAR(captivityEnabled), false]) exitWith {
|
|||||||
// It's to soon to call this function, delay it
|
// It's to soon to call this function, delay it
|
||||||
if (EGVAR(common,settingsInitFinished)) then {
|
if (EGVAR(common,settingsInitFinished)) then {
|
||||||
// Settings are already initialized, but the small wait isn't over
|
// Settings are already initialized, but the small wait isn't over
|
||||||
[DFUNC(setHandCuffed), _this, 0.05] call EFUNC(common,waitAndExecute);
|
[DFUNC(setHandCuffed), _this, 0.05] call CBA_fnc_waitAndExecute;
|
||||||
} else {
|
} else {
|
||||||
// Settings are not initialized yet
|
// Settings are not initialized yet
|
||||||
[DFUNC(setHandCuffed), _this] call EFUNC(common,runAfterSettingsInit);
|
[DFUNC(setHandCuffed), _this] call EFUNC(common,runAfterSettingsInit);
|
||||||
@ -73,32 +73,11 @@ if (_state) then {
|
|||||||
TRACE_1("removing animChanged EH",_animChangedEHID);
|
TRACE_1("removing animChanged EH",_animChangedEHID);
|
||||||
_unit removeEventHandler ["AnimChanged", _animChangedEHID];
|
_unit removeEventHandler ["AnimChanged", _animChangedEHID];
|
||||||
};
|
};
|
||||||
_animChangedEHID = _unit addEventHandler ["AnimChanged", {
|
_animChangedEHID = _unit addEventHandler ["AnimChanged", DFUNC(handleAnimChangedHandcuffed)];
|
||||||
params ["_unit", "_newAnimation"];
|
|
||||||
TRACE_2("AnimChanged",_unit,_newAnimation);
|
|
||||||
if (_unit == (vehicle _unit)) then {
|
|
||||||
if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then {
|
|
||||||
TRACE_1("Handcuff animation interrupted",_newAnimation);
|
|
||||||
[_unit, "ACE_AmovPercMstpScapWnonDnon", 1] call EFUNC(common,doAnimation);
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
_turretPath = [];
|
|
||||||
{
|
|
||||||
_x params ["_xUnit", "", "", "_xTurretPath"];
|
|
||||||
if (_unit == _xUnit) exitWith {_turretPath = _xTurretPath};
|
|
||||||
} forEach (fullCrew (vehicle _unit));
|
|
||||||
TRACE_1("turret Path",_turretPath);
|
|
||||||
if (_turretPath isEqualTo []) exitWith {};
|
|
||||||
|
|
||||||
TRACE_1("Handcuff (FFV) animation interrupted",_newAnimation);
|
|
||||||
[_unit, "ACE_HandcuffedFFV", 2] call EFUNC(common,doAnimation);
|
|
||||||
[_unit, "ACE_HandcuffedFFV", 1] call EFUNC(common,doAnimation);
|
|
||||||
};
|
|
||||||
}];
|
|
||||||
TRACE_2("Adding animChangedEH",_unit,_animChangedEHID);
|
TRACE_2("Adding animChangedEH",_unit,_animChangedEHID);
|
||||||
_unit setVariable [QGVAR(handcuffAnimEHID), _animChangedEHID];
|
_unit setVariable [QGVAR(handcuffAnimEHID), _animChangedEHID];
|
||||||
|
|
||||||
}, [_unit], 0.01] call EFUNC(common,waitAndExecute);
|
}, [_unit], 0.01] call CBA_fnc_waitAndExecute;
|
||||||
} else {
|
} else {
|
||||||
_unit setVariable [QGVAR(isHandcuffed), false, true];
|
_unit setVariable [QGVAR(isHandcuffed), false, true];
|
||||||
[_unit, "setCaptive", QGVAR(Handcuffed), false] call EFUNC(common,statusEffect_set);
|
[_unit, "setCaptive", QGVAR(Handcuffed), false] call EFUNC(common,statusEffect_set);
|
||||||
@ -124,4 +103,4 @@ if (_state) then {
|
|||||||
};
|
};
|
||||||
|
|
||||||
//Global Event after changes:
|
//Global Event after changes:
|
||||||
["CaptiveStatusChanged", [_unit, _state, "SetHandcuffed"]] call EFUNC(common,globalEvent);
|
["ace_captiveStatusChanged", [_unit, _state, "SetHandcuffed"]] call CBA_fnc_globalEvent;
|
||||||
|
@ -27,7 +27,7 @@ if !(missionNamespace getVariable [QGVAR(captivityEnabled), false]) exitWith {
|
|||||||
// It's to soon to call this function, delay it
|
// It's to soon to call this function, delay it
|
||||||
if (EGVAR(common,settingsInitFinished)) then {
|
if (EGVAR(common,settingsInitFinished)) then {
|
||||||
// Settings are already initialized, but the small wait isn't over
|
// Settings are already initialized, but the small wait isn't over
|
||||||
[DFUNC(setSurrendered), _this, 0.05] call EFUNC(common,waitAndExecute);
|
[DFUNC(setSurrendered), _this, 0.05] call CBA_fnc_waitAndExecute;
|
||||||
} else {
|
} else {
|
||||||
// Settings are not initialized yet
|
// Settings are not initialized yet
|
||||||
[DFUNC(setSurrendered), _this] call EFUNC(common,runAfterSettingsInit);
|
[DFUNC(setSurrendered), _this] call EFUNC(common,runAfterSettingsInit);
|
||||||
@ -64,16 +64,10 @@ if (_state) then {
|
|||||||
TRACE_1("removing animChanged EH",_animChangedEHID);
|
TRACE_1("removing animChanged EH",_animChangedEHID);
|
||||||
_unit removeEventHandler ["AnimChanged", _animChangedEHID];
|
_unit removeEventHandler ["AnimChanged", _animChangedEHID];
|
||||||
};
|
};
|
||||||
_animChangedEHID = _unit addEventHandler ["AnimChanged", {
|
_animChangedEHID = _unit addEventHandler ["AnimChanged", DFUNC(handleAnimChangedSurrendered)];
|
||||||
params ["_unit", "_newAnimation"];
|
|
||||||
if ((_newAnimation != "ACE_AmovPercMstpSsurWnonDnon") && {!(_unit getVariable ["ACE_isUnconscious", false])}) then {
|
|
||||||
TRACE_1("Surrender animation interrupted",_newAnimation);
|
|
||||||
[_unit, "ACE_AmovPercMstpSsurWnonDnon", 1] call EFUNC(common,doAnimation);
|
|
||||||
};
|
|
||||||
}];
|
|
||||||
_unit setVariable [QGVAR(surrenderAnimEHID), _animChangedEHID];
|
_unit setVariable [QGVAR(surrenderAnimEHID), _animChangedEHID];
|
||||||
};
|
};
|
||||||
}, [_unit], 0.01] call EFUNC(common,waitAndExecute);
|
}, [_unit], 0.01] call CBA_fnc_waitAndExecute;
|
||||||
} else {
|
} else {
|
||||||
_unit setVariable [QGVAR(isSurrendering), false, true];
|
_unit setVariable [QGVAR(isSurrendering), false, true];
|
||||||
[_unit, "setCaptive", QGVAR(Surrendered), false] call EFUNC(common,statusEffect_set);
|
[_unit, "setCaptive", QGVAR(Surrendered), false] call EFUNC(common,statusEffect_set);
|
||||||
@ -103,7 +97,7 @@ if (_state) then {
|
|||||||
params ["_args", "_pfID"];
|
params ["_args", "_pfID"];
|
||||||
_args params ["_unit", "_maxTime"];
|
_args params ["_unit", "_maxTime"];
|
||||||
//If waited long enough or they re-surrendered or they are unconscious, exit loop
|
//If waited long enough or they re-surrendered or they are unconscious, exit loop
|
||||||
if ((ACE_time > _maxTime) || {_unit getVariable [QGVAR(isSurrendering), false]} || {_unit getVariable ["ACE_isUnconscious", false]}) exitWith {
|
if ((CBA_missionTime > _maxTime) || {_unit getVariable [QGVAR(isSurrendering), false]} || {_unit getVariable ["ACE_isUnconscious", false]}) exitWith {
|
||||||
[_pfID] call CBA_fnc_removePerFrameHandler;
|
[_pfID] call CBA_fnc_removePerFrameHandler;
|
||||||
};
|
};
|
||||||
//Only break animation if they are actualy the "hands up" animation (because we are using switchmove there won't be an transition)
|
//Only break animation if they are actualy the "hands up" animation (because we are using switchmove there won't be an transition)
|
||||||
@ -112,9 +106,9 @@ if (_state) then {
|
|||||||
//Break out of hands up animation loop
|
//Break out of hands up animation loop
|
||||||
[_unit, "ACE_AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon", 2] call EFUNC(common,doAnimation);
|
[_unit, "ACE_AmovPercMstpSsurWnonDnon_AmovPercMstpSnonWnonDnon", 2] call EFUNC(common,doAnimation);
|
||||||
};
|
};
|
||||||
}, 0, [_unit, (ACE_time + 20)]] call CBA_fnc_addPerFrameHandler;
|
}, 0, [_unit, (CBA_missionTime + 20)]] call CBA_fnc_addPerFrameHandler;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
//Global Event after changes:
|
//Global Event after changes:
|
||||||
["CaptiveStatusChanged", [_unit, _state, "SetSurrendered"]] call EFUNC(common,globalEvent);
|
["ace_captiveStatusChanged", [_unit, _state, "SetSurrendered"]] call CBA_fnc_globalEvent;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#define COMPONENT captives
|
#define COMPONENT captives
|
||||||
|
#define COMPONENT_BEAUTIFIED Captives
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#include "\z\ace\addons\main\script_mod.hpp"
|
||||||
|
|
||||||
// #define DEBUG_MODE_FULL
|
// #define DEBUG_MODE_FULL
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
<English>Take Prisoner</English>
|
<English>Take Prisoner</English>
|
||||||
<German>Gefangen nehmen</German>
|
<German>Gefangen nehmen</German>
|
||||||
<Spanish>Tomar prisionero</Spanish>
|
<Spanish>Tomar prisionero</Spanish>
|
||||||
<French>Prendre prisonnier</French>
|
<French>Prendre le prisonnier</French>
|
||||||
<Polish>Aresztuj</Polish>
|
<Polish>Aresztuj</Polish>
|
||||||
<Czech>Zajmout osobu</Czech>
|
<Czech>Zajmout osobu</Czech>
|
||||||
<Italian>Arresta il prigioniero</Italian>
|
<Italian>Arresta il prigioniero</Italian>
|
||||||
@ -190,7 +190,7 @@
|
|||||||
<Czech>Spoutat jednotku</Czech>
|
<Czech>Spoutat jednotku</Czech>
|
||||||
<Italian>Metti manette all'unità</Italian>
|
<Italian>Metti manette all'unità</Italian>
|
||||||
<Spanish>Hacer que la unidad esté esposada</Spanish>
|
<Spanish>Hacer que la unidad esté esposada</Spanish>
|
||||||
<French>Rend une unité captive</French>
|
<French>Rendre une unité captive</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Captives_ModuleHandcuffed_Description">
|
<Key ID="STR_ACE_Captives_ModuleHandcuffed_Description">
|
||||||
<English>Sync a unit to make them handcuffed.</English>
|
<English>Sync a unit to make them handcuffed.</English>
|
||||||
|
@ -10,7 +10,7 @@ class CfgVehicles {
|
|||||||
class ACE_moduleCargoSettings: ACE_Module {
|
class ACE_moduleCargoSettings: ACE_Module {
|
||||||
scope = 2;
|
scope = 2;
|
||||||
displayName = CSTRING(SettingsModule_DisplayName);
|
displayName = CSTRING(SettingsModule_DisplayName);
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_Cargo_ca.paa));
|
icon = QPATHTOF(UI\Icon_Module_Cargo_ca.paa);
|
||||||
category = "ACE_Logistics";
|
category = "ACE_Logistics";
|
||||||
function = QFUNC(moduleSettings);
|
function = QFUNC(moduleSettings);
|
||||||
functionPriority = 1;
|
functionPriority = 1;
|
||||||
@ -36,7 +36,7 @@ class CfgVehicles {
|
|||||||
class GVAR(makeLoadable): ACE_Module {
|
class GVAR(makeLoadable): ACE_Module {
|
||||||
scope = 2;
|
scope = 2;
|
||||||
displayName = CSTRING(makeLoadable_displayName);
|
displayName = CSTRING(makeLoadable_displayName);
|
||||||
icon = QUOTE(PATHTOF(UI\Icon_Module_makeLoadable_ca.paa));
|
icon = QPATHTOF(UI\Icon_Module_makeLoadable_ca.paa);
|
||||||
category = "ACE_Logistics";
|
category = "ACE_Logistics";
|
||||||
function = QFUNC(moduleMakeLoadable);
|
function = QFUNC(moduleMakeLoadable);
|
||||||
isGlobal = 1;
|
isGlobal = 1;
|
||||||
@ -314,14 +314,15 @@ class CfgVehicles {
|
|||||||
GVAR(space) = 20;
|
GVAR(space) = 20;
|
||||||
GVAR(hasCargo) = 1;
|
GVAR(hasCargo) = 1;
|
||||||
};
|
};
|
||||||
class Land_Pod_Heli_Transport_04_medevac_F: Pod_Heli_Transport_04_base_F {
|
|
||||||
GVAR(space) = 8;
|
|
||||||
GVAR(hasCargo) = 1;
|
|
||||||
};
|
|
||||||
class Land_Pod_Heli_Transport_04_repair_F: Pod_Heli_Transport_04_base_F {
|
class Land_Pod_Heli_Transport_04_repair_F: Pod_Heli_Transport_04_base_F {
|
||||||
GVAR(space) = 12;
|
GVAR(space) = 12;
|
||||||
GVAR(hasCargo) = 1;
|
GVAR(hasCargo) = 1;
|
||||||
};
|
};
|
||||||
|
class Pod_Heli_Transport_04_crewed_base_F;
|
||||||
|
class Land_Pod_Heli_Transport_04_medevac_F: Pod_Heli_Transport_04_crewed_base_F {
|
||||||
|
GVAR(space) = 8;
|
||||||
|
GVAR(hasCargo) = 1;
|
||||||
|
};
|
||||||
|
|
||||||
class StaticMortar;
|
class StaticMortar;
|
||||||
class Mortar_01_base_F: StaticMortar {
|
class Mortar_01_base_F: StaticMortar {
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
["AddCargoByClass", {_this call FUNC(addCargoItem)}] call EFUNC(common,addEventHandler);
|
["ace_addCargo", {_this call FUNC(addCargoItem)}] call CBA_fnc_addEventHandler;
|
||||||
|
|
||||||
["LoadCargo", {
|
["ace_loadCargo", {
|
||||||
params ["_item", "_vehicle"];
|
params ["_item", "_vehicle"];
|
||||||
TRACE_2("LoadCargo EH",_item,_vehicle);
|
TRACE_2("LoadCargo EH",_item,_vehicle);
|
||||||
|
|
||||||
@ -13,15 +13,15 @@
|
|||||||
private _itemName = getText (configFile >> "CfgVehicles" >> typeOf _item >> "displayName");
|
private _itemName = getText (configFile >> "CfgVehicles" >> typeOf _item >> "displayName");
|
||||||
private _vehicleName = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayName");
|
private _vehicleName = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayName");
|
||||||
|
|
||||||
["displayTextStructured", [[_hint, _itemName, _vehicleName], 3.0]] call EFUNC(common,localEvent);
|
[[_hint, _itemName, _vehicleName], 3.0] call EFUNC(common,displayTextStructured);
|
||||||
|
|
||||||
if (_loaded) then {
|
if (_loaded) then {
|
||||||
// Invoke listenable event
|
// Invoke listenable event
|
||||||
["cargoLoaded", [_item, _vehicle]] call EFUNC(common,globalEvent);
|
["ace_cargoLoaded", [_item, _vehicle]] call CBA_fnc_globalEvent;
|
||||||
};
|
};
|
||||||
}] call EFUNC(common,addEventHandler);
|
}] call CBA_fnc_addEventHandler;
|
||||||
|
|
||||||
["UnloadCargo", {
|
["ace_unloadCargo", {
|
||||||
params ["_item", "_vehicle", ["_unloader", objNull]];
|
params ["_item", "_vehicle", ["_unloader", objNull]];
|
||||||
TRACE_3("UnloadCargo EH",_item,_vehicle,_unloader);
|
TRACE_3("UnloadCargo EH",_item,_vehicle,_unloader);
|
||||||
|
|
||||||
@ -34,19 +34,19 @@
|
|||||||
private _itemName = getText (configFile >> "CfgVehicles" >> _itemClass >> "displayName");
|
private _itemName = getText (configFile >> "CfgVehicles" >> _itemClass >> "displayName");
|
||||||
private _vehicleName = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayName");
|
private _vehicleName = getText (configFile >> "CfgVehicles" >> typeOf _vehicle >> "displayName");
|
||||||
|
|
||||||
["displayTextStructured", [[_hint, _itemName, _vehicleName], 3.0]] call EFUNC(common,localEvent);
|
[[_hint, _itemName, _vehicleName], 3.0] call EFUNC(common,displayTextStructured);
|
||||||
|
|
||||||
if (_unloaded) then {
|
if (_unloaded) then {
|
||||||
// Invoke listenable event
|
// Invoke listenable event
|
||||||
["cargoUnloaded", [_item, _vehicle]] call EFUNC(common,globalEvent);
|
["ace_cargoUnloaded", [_item, _vehicle]] call CBA_fnc_globalEvent;
|
||||||
};
|
};
|
||||||
|
|
||||||
// TOOO maybe drag/carry the unloaded item?
|
// TOOO maybe drag/carry the unloaded item?
|
||||||
}] call EFUNC(common,addEventHandler);
|
}] call CBA_fnc_addEventHandler;
|
||||||
|
|
||||||
["ServerUnloadCargo", {
|
[QGVAR(serverUnload), {
|
||||||
params ["_item", "_emptyPosAGL"];
|
params ["_item", "_emptyPosAGL"];
|
||||||
|
|
||||||
_item hideObjectGlobal false;
|
_item hideObjectGlobal false;
|
||||||
_item setPosASL (AGLtoASL _emptyPosAGL);
|
_item setPosASL (AGLtoASL _emptyPosAGL);
|
||||||
}] call EFUNC(common,addEventHandler);
|
}] call CBA_fnc_addEventHandler;
|
||||||
|
@ -2,12 +2,14 @@
|
|||||||
|
|
||||||
class CfgPatches {
|
class CfgPatches {
|
||||||
class ADDON {
|
class ADDON {
|
||||||
|
name = COMPONENT_NAME;
|
||||||
units[] = {};
|
units[] = {};
|
||||||
weapons[] = {};
|
weapons[] = {};
|
||||||
requiredVersion = REQUIRED_VERSION;
|
requiredVersion = REQUIRED_VERSION;
|
||||||
requiredAddons[] = {"ace_interaction"};
|
requiredAddons[] = {"ace_interaction"};
|
||||||
author[] = {"commy2", "Glowbal"};
|
author = ECSTRING(common,ACETeam);
|
||||||
authorUrl = "https://ace3mod.com/";
|
authors[] = {"commy2", "Glowbal"};
|
||||||
|
url = ECSTRING(main,URL);
|
||||||
VERSION_CONFIG;
|
VERSION_CONFIG;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -16,3 +18,13 @@ class CfgPatches {
|
|||||||
#include "CfgEventHandlers.hpp"
|
#include "CfgEventHandlers.hpp"
|
||||||
#include "CfgVehicles.hpp"
|
#include "CfgVehicles.hpp"
|
||||||
#include "menu.hpp"
|
#include "menu.hpp"
|
||||||
|
|
||||||
|
class ACE_newEvents {
|
||||||
|
LoadCargo = "ace_loadCargo";
|
||||||
|
cargoUnloaded = "ace_cargoUnloaded";
|
||||||
|
cargoLoaded = "ace_cargoLoaded";
|
||||||
|
AddCargoByClass = "ace_addCargo";
|
||||||
|
ServerUnloadCargo = QGVAR(serverUnload);
|
||||||
|
UnloadCargo = "ace_unloadCargo";
|
||||||
|
cargoAddedByClass = "ace_cargoAdded";
|
||||||
|
};
|
||||||
|
@ -26,4 +26,4 @@ for "_i" from 1 to _amount do {
|
|||||||
};
|
};
|
||||||
|
|
||||||
// Invoke listenable event
|
// Invoke listenable event
|
||||||
["cargoAddedByClass", [_itemClass, _vehicle, _amount]] call EFUNC(common,globalEvent);
|
["ace_cargoAdded", [_itemClass, _vehicle, _amount]] call CBA_fnc_globalEvent;
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* 0: Player <OBJECT>
|
* 0: Player <OBJECT>
|
||||||
* 1: Object to load <OBJECT>
|
* 1: Object to load <OBJECT>
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* Can load <BOOL>
|
* Can load <BOOL>
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* 0: Item <OBJECT or STRING>
|
* 0: Item <OBJECT or STRING>
|
||||||
* 1: Holder Object (Vehicle) <OBJECT>
|
* 1: Holder Object (Vehicle) <OBJECT>
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* Can load in <BOOL>
|
* Can load in <BOOL>
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* 1: Object <OBJECT>
|
* 1: Object <OBJECT>
|
||||||
* 2: Unloader (player) <OPTIONAL><OBJECT>
|
* 2: Unloader (player) <OPTIONAL><OBJECT>
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* Can be unloaded <BOOL>
|
* Can be unloaded <BOOL>
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Unit <OBJECT>
|
* 0: Unit <OBJECT>
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* Vehicle in Distance <OBJECT>
|
* Vehicle in Distance <OBJECT>
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Object <OBJECT>
|
* 0: Object <OBJECT>
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* Cargo space left <NUMBER>
|
* Cargo space left <NUMBER>
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Item <OBJECT or STRING>
|
* 0: Item <OBJECT or STRING>
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* Cargo size <NUMBER> (default: -1)
|
* Cargo size <NUMBER> (default: -1)
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Object <OBJECT>
|
* 0: Object <OBJECT>
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Object <OBJECT>
|
* 0: Object <OBJECT>
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
@ -39,7 +39,7 @@ private _statement = {
|
|||||||
[_player, _target] call FUNC(startLoadIn);
|
[_player, _target] call FUNC(startLoadIn);
|
||||||
};
|
};
|
||||||
private _text = localize LSTRING(loadObject);
|
private _text = localize LSTRING(loadObject);
|
||||||
private _icon = QUOTE(PATHTOF(UI\Icon_load.paa));
|
private _icon = QPATHTOF(UI\Icon_load.paa);
|
||||||
|
|
||||||
private _action = [QGVAR(load), _text, _icon, _statement, _condition] call EFUNC(interact_menu,createAction);
|
private _action = [QGVAR(load), _text, _icon, _statement, _condition] call EFUNC(interact_menu,createAction);
|
||||||
[_type, 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToClass);
|
[_type, 0, ["ACE_MainActions"], _action] call EFUNC(interact_menu,addActionToClass);
|
||||||
|
@ -29,7 +29,7 @@ if (isServer) then {
|
|||||||
_cargoClassname = getText (_x >> "type");
|
_cargoClassname = getText (_x >> "type");
|
||||||
_cargoCount = getNumber (_x >> "amount");
|
_cargoCount = getNumber (_x >> "amount");
|
||||||
TRACE_3("adding ACE_Cargo", (configName _x), _cargoClassname, _cargoCount);
|
TRACE_3("adding ACE_Cargo", (configName _x), _cargoClassname, _cargoCount);
|
||||||
["AddCargoByClass", [_cargoClassname, _vehicle, _cargoCount]] call EFUNC(common,localEvent);
|
["ace_addCargo", [_cargoClassname, _vehicle, _cargoCount]] call CBA_fnc_localEvent;
|
||||||
};
|
};
|
||||||
} count ("true" configClasses (configFile >> "CfgVehicles" >> _type >> "ACE_Cargo" >> "Cargo"));
|
} count ("true" configClasses (configFile >> "CfgVehicles" >> _type >> "ACE_Cargo" >> "Cargo"));
|
||||||
};
|
};
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* 0: Item <OBJECT or STRING>
|
* 0: Item <OBJECT or STRING>
|
||||||
* 1: Vehicle <OBJECT>
|
* 1: Vehicle <OBJECT>
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* Object loaded <BOOL>
|
* Object loaded <BOOL>
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
@ -35,7 +35,7 @@ _vehicle setVariable [QGVAR(space), _space - _itemSize, true];
|
|||||||
if (_item isEqualType objNull) then {
|
if (_item isEqualType objNull) then {
|
||||||
detach _item;
|
detach _item;
|
||||||
_item attachTo [_vehicle,[0,0,-100]];
|
_item attachTo [_vehicle,[0,0,-100]];
|
||||||
["hideObjectGlobal", [_item, true]] call EFUNC(common,serverEvent);
|
[QEGVAR(common,hideObjectGlobal), [_item, true]] call CBA_fnc_serverEvent;
|
||||||
};
|
};
|
||||||
|
|
||||||
true
|
true
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* 1: Set as loadable (default: true) <BOOL><SCALAR>
|
* 1: Set as loadable (default: true) <BOOL><SCALAR>
|
||||||
* 2: Size. (default: 1) <NUMBER>
|
* 2: Size. (default: 1) <NUMBER>
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Display <DISPLAY>
|
* 0: Display <DISPLAY>
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* 0: Player <OBJECT>
|
* 0: Player <OBJECT>
|
||||||
* 1: Object <OBJECT>
|
* 1: Object <OBJECT>
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* Load ProgressBar Started <BOOL>
|
* Load ProgressBar Started <BOOL>
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
@ -40,7 +40,7 @@ if ([_object, _vehicle] call FUNC(canLoadItemIn)) then {
|
|||||||
[
|
[
|
||||||
5 * _size,
|
5 * _size,
|
||||||
[_object,_vehicle],
|
[_object,_vehicle],
|
||||||
{["LoadCargo", _this select 0] call EFUNC(common,localEvent)},
|
{["ace_loadCargo", _this select 0] call CBA_fnc_localEvent},
|
||||||
{},
|
{},
|
||||||
localize LSTRING(LoadingItem)
|
localize LSTRING(LoadingItem)
|
||||||
] call EFUNC(common,progressBar);
|
] call EFUNC(common,progressBar);
|
||||||
@ -48,7 +48,7 @@ if ([_object, _vehicle] call FUNC(canLoadItemIn)) then {
|
|||||||
} else {
|
} else {
|
||||||
private _displayName = getText (configFile >> "CfgVehicles" >> typeOf _object >> "displayName");
|
private _displayName = getText (configFile >> "CfgVehicles" >> typeOf _object >> "displayName");
|
||||||
|
|
||||||
["displayTextStructured", [[LSTRING(LoadingFailed), _displayName], 3.0]] call EFUNC(common,localEvent);
|
[[LSTRING(LoadingFailed), _displayName], 3.0] call EFUNC(common,displayTextStructured);
|
||||||
};
|
};
|
||||||
|
|
||||||
_return
|
_return
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* Arguments:
|
* Arguments:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
@ -37,7 +37,7 @@ if ([_item, GVAR(interactionVehicle), ACE_player] call FUNC(canUnloadItem)) then
|
|||||||
[
|
[
|
||||||
5 * _size,
|
5 * _size,
|
||||||
[_item, GVAR(interactionVehicle), ACE_player],
|
[_item, GVAR(interactionVehicle), ACE_player],
|
||||||
{["UnloadCargo", _this select 0] call EFUNC(common,localEvent)},
|
{["ace_unloadCargo", _this select 0] call CBA_fnc_localEvent},
|
||||||
{},
|
{},
|
||||||
localize LSTRING(UnloadingItem),
|
localize LSTRING(UnloadingItem),
|
||||||
{true},
|
{true},
|
||||||
@ -47,5 +47,5 @@ if ([_item, GVAR(interactionVehicle), ACE_player] call FUNC(canUnloadItem)) then
|
|||||||
private _itemClass = if (_item isEqualType "") then {_item} else {typeOf _item};
|
private _itemClass = if (_item isEqualType "") then {_item} else {typeOf _item};
|
||||||
private _displayName = getText (configFile >> "CfgVehicles" >> _itemClass >> "displayName");
|
private _displayName = getText (configFile >> "CfgVehicles" >> _itemClass >> "displayName");
|
||||||
|
|
||||||
["displayTextStructured", [[LSTRING(UnloadingFailed), _displayName], 3.0]] call EFUNC(common,localEvent);
|
[[LSTRING(UnloadingFailed), _displayName], 3.0] call EFUNC(common,displayTextStructured);
|
||||||
};
|
};
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* 0: Item <OBJECT or STRING>
|
* 0: Item <OBJECT or STRING>
|
||||||
* 1: Vehicle <OBJECT>
|
* 1: Vehicle <OBJECT>
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* Object unloaded <BOOL>
|
* Object unloaded <BOOL>
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
@ -29,7 +29,7 @@ if ((count _emptyPosAGL) != 3) exitWith {
|
|||||||
TRACE_4("Could not find unload pos",_vehicle,getPosASL _vehicle,isTouchingGround _vehicle,speed _vehicle);
|
TRACE_4("Could not find unload pos",_vehicle,getPosASL _vehicle,isTouchingGround _vehicle,speed _vehicle);
|
||||||
if ((!isNull _unloader) && {_unloader == ACE_player}) then {
|
if ((!isNull _unloader) && {_unloader == ACE_player}) then {
|
||||||
//display text saying there are no safe places to exit the vehicle
|
//display text saying there are no safe places to exit the vehicle
|
||||||
["displayTextStructured", [localize ELSTRING(common,NoRoomToUnload)]] call EFUNC(common,localEvent);
|
[localize ELSTRING(common,NoRoomToUnload)] call EFUNC(common,displayTextStructured);
|
||||||
};
|
};
|
||||||
false
|
false
|
||||||
};
|
};
|
||||||
@ -52,7 +52,7 @@ if (_item isEqualType objNull) then {
|
|||||||
detach _item;
|
detach _item;
|
||||||
// hideObjectGlobal must be executed before setPos to ensure light objects are rendered correctly
|
// hideObjectGlobal must be executed before setPos to ensure light objects are rendered correctly
|
||||||
// do both on server to ensure they are executed in the correct order
|
// do both on server to ensure they are executed in the correct order
|
||||||
["ServerUnloadCargo", [_item, _emptyPosAGL]] call EFUNC(common,serverEvent);
|
[QGVAR(serverUnload), [_item, _emptyPosAGL]] call CBA_fnc_serverEvent;
|
||||||
} else {
|
} else {
|
||||||
private _newItem = createVehicle [_item, _emptyPosAGL, [], 0, ""];
|
private _newItem = createVehicle [_item, _emptyPosAGL, [], 0, ""];
|
||||||
_newItem setPosASL (AGLtoASL _emptyPosAGL);
|
_newItem setPosASL (AGLtoASL _emptyPosAGL);
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
* Arguments:
|
* Arguments:
|
||||||
* 0: Object <OBJECT>
|
* 0: Object <OBJECT>
|
||||||
*
|
*
|
||||||
* Return value:
|
* Return Value:
|
||||||
* None
|
* None
|
||||||
*
|
*
|
||||||
* Example:
|
* Example:
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#define COMPONENT cargo
|
#define COMPONENT cargo
|
||||||
|
#define COMPONENT_BEAUTIFIED Cargo
|
||||||
#include "\z\ace\addons\main\script_mod.hpp"
|
#include "\z\ace\addons\main\script_mod.hpp"
|
||||||
|
|
||||||
// #define DEBUG_MODE_FULL
|
// #define DEBUG_MODE_FULL
|
||||||
|
@ -65,7 +65,7 @@
|
|||||||
<Czech>Povolit náklad</Czech>
|
<Czech>Povolit náklad</Czech>
|
||||||
<Spanish>Habilitar carga</Spanish>
|
<Spanish>Habilitar carga</Spanish>
|
||||||
<Italian>Abilita Cargo</Italian>
|
<Italian>Abilita Cargo</Italian>
|
||||||
<French>Activer la cargaison</French>
|
<French>Activer la mise en cargaison</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_ModuleSettings_enable_Description">
|
<Key ID="STR_ACE_Cargo_ModuleSettings_enable_Description">
|
||||||
<English>Enable the load in cargo module</English>
|
<English>Enable the load in cargo module</English>
|
||||||
@ -76,7 +76,7 @@
|
|||||||
<Spanish>Habilitar la carga en el módulo de carga</Spanish>
|
<Spanish>Habilitar la carga en el módulo de carga</Spanish>
|
||||||
<Czech>Umožňuje naložit předměty do nákladového prostoru vozidla</Czech>
|
<Czech>Umožňuje naložit předměty do nákladového prostoru vozidla</Czech>
|
||||||
<Italian>Abilita il modulo di caricamento in cargo</Italian>
|
<Italian>Abilita il modulo di caricamento in cargo</Italian>
|
||||||
<French>Activer le chargement dans le module de cargaison.</French>
|
<French>Active le chargement de cargaison dans un vehicule</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_SettingsModule_DisplayName">
|
<Key ID="STR_ACE_Cargo_SettingsModule_DisplayName">
|
||||||
<English>Cargo Settings</English>
|
<English>Cargo Settings</English>
|
||||||
@ -87,7 +87,7 @@
|
|||||||
<Czech>Nastavení nákladu</Czech>
|
<Czech>Nastavení nákladu</Czech>
|
||||||
<Spanish>Ajustes de carga</Spanish>
|
<Spanish>Ajustes de carga</Spanish>
|
||||||
<Italian>Impostazioni Cargo</Italian>
|
<Italian>Impostazioni Cargo</Italian>
|
||||||
<French>Réglages de cargaison</French>
|
<French>Paramètres de cargaison</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_SettingsModule_Description">
|
<Key ID="STR_ACE_Cargo_SettingsModule_Description">
|
||||||
<English>Configure the cargo module settings</English>
|
<English>Configure the cargo module settings</English>
|
||||||
@ -98,7 +98,7 @@
|
|||||||
<Spanish>Configure los ajustes del módulo de carga</Spanish>
|
<Spanish>Configure los ajustes del módulo de carga</Spanish>
|
||||||
<Czech>Konfigurace nákladního modulu</Czech>
|
<Czech>Konfigurace nákladního modulu</Czech>
|
||||||
<Italian>Configura le impostazioni del modulo cargo</Italian>
|
<Italian>Configura le impostazioni del modulo cargo</Italian>
|
||||||
<French>Configurer les réglages du module de cargaison</French>
|
<French>Configure les paramètres du module de cargaison</French>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_LoadedItem">
|
<Key ID="STR_ACE_Cargo_LoadedItem">
|
||||||
<English>%1<br/>loaded into<br/>%2</English>
|
<English>%1<br/>loaded into<br/>%2</English>
|
||||||
@ -176,6 +176,7 @@
|
|||||||
<Spanish>Hacer objeto cargable</Spanish>
|
<Spanish>Hacer objeto cargable</Spanish>
|
||||||
<French>Rendre l'objet chargeable</French>
|
<French>Rendre l'objet chargeable</French>
|
||||||
<Czech>Vytvořit objekt nakladatelným</Czech>
|
<Czech>Vytvořit objekt nakladatelným</Czech>
|
||||||
|
<Portuguese>Fazer objeto carregável</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_makeLoadable_description">
|
<Key ID="STR_ACE_Cargo_makeLoadable_description">
|
||||||
<English>Sets the synced object as loadable by the cargo system.</English>
|
<English>Sets the synced object as loadable by the cargo system.</English>
|
||||||
@ -185,6 +186,7 @@
|
|||||||
<Spanish>Sincronizar un objecto para hacerlo cargable.</Spanish>
|
<Spanish>Sincronizar un objecto para hacerlo cargable.</Spanish>
|
||||||
<French>Rend l'objet synchronisé comme chargeable par le système de cargaison.</French>
|
<French>Rend l'objet synchronisé comme chargeable par le système de cargaison.</French>
|
||||||
<Czech>Nastaví synchronizované objekty nakladatelnými za pomocí Nákladního systému.</Czech>
|
<Czech>Nastaví synchronizované objekty nakladatelnými za pomocí Nákladního systému.</Czech>
|
||||||
|
<Portuguese>Seta o objeto sincronizado como carregável</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
<Key ID="STR_ACE_Cargo_makeLoadable_setSize_displayName">
|
<Key ID="STR_ACE_Cargo_makeLoadable_setSize_displayName">
|
||||||
<English>Object's Size</English>
|
<English>Object's Size</English>
|
||||||
@ -194,6 +196,7 @@
|
|||||||
<Spanish>Tamaño del objeto</Spanish>
|
<Spanish>Tamaño del objeto</Spanish>
|
||||||
<French>Taille de l'objet</French>
|
<French>Taille de l'objet</French>
|
||||||
<Czech>Velikost objektu</Czech>
|
<Czech>Velikost objektu</Czech>
|
||||||
|
<Portuguese>Tamanho do objeto</Portuguese>
|
||||||
</Key>
|
</Key>
|
||||||
</Package>
|
</Package>
|
||||||
</Project>
|
</Project>
|
@ -33,7 +33,7 @@ class Extended_InitPost_EventHandlers {
|
|||||||
};
|
};
|
||||||
class CAManBase {
|
class CAManBase {
|
||||||
class GVAR(setName) {
|
class GVAR(setName) {
|
||||||
init = QUOTE(if (local (_this select 0)) then {[ARR_2(FUNC(setName),_this)] call FUNC(execNextFrame)};);
|
init = QUOTE(if (local (_this select 0)) then {[ARR_2(FUNC(setName),_this)] call CBA_fnc_execNextFrame};);
|
||||||
};
|
};
|
||||||
class GVAR(muteUnit) {
|
class GVAR(muteUnit) {
|
||||||
init = QUOTE(_this call FUNC(muteUnitHandleInitPost));
|
init = QUOTE(_this call FUNC(muteUnitHandleInitPost));
|
||||||
|
@ -3,13 +3,13 @@ class CfgUnitInsignia {
|
|||||||
class ACE_insignia_logo {
|
class ACE_insignia_logo {
|
||||||
displayName = "ACE3";
|
displayName = "ACE3";
|
||||||
author = CSTRING(ACETeam);
|
author = CSTRING(ACETeam);
|
||||||
texture = PATHTOF(data\Insignia_ace3logo_ca.paa);
|
texture = QPATHTOF(data\Insignia_ace3logo_ca.paa);
|
||||||
textureVehicle = "";
|
textureVehicle = "";
|
||||||
};
|
};
|
||||||
class ACE_insignia_banana {
|
class ACE_insignia_banana {
|
||||||
displayName = "ABE3";
|
displayName = "ABE3";
|
||||||
author = CSTRING(ACETeam);
|
author = CSTRING(ACETeam);
|
||||||
texture = PATHTOF(data\insignia_banana_ca.paa);
|
texture = QPATHTOF(data\insignia_banana_ca.paa);
|
||||||
textureVehicle = "";
|
textureVehicle = "";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user