Skip to content

Instantly share code, notes, and snippets.

@JuniorDjjr
Last active January 5, 2024 17:42
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/dada02fdd51da741a841e4db9ea38f0d to your computer and use it in GitHub Desktop.
Save JuniorDjjr/dada02fdd51da741a841e4db9ea38f0d to your computer and use it in GitHub Desktop.
/*
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 i hWheel hLights hBase hCars[18] hWheelLOD hLightsLOD
LVAR_FLOAT f fAngle fAngleProgress fAngleCarStep y z
CONST_FLOAT WHEEL_DRAW_DISTANCE 1000.0
CONST_INT ID_WHEEL 14644
CONST_INT ID_WHEELLOD 14644
CONST_INT ID_CAR 14645
CONST_INT ID_LIGHTS 14646
CONST_INT ID_LIGHTSLOD 14646
CONST_INT ID_BASE 14647
CONST_INT TOTAL_CARS 16
CONST_FLOAT TOTAL_CARS_FLOAT 16.0
CONST_FLOAT POINT_X 381.0
CONST_FLOAT POINT_Y -2417.0
CONST_FLOAT POINT_Z 200.0
CONST_FLOAT WHEEL_X 389.773
CONST_FLOAT WHEEL_Y -2028.55
CONST_FLOAT WHEEL_Z 23.52
CONST_FLOAT WHEEL_X_BASE 389.773
CONST_FLOAT WHEEL_Y_BASE -2028.65
CONST_FLOAT WHEEL_Z_BASE 19.8
CONST_FLOAT WHEEL_RADIUS 13.3
GET_PLAYER_CHAR 0 scplayer
WHILE TRUE
WAIT 0
IF LOCATE_CAMERA_DISTANCE_TO_COORDINATES POINT_X POINT_Y POINT_Z WHEEL_DRAW_DISTANCE
GOSUB CreateObjects
WHILE LOCATE_CAMERA_DISTANCE_TO_COORDINATES WHEEL_X WHEEL_Y WHEEL_Z WHEEL_DRAW_DISTANCE
WAIT 0
fAngleProgress +=@ 0.1
GOSUB UpdateRotation
ENDWHILE
GOSUB DeleteObjects
ENDIF
ENDWHILE
CreateObjects:
REQUEST_MODEL ID_WHEEL
REQUEST_MODEL ID_CAR
REQUEST_MODEL ID_LIGHTS
REQUEST_MODEL ID_BASE
WHILE NOT HAS_MODEL_LOADED ID_WHEEL
OR NOT HAS_MODEL_LOADED ID_CAR
OR NOT HAS_MODEL_LOADED ID_LIGHTS
OR NOT HAS_MODEL_LOADED ID_BASE
WAIT 0
ENDWHILE
CREATE_OBJECT_NO_SAVE ID_BASE WHEEL_X_BASE WHEEL_Y_BASE WHEEL_Z_BASE FALSE FALSE (hBase)
SET_OBJECT_ROTATION hBase 0.0 0.0 90.0
CREATE_OBJECT_NO_SAVE ID_WHEEL WHEEL_X WHEEL_Y WHEEL_Z FALSE FALSE (hWheel)
SET_OBJECT_ROTATION hWheel 0.0 0.0 90.0
CREATE_OBJECT_NO_SAVE ID_WHEELLOD WHEEL_X WHEEL_Y WHEEL_Z FALSE FALSE (hWheelLOD)
SET_OBJECT_ROTATION hWheelLOD 0.0 0.0 90.0
CONNECT_LODS hWheel hWheelLOD
CREATE_OBJECT_NO_SAVE ID_LIGHTS WHEEL_X WHEEL_Y WHEEL_Z FALSE FALSE (hLights)
SET_OBJECT_ROTATION hLights 0.0 0.0 90.0
CREATE_OBJECT_NO_SAVE ID_LIGHTSLOD WHEEL_X WHEEL_Y WHEEL_Z FALSE FALSE (hLightsLOD)
SET_OBJECT_ROTATION hLightsLOD 0.0 0.0 90.0
CONNECT_LODS hLights hLightsLOD
REPEAT TOTAL_CARS i
CREATE_OBJECT_NO_SAVE ID_CAR WHEEL_X WHEEL_Y WHEEL_Z FALSE FALSE (hCars[i])
ENDREPEAT
// set start 0.0 as start point
fAngleProgress = 0.0
GOSUB UpdateRotation
RETURN
DeleteObjects:
DELETE_OBJECT hBase
DELETE_OBJECT hWheel
DELETE_OBJECT hLights
DELETE_OBJECT hWheelLOD
DELETE_OBJECT hLightsLOD
REPEAT TOTAL_CARS i
DELETE_OBJECT hCars[i]
ENDREPEAT
MARK_MODEL_AS_NO_LONGER_NEEDED ID_WHEEL
MARK_MODEL_AS_NO_LONGER_NEEDED ID_CAR
MARK_MODEL_AS_NO_LONGER_NEEDED ID_LIGHTS
MARK_MODEL_AS_NO_LONGER_NEEDED ID_BASE
RETURN
UpdateRotation:
fAngle = fAngleProgress * -1.0
fAngleCarStep = 360.0 / TOTAL_CARS_FLOAT
REPEAT TOTAL_CARS i
y = WHEEL_Y
z = WHEEL_Z
COS fAngle (f)
f *= WHEEL_RADIUS
y = WHEEL_Y + f
SIN fAngle (f)
f *= WHEEL_RADIUS
z = WHEEL_Z + f
SET_OBJECT_COORDINATES hCars[i] WHEEL_X y z
fAngle += fAngleCarStep
ENDREPEAT
SET_OBJECT_ROTATION hWheel 0.0 fAngleProgress 90.0
SET_OBJECT_ROTATION hLights 0.0 fAngleProgress 90.0
SET_OBJECT_ROTATION hWheelLOD 0.0 fAngleProgress 90.0
SET_OBJECT_ROTATION hLightsLOD 0.0 fAngleProgress 90.0
RETURN
}
SCRIPT_END
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment