diff --git a/addons/AR_AdvancedRappelling/anims/Rup_RopeFX_01_idle.rtm b/addons/AR_AdvancedRappelling/anims/Rup_RopeFX_01_idle.rtm index 64faf5d..c891fed 100644 Binary files a/addons/AR_AdvancedRappelling/anims/Rup_RopeFX_01_idle.rtm and b/addons/AR_AdvancedRappelling/anims/Rup_RopeFX_01_idle.rtm differ diff --git a/addons/AR_AdvancedRappelling/anims/Rup_RopeFX_01_idle.rtm2 b/addons/AR_AdvancedRappelling/anims/Rup_RopeFX_01_idle.rtm2 deleted file mode 100644 index c891fed..0000000 Binary files a/addons/AR_AdvancedRappelling/anims/Rup_RopeFX_01_idle.rtm2 and /dev/null differ diff --git a/addons/AR_AdvancedRappelling/anims/Rup_RopeFX_01_idle1.rtm b/addons/AR_AdvancedRappelling/anims/Rup_RopeFX_01_idle1.rtm index cebe2ff..c891fed 100644 Binary files a/addons/AR_AdvancedRappelling/anims/Rup_RopeFX_01_idle1.rtm and b/addons/AR_AdvancedRappelling/anims/Rup_RopeFX_01_idle1.rtm differ diff --git a/addons/AR_AdvancedRappelling/anims/Rup_RopeFX_01_idle1.rtm2 b/addons/AR_AdvancedRappelling/anims/Rup_RopeFX_01_idle1.rtm2 deleted file mode 100644 index c891fed..0000000 Binary files a/addons/AR_AdvancedRappelling/anims/Rup_RopeFX_01_idle1.rtm2 and /dev/null differ diff --git a/addons/AR_AdvancedRappelling/cfgAnimations.hpp b/addons/AR_AdvancedRappelling/cfgAnimations.hpp index 5e824e7..a181493 100644 --- a/addons/AR_AdvancedRappelling/cfgAnimations.hpp +++ b/addons/AR_AdvancedRappelling/cfgAnimations.hpp @@ -6,9 +6,6 @@ class CfgMovesBasic class ManActions { AR_01="AR_01_Idle"; - AR_01_Jump1 = ""; - AR_01_Jump2 = ""; - AR_01_Jump3 = ""; }; class Actions @@ -274,8 +271,7 @@ class CfgMovesMaleSdr: CfgMovesBasic class AR_01_Aim: cargo_base_Rope { actions="AR_01_Actions"; - leftHandIKCurve[]={0}; - rightHandIKCurve[]={0}; + leftHandIKCurve[]={1}; minPlayTime = 0.1; file="\AR_AdvancedRappelling\anims\Rup_RopeFX_01_aim.rtm"; /// what file is going to be played in this state speed=100000; @@ -329,7 +325,6 @@ class CfgMovesMaleSdr: CfgMovesBasic minPlayTime = 0.1; aiming="aimingDefault"; leftHandIKCurve[]={0}; - rightHandIKCurve[]={0}; InterpolateTo[]= { "AR_01_Aim", @@ -363,7 +358,7 @@ class CfgMovesMaleSdr: CfgMovesBasic variantsPlayer[]={}; headBobStrength=0; soundEnabled=1; - file="\AR_AdvancedRappelling\anims\Rup_RopeFX_01_idle.rtm"; + file="\AR_AdvancedRappelling\anims\Rup_RopeFX_01_idle1.rtm"; speed=-10; ConnectTo[]= { diff --git a/addons/AR_AdvancedRappelling/functions/fn_advancedRappellingInit.sqf b/addons/AR_AdvancedRappelling/functions/fn_advancedRappellingInit.sqf index 14da1ab..ff18260 100644 --- a/addons/AR_AdvancedRappelling/functions/fn_advancedRappellingInit.sqf +++ b/addons/AR_AdvancedRappelling/functions/fn_advancedRappellingInit.sqf @@ -147,7 +147,7 @@ AR_Play_Rappelling_Sounds_Global = { AR_Play_Rappelling_Sounds = { params ["_player","_rappelDevice","_rappelAncor"]; - if(!hasInterface || !(call AUR_Has_Addon_Sounds_Installed) ) exitWith {}; + if(!hasInterface || !(call AR_Has_Addon_Sounds_Installed) ) exitWith {}; if(player distance _player < 15) then { [_player, "AR_Rappel_Start"] call AR_Play_3D_Sound; [_rappelDevice, "AR_Rappel_Loop"] call AR_Play_3D_Sound; @@ -375,7 +375,7 @@ AR_Client_Rappel_From_Heli = { [[_player,_rappelDevice,_anchor],"AR_Play_Rappelling_Sounds_Global"] call AR_RemoteExecServer; - _rope2 = ropeCreate [_rappelDevice, [0.16,0,0], 60]; + _rope2 = ropeCreate [_rappelDevice, [-0.15,0,0], 60]; _rope2 allowDamage false; _rope1 = ropeCreate [_rappelDevice, [0,0.15,0], _anchor, [0, 0, 0], 3]; _rope1 allowDamage false; @@ -389,8 +389,9 @@ AR_Client_Rappel_From_Heli = { _velocityVec = [0,0,0]; _lastTime = diag_tickTime; _lastPosition = AGLtoASL (_rappelDevice modelToWorldVisual [0,0,0]); - _dir = random 365; - _dirSpinFactor = ((random 10) - 5) / 5; + _lookDirFreedom = 50; + _dir = (random 360) + (_lookDirFreedom / 2); + _dirSpinFactor = (((random 10) - 5) / 5) max 0.1; _decendRopeKeyDownHandler = -1; if(_player == player) then { @@ -465,8 +466,35 @@ AR_Client_Rappel_From_Heli = { _player setVelocity [0,0,0]; // Fix player direction - _player setDir _dir; _dir = _dir + ((360/1000) * _dirSpinFactor); + if(isPlayer _player) then { + _currentDir = getDir _player; + _minDir = (_dir - (_lookDirFreedom/2)) mod 360; + _maxDir = (_dir + (_lookDirFreedom/2)) mod 360; + _minDegreesToMax = 0; + _minDegreesToMin = 0; + if( _currentDir > _maxDir ) then { + _minDegreesToMax = (_currentDir - _maxDir) min (360 - _currentDir + _maxDir); + }; + if( _currentDir < _maxDir ) then { + _minDegreesToMax = (_maxDir - _currentDir) min (360 - _maxDir + _currentDir); + }; + if( _currentDir > _minDir ) then { + _minDegreesToMin = (_currentDir - _minDir) min (360 - _currentDir + _minDir); + }; + if( _currentDir < _minDir ) then { + _minDegreesToMin = (_minDir - _currentDir) min (360 - _minDir + _currentDir); + }; + if( _minDegreesToMin > _lookDirFreedom || _minDegreesToMax > _lookDirFreedom ) then { + if( _minDegreesToMin < _minDegreesToMax ) then { + _player setDir _minDir; + } else { + _player setDir _maxDir; + }; + }; + } else { + _player setDir _dir; + }; _lastPosition = _newPosition;