Skip to content

Instantly share code, notes, and snippets.

@JuniorDjjr
Last active January 5, 2024 17:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save JuniorDjjr/ad046809c33d7a3b542a98b4c92bcd77 to your computer and use it in GitHub Desktop.
Save JuniorDjjr/ad046809c33d7a3b542a98b4c92bcd77 to your computer and use it in GitHub Desktop.
SCRIPT_START
{
LVAR_INT scplayer activeLastTime zoomState
LVAR_FLOAT camX camY camZ pointX pointY pointZ upFactor k newFOV currentFOV detaultFOV lastNewFOV diffNewFOV f iniFOV iniSpeed iniDynamicIntensity iniDynamicIntensityDown
IF NOT READ_FLOAT_FROM_INI_FILE "cleo/Dynamic FOV.ini" "Settings" "FOV" iniFOV
iniFOV = 70.0
ENDIF
IF NOT READ_FLOAT_FROM_INI_FILE "cleo/Dynamic FOV.ini" "Settings" "Speed" iniSpeed
iniSpeed = 0.1
ENDIF
IF NOT READ_FLOAT_FROM_INI_FILE "cleo/Dynamic FOV.ini" "Settings" "DynamicIntensity" iniDynamicIntensity
iniDynamicIntensity = 1.0
ENDIF
iniDynamicIntensity *= -1.33334
IF NOT READ_FLOAT_FROM_INI_FILE "cleo/Dynamic FOV.ini" "Settings" "DynamicIntensityDown" iniDynamicIntensityDown
iniDynamicIntensityDown = 1.0
ENDIF
iniDynamicIntensityDown *= -0.33334
WHILE TRUE
WAIT 0
IF HAS_CUTSCENE_LOADED
OR NOT IS_PLAYER_PLAYING 0
CONTINUE
ENDIF
IF GOSUB IsValidCameraMode
GET_ACTIVE_CAMERA_COORDINATES camX camY camZ
GET_ACTIVE_CAMERA_POINT_AT pointX pointY pointZ
GET_CAMERA_FOV currentFOV
// Not enabled during zoom interpolation (weapon zoom etc)
READ_STRUCT_OFFSET 0xB6F028 0x58 1 zoomState
IF zoomState = 0
upFactor = camZ - pointZ
k = upFactor
k *= iniDynamicIntensity
EASE k EASE_MODE_CUBIC EASE_WAY_IN newFOV
newFOV *= 30.0
IF k < 0.0
newFOV *= iniDynamicIntensityDown
ENDIF
newFOV += iniFOV
IF newFOV > 100.0
newFOV = 100.0
ENDIF
diffNewFOV = currentFOV - newFOV
diffNewFOV *= iniSpeed
newFOV = currentFOV
newFOV -=@ diffNewFOV
IF newFOV > currentFOV
CAMERA_SET_LERP_FOV newFOV newFOV 1 OFF
ELSE
CAMERA_SET_LERP_FOV newFOV currentFOV 1 OFF
ENDIF
//PRINT_FORMATTED_NOW "%.3f" 1000 currentFOV
activeLastTime = TRUE
ENDIF
ELSE
IF activeLastTime = TRUE
GET_CAMERA_FOV currentFOV
CAMERA_SET_LERP_FOV newFOV currentFOV 1 OFF
activeLastTime = FALSE
ENDIF
ENDIF
ENDWHILE
CONST_INT MODE_NONE 0
CONST_INT MODE_TOPDOWN 1
CONST_INT MODE_GTACLASSIC 2
CONST_INT MODE_BEHINDCAR 3
CONST_INT MODE_FOLLOWPED 4
CONST_INT MODE_AIMING 5
CONST_INT MODE_DEBUG 6
CONST_INT MODE_SNIPER 7
CONST_INT MODE_ROCKETLAUNCHER 8
CONST_INT MODE_MODELVIEW 9
CONST_INT MODE_BILL 10
CONST_INT MODE_SYPHON 11
CONST_INT MODE_CIRCLE 12
CONST_INT MODE_CHEESYZOOM 13
CONST_INT MODE_WHEELCAM 14
CONST_INT MODE_FIXED 15
CONST_INT MODE_1STPERSON 16
CONST_INT MODE_FLYBY 17
CONST_INT MODE_CAM_ON_A_STRING 18
CONST_INT MODE_REACTION 19
CONST_INT MODE_FOLLOW_PED_WITH_BIND 20
CONST_INT MODE_CHRIS 21
CONST_INT MODE_BEHINDBOAT 22
CONST_INT MODE_PLAYER_FALLEN_WATER 23
CONST_INT MODE_CAM_ON_TRAIN_ROOF 24
CONST_INT MODE_CAM_RUNNING_SIDE_TRAIN 25
CONST_INT MODE_BLOOD_ON_THE_TRACKS 26
CONST_INT MODE_IM_THE_PASSENGER_WOOWOO 27
CONST_INT MODE_SYPHON_CRIM_IN_FRONT 28
CONST_INT MODE_PED_DEAD_BABY 29
CONST_INT MODE_PILLOWS_PAPS 30
CONST_INT MODE_LOOK_AT_CARS 31
CONST_INT MODE_ARRESTCAM_ONE 32
CONST_INT MODE_ARRESTCAM_TWO 33
CONST_INT MODE_M16_1STPERSON 34
CONST_INT MODE_SPECIAL_FIXED_FOR_SYPHON 35
CONST_INT MODE_FIGHT_CAM 36
CONST_INT MODE_TOP_DOWN_PED 37
CONST_INT MODE_LIGHTHOUSE 38
CONST_INT MODE_SNIPER_RUNABOUT 39
CONST_INT MODE_ROCKETLAUNCHER_RUNABOUT 40
CONST_INT MODE_1STPERSON_RUNABOUT 41
CONST_INT MODE_M16_1STPERSON_RUNABOUT 42
CONST_INT MODE_FIGHT_CAM_RUNABOUT 43
CONST_INT MODE_EDITOR 44
CONST_INT MODE_HELICANNON_1STPERSON 45
CONST_INT MODE_CAMERA 46
CONST_INT MODE_ATTACHCAM 47
CONST_INT MODE_TWOPLAYER 48
CONST_INT MODE_TWOPLAYER_IN_CAR_AND_SHOOTING 49
CONST_INT MODE_TWOPLAYER_SEPARATE_CARS 50
CONST_INT MODE_ROCKETLAUNCHER_HS 51
CONST_INT MODE_ROCKETLAUNCHER_RUNABOUT_HS 52
CONST_INT MODE_AIMWEAPON 53
CONST_INT MODE_TWOPLAYER_SEPARATE_CARS_TOPDOWN 54
CONST_INT MODE_AIMWEAPON_FROMCAR 55
CONST_INT MODE_DW_HELI_CHASE 56
CONST_INT MODE_DW_CAM_MAN 57
CONST_INT MODE_DW_BIRDY 58
CONST_INT MODE_DW_PLANE_SPOTTER 59
CONST_INT MODE_DW_DOG_FIGHT 60
CONST_INT MODE_DW_FISH 61
CONST_INT MODE_DW_PLANECAM1 62
CONST_INT MODE_DW_PLANECAM2 63
CONST_INT MODE_DW_PLANECAM3 64
CONST_INT MODE_AIMWEAPON_ATTACHED 65
LVAR_INT camMode
IsValidCameraMode:
READ_MEMORY 0x00B6F1A8 2 FALSE (camMode)
IF camMode = MODE_NONE
OR camMode = MODE_BEHINDCAR
OR camMode = MODE_FOLLOWPED
OR camMode = MODE_CAM_ON_A_STRING
RETURN_TRUE
RETURN
ENDIF
RETURN_FALSE
RETURN
}
SCRIPT_END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment