Files
2025-09-29 00:52:08 +02:00

134 lines
3.7 KiB
Python
Executable File

//////////////////////////////////////////////////////////////////////////////////////////
// //
// SCRIPT NAME : //
// AUTHOR : //
// DESCRIPTION : //
// //
//////////////////////////////////////////////////////////////////////////////////////////
// including the most common script headers
USING "rage_builtins.sch"
USING "globals.sch"
USING "brains.sch"
USING "script_player.sch"
USING "commands_script.sch"
USING "commands_pad.sch"
USING "commands_graphics.sch"
USING "commands_camera.sch"
USING "commands_streaming.sch"
USING "commands_interiors.sch"
USING "commands_object.sch"
USING "commands_vehicle.sch"
USING "commands_physics.sch"
#IF IS_DEBUG_BUILD
USING "shared_debug.sch"
#ENDIF
VEHICLE_INDEX missionTrain
VECTOR vCreate = <<613, 6438, 31>>
INT iCreate = 0
FLOAT fSpeed = 5.0
BOOL bDirection = TRUE
BOOL bDoCreate = FALSE
BOOL bTerminate = FALSE
BOOL bGrabCam = FALSE
#IF IS_DEBUG_BUILD
WIDGET_GROUP_ID createTrainWidgets
#ENDIF
// cleanup the mission
PROC MISSION_CLEANUP()
SET_RANDOM_TRAINS(TRUE)
#IF IS_DEBUG_BUILD
IF DOES_WIDGET_GROUP_EXIST(createTrainWidgets)
DELETE_WIDGET_GROUP(createTrainWidgets)
ENDIF
#ENDIF
TERMINATE_THIS_THREAD()
ENDPROC
// main script
SCRIPT
SET_MISSION_FLAG(TRUE)
IF HAS_FORCE_CLEANUP_OCCURRED()
MISSION_CLEANUP()
ENDIF
#IF IS_DEBUG_BUILD
createTrainWidgets = START_WIDGET_GROUP("Train Create Debug")
ADD_WIDGET_VECTOR_SLIDER("Position to create", vCreate, -7000, 7000, 1)
ADD_WIDGET_BOOL("Grab cam coords as creation pos", bGrabCam)
ADD_WIDGET_INT_SLIDER("Train Configuration", iCreate, 0, 24, 1)
ADD_WIDGET_FLOAT_SLIDER("Speed", fSpeed, 0, 30, 1)
ADD_WIDGET_BOOL("Direction", bDirection)
ADD_WIDGET_BOOL("Do Create Train", bDoCreate)
ADD_WIDGET_BOOL("Terminate Script", bTerminate)
STOP_WIDGET_GROUP()
#ENDIF
SET_RANDOM_TRAINS(FALSE)
DELETE_ALL_TRAINS()
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
SET_ENTITY_COORDS(PLAYER_PED_ID(), <<626.68, 6442.31, 30.88>>)
SET_ENTITY_HEADING(PLAYER_PED_ID(), -177)
SET_GAMEPLAY_CAM_RELATIVE_HEADING()
ENDIF
REQUEST_MODEL(FREIGHT)
REQUEST_MODEL(FREIGHTCAR)
REQUEST_MODEL(FREIGHTGRAIN)
REQUEST_MODEL(FREIGHTCONT1)
REQUEST_MODEL(FREIGHTCONT2)
REQUEST_MODEL(TANKERCAR)
REQUEST_MODEL(METROTRAIN)
WHILE NOT HAS_MODEL_LOADED(FREIGHT)
OR NOT HAS_MODEL_LOADED(FREIGHTCAR)
OR NOT HAS_MODEL_LOADED(FREIGHTGRAIN)
OR NOT HAS_MODEL_LOADED(FREIGHTCONT1)
OR NOT HAS_MODEL_LOADED(FREIGHTCONT2)
OR NOT HAS_MODEL_LOADED(TANKERCAR)
OR NOT HAS_MODEL_LOADED(METROTRAIN)
WAIT(0)
ENDWHILE
WHILE TRUE
// main loop
WAIT(0)
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
IF bDoCreate
IF DOES_ENTITY_EXIST(missionTrain)
DELETE_MISSION_TRAIN(missionTrain)
ENDIF
missionTrain = CREATE_MISSION_TRAIN(iCreate, vCreate, bDirection)
bDoCreate = FALSE
ENDIF
IF bGrabCam
vCreate = GET_FINAL_RENDERED_CAM_COORD()
bGrabCam = FALSE
ENDIF
IF IS_VEHICLE_DRIVEABLE(missionTrain)
AND NOT IS_ENTITY_DEAD(missionTrain)
SET_TRAIN_SPEED(missionTrain, fSpeed)
SET_TRAIN_CRUISE_SPEED(missionTrain, fSpeed)
ENDIF
#IF IS_DEBUG_BUILD
IF IS_KEYBOARD_KEY_JUST_PRESSED(KEY_S)
OR bTerminate
MISSION_CLEANUP()
ENDIF
#ENDIF
IF bTerminate
MISSION_CLEANUP()
ENDIF
ENDIF
ENDWHILE
ENDSCRIPT