Merge pull request #2219 from acemod/handSignals

Hand signals enhancement
This commit is contained in:
Thomas Kooi 2015-11-26 16:04:41 +01:00
commit 15267c0433
30 changed files with 700 additions and 238 deletions

View File

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

View File

@ -0,0 +1,145 @@
class CfgVehicles {
class Man;
class CAManBase: Man {
class ACE_SelfActions {
class ADDON {
displayName = CSTRING(Gestures);
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
statement = "";
showDisabled = 1;
priority = 3.5;
icon = PATHTOF(UI\gestures_ca.paa);
class GVAR(Advance) {
displayName = CSTRING(BIgestureAdvance);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow 'gestureAdvance';);
showDisabled = 1;
priority = 1.9;
};
class GVAR(Go) {
displayName = CSTRING(BIgestureGo);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow ([ARR_2('gestureGo','gestureGoB')] select floor random 2););
showDisabled = 1;
priority = 1.8;
};
class GVAR(Follow) {
displayName = CSTRING(BIgestureFollow);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow 'gestureFollow';);
showDisabled = 1;
priority = 1.7;
};
class GVAR(Up) {
displayName = CSTRING(BIgestureUp);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow 'gestureUp';);
showDisabled = 1;
priority = 1.5;
};
class GVAR(CeaseFire) {
displayName = CSTRING(BIgestureCeaseFire);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow 'gestureCeaseFire';);
showDisabled = 1;
priority = 1.3;
};
class GVAR(Freeze) {
displayName = CSTRING(BIgestureFreeze);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow 'gestureFreeze';);
showDisabled = 1;
priority = 1.2;
};
class GVAR(Forward) {
displayName = CSTRING(forward);
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
statement = QUOTE(QUOTE(QGVAR(forward)) call FUNC(playSignal));
showDisabled = 1;
priority = 1.9;
};
class GVAR(Regroup) {
displayName = CSTRING(regroup);
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
statement = QUOTE(QUOTE(QGVAR(regroup)) call FUNC(playSignal));
showDisabled = 1;
priority = 1.8;
};
class GVAR(Stop) {
displayName = CSTRING(stop);
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
statement = QUOTE(QUOTE(QGVAR(stop)) call FUNC(playSignal));
showDisabled = 1;
priority = 1.7;
};
class GVAR(Cover) {
displayName = CSTRING(cover);
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
statement = QUOTE(QUOTE(QGVAR(cover)) call FUNC(playSignal));
showDisabled = 1;
priority = 1.6;
};
class GVAR(Point) {
displayName = CSTRING(point);
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
statement = QUOTE(QUOTE(QGVAR(point)) call FUNC(playSignal));
showDisabled = 1;
priority = 1.5;
};
class GVAR(Engage) {
displayName = CSTRING(engage);
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
statement = QUOTE(QUOTE(QGVAR(engage)) call FUNC(playSignal));
showDisabled = 1;
priority = 1.4;
};
class GVAR(Hold) {
displayName = CSTRING(hold);
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
statement = QUOTE(QUOTE(QGVAR(hold)) call FUNC(playSignal));
showDisabled = 1;
priority = 1.3;
};
class GVAR(Warning) {
displayName = CSTRING(warning);
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
statement = QUOTE(QUOTE(QGVAR(warning)) call FUNC(playSignal));
showDisabled = 1;
priority = 1.2;
};
/*
class class GVAR(Yes) {
displayName = ECSTRING(common,Yes);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow ([ARR_2('gestureYes','gestureNod')] select floor random 2););
showDisabled = 1;
priority = 1.1;
hotkey = "8";
};
class class GVAR(No) {
displayName = ECSTRING(common,No);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow 'gestureNo';);
showDisabled = 1;
priority = 1.0;
hotkey = "9";
};
class class GVAR(Hi) {
displayName = CSTRING(Gestures_Hi);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow ([ARR_3('gestureHi','gestureHiB','gestureHiC')] select floor random 3););
showDisabled = 1;
priority = 0.9;
hotkey = "0";
};
*/
};
};
};
};

View File

@ -0,0 +1,38 @@
#include "script_component.hpp"
if (!hasInterface) exitWith {};
#include "key.sqf"
// reload mutex, you can't play signal while reloading
GVAR(ReloadMutex) = true;
// Event for main display to be loaded:
["mainDisplayLoaded", {
// handle reloading
(findDisplay 46) displayAddEventHandler ["KeyDown", {
if ((_this select 1) in actionKeys "ReloadMagazine") then {
if ((isNull ACE_player) || {!alive ACE_player}) exitWith {false};
private _weapon = currentWeapon ACE_player;
if (_weapon != "") then {
GVAR(ReloadMutex) = false;
private _gesture = getText (configfile >> "CfgWeapons" >> _weapon >> "reloadAction");
private _isLauncher = _weapon isKindOf ["Launcher", (configFile >> "CfgWeapons")];
private _config = ["CfgGesturesMale", "CfgMovesMaleSdr"] select _isLauncher;
private _duration = getNumber (configfile >> _config >> "States" >> _gesture >> "speed");
if (_duration != 0) then {
_duration = if (_duration < 0) then { abs _duration } else { 1 / _duration };
} else {
_duration = 3;
};
TRACE_2("Reloading, blocking gestures",_weapon,_duration);
[{GVAR(ReloadMutex) = true;}, [], _duration] call EFUNC(common,waitAndExecute);
};
};
false
}];
}] call EFUNC(common,addEventHandler);

View File

@ -0,0 +1,7 @@
#include "script_component.hpp"
ADDON = false;
PREP(playSignal);
ADDON = true;

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,200 @@
class CfgMovesBasic {
class ManActions {
GVAR(forward) = QGVAR(forward);
GVAR(stop) = QGVAR(stop);
GVAR(cover) = QGVAR(cover);
GVAR(regroup) = QGVAR(regroup);
GVAR(engage) = QGVAR(engage);
GVAR(point) = QGVAR(point);
GVAR(hold) = QGVAR(hold);
GVAR(warning) = QGVAR(warningS);
GVAR(forwardStandLowered) = QGVAR(forwardStandLowered);
GVAR(stopStandLowered) = QGVAR(stopStandLowered);
GVAR(coverStandLowered) = QGVAR(coverStandLowered);
GVAR(regroupStandLowered) = QGVAR(regroupStandLowered);
GVAR(engageStandLowered) = QGVAR(engageStandLowered);
GVAR(pointStandLowered) = QGVAR(pointStandLowered);
GVAR(holdStandLowered) = QGVAR(holdStandLowered);
GVAR(warningStandLowered) = QGVAR(warningStandLowered);
};
class Actions {
class NoActions: ManActions {
GVAR(forward)[] = {QGVAR(forward), "Gesture"};
GVAR(stop)[] = {QGVAR(stop), "Gesture"};
GVAR(cover)[] = {QGVAR(cover), "Gesture"};
GVAR(regroup)[] = {QGVAR(regroup), "Gesture"};
GVAR(engage)[] = {QGVAR(engage), "Gesture"};
GVAR(point)[] = {QGVAR(point), "Gesture"};
GVAR(hold)[] = {QGVAR(hold), "Gesture"};
GVAR(warning)[] = {QGVAR(warning), "Gesture"};
GVAR(forwardStandLowered)[] = {QGVAR(forwardStandLowered), "Gesture"};
GVAR(stopStandLowered)[] = {QGVAR(stopStandLowered), "Gesture"};
GVAR(coverStandLowered)[] = {QGVAR(coverStandLowered), "Gesture"};
GVAR(regroupStandLowered)[] = {QGVAR(regroupStandLowered), "Gesture"};
GVAR(engageStandLowered)[] = {QGVAR(engageStandLowered), "Gesture"};
GVAR(pointStandLowered)[] = {QGVAR(pointStandLowered), "Gesture"};
GVAR(holdStandLowered)[] = {QGVAR(holdStandLowered), "Gesture"};
GVAR(warningStandLowered)[] = {QGVAR(warningStandLowered), "Gesture"};
};
};
};
class CfgGesturesMale {
class Default;
class BlendAnims {
GVAR(LeftArm)[] = {
"LeftShoulder", 1,
"LeftArm", 1,
"LeftArmRoll", 1,
"LeftForeArm", 1,
"LeftForeArmRoll", 1,
"LeftHand", 1,
"LeftHandIndex1", 1,
"LeftHandIndex2", 1,
"LeftHandIndex3", 1,
"LeftHandMiddle1", 1,
"LeftHandMiddle2", 1,
"LeftHandMiddle3", 1,
"LeftHandPinky1", 1,
"LeftHandMiddle2", 1,
"LeftHandMiddle3", 1,
"LeftHandPinky1", 1,
"LeftHandPinky2", 1,
"LeftHandPinky3", 1,
"LeftHandRing", 1,
"LeftHandRing1", 1,
"LeftHandRing2", 1,
"LeftHandRing3", 1,
"LeftHandThumb1", 1,
"LeftHandThumb2", 1,
"LeftHandThumb3", 1
};
};
class States {
class GVAR(Base): Default {
actions = "NoActions";
canPullTrigger = 0;
connectAs = "";
connectFrom[] = {};
connectTo[] = {};
disableWeapons = 0;
enableBinocular = 1;
enableMissile = 1;
enableOptics = 0;
equivalentTo = "";
file = "\A3\anims_f\Data\anim\Sdr\gst\GestureHi.rtm";
forceAim = 0;
headBobMode = 0;
headBobStrength = 0;
interpolateFrom[] = {};
interpolateTo[] = {};
interpolateWith[] = {};
interpolationRestart = 0;
interpolationSpeed = 6;
looped = 0;
mask = QGVAR(LeftArm);
minPlayTime = 0.5;
preload = 0;
ragdoll = 0;
relSpeedMax = 1;
relSpeedMin = 1;
showHandGun = 0;
showItemInHand = 0;
showItemInRightHand = 0;
showWeaponAim = 1;
soundEdge[] = {0.5,1};
soundEnabled = 1;
soundOverride = "";
speed = -2;
static = 0;
terminal = 0;
Walkcycles = 1;
weaponIK = 1;
leftHandIKBeg = 1;
leftHandIKCurve[] = {0, 1, 0.1, 0, 0.8, 0, 1, 1};
leftHandIKEnd = 1;
rightHandIKBeg = 1;
rightHandIKCurve[] = {1};
rightHandIKEnd = 1;
};
class GVAR(forward): GVAR(Base) {
file = QUOTE(PATHTOF(anim\ace_forward.rtm));
speed = 1;
};
class GVAR(forwardStandLowered): GVAR(forward) {
file = QUOTE(PATHTOF(anim\ace_forward_stand_lowered.rtm));
};
class GVAR(stop): GVAR(forward) {
file = QUOTE(PATHTOF(anim\ace_stop.rtm));
speed = 0.6;
};
class GVAR(stopStandLowered): GVAR(stop) {
file = QUOTE(PATHTOF(anim\ace_stop_stand_lowered.rtm));
};
class GVAR(cover): GVAR(forward) {
file = QUOTE(PATHTOF(anim\ace_cover.rtm));
speed = 0.8;
};
class GVAR(coverStandLowered): GVAR(cover) {
file = QUOTE(PATHTOF(anim\ace_cover_stand_lowered.rtm));
};
class GVAR(regroup): GVAR(forward) {
file = QUOTE(PATHTOF(anim\ace_regroup.rtm));
speed = 0.8;
};
class GVAR(regroupStandLowered): GVAR(regroup) {
file = QUOTE(PATHTOF(anim\ace_regroup_stand_lowered.rtm));
};
class GVAR(engage): GVAR(forward) {
file = QUOTE(PATHTOF(anim\ace_engage.rtm));
speed = 0.9;
};
class GVAR(engageStandLowered): GVAR(engage) {
file = QUOTE(PATHTOF(anim\ace_engage_stand_lowered.rtm));
};
class GVAR(point): GVAR(forward) {
file = QUOTE(PATHTOF(anim\ace_point.rtm));
speed = 0.8;
};
class GVAR(pointStandLowered): GVAR(point) {
file = QUOTE(PATHTOF(anim\ace_point_stand_lowered.rtm));
};
class GVAR(hold): GVAR(forward) {
file = QUOTE(PATHTOF(anim\ace_hold.rtm));
speed = 0.8;
};
class GVAR(holdStandLowered): GVAR(hold) {
file = QUOTE(PATHTOF(anim\ace_hold_stand_lowered.rtm));
};
class GVAR(warning): GVAR(forward) {
file = QUOTE(PATHTOF(anim\ace_warning.rtm));
speed = 0.8;
};
class GVAR(warningStandLowered): GVAR(warning) {
file = QUOTE(PATHTOF(anim\ace_warning_stand_lowered.rtm));
};
};
};

View File

@ -0,0 +1,17 @@
#include "script_component.hpp"
class CfgPatches {
class ADDON {
units[] = {};
weapons[] = {};
requiredVersion = REQUIRED_VERSION;
requiredAddons[] = {"ace_interact_menu"};
author[] = {"joko // Jonas", "Emperias", "Zigomarvin"};
authorUrl = "https://github.com/commy2/";
VERSION_CONFIG;
};
};
#include "CfgMovesBasic.hpp"
#include "CfgEventHandlers.hpp"
#include "CfgVehicles.hpp"

View File

@ -0,0 +1,33 @@
/*
* Author: joko // Jonas, Emperias, Zigomarvin
* Detect if the player and play the Gesture Animation
*
* Arguments:
* Animation <STRING>
*
* Return Value:
* <BOOL>
*
* Example:
* "GeniusAnimation" call ace_gestures_fnc_playSignal
*
* Public: No
*/
#include "script_component.hpp"
TRACE_1("params",_this);
if (!GVAR(ReloadMutex)) exitWith {false};
private _gesture = if (_this select [0,2] == "BI") then {
_this select [2]
} else {
if (((animationState ACE_player) select [0, 12]) in ["amovpercmstp", "amovpercmwlk", "amovpercmtac"] && weaponLowered ACE_player) then {
format ["%1StandLowered", _this]
} else {
_this
};
};
ACE_player playAction _gesture;
true

View File

@ -0,0 +1 @@
#include "\z\ace\addons\gestures\script_component.hpp"

38
addons/gestures/key.sqf Normal file
View File

@ -0,0 +1,38 @@
#include "\a3\editor_f\Data\Scripts\dikCodes.h"
{
_x params ["_currentName","_key"];
if (_currentName select [0,1] == "BI") then {
_currentName = _currentName select [2];
};
private _code = (compile format [QUOTE(QUOTE(QGVAR(%1)) call FUNC(playSignal);), _currentName]);
[
"ACE3 Gestures",
_currentName,
localize format[LSTRING(%1), _currentName],
_code,
{false},
[_key, [false, (_key != -1), false]],
false
] call CBA_fnc_addKeybind;
false
} count [
["stop", DIK_NUMPAD2],
["cover", DIK_NUMPAD3],
["forward", DIK_NUMPAD4],
["regroup", DIK_NUMPAD5],
["engage", DIK_NUMPAD6],
["point", DIK_NUMPAD7],
["hold", DIK_NUMPAD8],
["warning", DIK_NUMPAD9],
["BIgestureGo", -1],
["BIgestureAdvance", -1],
["BIgestureFollow", -1],
["BIgestureUp", -1],
["BIgestureFreeze", -1],
["BIgestureCeaseFire", -1]
];

View File

@ -0,0 +1,12 @@
#define COMPONENT Gestures
#include "\z\ace\addons\main\script_mod.hpp"
#ifdef DEBUG_ENABLED_GESTURES
#define DEBUG_MODE_FULL
#endif
#ifdef DEBUG_SETTINGS_GESTURES
#define DEBUG_SETTINGS DEBUG_SETTINGS_GESTURES
#endif
#include "\z\ace\addons\main\script_macros.hpp"

View File

@ -0,0 +1,198 @@
<?xml version="1.0" encoding="utf-8"?>
<Project name="ACE">
<Package name="Gestures">
<Key ID="STR_ACE_Gestures_Name">
<English>ACE Gestures</English>
<German>ACE Gesten</German>
<Polish>ACE Gesty</Polish>
<Czech>ACE Posunky</Czech>
<French>ACE Signaux</French>
<Hungarian>ACE Kézjelek</Hungarian>
<Italian>ACE Gesti</Italian>
<Portuguese>ACE Gestos</Portuguese>
<Russian>ACE Жесты</Russian>
<Spanish>ACE Gestos</Spanish>
</Key>
<Key ID="STR_ACE_Gestures_Gestures">
<English>Gestures</English>
<German>Gesten</German>
<Spanish>Gestos</Spanish>
<Polish>Gesty</Polish>
<Czech>Posunky</Czech>
<French>Signaux</French>
<Russian>Жесты</Russian>
<Hungarian>Kézjelek</Hungarian>
<Portuguese>Gestos</Portuguese>
<Italian>Gesti</Italian>
</Key>
<Key ID="STR_ACE_Gestures_BIgestureAdvance">
<English>Advance</English>
<German>Vordringen</German>
<Spanish>Avanzar</Spanish>
<Polish>Naprzód</Polish>
<Czech>Postoupit</Czech>
<French>Avancer</French>
<Russian>Продвигаться</Russian>
<Hungarian>Előre</Hungarian>
<Portuguese>Avançar</Portuguese>
<Italian>Avanzare</Italian>
</Key>
<Key ID="STR_ACE_Gestures_BIgestureGo">
<English>Go</English>
<German>Los</German>
<Spanish>Adelante</Spanish>
<Polish>Szybko</Polish>
<Czech>Jít</Czech>
<French>Aller</French>
<Russian>Идти</Russian>
<Hungarian>Mozgás</Hungarian>
<Portuguese>Mover-se</Portuguese>
<Italian>Muoversi</Italian>
</Key>
<Key ID="STR_ACE_Gestures_BIgestureFollow">
<English>Follow</English>
<German>Folgen</German>
<Spanish>Seguirme</Spanish>
<Polish>Za mną</Polish>
<Czech>Následovat</Czech>
<French>Suivre</French>
<Russian>Следовать</Russian>
<Hungarian>Utánam</Hungarian>
<Portuguese>Seguir</Portuguese>
<Italian>Seguire</Italian>
</Key>
<Key ID="STR_ACE_Gestures_BIgestureUp">
<English>Up</English>
<German>Aufstehen</German>
<Spanish>Arriba</Spanish>
<Polish>Do góry</Polish>
<Czech>Vztyk</Czech>
<French>Debout</French>
<Russian>Вверх</Russian>
<Hungarian>Fel</Hungarian>
<Portuguese>Acima</Portuguese>
<Italian>Alzarsi</Italian>
</Key>
<Key ID="STR_ACE_Gestures_BIgestureCeaseFire">
<English>Cease Fire</English>
<German>Feuer einstellen</German>
<Spanish>Alto el fuego</Spanish>
<Polish>Wstrzymać ogień</Polish>
<Czech>Zastavit palbu</Czech>
<French>Halte au feu</French>
<Russian>Прекратить огонь</Russian>
<Hungarian>Tüzet szüntess</Hungarian>
<Portuguese>Cessar Fogo</Portuguese>
<Italian>Cessare il Fuoco</Italian>
</Key>
<Key ID="STR_ACE_Gestures_BIGesturesPoint">
<English>Point</English>
<German>Zeigen</German>
<Spanish>Señalar</Spanish>
<Polish>Wskazać</Polish>
<Czech>Ukázat</Czech>
<French>Pointer</French>
<Russian>Точка</Russian>
<Hungarian>Mutat</Hungarian>
<Portuguese>Apontar</Portuguese>
<Italian>Puntare a</Italian>
</Key>
<Key ID="STR_ACE_Gestures_BIgestureFreeze">
<English>Freeze</English>
<German>Keine Bewegung</German>
<Spanish>Alto</Spanish>
<Polish>Stać</Polish>
<Czech>Stát</Czech>
<French>Halte</French>
<Russian>Замереть</Russian>
<Hungarian>Állj</Hungarian>
<Portuguese>Alto</Portuguese>
<Italian>Fermi</Italian>
</Key>
<!-- STOP -->
<Key ID="STR_ACE_Gestures_stop">
<English>Stop</English>
<French>Stop</French>
<German>Stop</German>
<Polish>Stop</Polish>
</Key>
<!-- COVER -->
<Key ID="STR_ACE_Gestures_cover">
<English>Cover</English>
<German>Deckung</German>
<Spanish>Cubrirse</Spanish>
<Polish>Do osłony</Polish>
<Czech>Krýt se</Czech>
<French>A couvert</French>
<Russian>Укрыться</Russian>
<Hungarian>Fedezékbe</Hungarian>
<Portuguese>Proteger-se</Portuguese>
<Italian>Copertura</Italian>
</Key>
<!-- REGROUP -->
<Key ID="STR_ACE_Gestures_regroup">
<English>Rally up</English>
<French>Regroupement</French>
<German>Sammeln</German>
<Polish>Zbiórka</Polish>
</Key>
<!-- FORWARD -->
<Key ID="STR_ACE_Gestures_forward">
<English>Move forward</English>
<French>En avant</French>
<German>Vorwärts Bewegen</German>
<Polish>Naprzód</Polish>
</Key>
<!-- ENGAGE -->
<Key ID="STR_ACE_Gestures_engage">
<English>Engage</English>
<French>Engager</French>
<Polish>Atak</Polish>
</Key>
<!-- POINT -->
<Key ID="STR_ACE_Gestures_point">
<English>Point</English>
<French>Pointer</French>
<German>Zeigen</German>
<Polish>Wskaż</Polish>
</Key>
<!-- HOLD -->
<Key ID="STR_ACE_Gestures_hold">
<English>Hold</English>
<French>Tenir</French>
<German>Anhalten</German>
<Polish>Wstrzymać</Polish>
</Key>
<!-- WARNING -->
<Key ID="STR_ACE_Gestures_warning">
<English>Warning</English>
<French>Attention</French>
<German>Achtung</German>
<Polish>Uwaga</Polish>
</Key>
<Key ID="STR_ACE_Gestures_Hi">
<English>Hi</English>
<German>Hallo</German>
<Spanish>Hola</Spanish>
<Polish>Witaj</Polish>
<Czech>Ahoj</Czech>
<French>Salut</French>
<Russian>Привет</Russian>
<Hungarian>Helló</Hungarian>
<Portuguese>Olá</Portuguese>
<Italian>Ciao</Italian>
</Key>
<Key ID="STR_ACE_Gestures_Attack">
<English>Attack</English>
<German>Angreifen</German>
<Spanish>Atacar</Spanish>
<Polish>Do ataku</Polish>
<Czech>Zaútočit</Czech>
<French>Attaquer</French>
<Russian>Атаковать</Russian>
<Hungarian>Támadás</Hungarian>
<Portuguese>Atacar</Portuguese>
<Italian>Attaccare</Italian>
</Key>
</Package>
</Project>

View File

@ -297,112 +297,6 @@ class CfgVehicles {
hotkey = "M";
};
};
class ACE_Gestures {
displayName = CSTRING(Gestures);
condition = "canStand _target";
statement = "";
showDisabled = 1;
priority = 3.5;
icon = PATHTOF(UI\gestures_ca.paa);
hotkey = "G";
/*class ACE_Gesture_Advance {
displayName = CSTRING(Gestures_Attack);
condition = "canStand _target";
statement = "_target playActionNow 'gestureAttack';";
showDisabled = 1;
priority = 2.0;
};*/
class ACE_Gesture_Advance {
displayName = CSTRING(Gestures_Advance);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow 'gestureAdvance';);
showDisabled = 1;
priority = 1.9;
hotkey = "1";
};
class ACE_Gesture_Go {
displayName = CSTRING(Gestures_Go);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow ([ARR_2('gestureGo','gestureGoB')] select floor random 2););
showDisabled = 1;
priority = 1.8;
hotkey = "2";
};
class ACE_Gesture_Follow {
displayName = CSTRING(Gestures_Follow);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow 'gestureFollow';);
showDisabled = 1;
priority = 1.7;
hotkey = "3";
};
/*class ACE_Gesture_Point {
displayName = CSTRING(Gestures_Point);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow 'gesturePoint';);
showDisabled = 1;
priority = 1.6;
};*/
class ACE_Gesture_Up {
displayName = CSTRING(Gestures_Up);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow 'gestureUp';);
showDisabled = 1;
priority = 1.5;
hotkey = "4";
};
class ACE_Gesture_Cover {
displayName = CSTRING(Gestures_Cover);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow 'gestureCover';);
showDisabled = 1;
priority = 1.4;
hotkey = "5";
};
class ACE_Gesture_CeaseFire {
displayName = CSTRING(Gestures_Cease_Fire);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow 'gestureCeaseFire';);
showDisabled = 1;
priority = 1.3;
hotkey = "6";
};
class ACE_Gesture_Freeze {
displayName = CSTRING(Gestures_Freeze);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow 'gestureFreeze';);
showDisabled = 1;
priority = 1.2;
hotkey = "7";
};
class ACE_Gesture_Yes {
displayName = ECSTRING(common,Yes);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow ([ARR_2('gestureYes','gestureNod')] select floor random 2););
showDisabled = 1;
priority = 1.1;
hotkey = "8";
};
class ACE_Gesture_No {
displayName = ECSTRING(common,No);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow 'gestureNo';);
showDisabled = 1;
priority = 1.0;
hotkey = "9";
};
class ACE_Gesture_Hi {
displayName = CSTRING(Gestures_Hi);
condition = QUOTE(canStand _target);
statement = QUOTE(_target playActionNow ([ARR_3('gestureHi','gestureHiB','gestureHiC')] select floor random 3););
showDisabled = 1;
priority = 0.9;
hotkey = "0";
};
};
class ACE_Equipment {
displayName = CSTRING(Equipment);
condition = QUOTE(true);

View File

@ -253,138 +253,6 @@
<Portuguese>&lt;&lt; Voltar</Portuguese>
<Italian>&lt;&lt; Indietro</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Gestures">
<English>Gestures</English>
<German>Gesten</German>
<Spanish>Gestos</Spanish>
<Polish>Gesty</Polish>
<Czech>Posunky</Czech>
<French>Signaux</French>
<Russian>Жесты</Russian>
<Hungarian>Kézjelek</Hungarian>
<Portuguese>Gestos</Portuguese>
<Italian>Gesti</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Gestures_Attack">
<English>Attack</English>
<German>Angreifen</German>
<Spanish>Atacar</Spanish>
<Polish>Do ataku</Polish>
<Czech>Zaútočit</Czech>
<French>Attaquer</French>
<Russian>Атаковать</Russian>
<Hungarian>Támadás</Hungarian>
<Portuguese>Atacar</Portuguese>
<Italian>Attaccare</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Gestures_Advance">
<English>Advance</English>
<German>Vordringen</German>
<Spanish>Avanzar</Spanish>
<Polish>Naprzód</Polish>
<Czech>Postoupit</Czech>
<French>Avancer</French>
<Russian>Продвигаться</Russian>
<Hungarian>Előre</Hungarian>
<Portuguese>Avançar</Portuguese>
<Italian>Avanzare</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Gestures_Go">
<English>Go</English>
<German>Los</German>
<Spanish>Adelante</Spanish>
<Polish>Szybko</Polish>
<Czech>Jít</Czech>
<French>Aller</French>
<Russian>Идти</Russian>
<Hungarian>Mozgás</Hungarian>
<Portuguese>Mover-se</Portuguese>
<Italian>Muoversi</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Gestures_Follow">
<English>Follow</English>
<German>Folgen</German>
<Spanish>Seguirme</Spanish>
<Polish>Za mną</Polish>
<Czech>Následovat</Czech>
<French>Suivre</French>
<Russian>Следовать</Russian>
<Hungarian>Utánam</Hungarian>
<Portuguese>Seguir</Portuguese>
<Italian>Seguire</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Gestures_Point">
<English>Point</English>
<German>Zeigen</German>
<Spanish>Señalar</Spanish>
<Polish>Wskazać</Polish>
<Czech>Ukázat</Czech>
<French>Pointer</French>
<Russian>Точка</Russian>
<Hungarian>Mutat</Hungarian>
<Portuguese>Apontar</Portuguese>
<Italian>Puntare a</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Gestures_Up">
<English>Up</English>
<German>Aufstehen</German>
<Spanish>Arriba</Spanish>
<Polish>Do góry</Polish>
<Czech>Vztyk</Czech>
<French>Debout</French>
<Russian>Вверх</Russian>
<Hungarian>Fel</Hungarian>
<Portuguese>Acima</Portuguese>
<Italian>Alzarsi</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Gestures_Cover">
<English>Cover</English>
<German>Deckung</German>
<Spanish>Cubrirse</Spanish>
<Polish>Do osłony</Polish>
<Czech>Krýt se</Czech>
<French>A couvert</French>
<Russian>Укрыться</Russian>
<Hungarian>Fedezékbe</Hungarian>
<Portuguese>Proteger-se</Portuguese>
<Italian>Copertura</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Gestures_Cease_Fire">
<English>Cease Fire</English>
<German>Feuer einstellen</German>
<Spanish>Alto el fuego</Spanish>
<Polish>Wstrzymać ogień</Polish>
<Czech>Zastavit palbu</Czech>
<French>Halte au feu</French>
<Russian>Прекратить огонь</Russian>
<Hungarian>Tüzet szüntess</Hungarian>
<Portuguese>Cessar Fogo</Portuguese>
<Italian>Cessare il Fuoco</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Gestures_Freeze">
<English>Freeze</English>
<German>Keine Bewegung</German>
<Spanish>Alto</Spanish>
<Polish>Stać</Polish>
<Czech>Stát</Czech>
<French>Halte</French>
<Russian>Замереть</Russian>
<Hungarian>Állj</Hungarian>
<Portuguese>Alto</Portuguese>
<Italian>Fermi</Italian>
</Key>
<Key ID="STR_ACE_Interaction_Gestures_Hi">
<English>Hi</English>
<German>Hallo</German>
<Spanish>Hola</Spanish>
<Polish>Witaj</Polish>
<Czech>Ahoj</Czech>
<French>Salut</French>
<Russian>Привет</Russian>
<Hungarian>Helló</Hungarian>
<Portuguese>Olá</Portuguese>
<Italian>Ciao</Italian>
</Key>
<Key ID="STR_ACE_Interaction_WeaponOnBack">
<English>Put weapon on back</English>
<German>Waffe wegstecken</German>