mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
extract Gestures to own Module and Port THS to ACE
This commit is contained in:
parent
cb65a67a3e
commit
bfcf057dab
11
addons/gestures/CfgEventHandlers.hpp
Normal file
11
addons/gestures/CfgEventHandlers.hpp
Normal 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));
|
||||||
|
};
|
||||||
|
};
|
158
addons/gestures/CfgVehicles.hpp
Normal file
158
addons/gestures/CfgVehicles.hpp
Normal file
@ -0,0 +1,158 @@
|
|||||||
|
class CfgVehicles {
|
||||||
|
|
||||||
|
class Man;
|
||||||
|
class CAManBase: Man {
|
||||||
|
class ACE_SelfActions {
|
||||||
|
class ACE_Gestures {
|
||||||
|
displayName = CSTRING(Gestures);
|
||||||
|
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
|
||||||
|
statement = "";
|
||||||
|
showDisabled = 1;
|
||||||
|
priority = 3.5;
|
||||||
|
icon = PATHTOF(UI\gestures_ca.paa);
|
||||||
|
class ACE_Gesture_Advance {
|
||||||
|
displayName = CSTRING(BIgestureAdvance);
|
||||||
|
condition = QUOTE(canStand _target);
|
||||||
|
statement = QUOTE(_target playActionNow 'gestureAdvance';);
|
||||||
|
showDisabled = 1;
|
||||||
|
priority = 1.9;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ACE_Gesture_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 ACE_Gesture_Follow {
|
||||||
|
displayName = CSTRING(BIgestureFollow);
|
||||||
|
condition = QUOTE(canStand _target);
|
||||||
|
statement = QUOTE(_target playActionNow 'gestureFollow';);
|
||||||
|
showDisabled = 1;
|
||||||
|
priority = 1.7;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ACE_Gesture_Up {
|
||||||
|
displayName = CSTRING(BIgestureUp);
|
||||||
|
condition = QUOTE(canStand _target);
|
||||||
|
statement = QUOTE(_target playActionNow 'gestureUp';);
|
||||||
|
showDisabled = 1;
|
||||||
|
priority = 1.5;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ACE_Gesture_CeaseFire {
|
||||||
|
displayName = CSTRING(BIgestureCeaseFire);
|
||||||
|
condition = QUOTE(canStand _target);
|
||||||
|
statement = QUOTE(_target playActionNow 'gestureCeaseFire';);
|
||||||
|
showDisabled = 1;
|
||||||
|
priority = 1.3;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ACE_Gesture_Freeze {
|
||||||
|
displayName = CSTRING(BIgestureFreeze);
|
||||||
|
condition = QUOTE(canStand _target);
|
||||||
|
statement = QUOTE(_target playActionNow 'gestureFreeze';);
|
||||||
|
showDisabled = 1;
|
||||||
|
priority = 1.2;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ACE_Gesture_Forward {
|
||||||
|
displayName = CSTRING(forward);
|
||||||
|
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
|
||||||
|
statement = QUOTE(QUOTE(QGVAR(forward)) call FUNC(playSignal));
|
||||||
|
showDisabled = 1;
|
||||||
|
priority = 1.9;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ACE_Gesture_Regroup {
|
||||||
|
displayName = CSTRING(regroup);
|
||||||
|
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
|
||||||
|
statement = QUOTE(QUOTE(QGVAR(regroup)) call FUNC(playSignal));
|
||||||
|
showDisabled = 1;
|
||||||
|
priority = 1.8;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ACE_Gesture_Stop {
|
||||||
|
displayName = CSTRING(stop);
|
||||||
|
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
|
||||||
|
statement = QUOTE(QUOTE(QGVAR(stop)) call FUNC(playSignal));
|
||||||
|
showDisabled = 1;
|
||||||
|
priority = 1.7;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ACE_Gesture_Cover {
|
||||||
|
displayName = CSTRING(cover);
|
||||||
|
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
|
||||||
|
statement = QUOTE(QUOTE(QGVAR(cover)) call FUNC(playSignal));
|
||||||
|
showDisabled = 1;
|
||||||
|
priority = 1.6;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ACE_Gesture_Point {
|
||||||
|
displayName = CSTRING(point);
|
||||||
|
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
|
||||||
|
statement = QUOTE(QUOTE(QGVAR(point)) call FUNC(playSignal));
|
||||||
|
showDisabled = 1;
|
||||||
|
priority = 1.5;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ACE_Gesture_Engage {
|
||||||
|
displayName = CSTRING(engage);
|
||||||
|
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
|
||||||
|
statement = QUOTE(QUOTE(QGVAR(engage)) call FUNC(playSignal));
|
||||||
|
showDisabled = 1;
|
||||||
|
priority = 1.4;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ACE_Gesture_Hold {
|
||||||
|
displayName = CSTRING(hold);
|
||||||
|
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
|
||||||
|
statement = QUOTE(QUOTE(QGVAR(hold)) call FUNC(playSignal));
|
||||||
|
showDisabled = 1;
|
||||||
|
priority = 1.3;
|
||||||
|
};
|
||||||
|
|
||||||
|
class ACE_Gesture_Warning {
|
||||||
|
displayName = CSTRING(warning);
|
||||||
|
condition = QUOTE(canStand _target && GVAR(ReloadMutex));
|
||||||
|
statement = QUOTE(QUOTE(QGVAR(warning)) call FUNC(playSignal));
|
||||||
|
showDisabled = 1;
|
||||||
|
priority = 1.2;
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
*/
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
BIN
addons/gestures/UI/gestures_ca.paa
Normal file
BIN
addons/gestures/UI/gestures_ca.paa
Normal file
Binary file not shown.
36
addons/gestures/XEH_postInit.sqf
Normal file
36
addons/gestures/XEH_postInit.sqf
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
#include "key.sqf"
|
||||||
|
|
||||||
|
// reload mutex, you can't play signal while reloading
|
||||||
|
GVAR(ReloadMutex) = true;
|
||||||
|
|
||||||
|
// PFH for Reloading
|
||||||
|
[{
|
||||||
|
if (isNull (findDisplay 46)) exitWith {};
|
||||||
|
// handle reloading
|
||||||
|
(findDisplay 46) displayAddEventHandler ["KeyDown", {
|
||||||
|
if ((_this select 1) in actionKeys "ReloadMagazine") then {
|
||||||
|
_weapon = currentWeapon ACE_player;
|
||||||
|
|
||||||
|
if (_weapon != "") then {
|
||||||
|
GVAR(ReloadMutex) = false;
|
||||||
|
|
||||||
|
_gesture = getText (configfile >> "CfgWeapons" >> _this >> "reloadAction");
|
||||||
|
_isLauncher = "Launcher" in ([configFile >> "CfgWeapons" >> _this, true] call BIS_fnc_returnParents);
|
||||||
|
_config = ["CfgGesturesMale", "CfgMovesMaleSdr"] select _isLauncher;
|
||||||
|
_duration = getNumber (configfile >> _config >> "States" >> _gesture >> "speed");
|
||||||
|
|
||||||
|
if (_duration != 0) then {
|
||||||
|
_duration = if (_duration < 0) then { abs _duration } else { 1 / _duration };
|
||||||
|
} else {
|
||||||
|
_duration = 3;
|
||||||
|
};
|
||||||
|
|
||||||
|
[{GVAR(ReloadMutex) = true;}, [], _duration] call EFUNC(common,waitAndExecute);
|
||||||
|
};
|
||||||
|
};
|
||||||
|
false
|
||||||
|
}];
|
||||||
|
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
||||||
|
}, 0,[]] call CBA_fnc_addPerFrameHandler;
|
7
addons/gestures/XEH_preInit.sqf
Normal file
7
addons/gestures/XEH_preInit.sqf
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
ADDON = false;
|
||||||
|
|
||||||
|
PREP(playSignal);
|
||||||
|
|
||||||
|
ADDON = true;
|
BIN
addons/gestures/anim/ace_cover.rtm
Normal file
BIN
addons/gestures/anim/ace_cover.rtm
Normal file
Binary file not shown.
BIN
addons/gestures/anim/ace_cover_stand_lowered.rtm
Normal file
BIN
addons/gestures/anim/ace_cover_stand_lowered.rtm
Normal file
Binary file not shown.
BIN
addons/gestures/anim/ace_engage.rtm
Normal file
BIN
addons/gestures/anim/ace_engage.rtm
Normal file
Binary file not shown.
BIN
addons/gestures/anim/ace_engage_stand_lowered.rtm
Normal file
BIN
addons/gestures/anim/ace_engage_stand_lowered.rtm
Normal file
Binary file not shown.
BIN
addons/gestures/anim/ace_forward.rtm
Normal file
BIN
addons/gestures/anim/ace_forward.rtm
Normal file
Binary file not shown.
BIN
addons/gestures/anim/ace_forward_stand_lowered.rtm
Normal file
BIN
addons/gestures/anim/ace_forward_stand_lowered.rtm
Normal file
Binary file not shown.
BIN
addons/gestures/anim/ace_hold.rtm
Normal file
BIN
addons/gestures/anim/ace_hold.rtm
Normal file
Binary file not shown.
BIN
addons/gestures/anim/ace_hold_stand_lowered.rtm
Normal file
BIN
addons/gestures/anim/ace_hold_stand_lowered.rtm
Normal file
Binary file not shown.
BIN
addons/gestures/anim/ace_point.rtm
Normal file
BIN
addons/gestures/anim/ace_point.rtm
Normal file
Binary file not shown.
BIN
addons/gestures/anim/ace_point_stand_lowered.rtm
Normal file
BIN
addons/gestures/anim/ace_point_stand_lowered.rtm
Normal file
Binary file not shown.
BIN
addons/gestures/anim/ace_regroup.rtm
Normal file
BIN
addons/gestures/anim/ace_regroup.rtm
Normal file
Binary file not shown.
BIN
addons/gestures/anim/ace_regroup_stand_lowered.rtm
Normal file
BIN
addons/gestures/anim/ace_regroup_stand_lowered.rtm
Normal file
Binary file not shown.
BIN
addons/gestures/anim/ace_stop.rtm
Normal file
BIN
addons/gestures/anim/ace_stop.rtm
Normal file
Binary file not shown.
BIN
addons/gestures/anim/ace_stop_stand_lowered.rtm
Normal file
BIN
addons/gestures/anim/ace_stop_stand_lowered.rtm
Normal file
Binary file not shown.
BIN
addons/gestures/anim/ace_warning.rtm
Normal file
BIN
addons/gestures/anim/ace_warning.rtm
Normal file
Binary file not shown.
BIN
addons/gestures/anim/ace_warning_stand_lowered.rtm
Normal file
BIN
addons/gestures/anim/ace_warning_stand_lowered.rtm
Normal file
Binary file not shown.
200
addons/gestures/cfgMovesBasic.hpp
Normal file
200
addons/gestures/cfgMovesBasic.hpp
Normal 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(covertandLowered) = QGVAR(covertandLowered);
|
||||||
|
GVAR(regroupStandLowered) = QGVAR(regroupStandLowered);
|
||||||
|
GVAR(engageStandLowered) = QGVAR(engageStandLowered);
|
||||||
|
GVAR(pointStandLowered) = QGVAR(pointStandLowered);
|
||||||
|
GVAR(holdStandLowered) = QGVAR(holdStandLowered);
|
||||||
|
GVAR(warningtandLowered) = QGVAR(warningtandLowered);
|
||||||
|
};
|
||||||
|
|
||||||
|
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(covertandLowered)[] = {QGVAR(covertandLowered), "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\Dataanim\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(covertandLowered): 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(warningtandLowered): GVAR(warning) {
|
||||||
|
file = QUOTE(PATHTOF(anim\ace_warning_stand_lowered.rtm));
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
17
addons/gestures/config.cpp
Normal file
17
addons/gestures/config.cpp
Normal 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"
|
30
addons/gestures/functions/fnc_playSignal.sqf
Normal file
30
addons/gestures/functions/fnc_playSignal.sqf
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#include "script_component.hpp"
|
||||||
|
/*
|
||||||
|
* Author: joko // Jonas, Emperias, Zigomarvin
|
||||||
|
* Detect if the player and play the Gesture Animation
|
||||||
|
*
|
||||||
|
* Arguments:
|
||||||
|
* Animation <STRING>
|
||||||
|
*
|
||||||
|
* Return Value:
|
||||||
|
* <BOOL>
|
||||||
|
*
|
||||||
|
* Example:
|
||||||
|
* "GeniusAnimation" call ace_handSignals_fnc_playSignal
|
||||||
|
*
|
||||||
|
* Public: No
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!GVAR(ReloadMutex)) exitWith {false};
|
||||||
|
private "_gesture";
|
||||||
|
_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
|
1
addons/gestures/functions/script_component.hpp
Normal file
1
addons/gestures/functions/script_component.hpp
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include "\z\ace\addons\gestures\script_component.hpp"
|
52
addons/gestures/key.sqf
Normal file
52
addons/gestures/key.sqf
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
#include "\a3\editor_f\Data\Scripts\dikCodes.h"
|
||||||
|
|
||||||
|
{
|
||||||
|
_x params ["_currentName","_key"];
|
||||||
|
|
||||||
|
if (_currentName select [0,1] == "BI") then {
|
||||||
|
_currentName = _currentName select [2];
|
||||||
|
};
|
||||||
|
|
||||||
|
_code = (compile format [QUOTE(QUOTE(QGVAR(_%1)) call FUNC(playSignal); hint 'KeyDown'), _currentName]);
|
||||||
|
|
||||||
|
[
|
||||||
|
"ACE3 Gestures",
|
||||||
|
_currentName,
|
||||||
|
localize format[LSTRING(%1), _currentName],
|
||||||
|
_code,
|
||||||
|
{hint "key Up"},
|
||||||
|
[_key, [false, (_key != -1), false]],
|
||||||
|
false
|
||||||
|
] call CBA_fnc_addKeybind;
|
||||||
|
|
||||||
|
/*
|
||||||
|
if (56 in (actionKeys "LookAround")) then {
|
||||||
|
[
|
||||||
|
"ACE3 Gestures",
|
||||||
|
_currentName + "ALT",
|
||||||
|
localize format[LSTRING(%1), _currentName],
|
||||||
|
_code,
|
||||||
|
{},
|
||||||
|
[_key, if (_key == 0) then {[false, false, false]} else { [false, true, true] }],
|
||||||
|
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]
|
||||||
|
];
|
12
addons/gestures/script_component.hpp
Normal file
12
addons/gestures/script_component.hpp
Normal 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"
|
191
addons/gestures/stringtable.xml
Normal file
191
addons/gestures/stringtable.xml
Normal file
@ -0,0 +1,191 @@
|
|||||||
|
<?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>
|
||||||
|
</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>
|
||||||
|
|
||||||
|
<!-- FREE LOOK -->
|
||||||
|
<Key ID="STR_ACE_Gestures_FREELOOK">
|
||||||
|
<English> + freelook</English>
|
||||||
|
<French> + vue libre</French>
|
||||||
|
<German> + Frei Blick</German>
|
||||||
|
<Polish> + rozglądanie się</Polish>
|
||||||
|
</Key>
|
||||||
|
</Package>
|
||||||
|
</Project>
|
Loading…
Reference in New Issue
Block a user