Created
July 7, 2020 06:12
-
-
Save JuniorDjjr/88ab8f87531e7da874d392ad4119c06d to your computer and use it in GitHub Desktop.
This file contains 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/f16-utilidades/t179-gta3script-while-true-return_true-e-return_false | |
SCRIPT_START | |
{ | |
LVAR_INT scplayer iSeat iSide iVehModel iTotalSeats hChar hVeh iWeaponType iPassenger iKey1 iKey2 iLastModel pModelKey | |
LVAR_FLOAT f x y z fOffsetX fOffsetY fOffsetZ | |
GET_PLAYER_CHAR 0 scplayer | |
IF NOT READ_INT_FROM_INI_FILE "CLEO/Turret (Junior_Djjr).ini" "Settings" "Key1" (iKey1) | |
OR NOT READ_INT_FROM_INI_FILE "CLEO/Turret (Junior_Djjr).ini" "Settings" "Key2" (iKey2) | |
PRINT_STRING_NOW "Error: Unable to read 'Turret (Junior_Djjr).ini'" 5000 | |
TERMINATE_THIS_CUSTOM_SCRIPT | |
ENDIF | |
WHILE TRUE | |
WAIT 0 | |
IF IS_KEY_PRESSED iKey1 | |
AND IS_KEY_PRESSED iKey2 | |
IF IS_CHAR_SITTING_IN_ANY_CAR scplayer | |
GET_CAR_CHAR_IS_USING scplayer hVeh | |
GOSUB GetSeat | |
GOSUB GetSideBySeat | |
GET_CURRENT_CHAR_WEAPON scplayer iWeaponType | |
WARP_CHAR_FROM_CAR_TO_COORD scplayer 0.0 0.0 0.0 | |
IF DOES_VEHICLE_EXIST hVeh | |
AND NOT IS_CHAR_DEAD scplayer | |
ATTACH_CHAR_TO_CAR scplayer hVeh x y z iSide 140.0 iWeaponType | |
GOSUB WaitKey | |
WHILE DOES_VEHICLE_EXIST hVeh | |
AND NOT IS_CHAR_DEAD scplayer | |
WAIT 0 | |
IF IS_KEY_PRESSED iKey1 | |
AND IS_KEY_PRESSED iKey2 | |
DETACH_CHAR_FROM_CAR scplayer | |
IF iSeat = -1 | |
WARP_CHAR_INTO_CAR scplayer hVeh | |
ELSE | |
WARP_CHAR_INTO_CAR_AS_PASSENGER scplayer hVeh iSeat | |
ENDIF | |
GOSUB WaitKey | |
BREAK | |
ENDIF | |
ENDWHILE | |
ENDIF | |
ENDIF | |
ENDIF | |
ENDWHILE | |
WaitKey: | |
WHILE IS_KEY_PRESSED iKey1 | |
AND IS_KEY_PRESSED iKey2 | |
WAIT 0 | |
ENDWHILE | |
RETURN | |
GetSeat: | |
iSeat = -1 | |
GET_DRIVER_OF_CAR hVeh hChar | |
IF hChar = scplayer | |
RETURN | |
ENDIF | |
GET_MAXIMUM_NUMBER_OF_PASSENGERS hVeh iTotalSeats | |
WHILE iSeat < iTotalSeats | |
GET_CHAR_IN_CAR_PASSENGER_SEAT hVeh iSeat hChar | |
IF hChar = scplayer | |
RETURN | |
ENDIF | |
iTotalSeats++ | |
ENDWHILE | |
RETURN | |
GetSideBySeat: | |
GET_CAR_MODEL hVeh iVehModel | |
IF NOT iLastModel = iVehModel | |
iLastModel = iVehModel | |
GET_LABEL_POINTER Buffer pModelKey | |
STRING_FORMAT pModelKey "Model%i" iVehModel | |
IF NOT READ_FLOAT_FROM_INI_FILE "Turret (Junior_Djjr).ini" $pModelKey "OffsetX" (fOffsetX) | |
READ_FLOAT_FROM_INI_FILE "Turret (Junior_Djjr).ini" "Default" "OffsetX" (fOffsetX) | |
ENDIF | |
IF NOT READ_FLOAT_FROM_INI_FILE "Turret (Junior_Djjr).ini" $pModelKey "OffsetY" (fOffsetY) | |
READ_FLOAT_FROM_INI_FILE "Turret (Junior_Djjr).ini" "Default" "OffsetY" (fOffsetY) | |
ENDIF | |
IF NOT READ_FLOAT_FROM_INI_FILE "Turret (Junior_Djjr).ini" $pModelKey "OffsetZ" (fOffsetZ) | |
READ_FLOAT_FROM_INI_FILE "Turret (Junior_Djjr).ini" "Default" "OffsetZ" (fOffsetZ) | |
ENDIF | |
ENDIF | |
GET_MODEL_DIMENSIONS iVehModel x y z z z z | |
ABS_LVAR_FLOAT x | |
x += fOffsetX | |
y = fOffsetY | |
z = fOffsetZ | |
SWITCH iSeat | |
CASE -1 // driver | |
CASE 1 // lr | |
iSide = FACING_LEFT | |
x *= -1.0 | |
BREAK | |
CASE 0 // rf | |
CASE 2 // rr | |
iSide = FACING_RIGHT | |
BREAK | |
DEFAULT | |
iSide = FACING_FORWARD | |
BREAK | |
ENDSWITCH | |
IF iSeat = 1 // lr | |
OR iSeat = 2 // rr | |
y -= 0.5 | |
ENDIF | |
// Just to make a little better for bus (not even tested) | |
IF iSeat > 2 | |
f =# iSeat | |
f -= 2.0 | |
f *= 0.5 | |
y -= f | |
ENDIF | |
RETURN | |
Buffer: | |
DUMP | |
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |
ENDDUMP | |
} | |
SCRIPT_END |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment