Hallo und herzlich willkommen
Was macht mein Tutorial:
Vielleicht ist es euch noch nie aufgefallen, vielleicht ignoriert ihr es einfach: Das nervige glitchen der Sicht beim Springen in Altis/Tanoa Life.
Mein Tutorial behebt diesen kleinen, nervigen Fehler und ihr könnt Arma 3 mit einem Bug weniger spielen
Einmal mit den Änderungen: https://gph.is/g/Z2p2gem *Link zu einem GIF von giphy.com
Einmal ohne die Änderungen (Normales Tanoa Life 5.0): https://gph.is/g/4ARWg8Q *Link zu einem GIF von giphy.com
Schritt 1. [Von 2]
Geht unter "Tanoa_Life.Tanoa\core\functions\network" in die "fn_jumpFnc.sqf" und ersetzt den gesamten Inhalt mit diesem hier:
/*
File: fn_jumpFnc.sqf
Author: Bryan "Tonic" Boardwine
Description:
Makes the target jump.
*/
private ["_unit","_vel","_dir","_v1","_v2","_anim","_oldpos"];
_unit = [_this,0,objNull,[objNull]] call BIS_fnc_param;
_oldpos = getPosATL _unit;
if (isNull _unit) exitWith {}; //Bad data
if (animationState _unit == "AovrPercMrunSrasWrflDf") exitWith {};
if (local _unit) then {
_v1 = 3.82;
_v2 = .4;
_dir = direction player;
_vel = velocity _unit;
_unit setVelocity[(_vel select 0)+(sin _dir*_v2),(_vel select 1)+(cos _dir*_v2),(_vel select 2)+_v1];
};
_anim = animationState _unit;
[_unit, "AovrPercMrunSrasWrflDf"] remoteExec ["switchMove", 0];
if (local _unit) then {
waitUntil {
if ((getPos _unit select 2) > 4) then {
_unit setposATL _oldpos;
_unit setVelocity [0, 0, 0];
};
animationState _unit != "AovrPercMrunSrasWrflDf"
};
[_unit, _anim] remoteExec ["switchMove", 0];
};
Alles anzeigen
Alternativ könnt ihr auch Zeile 24 & 34 manuell ersetzen durch:
[_unit, "AovrPercMrunSrasWrflDf"] remoteExec ["switchMove", 0]; // In Zeile 24
[_unit, _anim] remoteExec ["switchMove", 0]; // In Zeile 34
Schritt 2. [Von 2]
Öffnet unter "Tanoa_Life.Tanoa\core\functions" die "fn_keyHandler.sqf" und ändert in Zeile 106 (relativ weit hinten) den "jumpActionTimer" cooldown von "1.5" in eine "2.5"
-> Damit die Sprunganimation nicht bei mehrmaligem Springen ineinander Buggt und stattdessen immer schön abgespielt wird
Korrekt abgeändert müsste das ganze dann so sein:
//Space key for Jumping
case 57: {
if (isNil "jumpActionTime") then {jumpActionTime = 0;};
if (_shift && {!(animationState player isEqualTo "AovrPercMrunSrasWrflDf")} && {isTouchingGround player} && {stance player isEqualTo "STAND"} && {speed player > 2} && {!life_is_arrested} && {((velocity player) select 2) < 2.5} && {time - jumpActionTime > 2.5}) then {
jumpActionTime = time; //Update the time.
[player] remoteExec ["life_fnc_jumpFnc",RANY]; //Global execution
_handled = true;
};
};
Das wars auch schon, ich hoffe es hat geholfen und euch noch einen schönen Tag/Abend