105 lines
3.1 KiB
Scheme
Executable File
105 lines
3.1 KiB
Scheme
Executable File
|
|
USING "globals.sch"
|
|
USING "dialogue_public.sch"
|
|
USING "random_events_public.sch"
|
|
|
|
FLOAT fDistanceBetweenPlayerAndDestination = -1
|
|
|
|
FUNC BOOL IS_CULT_FINISHED()
|
|
IF g_savedGlobals.sRandomEventData.iNumberOfDeliveredPeds = 1000
|
|
RETURN TRUE
|
|
ENDIF
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
PROC REGISTER_CURRENT_GROUP_MEMBERS_FOR_CULT()
|
|
//Set in RE
|
|
IF NOT IS_CULT_FINISHED()
|
|
IF GET_CURRENT_PLAYER_PED_ENUM() = CHAR_TREVOR
|
|
g_bDeliverCurrentGroupMembersToCult = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
FUNC BOOL ARE_CURRENT_GROUP_MEMBERS_REGISTERED_FOR_CULT()
|
|
//Check in alruistcult.sc
|
|
RETURN g_bDeliverCurrentGroupMembersToCult
|
|
ENDFUNC
|
|
|
|
PROC REGISTERED_GROUP_MEMBERS_ARE_DELIVERED_FOR_CULT()
|
|
//Set in alruistcult.sc
|
|
g_bCurrentGroupMembersHaveBeenDeliveredToCult = TRUE
|
|
ENDPROC
|
|
|
|
FUNC BOOL HAVE_CURRENT_GROUP_MEMBERS_BEEN_DELIVERED_TO_CULT()
|
|
//Check in RE
|
|
IF g_bCurrentGroupMembersHaveBeenDeliveredToCult
|
|
SET_PASS_TYPE_FOR_THIS_RANDOM_EVENT(RE_PASS_ALTRUIST_DROP_OFF)
|
|
RETURN TRUE
|
|
ENDIF
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL READY_FOR_CULT_DIALOGUE(VECTOR vHomeDestination)
|
|
//Check in RE
|
|
IF GET_CURRENT_PLAYER_PED_ENUM() = CHAR_TREVOR
|
|
IF ARE_CURRENT_GROUP_MEMBERS_REGISTERED_FOR_CULT()
|
|
AND NOT g_bAltruistCultDialogueHasPlayed
|
|
IF fDistanceBetweenPlayerAndDestination = -1
|
|
fDistanceBetweenPlayerAndDestination = VDIST(GET_ENTITY_COORDS(PLAYER_PED_ID()), vHomeDestination)
|
|
ENDIF
|
|
IF VDIST(GET_ENTITY_COORDS(PLAYER_PED_ID()), vHomeDestination) > (fDistanceBetweenPlayerAndDestination + 200)
|
|
OR GET_DISTANCE_BETWEEN_COORDS(<< -1014.15350, 4881.41113, 245.00009 >>, GET_ENTITY_COORDS(GET_PLAYER_PED(GET_PLAYER_INDEX()), FALSE)) < 400
|
|
// IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
g_bAltruistCultDialogueHasPlayed = TRUE
|
|
RETURN TRUE
|
|
// ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
FUNC BOOL READY_FOR_FINAL_CULT_DIALOGUE_AND_MUSIC()
|
|
//Check in RE
|
|
IF GET_CURRENT_PLAYER_PED_ENUM() = CHAR_TREVOR
|
|
IF ARE_CURRENT_GROUP_MEMBERS_REGISTERED_FOR_CULT()
|
|
IF GET_DISTANCE_BETWEEN_COORDS(<< -1014.15350, 4881.41113, 245.00009 >>, GET_ENTITY_COORDS(GET_PLAYER_PED(GET_PLAYER_INDEX()), FALSE)) < 400
|
|
// IF NOT IS_ANY_CONVERSATION_ONGOING_OR_QUEUED()
|
|
IF NOT g_bAltruistCultExitMusicPlayed
|
|
TRIGGER_MUSIC_EVENT("AC_EN_ROUTE_CULT")
|
|
g_bAltruistCultExitMusicPlayed = TRUE
|
|
IF NOT g_bAltruistCultFinalDialogueHasPlayed
|
|
g_bAltruistCultFinalDialogueHasPlayed = TRUE
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
IF g_bAltruistCultExitMusicPlayed
|
|
TRIGGER_MUSIC_EVENT("AC_LEFT_AREA")
|
|
g_bAltruistCultExitMusicPlayed = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
PROC RESET_CULT_STATUS()
|
|
//Cleanup in RE
|
|
g_bDeliverCurrentGroupMembersToCult = FALSE
|
|
g_bCurrentGroupMembersHaveBeenDeliveredToCult = FALSE
|
|
g_bAltruistCultDialogueHasPlayed = FALSE
|
|
g_bAltruistCultFinalDialogueHasPlayed = FALSE
|
|
g_bAltruistCultExitMusicPlayed = FALSE
|
|
ENDPROC
|
|
|
|
PROC PRINT_CULT_HELP()
|
|
IF GET_CURRENT_PLAYER_PED_ENUM() = CHAR_TREVOR
|
|
IF NOT g_bAltruistCultHelpHasDisplayed
|
|
PRINT_HELP("CULT_BLIP_HELP")
|
|
g_bAltruistCultHelpHasDisplayed = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|