Created
May 12, 2022 12:36
-
-
Save JuniorDjjr/c6d6a1ad6d8b1504c15192ded606ce42 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// by Junior_Djjr - MixMods.com.br | |
// You need: https://forum.mixmods.com.br/f141-gta3script-cleo/t5206-como-criar-scripts-com-cleoplus | |
SCRIPT_START | |
{ | |
LVAR_INT scplayer hVeh pVeh i iSearchProgress hAudioStream | |
LVAR_FLOAT f fLastBrake fGas fBrake fBrakePressure fIniVolume x y z | |
WAIT 0 | |
WAIT 0 | |
IF NOT READ_FLOAT_FROM_INI_FILE "CLEO\Air Brake Sound.ini" "Settings" "Volume" (fIniVolume) | |
fIniVolume = 0.7 | |
ENDIF | |
SET_SCRIPT_EVENT_CAR_CREATE ON OnCarCreate hVeh | |
GET_PLAYER_CHAR 0 (scplayer) | |
WHILE TRUE | |
WAIT 0 | |
iSearchProgress = 0 | |
WHILE GET_ANY_CAR_NO_SAVE_RECURSIVE iSearchProgress (iSearchProgress hVeh) | |
IF IS_CAR_ENGINE_ON hVeh | |
OR IS_CHAR_IN_CAR scplayer hVeh | |
IF GET_EXTENDED_CAR_VAR hVeh AUTO 1 fLastBrake // is false, it's because vehicle isn't valid | |
GET_CAR_PEDALS hVeh fGas fBrake | |
IF fLastBrake > 0.5 | |
AND fBrake <= 0.5 | |
GET_EXTENDED_CAR_VAR hVeh AUTO 2 fBrakePressure | |
IF fBrakePressure > 0.1 | |
// Don't keep adding too distant sounds | |
GET_CAR_COORDINATES hVeh x y z | |
IF LOCATE_CAMERA_DISTANCE_TO_COORDINATES x y z 100.0 | |
GOSUB PlayAudio | |
ENDIF | |
ENDIF | |
SET_EXTENDED_CAR_VAR hVeh AUTO 2 0.0 | |
ELSE | |
IF fBrake > 0.5 | |
GET_EXTENDED_CAR_VAR hVeh AUTO 2 fBrakePressure | |
f = fBrake * 0.08 | |
fBrakePressure +=@ f | |
CLAMP_FLOAT fBrakePressure 0.0 1.0 (fBrakePressure) | |
SET_EXTENDED_CAR_VAR hVeh AUTO 2 fBrakePressure | |
ENDIF | |
ENDIF | |
ENDIF | |
SET_EXTENDED_CAR_VAR hVeh AUTO 1 fBrake | |
ENDIF | |
ENDWHILE | |
ENDWHILE | |
OnCarCreate: | |
IF GOSUB IsTruckOrBus | |
INIT_EXTENDED_CAR_VARS hVeh AUTO 2 // will also be used to check if vehicle is valid | |
ENDIF | |
RETURN_SCRIPT_EVENT | |
IsTruckOrBus: | |
GET_VEHICLE_SUBCLASS hVeh i | |
IF i = VEHICLE_SUBCLASS_AUTOMOBILE | |
GET_CAR_ANIMGROUP hVeh i | |
IF i = CAR_ANIMGROUP_BUS | |
OR i = CAR_ANIMGROUP_COACH | |
OR i = CAR_ANIMGROUP_TRUCK | |
RETURN_TRUE | |
RETURN | |
ENDIF | |
GET_VEHICLE_POINTER hVeh (pVeh) | |
READ_STRUCT_OFFSET pVeh 0x216 2 (i) //0x138 + 0xDE | |
/*IF IS_CHAR_IN_CAR scplayer hVeh | |
PRINT_FORMATTED_NOW "%i" 1000 i | |
ENDIF*/ | |
IF i = 84 //truck | |
RETURN_TRUE | |
RETURN | |
ENDIF | |
IF i = 81 // trash and some other non-trucks | |
// only consider if uses middle wheel, avoid vans etc | |
IF DOES_CAR_HAVE_PART_NODE hVeh CAR_NODE_WHEEL_RM | |
RETURN_TRUE | |
RETURN | |
ENDIF | |
ENDIF | |
ENDIF | |
RETURN_FALSE | |
RETURN | |
PlayAudio: | |
//PRINT_FORMATTED_NOW "fBrakePressure %f" 500 fBrakePressure | |
IF LOAD_3D_AUDIO_STREAM "CLEO\Air Brake Sound\airbrake.mp3" hAudioStream | |
SET_AUDIO_STREAM_LOOPED hAudioStream FALSE | |
SET_PLAY_3D_AUDIO_STREAM_AT_CAR hAudioStream hVeh | |
GET_AUDIO_SFX_VOLUME f | |
f *= fBrakePressure | |
f *= fIniVolume | |
SET_AUDIO_STREAM_VOLUME hAudioStream f | |
SET_AUDIO_STREAM_STATE hAudioStream 1 | |
ELSE | |
PRINT_STRING_NOW "~r~Error: Can't find 'CLEO\Air Brake Sound\airbrake.mp3" 4000 | |
ENDIF | |
RETURN | |
} | |
SCRIPT_END |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment