Fixing animations, adding ability to aim in a 50-degree range

This commit is contained in:
sethduda 2016-08-24 00:39:28 -04:00
parent c2d72ce5dd
commit 63c3a480f8
6 changed files with 35 additions and 12 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

@ -6,9 +6,6 @@ class CfgMovesBasic
class ManActions class ManActions
{ {
AR_01="AR_01_Idle"; AR_01="AR_01_Idle";
AR_01_Jump1 = "";
AR_01_Jump2 = "";
AR_01_Jump3 = "";
}; };
class Actions class Actions
@ -274,8 +271,7 @@ class CfgMovesMaleSdr: CfgMovesBasic
class AR_01_Aim: cargo_base_Rope class AR_01_Aim: cargo_base_Rope
{ {
actions="AR_01_Actions"; actions="AR_01_Actions";
leftHandIKCurve[]={0}; leftHandIKCurve[]={1};
rightHandIKCurve[]={0};
minPlayTime = 0.1; minPlayTime = 0.1;
file="\AR_AdvancedRappelling\anims\Rup_RopeFX_01_aim.rtm"; /// what file is going to be played in this state file="\AR_AdvancedRappelling\anims\Rup_RopeFX_01_aim.rtm"; /// what file is going to be played in this state
speed=100000; speed=100000;
@ -329,7 +325,6 @@ class CfgMovesMaleSdr: CfgMovesBasic
minPlayTime = 0.1; minPlayTime = 0.1;
aiming="aimingDefault"; aiming="aimingDefault";
leftHandIKCurve[]={0}; leftHandIKCurve[]={0};
rightHandIKCurve[]={0};
InterpolateTo[]= InterpolateTo[]=
{ {
"AR_01_Aim", "AR_01_Aim",
@ -363,7 +358,7 @@ class CfgMovesMaleSdr: CfgMovesBasic
variantsPlayer[]={}; variantsPlayer[]={};
headBobStrength=0; headBobStrength=0;
soundEnabled=1; soundEnabled=1;
file="\AR_AdvancedRappelling\anims\Rup_RopeFX_01_idle.rtm"; file="\AR_AdvancedRappelling\anims\Rup_RopeFX_01_idle1.rtm";
speed=-10; speed=-10;
ConnectTo[]= ConnectTo[]=
{ {

View File

@ -147,7 +147,7 @@ AR_Play_Rappelling_Sounds_Global = {
AR_Play_Rappelling_Sounds = { AR_Play_Rappelling_Sounds = {
params ["_player","_rappelDevice","_rappelAncor"]; 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 { if(player distance _player < 15) then {
[_player, "AR_Rappel_Start"] call AR_Play_3D_Sound; [_player, "AR_Rappel_Start"] call AR_Play_3D_Sound;
[_rappelDevice, "AR_Rappel_Loop"] 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; [[_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; _rope2 allowDamage false;
_rope1 = ropeCreate [_rappelDevice, [0,0.15,0], _anchor, [0, 0, 0], 3]; _rope1 = ropeCreate [_rappelDevice, [0,0.15,0], _anchor, [0, 0, 0], 3];
_rope1 allowDamage false; _rope1 allowDamage false;
@ -389,8 +389,9 @@ AR_Client_Rappel_From_Heli = {
_velocityVec = [0,0,0]; _velocityVec = [0,0,0];
_lastTime = diag_tickTime; _lastTime = diag_tickTime;
_lastPosition = AGLtoASL (_rappelDevice modelToWorldVisual [0,0,0]); _lastPosition = AGLtoASL (_rappelDevice modelToWorldVisual [0,0,0]);
_dir = random 365; _lookDirFreedom = 50;
_dirSpinFactor = ((random 10) - 5) / 5; _dir = (random 360) + (_lookDirFreedom / 2);
_dirSpinFactor = (((random 10) - 5) / 5) max 0.1;
_decendRopeKeyDownHandler = -1; _decendRopeKeyDownHandler = -1;
if(_player == player) then { if(_player == player) then {
@ -465,8 +466,35 @@ AR_Client_Rappel_From_Heli = {
_player setVelocity [0,0,0]; _player setVelocity [0,0,0];
// Fix player direction // Fix player direction
_player setDir _dir;
_dir = _dir + ((360/1000) * _dirSpinFactor); _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; _lastPosition = _newPosition;