554 lines
19 KiB
Python
Executable File
554 lines
19 KiB
Python
Executable File
//Commands
|
|
USING "rage_builtins.sch"
|
|
USING "commands_script.sch"
|
|
USING "commands_network.sch"
|
|
USING "commands_dlc.sch"
|
|
|
|
//Globals
|
|
USING "globals.sch"
|
|
|
|
//Common Helpers
|
|
USING "Bg_Common_Helpers.sch"
|
|
|
|
STRING sVersionNumber = "1.48.00"
|
|
|
|
BOOL bActivatedPrint
|
|
INT iActivatePrintProgress
|
|
|
|
PROC DISPLAY_TEXT_WITH_LITERAL_STRING_FOR_RELEASE_F9(FLOAT DisplayAtX, FLOAT DisplayAtY, STRING pTextLabel, STRING pLiteralString)
|
|
BEGIN_TEXT_COMMAND_DISPLAY_TEXT(pTextLabel)
|
|
ADD_TEXT_COMPONENT_SUBSTRING_KEYBOARD_DISPLAY(pLiteralString)
|
|
END_TEXT_COMMAND_DISPLAY_TEXT(DisplayAtX, DisplayAtY)
|
|
ENDPROC
|
|
|
|
PROC MAINTAIN_CHECK_TO_ACTIVATE_PRINT()
|
|
IF (bActivatedPrint)
|
|
SET_TEXT_SCALE(0.0000, 0.23)
|
|
SET_TEXT_COLOUR(255,255,255, 255)
|
|
DISPLAY_TEXT_WITH_LITERAL_STRING_FOR_RELEASE_F9(0.69, 0.06, "STRING", sVersionNumber)
|
|
ENDIF
|
|
|
|
IF NOT (bActivatedPrint)
|
|
|
|
IF IS_PAUSE_MENU_ACTIVE()
|
|
SWITCH iActivatePrintProgress
|
|
CASE 0
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_LEFT)
|
|
iActivatePrintProgress++
|
|
SETTIMERA(0)
|
|
ENDIF
|
|
BREAK
|
|
CASE 1
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT)
|
|
iActivatePrintProgress++
|
|
SETTIMERA(0)
|
|
ELIF TIMERA() > 2000
|
|
iActivatePrintProgress = 0
|
|
ENDIF
|
|
BREAK
|
|
CASE 2
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_LEFT)
|
|
iActivatePrintProgress++
|
|
SETTIMERA(0)
|
|
ELIF TIMERA() > 2000
|
|
iActivatePrintProgress = 0
|
|
ENDIF
|
|
BREAK
|
|
CASE 3
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT)
|
|
iActivatePrintProgress++
|
|
SETTIMERA(0)
|
|
ELIF TIMERA() > 2000
|
|
iActivatePrintProgress = 0
|
|
ENDIF
|
|
BREAK
|
|
CASE 4
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_UP)
|
|
bActivatedPrint = TRUE
|
|
SETTIMERA(0)
|
|
ELIF TIMERA() > 2000
|
|
iActivatePrintProgress = 0
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
ELSE
|
|
IF IS_PAUSE_MENU_ACTIVE()
|
|
SWITCH iActivatePrintProgress
|
|
CASE 0
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_UP)
|
|
iActivatePrintProgress++
|
|
SETTIMERA(0)
|
|
ENDIF
|
|
BREAK
|
|
CASE 1
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT)
|
|
iActivatePrintProgress++
|
|
SETTIMERA(0)
|
|
ELIF TIMERA() > 2000
|
|
iActivatePrintProgress = 0
|
|
ENDIF
|
|
BREAK
|
|
CASE 2
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_LEFT)
|
|
iActivatePrintProgress++
|
|
SETTIMERA(0)
|
|
ELIF TIMERA() > 2000
|
|
iActivatePrintProgress = 0
|
|
ENDIF
|
|
BREAK
|
|
CASE 3
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT)
|
|
iActivatePrintProgress++
|
|
SETTIMERA(0)
|
|
ELIF TIMERA() > 2000
|
|
iActivatePrintProgress = 0
|
|
ENDIF
|
|
BREAK
|
|
CASE 4
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_LEFT)
|
|
bActivatedPrint = FALSE
|
|
SETTIMERA(0)
|
|
ELIF TIMERA() > 2000
|
|
iActivatePrintProgress = 0
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
//url:bugstar:3290469 - BG Script that amends the tunable values for vehicle sales limiter
|
|
PROC FIX_FOR_3290469()
|
|
IF g_sMPTunables.iThreshold_no_of_minutes != 120
|
|
g_sMPTunables.iThreshold_no_of_minutes = 120
|
|
PRINTLN("FIX_FOR_3290469 - THRESHOLD_NO_OF_MINUTES set to 120 minutes")
|
|
ENDIF
|
|
ENDPROC
|
|
//url:bugstar:5092622 - [BG SCRIPT][PUBLIC] [EXPLOIT] Frozen money - Director mode, join friend, suspend app.
|
|
PROC FIX_FOR_5092622()
|
|
IF g_bDirectorModeRunning
|
|
AND (GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("director_mode")) <= 0)
|
|
AND IS_SKYSWOOP_AT_GROUND()
|
|
PRINTLN("[FIX_FOR_5092622] - Detected MP launch with Director Mode not cleaned up properly, quitting to SP")
|
|
SHUTDOWN_AND_LAUNCH_SINGLE_PLAYER_GAME()
|
|
ENDIF
|
|
ENDPROC
|
|
//url:bugstar:3280561 - [BG SCRIPT][PUBLIC][REPORTED] "Insurance Fraud" Mod is causing players to be put into Bad Sport lobbies and lose GTA$
|
|
PROC FIX_FOR_3280561()
|
|
IF IS_PC_VERSION()
|
|
INT iPlayer
|
|
REPEAT COUNT_OF(GlobalplayerBD_FM) iPlayer
|
|
SET_BIT(GlobalplayerBD_FM[iPlayer].iPersonalVehicleFlagsBS, PERSONAL_VEHICLE_BD_FLAG_IN_VEHICLE_WITH_BOUNTY)
|
|
ENDREPEAT
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
BOOL bDoneEnableDecreasingDupeValueCheck
|
|
//url:bugstar:3533670 - [BG SCRIPT ONLY] Decreasing dupe sell values for repeat offenders.
|
|
FUNC BOOL IS_REPEAT_OFFENDER_1()
|
|
INT iCurrentPeak = GET_MP_INT_PLAYER_STAT(MPPLY_CHAR_PEAK_EXPLOIT_LEVEL)
|
|
IF (iCurrentPeak < g_sMPTunables.iRepeatOffenderMinExploitLevel1)
|
|
RETURN(FALSE)
|
|
ENDIF
|
|
INT iPrevious[4]
|
|
INT i
|
|
iPrevious[0] = GET_MP_INT_PLAYER_STAT(MPPLY_PREVSEASONEXPLOITLEVEL)
|
|
iPrevious[1] = GET_MP_INT_PLAYER_STAT(MPPLY_PREVSEASON2EXPLOITLEVEL)
|
|
iPrevious[2] = GET_MP_INT_PLAYER_STAT(MPPLY_PREVSEASON3EXPLOITLEVEL)
|
|
iPrevious[3] = GET_MP_INT_PLAYER_STAT(MPPLY_PREVSEASON4EXPLOITLEVEL)
|
|
REPEAT (g_sMPTunables.iRepeatOffenderNumSeasons1-1) i
|
|
IF (iPrevious[i] < g_sMPTunables.iRepeatOffenderMinExploitLevel1)
|
|
RETURN(FALSE)
|
|
ENDIF
|
|
ENDREPEAT
|
|
RETURN(TRUE)
|
|
ENDFUNC
|
|
|
|
FUNC BOOL IS_REPEAT_OFFENDER_2()
|
|
|
|
INT iCurrentPeak = GET_MP_INT_PLAYER_STAT(MPPLY_CHAR_PEAK_EXPLOIT_LEVEL)
|
|
|
|
IF (iCurrentPeak < g_sMPTunables.iRepeatOffenderMinExploitLevel2)
|
|
RETURN(FALSE)
|
|
ENDIF
|
|
|
|
INT iPrevious[4]
|
|
INT i
|
|
iPrevious[0] = GET_MP_INT_PLAYER_STAT(MPPLY_PREVSEASONEXPLOITLEVEL)
|
|
iPrevious[1] = GET_MP_INT_PLAYER_STAT(MPPLY_PREVSEASON2EXPLOITLEVEL)
|
|
iPrevious[2] = GET_MP_INT_PLAYER_STAT(MPPLY_PREVSEASON3EXPLOITLEVEL)
|
|
iPrevious[3] = GET_MP_INT_PLAYER_STAT(MPPLY_PREVSEASON4EXPLOITLEVEL)
|
|
REPEAT (g_sMPTunables.iRepeatOffenderNumSeasons2-1) i
|
|
IF (iPrevious[i] < g_sMPTunables.iRepeatOffenderMinExploitLevel2)
|
|
RETURN(FALSE)
|
|
ENDIF
|
|
ENDREPEAT
|
|
RETURN(TRUE)
|
|
ENDFUNC
|
|
PROC FIX_FOR_3533670()
|
|
IF NOT (bDoneEnableDecreasingDupeValueCheck)
|
|
IF (g_FinishedFreemodeInit)
|
|
IF IS_REPEAT_OFFENDER_1()
|
|
OR IS_REPEAT_OFFENDER_2()
|
|
g_sMPTunables.bEnabled_GET_CARMOD_SELL_VALUE_apply_dupe_multiplier = TRUE
|
|
PRINTLN("ENABLE_DECREASING_DUPE_VALUES - repeat offender, activating.")
|
|
ELSE
|
|
g_sMPTunables.bEnabled_GET_CARMOD_SELL_VALUE_apply_dupe_multiplier = FALSE
|
|
PRINTLN("ENABLE_DECREASING_DUPE_VALUES - repeat offender, NOT activating.")
|
|
ENDIF
|
|
bDoneEnableDecreasingDupeValueCheck = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF NOT (g_FinishedFreemodeInit)
|
|
PRINTLN("ENABLE_DECREASING_DUPE_VALUES - resetting bDoneEnableDecreasingDupeValueCheck")
|
|
bDoneEnableDecreasingDupeValueCheck = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
//url:bugstar:3496271 - [BG SCRIPT] Custom plate option disabled for players with exploit level 4 or above.
|
|
BOOL bRunDisablePlatesCheck
|
|
PROC FIX_FOR_3496271()
|
|
|
|
IF NOT (bRunDisablePlatesCheck)
|
|
IF (g_FinishedFreemodeInit)
|
|
|
|
INT iCurrentExploitLevel = GET_MP_INT_PLAYER_STAT(MPPLY_CHAR_EXPLOIT_LEVEL)
|
|
|
|
IF (iCurrentExploitLevel >= 4)
|
|
g_sMPTunables.bDisable_SC_Number_Plate_Apply = TRUE
|
|
PRINTLN("DISABLE_PLATE_BASED_ON_EXPLOIT - disabling plates, exploit level ", iCurrentExploitLevel, " iTotalModValueThresholdLow = ", 4)
|
|
ELSE
|
|
// don't set tunable to false incase we have actually set the tunable world wide to stop a duping method.
|
|
//g_sMPTunables.bDisable_SC_Number_Plate_Apply = FALSE
|
|
ENDIF
|
|
|
|
bRunDisablePlatesCheck = TRUE
|
|
|
|
ENDIF
|
|
ELSE
|
|
IF NOT (g_FinishedFreemodeInit)
|
|
bRunDisablePlatesCheck = FALSE
|
|
PRINTLN("DISABLE_PLATE_BASED_ON_EXPLOIT - freemode not initialised, clearing bRunDisablePlatesCheck")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
/// START - CHILIADWAKEUP
|
|
/// PURPOSE:
|
|
/// Very efficient test for if two entities are with fRange metres of each other
|
|
/// Will be more efficient than doing IS_ENTITY_AT_ENTITY()
|
|
/// NOTE: This function doesn't do dead checks to keep it fast, make sure you do them yourself!
|
|
/// PARAMS:
|
|
/// e1 - First entity
|
|
/// e2 - Second entity
|
|
/// fRange - Test if the entities are this close to each other
|
|
FUNC BOOL IS_ENTITY_IN_RANGE_COORDS(ENTITY_INDEX e1, VECTOR vCoord, FLOAT fRange)
|
|
RETURN ( VDIST2(GET_ENTITY_COORDS(e1), vCoord) <= fRange*fRange )
|
|
ENDFUNC
|
|
|
|
OBJECT_INDEX oiChiliadWakeUp_ObjectId
|
|
BOOL bChiliadWakeUp_StartedWakeUp, bChiliadWakeUp_FinishedStationaryStage
|
|
SCRIPT_TIMER stChiliadWakeUp_ObjectTimer, stChiliadWakeUp_SpeedTimer, stChiliadWakeUp_SoundTimer, stChiliadWakeUp_CallTimer
|
|
VECTOR vChiliadWakeUp_PreviousEndCoord
|
|
INT iChiliadWakeUp_LerpStage
|
|
INT iChiliadWakeUp_ObjectSoundId = -1
|
|
INT iChiliadWakeUp_PlayerSoundId = -1
|
|
|
|
CONST_INT CHILIADWAKEUP_STATIONARY_TIME 4500
|
|
|
|
CONST_INT CHILIADWAKEUP_SECOND_LERP_TIME 2000
|
|
CONST_INT CHILIADWAKEUP_THIRD_LERP_TIME 1000
|
|
CONST_INT CHILIADWAKEUP_FOURTH_LERP_TIME 100
|
|
CONST_INT CHILIADWAKEUP_LAST_LERP_TIME 50
|
|
|
|
CONST_INT CHILIADWAKEUP_PLAYER_SOUND_DELAY 1000
|
|
CONST_INT CHILIADWAKEUP_PLAYER_SOUND_TIME 3000
|
|
CONST_INT CHILIADWAKEUP_PLAYER_CALL_DELAY 60000
|
|
|
|
CONST_INT CHILIADWAKEUP_RESUPPLY_COUNT 577
|
|
CONST_INT CHILIADWAKEUP_TATTOO_CHECK 5000
|
|
|
|
PROC CHILIADWAKEUP_ROTATE_OBJECT()
|
|
VECTOR vCurrentRot = GET_ENTITY_ROTATION(oiChiliadWakeUp_ObjectId)
|
|
vCurrentRot.x = 0.0
|
|
vCurrentRot.y = 0.0
|
|
vCurrentRot.z += 1.0
|
|
SET_ENTITY_ROTATION(oiChiliadWakeUp_ObjectId, vCurrentRot)
|
|
ENDPROC
|
|
|
|
FUNC VECTOR CHILIADWAKEUP_GET_LERP_END_COORD()
|
|
SWITCH iChiliadWakeUp_LerpStage
|
|
CASE 0 RETURN <<306.567,5652.283,785.594>>
|
|
CASE 1 RETURN <<-1082.8652, 6390.5195, 924.2493>>
|
|
CASE 2 RETURN <<-2542.8740, 7217.5137, 1051.3335>>
|
|
CASE 3 RETURN <<-4139.1064, 8143.3022, 1412.6940>>
|
|
ENDSWITCH
|
|
RETURN <<0.0, 0.0, 0.0>>
|
|
ENDFUNC
|
|
|
|
FUNC INT CHILIADWAKEUP_GET_TOTAL_LERP()
|
|
RETURN CHILIADWAKEUP_SECOND_LERP_TIME+CHILIADWAKEUP_THIRD_LERP_TIME+CHILIADWAKEUP_FOURTH_LERP_TIME+CHILIADWAKEUP_LAST_LERP_TIME
|
|
ENDFUNC
|
|
|
|
FUNC INT CHILIADWAKEUP_GET_LERP_TIME()
|
|
SWITCH iChiliadWakeUp_LerpStage
|
|
CASE 0 RETURN CHILIADWAKEUP_SECOND_LERP_TIME
|
|
CASE 1 RETURN CHILIADWAKEUP_THIRD_LERP_TIME
|
|
CASE 2 RETURN CHILIADWAKEUP_FOURTH_LERP_TIME
|
|
CASE 3 RETURN CHILIADWAKEUP_LAST_LERP_TIME
|
|
ENDSWITCH
|
|
RETURN -1
|
|
ENDFUNC
|
|
|
|
FUNC BOOL CHILIADWAKEUP_IS_WEATHER_SUITABLE()
|
|
INT iPrevWeather, iNextWeather
|
|
FLOAT fInterp
|
|
GET_CURR_WEATHER_STATE(iPrevWeather, iNextWeather, fInterp)
|
|
IF fInterp < 0.5
|
|
IF iPrevWeather = HASH("RAIN")
|
|
OR iPrevWeather = HASH("THUNDER")
|
|
OR iNextWeather = HASH("XMAS")
|
|
RETURN TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF iNextWeather = HASH("RAIN")
|
|
OR iNextWeather = HASH("THUNDER")
|
|
OR iNextWeather = HASH("XMAS")
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL CHILIADWAKEUP_MET_REQUIREMENTS()
|
|
IF GET_PACKED_STAT_BOOL(PACKED_MP_BOOL_SEEN_CS)
|
|
AND GET_MP_INT_CHARACTER_STAT(MP_STAT_LFETIME_BIKER_BUY_COMPLET5 ,GET_ACTIVE_CHARACTER_SLOT()) > CHILIADWAKEUP_RESUPPLY_COUNT
|
|
RETURN TRUE
|
|
ENDIF
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL CHILIADWAKEUP_CAN_LAUNCH()
|
|
IF GET_PACKED_STAT_BOOL(PACKED_MP_BOOL_NIGHTCLUB_DRUNK_SPAWN_CHILIAD_UNLOCK)
|
|
AND g_TransitionSpawnData.iSpawnActivity = ENUM_TO_INT(SPAWN_ACTIVITY_DRUNK_AWAKEN)
|
|
AND NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
|
|
AND IS_ENTITY_IN_RANGE_COORDS(PLAYER_PED_ID(), <<426.433,5614.172,766.414>>, 1.0)
|
|
AND g_TransitionSessionNonResetVars.sMagnateGangBossData.iClockHours >= 1
|
|
AND g_TransitionSessionNonResetVars.sMagnateGangBossData.iClockHours < 4
|
|
AND CHILIADWAKEUP_IS_WEATHER_SUITABLE()
|
|
AND CHILIADWAKEUP_MET_REQUIREMENTS()
|
|
RETURN TRUE
|
|
ENDIF
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
PROC CHILIADWAKEUP_MAINTAIN()
|
|
// Prevent phone calls during egg
|
|
IF HAS_NET_TIMER_STARTED(stChiliadWakeUp_CallTimer)
|
|
SET_BIT (BitSet_CellphoneDisplay_Continued, g_BSC_REQUESTED_DISABLE_CELLPHONE_THIS_FRAME)
|
|
IF HAS_NET_TIMER_EXPIRED(stChiliadWakeUp_CallTimer, CHILIADWAKEUP_PLAYER_CALL_DELAY)
|
|
REINIT_NET_TIMER(stChiliadWakeUp_CallTimer)
|
|
RESET_NET_TIMER(stChiliadWakeUp_CallTimer)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// Finish sounds afterwards
|
|
IF HAS_NET_TIMER_STARTED(stChiliadWakeUp_SoundTimer)
|
|
AND HAS_NET_TIMER_EXPIRED(stChiliadWakeUp_SoundTimer, CHILIADWAKEUP_PLAYER_SOUND_DELAY)
|
|
IF iChiliadWakeUp_PlayerSoundId = (-1)
|
|
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
|
|
iChiliadWakeUp_PlayerSoundId = GET_SOUND_ID()
|
|
PLAY_SOUND_FROM_ENTITY(iChiliadWakeUp_PlayerSoundId, "05", PLAYER_PED_ID(), "DLC_GR_CS2_Sounds") // Geiger
|
|
ENDIF
|
|
ELIF HAS_NET_TIMER_EXPIRED(stChiliadWakeUp_SoundTimer, (CHILIADWAKEUP_PLAYER_SOUND_DELAY+CHILIADWAKEUP_PLAYER_SOUND_TIME))
|
|
IF NOT HAS_SOUND_FINISHED(iChiliadWakeUp_PlayerSoundId)
|
|
STOP_SOUND(iChiliadWakeUp_PlayerSoundId)
|
|
ENDIF
|
|
RELEASE_SOUND_ID(iChiliadWakeUp_PlayerSoundId)
|
|
iChiliadWakeUp_PlayerSoundId = -1
|
|
STOP_AUDIO_SCENE("DLC_GR_CS2_General_Scene")
|
|
|
|
REINIT_NET_TIMER(stChiliadWakeUp_SoundTimer)
|
|
RESET_NET_TIMER(stChiliadWakeUp_SoundTimer)
|
|
|
|
PRINTLN("[CHILIADWAKEUP] CHILIADWAKEUP_MAINTAIN - Finished player sound after ", (CHILIADWAKEUP_PLAYER_SOUND_DELAY+CHILIADWAKEUP_PLAYER_SOUND_TIME), "ms.")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
// Check if event should trigger
|
|
IF NOT bChiliadWakeUp_StartedWakeUp
|
|
AND NOT CHILIADWAKEUP_CAN_LAUNCH()
|
|
EXIT
|
|
ENDIF
|
|
bChiliadWakeUp_StartedWakeUp = TRUE
|
|
|
|
// Prevent phone calls during egg
|
|
SET_BIT (BitSet_CellphoneDisplay_Continued, g_BSC_REQUESTED_DISABLE_CELLPHONE_THIS_FRAME)
|
|
|
|
// Create object and apply reward
|
|
IF NOT DOES_ENTITY_EXIST(oiChiliadWakeUp_ObjectId)
|
|
MODEL_NAMES eModel = INT_TO_ENUM(MODEL_NAMES, HASH("imp_prop_ship_01a"))
|
|
REQUEST_MODEL(eModel)
|
|
IF HAS_MODEL_LOADED(eModel)
|
|
oiChiliadWakeUp_ObjectId = CREATE_OBJECT_NO_OFFSET(eModel, <<360.8759, 5623.4272, 780.1747>>, FALSE, FALSE, TRUE)
|
|
SET_MODEL_AS_NO_LONGER_NEEDED(eModel)
|
|
|
|
FREEZE_ENTITY_POSITION(oiChiliadWakeUp_ObjectId, TRUE)
|
|
SET_ENTITY_LOD_DIST(oiChiliadWakeUp_ObjectId, 8000)
|
|
|
|
INT iStatBackMark = GET_MP_INT_CHARACTER_STAT(MP_STAT_BACK_MARK)
|
|
SET_MP_INT_CHARACTER_STAT(MP_STAT_BACK_MARK, iStatBackMark+1)
|
|
|
|
STRUCT_GUNRUNNING_MISSION_END sGUN_Telemetry_dataTemp
|
|
sGUN_Telemetry_dataTemp.m_missionTypeId = ENUM_TO_INT(eGUNRUN_TYPE_STEAL)
|
|
sGUN_Telemetry_dataTemp.m_missionId = 24
|
|
PLAYSTATS_GUNRUNNING_MISSION_ENDED(sGUN_Telemetry_dataTemp)
|
|
|
|
vChiliadWakeUp_PreviousEndCoord = GET_ENTITY_COORDS(oiChiliadWakeUp_ObjectId, FALSE)
|
|
iChiliadWakeUp_LerpStage = 0
|
|
PRINTLN("[CHILIADWAKEUP] CHILIADWAKEUP_MAINTAIN - Created object and applied reward. Stat: ", iStatBackMark+1)
|
|
ELSE
|
|
PRINTLN("[CHILIADWAKEUP] CHILIADWAKEUP_MAINTAIN - Model is loading.")
|
|
ENDIF
|
|
// Handle object movement, acceleration and audio
|
|
ELSE
|
|
CHILIADWAKEUP_ROTATE_OBJECT()
|
|
|
|
IF IS_SCREEN_FADED_IN()
|
|
OR IS_SCREEN_FADING_IN()
|
|
|
|
IF iChiliadWakeUp_ObjectSoundId = (-1)
|
|
START_AUDIO_SCENE("DLC_GR_CS2_General_Scene")
|
|
iChiliadWakeUp_ObjectSoundId = GET_SOUND_ID()
|
|
PLAY_SOUND_FROM_ENTITY(iChiliadWakeUp_ObjectSoundId, "07", oiChiliadWakeUp_ObjectId, "DLC_GR_CS2_Sounds") // Loud collect sound
|
|
ENDIF
|
|
|
|
IF NOT bChiliadWakeUp_FinishedStationaryStage
|
|
IF HAS_NET_TIMER_EXPIRED(stChiliadWakeUp_ObjectTimer, CHILIADWAKEUP_STATIONARY_TIME) // 2 seconds past, ufo starts to speed off
|
|
FREEZE_ENTITY_POSITION(oiChiliadWakeUp_ObjectId, FALSE)
|
|
|
|
REINIT_NET_TIMER(stChiliadWakeUp_ObjectTimer)
|
|
RESET_NET_TIMER(stChiliadWakeUp_ObjectTimer)
|
|
|
|
START_NET_TIMER(stChiliadWakeUp_SpeedTimer)
|
|
bChiliadWakeUp_FinishedStationaryStage = TRUE
|
|
PRINTLN("[CHILIADWAKEUP] CHILIADWAKEUP_MAINTAIN - Finished stationary stage after ", CHILIADWAKEUP_STATIONARY_TIME, "ms.")
|
|
ENDIF
|
|
ELSE
|
|
FLOAT fSpeedValue = TO_FLOAT(GET_NET_TIMER_DIFFERENCE_WITH_CURRENT_TIME(stChiliadWakeUp_SpeedTimer)) / TO_FLOAT(CHILIADWAKEUP_GET_TOTAL_LERP())
|
|
FLOAT fLerpValue = TO_FLOAT(GET_NET_TIMER_DIFFERENCE_WITH_CURRENT_TIME(stChiliadWakeUp_ObjectTimer)) / TO_FLOAT(CHILIADWAKEUP_GET_LERP_TIME())
|
|
fLerpValue = fLerpValue * fSpeedValue
|
|
VECTOR vLerpVector = LERP_VECTOR(vChiliadWakeUp_PreviousEndCoord, CHILIADWAKEUP_GET_LERP_END_COORD(), fLerpValue)
|
|
SET_ENTITY_COORDS(oiChiliadWakeUp_ObjectId, vLerpVector)
|
|
|
|
IF fLerpValue >= 1.0
|
|
iChiliadWakeUp_LerpStage++
|
|
vChiliadWakeUp_PreviousEndCoord = GET_ENTITY_COORDS(oiChiliadWakeUp_ObjectId, FALSE)
|
|
REINIT_NET_TIMER(stChiliadWakeUp_ObjectTimer)
|
|
RESET_NET_TIMER(stChiliadWakeUp_ObjectTimer)
|
|
|
|
IF CHILIADWAKEUP_GET_LERP_TIME() = -1
|
|
DELETE_OBJECT(oiChiliadWakeUp_ObjectId)
|
|
FORCE_LIGHTNING_FLASH()
|
|
|
|
IF NOT HAS_SOUND_FINISHED(iChiliadWakeUp_ObjectSoundId)
|
|
STOP_SOUND(iChiliadWakeUp_ObjectSoundId)
|
|
ENDIF
|
|
RELEASE_SOUND_ID(iChiliadWakeUp_ObjectSoundId)
|
|
iChiliadWakeUp_ObjectSoundId = -1
|
|
|
|
START_NET_TIMER(stChiliadWakeUp_SoundTimer)
|
|
START_NET_TIMER(stChiliadWakeUp_CallTimer)
|
|
|
|
REINIT_NET_TIMER(stChiliadWakeUp_SpeedTimer)
|
|
RESET_NET_TIMER(stChiliadWakeUp_SpeedTimer)
|
|
|
|
vChiliadWakeUp_PreviousEndCoord = <<0.0, 0.0, 0.0>>
|
|
iChiliadWakeUp_LerpStage = 0
|
|
|
|
bChiliadWakeUp_StartedWakeUp = FALSE
|
|
bChiliadWakeUp_FinishedStationaryStage = FALSE
|
|
|
|
PRINTLN("[CHILIADWAKEUP] CHILIADWAKEUP_MAINTAIN - Finished all lerp stages. Deleted object and starting player sound delay.")
|
|
ELSE
|
|
PRINTLN("[CHILIADWAKEUP] CHILIADWAKEUP_MAINTAIN - Finished lerp stage. Moving onto stage ", iChiliadWakeUp_LerpStage)
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
/// END - CHILIADWAKEUP
|
|
|
|
//Main loop
|
|
SCRIPT(launch_Data launchData)
|
|
|
|
SET_THIS_SCRIPT_CAN_BE_PAUSED(FALSE)
|
|
NETWORK_SET_SCRIPT_IS_SAFE_FOR_NETWORK_GAME()
|
|
|
|
IF launchData.iD = launchData.iD
|
|
ENDIF
|
|
PRINTLN("[BGSCRIPT] - Launching - ", sVersionNumber)
|
|
|
|
g_iBGScriptVersion = GET_HASH_KEY(sVersionNumber) // this is required to be set for the bg script kick system.
|
|
PRINTLN("[BGSCRIPT] g_iBGScriptVersion = ", g_iBGScriptVersion)
|
|
|
|
|
|
//Wait 10s afterbooting
|
|
INT iTime = GET_GAME_TIMER() + 10000
|
|
WHILE GET_GAME_TIMER() < iTime
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
//Main Loops
|
|
WHILE TRUE
|
|
|
|
|
|
// cheat for rockstar dev's to display which bg script is running.
|
|
IF IS_ROCKSTAR_DEV()
|
|
#IF IS_DEBUG_BUILD
|
|
OR TRUE
|
|
#ENDIF
|
|
MAINTAIN_CHECK_TO_ACTIVATE_PRINT()
|
|
ENDIF
|
|
|
|
IF NETWORK_IS_GAME_IN_PROGRESS()
|
|
AND (g_sCURRENT_UGC_STATUS.g_bUgcGlobalsBlockLoaded)
|
|
//url:bugstar:3290469 - BG Script that amends the tunable values for vehicle sales limiter
|
|
FIX_FOR_3290469()
|
|
|
|
//url:bugstar:3280561 - [BG SCRIPT][PUBLIC][REPORTED] "Insurance Fraud" Mod is causing players to be put into Bad Sport lobbies and lose GTA$
|
|
FIX_FOR_3280561()
|
|
|
|
//url:bugstar:3533670 - [BG SCRIPT ONLY] Decreasing dupe sell values for repeat offenders.
|
|
FIX_FOR_3533670()
|
|
|
|
//url:bugstar:3496271 - [BG SCRIPT] Custom plate option disabled for players with exploit level 4 or above.
|
|
FIX_FOR_3496271()
|
|
|
|
//url:bugstar:5092622 - [BG SCRIPT][PUBLIC] [EXPLOIT] Frozen money - Director mode, join friend, suspend app.
|
|
FIX_FOR_5092622()
|
|
|
|
//CHILIADWAKEUP
|
|
CHILIADWAKEUP_MAINTAIN()
|
|
ENDIF
|
|
|
|
IF NETWORK_IS_ACTIVITY_SESSION()
|
|
|
|
ENDIF
|
|
|
|
//The one wait
|
|
WAIT(0)
|
|
ENDWHILE
|
|
PRINTLN("[BGSCRIPT] BG_IS_EXITFLAG_SET() = TRUE, cleaning up")
|
|
//BG_SET_EXITFLAG_RESPONSE()
|
|
TERMINATE_THIS_THREAD()
|
|
ENDSCRIPT
|
|
|
|
|
|
|