134 lines
3.7 KiB
Python
Executable File
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 |