3312 lines
107 KiB
Python
Executable File
3312 lines
107 KiB
Python
Executable File
USING "rage_builtins.sch"
|
|
USING "globals.sch"
|
|
USING "commands_hud.sch"
|
|
USING "script_player.sch"
|
|
USING "brains.sch"
|
|
USING "commands_pad.sch"
|
|
USING "website_private.sch"
|
|
USING "website_public.sch"
|
|
USING "heading_push_trigger_public.sch"
|
|
USING "context_control_public.sch"
|
|
USING "net_mission.sch"
|
|
USING "scriptsaves_procs.sch"
|
|
USING "script_misc.sch"
|
|
|
|
USING "net_transition_sessions.sch"
|
|
|
|
INT iHealthDeltaLast = 0
|
|
VECTOR atmAT
|
|
INT iATMSynchSceneStage = 0
|
|
INT iATMSynchSceneID
|
|
VECTOR vSynchSceneOffset3rd = <<0,-0.7,1>>, vSynchSceneOffset1st = <<0,-0.8,1>>
|
|
VECTOR vSynchSceneOrigin
|
|
TEXT_LABEL tPreviousIdleAnim
|
|
|
|
BOOL bTransactionHappened = FALSE
|
|
|
|
BOOL bCreatedBlinders = FALSE
|
|
|
|
BOOL bDisplayedBEHelp = FALSE
|
|
|
|
BOOL bRunningInMP = FALSE
|
|
|
|
BOOL bMouseMode = FALSE
|
|
FLOAT fMouseStartX = -1.0
|
|
FLOAT fMouseStartY = -1.0
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
WIDGET_GROUP_ID d_wAtmWidget
|
|
BOOL d_bAtmTestAnims
|
|
#ENDIF
|
|
|
|
ENUM eATM_ANIM_SET
|
|
eAnimSet_enter = 0, // enter
|
|
eAnimSet_base, // base
|
|
eAnimSet_idle, // idle_a [3:idle_b, 4:idle_c, 5:idle_d]
|
|
eAnimSet_exit // exit
|
|
ENDENUM
|
|
|
|
STRUCT ServerBroadcastData
|
|
INT iSeats[NUM_NETWORK_PLAYERS]
|
|
INT iAssignedSeatBS
|
|
BOOL bSpawnedPeds
|
|
ENDSTRUCT
|
|
ServerBroadcastData serverBD
|
|
|
|
STRUCT PlayerBroadcastData
|
|
BOOL bWarpedInside
|
|
ENDSTRUCT
|
|
PlayerBroadcastData playerBD[NUM_NETWORK_PLAYERS]
|
|
|
|
FUNC BOOL Get_Atm_Anim_Dict_Names(eATM_ANIM_SET eAnimset, TEXT_LABEL_63 &tAtmAnimDict /*, TEXT_LABEL_63 &tAtmAnimClip*/ )
|
|
|
|
IF NOT NETWORK_IS_GAME_IN_PROGRESS()
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
AND NOT d_bAtmTestAnims
|
|
#ENDIF
|
|
|
|
tAtmAnimDict = ""
|
|
RETURN FALSE
|
|
ENDIF
|
|
IF SHOULD_THIS_MULTIPLAYER_THREAD_TERMINATE()
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
MODEL_NAMES ePlayer_ped_model = GET_ENTITY_MODEL(PLAYER_PED_ID())
|
|
|
|
IF ePlayer_ped_model = MP_M_FREEMODE_01
|
|
SWITCH eAnimset
|
|
CASE eAnimSet_enter
|
|
#IF NOT IS_NEXTGEN_BUILD
|
|
tAtmAnimDict = "anim@mp_atm@enter"
|
|
IF NOT DOES_ANIM_DICT_EXIST(tAtmAnimDict)
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@male@enter"
|
|
ENDIF
|
|
RETURN TRUE
|
|
#ENDIF
|
|
#IF IS_NEXTGEN_BUILD
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@male@enter"
|
|
IF NOT DOES_ANIM_DICT_EXIST(tAtmAnimDict)
|
|
tAtmAnimDict = "mini@atmenter"
|
|
ENDIF
|
|
RETURN TRUE
|
|
#ENDIF
|
|
BREAK
|
|
|
|
CASE eAnimSet_base
|
|
#IF NOT IS_NEXTGEN_BUILD
|
|
tAtmAnimDict = "anim@mp_atm@base"
|
|
IF NOT DOES_ANIM_DICT_EXIST(tAtmAnimDict)
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@male@base"
|
|
ENDIF
|
|
RETURN TRUE
|
|
#ENDIF
|
|
#IF IS_NEXTGEN_BUILD
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@male@base"
|
|
IF NOT DOES_ANIM_DICT_EXIST(tAtmAnimDict)
|
|
tAtmAnimDict = "mini@atmbase"
|
|
ENDIF
|
|
RETURN TRUE
|
|
#ENDIF
|
|
BREAK
|
|
|
|
CASE eAnimSet_idle
|
|
#IF NOT IS_NEXTGEN_BUILD
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@male@idle_a" RETURN TRUE
|
|
#ENDIF
|
|
#IF IS_NEXTGEN_BUILD
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@male@idle_a"
|
|
IF NOT DOES_ANIM_DICT_EXIST(tAtmAnimDict)
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@male@idle_a"
|
|
ENDIF
|
|
RETURN TRUE
|
|
#ENDIF
|
|
BREAK
|
|
|
|
CASE eAnimSet_exit
|
|
#IF NOT IS_NEXTGEN_BUILD
|
|
tAtmAnimDict = "anim@mp_atm@exit"
|
|
IF NOT DOES_ANIM_DICT_EXIST(tAtmAnimDict)
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@male@exit"
|
|
ENDIF
|
|
RETURN TRUE
|
|
#ENDIF
|
|
#IF IS_NEXTGEN_BUILD
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@male@exit"
|
|
IF NOT DOES_ANIM_DICT_EXIST(tAtmAnimDict)
|
|
tAtmAnimDict = "mini@atmexit"
|
|
ENDIF
|
|
RETURN TRUE
|
|
#ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ELIF ePlayer_ped_model = MP_F_FREEMODE_01
|
|
SWITCH eAnimset
|
|
CASE eAnimSet_enter
|
|
#IF NOT IS_NEXTGEN_BUILD
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@female@enter" RETURN TRUE
|
|
#ENDIF
|
|
#IF IS_NEXTGEN_BUILD
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@female@enter"
|
|
IF NOT DOES_ANIM_DICT_EXIST(tAtmAnimDict)
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@female@enter"
|
|
ENDIF
|
|
RETURN TRUE
|
|
#ENDIF
|
|
BREAK
|
|
|
|
CASE eAnimSet_base
|
|
#IF NOT IS_NEXTGEN_BUILD
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@female@base" RETURN TRUE
|
|
#ENDIF
|
|
#IF IS_NEXTGEN_BUILD
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@female@base"
|
|
IF NOT DOES_ANIM_DICT_EXIST(tAtmAnimDict)
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@female@base"
|
|
ENDIF
|
|
RETURN TRUE
|
|
#ENDIF
|
|
BREAK
|
|
|
|
CASE eAnimSet_idle
|
|
#IF NOT IS_NEXTGEN_BUILD
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@female@idle_a" RETURN TRUE
|
|
#ENDIF
|
|
#IF IS_NEXTGEN_BUILD
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@female@idle_a"
|
|
IF NOT DOES_ANIM_DICT_EXIST(tAtmAnimDict)
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@female@idle_a"
|
|
ENDIF
|
|
RETURN TRUE
|
|
#ENDIF
|
|
BREAK
|
|
|
|
CASE eAnimSet_exit
|
|
#IF NOT IS_NEXTGEN_BUILD
|
|
tAtmAnimDict = "anim@mp_atm@exit"
|
|
IF NOT DOES_ANIM_DICT_EXIST(tAtmAnimDict)
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@female@exit"
|
|
ENDIF
|
|
RETURN TRUE
|
|
#ENDIF
|
|
#IF IS_NEXTGEN_BUILD
|
|
tAtmAnimDict = "anim@amb@prop_human_atm@interior@female@exit"
|
|
IF NOT DOES_ANIM_DICT_EXIST(tAtmAnimDict)
|
|
tAtmAnimDict = "mini@atmexit"
|
|
ENDIF
|
|
RETURN TRUE
|
|
#ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
|
|
tAtmAnimDict = ""
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
|
|
PROC SETUP_ATM_DEBUG_WIDGETS()
|
|
d_wAtmWidget = START_WIDGET_GROUP("Atm Trigger")
|
|
ADD_WIDGET_BOOL("d_bAtmTestAnims", d_bAtmTestAnims)
|
|
ADD_WIDGET_BOOL("g_bFake_fire_and_forget_new_atm", g_bFake_fire_and_forget_new_atm)
|
|
STOP_WIDGET_GROUP()
|
|
ENDPROC
|
|
|
|
PROC MAINTAIN_ATM_DEBUG_WIDGETS()
|
|
IF d_bAtmTestAnims
|
|
|
|
TEXT_LABEL_63 tAtmAnimDict
|
|
Get_Atm_Anim_Dict_Names(eAnimSet_enter, tAtmAnimDict)
|
|
|
|
|
|
SET_CURRENT_WIDGET_GROUP(d_wAtmWidget)
|
|
WIDGET_GROUP_ID d_wAtmSubwidget = START_WIDGET_GROUP("d_bAtmTestAnims")
|
|
ADD_WIDGET_VECTOR_SLIDER("vSynchSceneOffset3rd", vSynchSceneOffset3rd, -2.0, 2.0, 0.001)
|
|
ADD_WIDGET_VECTOR_SLIDER("vSynchSceneOffset1st", vSynchSceneOffset1st, -2.0, 2.0, 0.001)
|
|
STOP_WIDGET_GROUP()
|
|
CLEAR_CURRENT_WIDGET_GROUP(d_wAtmWidget)
|
|
|
|
WHILE d_bAtmTestAnims
|
|
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(iATMSynchSceneID)
|
|
DETACH_SYNCHRONIZED_SCENE(iATMSynchSceneID)
|
|
CLEAR_PED_TASKS(PLAYER_PED_ID())
|
|
ENDIF
|
|
|
|
DELETE_WIDGET_GROUP(d_wAtmSubwidget)
|
|
ENDIF
|
|
ENDPROC
|
|
#ENDIF
|
|
|
|
|
|
FUNC INT DO_MP_TRANSACTION_LOG(SCALEFORM_INDEX si)
|
|
|
|
|
|
|
|
INT i = 2
|
|
/*
|
|
INT g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.iLogCaret
|
|
INT g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogValues[MP_TOTAL_ATM_LOG_ENTRIES]
|
|
TEXT_LABEL_23 g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogSourceNames[MP_TOTAL_ATM_LOG_ENTRIES]
|
|
MP_ATM_LOG_ACTION_TYPE g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogActionType[MP_TOTAL_ATM_LOG_ENTRIES]
|
|
*/
|
|
|
|
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.iLogCaret > MP_TOTAL_ATM_LOG_ENTRIES-1
|
|
g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.iLogCaret = 0
|
|
ENDIF
|
|
|
|
INT iStartAt = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.iLogCaret-1
|
|
|
|
IF iStartAt < 0
|
|
iStartAt = MP_TOTAL_ATM_LOG_ENTRIES-1
|
|
ENDIF
|
|
|
|
INT iCoveredCountDown = MP_TOTAL_ATM_LOG_ENTRIES
|
|
INT doneTotal = 0
|
|
WHILE iCoveredCountDown > 0
|
|
CPRINTLN(DEBUG_FINANCE, "DO_MP_TRANSACTION_LOG: iStartAt = ",iStartAt, " value ", g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogValues[iStartAt])
|
|
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogValues[iStartAt] > 0
|
|
AND INT_TO_ENUM(SPEND_CATEGORIES, g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogData[iStartAt]) != MONEY_SPENT_BETTING
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(i)
|
|
++doneTotal
|
|
SWITCH g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogActionType[iStartAt]
|
|
CASE MALA_CASH_BOUGHT
|
|
CASE MALA_CASH_RECIEVED
|
|
CASE MALA_DEPOSIT
|
|
CASE MALA_REFUND
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
BREAK
|
|
CASE MALA_WITHDRAW
|
|
CASE MALA_CASH_SENT
|
|
CASE MALA_PURCHASE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogValues[iStartAt])
|
|
SPEND_CATEGORIES s
|
|
EARN_CATEGORIES e
|
|
SWITCH g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogActionType[iStartAt]
|
|
CASE MALA_WITHDRAW
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_PLCHLDR_WDR")
|
|
BREAK
|
|
CASE MALA_DEPOSIT
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_PLCHLDR_CAD")
|
|
BREAK
|
|
CASE MALA_CASH_RECIEVED
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("MPATM_PLCHLDR_CRF")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogSourceNames[iStartAt])
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
BREAK
|
|
CASE MALA_CASH_SENT
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("MPATM_PLCHLDR_CST")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogSourceNames[iStartAt])
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
BREAK
|
|
CASE MALA_CASH_BOUGHT
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_PLCHLDR_BRT")
|
|
BREAK
|
|
|
|
CASE MALA_PURCHASE
|
|
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogData[iStartAt] != 0
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(GET_STRING_FROM_HASH_KEY(g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogData[iStartAt]))
|
|
s = INT_TO_ENUM(SPEND_CATEGORIES, g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogData[iStartAt])
|
|
SWITCH s
|
|
CASE MONEY_SPENT_CONTACT_SERVICE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_SPENT_CONTACT_SERVICE")
|
|
BREAK
|
|
CASE MONEY_SPENT_PROPERTY_UTIL
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_SPENT_PROPERTY_UTIL")
|
|
BREAK
|
|
CASE MONEY_SPENT_JOB_ACTIVITY
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_SPENT_JOB_ACTIVITY")
|
|
BREAK
|
|
CASE MONEY_SPENT_BETTING
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_SPENT_BETTING")
|
|
BREAK
|
|
CASE MONEY_SPENT_STYLE_ENT
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_SPENT_STYLE_ENT")
|
|
BREAK
|
|
CASE MONEY_SPENT_HEALTHCARE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_SPENT_HEALTHCARE")
|
|
BREAK
|
|
CASE MONEY_SPENT_FROM_DEBUG
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_SPENT_FROM_DEBUG")
|
|
BREAK
|
|
CASE MONEY_SPENT_DROPPED_STOLEN
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_SPENT_DROPPED_STOLEN")
|
|
BREAK
|
|
CASE MONEY_SPENT_VEH_MAINTENANCE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_SPENT_VEH_MAINTENANCE")
|
|
BREAK
|
|
CASE MONEY_SPENT_HOLDUPS
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_SPENT_HOLDUPS")
|
|
BREAK
|
|
CASE MONEY_SPENT_PASSIVEMODE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_SPENT_PASSIVEMODE")
|
|
BREAK
|
|
//CASE MONEY_SPENT_BANKINTEREST
|
|
// SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_SPENT_BANKINTEREST")
|
|
// BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_PLCHLDR_PRCH")
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
CASE MALA_REFUND
|
|
|
|
IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogData[iStartAt] != 0
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING(GET_STRING_FROM_HASH_KEY(g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogData[iStartAt]))
|
|
e = INT_TO_ENUM(EARN_CATEGORIES,g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedATM.LogData[iStartAt])
|
|
SWITCH e
|
|
CASE MONEY_EARN_JOBS
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_EARN_JOBS")
|
|
BREAK
|
|
CASE MONEY_EARN_SELLING_VEH
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_EARN_SELLING_VEH")
|
|
BREAK
|
|
CASE MONEY_EARN_BETTING
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_EARN_BETTING")
|
|
BREAK
|
|
CASE MONEY_EARN_GOOD_SPORT
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_EARN_GOOD_SPORT")
|
|
BREAK
|
|
CASE MONEY_EARN_PICKED_UP
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_EARN_PICKED_UP")
|
|
BREAK
|
|
CASE MONEY_EARN_SHARED
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_EARN_SHARED")
|
|
BREAK
|
|
CASE MONEY_EARN_JOBSHARED
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_EARN_JOBSHARED")
|
|
BREAK
|
|
CASE MONEY_EARN_ROCKSTAR_AWARD
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_EARN_ROCKSTAR_AWARD")
|
|
BREAK
|
|
CASE MONEY_EARN_REFUND
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_EARN_REFUND")
|
|
BREAK
|
|
CASE MONEY_EARN_FROM_JOB_BONUS
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_EARN_JOB_BONUS")
|
|
BREAK
|
|
CASE MONEY_EARN_FROM_HEIST_JOB
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MONEY_EARN_HEIST_JOB")
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_PLCHLDR_REF")
|
|
ENDIF
|
|
|
|
BREAK
|
|
|
|
ENDSWITCH
|
|
|
|
/*
|
|
[MPATM_PLCHLDR_CRF]
|
|
Cash Received from: ~a~
|
|
|
|
[MPATM_PLCHLDR_CST]
|
|
Cash Sent to: ~a~
|
|
|
|
[MPATM_PLCHLDR_CAD]
|
|
Cash Deposited
|
|
|
|
[MPATM_PLCHLDR_WDR]
|
|
Cash Withdrawn
|
|
*/
|
|
|
|
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
++i
|
|
ENDIF
|
|
--iStartAt
|
|
IF iStartAt = -1
|
|
iStartAt = MP_TOTAL_ATM_LOG_ENTRIES-1
|
|
ENDIF
|
|
--iCoveredCountDown
|
|
ENDWHILE
|
|
RETURN doneTotal
|
|
ENDFUNC
|
|
|
|
FUNC BOOL ATM_HEALTH_DELTA_FAILED()
|
|
PED_INDEX pi = PLAYER_PED_ID()
|
|
|
|
IF IS_ENTITY_DEAD(pi)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF iHealthDeltaLast = 0
|
|
iHealthDeltaLast = GET_ENTITY_HEALTH(pi)
|
|
RETURN FALSE
|
|
ENDIF
|
|
INT thelth = GET_ENTITY_HEALTH(pi)
|
|
IF iHealthDeltaLast != thelth
|
|
iHealthDeltaLast = thelth
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
BOOL shapeTestResult = FALSE
|
|
SHAPETEST_INDEX currentShapeTest = NULL
|
|
|
|
FUNC BOOL PLAYER_STOOD_ON_A_CAR()
|
|
//if not sure return false
|
|
|
|
IF currentShapeTest = NULL
|
|
//start test
|
|
VECTOR atpoint = GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE)
|
|
currentShapeTest = START_SHAPE_TEST_CAPSULE(atpoint, atpoint -<<0,0,3.0>>, 0.33, SCRIPT_INCLUDE_VEHICLE, PLAYER_PED_ID())
|
|
RETURN shapeTestResult
|
|
ELSE
|
|
//continue test
|
|
INT iHit = 0
|
|
VECTOR a
|
|
VECTOR b
|
|
ENTITY_INDEX thing
|
|
SHAPETEST_STATUS result = GET_SHAPE_TEST_RESULT(currentShapeTest,iHit,a,b,thing)
|
|
IF result = SHAPETEST_STATUS_RESULTS_READY//check for expired also
|
|
shapeTestResult = FALSE
|
|
IF iHit != 0
|
|
CPRINTLN(DEBUG_FINANCE, "Got shapetest result : ",iHit)
|
|
|
|
currentShapeTest = NULL
|
|
//was a car hit
|
|
IF IS_ENTITY_A_VEHICLE(thing)
|
|
AND NOT IS_ENTITY_A_GHOST(thing)
|
|
shapeTestResult = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
RETURN shapeTestResult
|
|
ELSE
|
|
IF result = SHAPETEST_STATUS_NONEXISTENT
|
|
currentShapeTest = NULL
|
|
ENDIF
|
|
RETURN shapeTestResult
|
|
ENDIF
|
|
ENDIF
|
|
//if sure set shapeTestResult one way or another
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
INT iRangeCheckGracePeriod = 0
|
|
FUNC BOOL SCREEN_TERMINATION_CONDITION_CHECKS(OBJECT_INDEX oAtm, BOOL bDoOutOfRange = TRUE)
|
|
IF NETWORK_IS_SESSION_ACTIVE()
|
|
IF NETWORK_SESSION_IS_AWAITING_INVITE_RESPONSE()
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
IF DOES_ENTITY_EXIST(oAtm)
|
|
AND IS_ENTITY_AN_OBJECT(oAtm)
|
|
IF HAS_OBJECT_BEEN_BROKEN(oAtm)
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
//IF IS_SYSTEM_UI_BEING_DISPLAYED()
|
|
// RETURN TRUE
|
|
//ENDIF
|
|
|
|
IF IS_SELECTOR_ONSCREEN(FALSE)
|
|
RETURN TRUE
|
|
ENDIF
|
|
IF bDoOutOfRange
|
|
AND iRangeCheckGracePeriod > 1000
|
|
IF NOT (IS_ENTITY_AT_COORD(PLAYER_PED_ID(),atmAT, << 1.5, 1.5, 1.5 >>, FALSE,TRUE, TM_ON_FOOT))
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF (IS_PED_RAGDOLL(PLAYER_PED_ID()))
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
PLAYER_INDEX pi = GET_PLAYER_INDEX()
|
|
IF NOT IS_PLAYER_PLAYING(pi)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF NOT IS_PLAYER_CONTROL_ON(pi)
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF ATM_HEALTH_DELTA_FAILED()
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF PLAYER_STOOD_ON_A_CAR()
|
|
CPRINTLN(DEBUG_FINANCE, "Atm detected car stand")
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
IF g_bInMultiplayer
|
|
AND MP_FORCE_TERMINATE_INTERNET_ACTIVE()
|
|
PRINTLN("SCREEN_TERMINATION_CONDITION_CHECKS - MP force terminate internet active")
|
|
RETURN FALSE
|
|
ENDIF
|
|
IF NOT g_bInMultiplayer
|
|
AND SP_FORCE_TERMINATE_INTERNET_ACTIVE()
|
|
PRINTLN("SCREEN_TERMINATION_CONDITION_CHECKS - SP force terminate internet active")
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF (g_bInMultiplayer) AND NETWORK_IS_GAME_IN_PROGRESS()
|
|
IF SHOULD_THIS_MULTIPLAYER_THREAD_TERMINATE()
|
|
CPRINTLN(DEBUG_FINANCE, "Atm - SHOULD_THIS_MULTIPLAYER_THREAD_TERMINATE()")
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
// #IF FEATURE_HEIST_PLANNING
|
|
// IF IS_THIS_TRANSITION_SESSION_PLAYER_ON_CALL()
|
|
// PRINTLN("Atm - IS_THIS_TRANSITION_SESSION_PLAYER_ON_CALL()")
|
|
// RETURN TRUE
|
|
// ENDIF
|
|
// #ENDIF
|
|
|
|
//do some checks to see if someone else is using the ATM in MP
|
|
INT i
|
|
REPEAT NUM_NETWORK_PLAYERS i
|
|
IF playerBD[i].bWarpedInside
|
|
AND PARTICIPANT_ID_TO_INT() != i
|
|
CPRINTLN(DEBUG_FINANCE, "Atm - playerBD[", i, "].bWarpedInside")
|
|
|
|
RETURN TRUE
|
|
ENDIF
|
|
ENDREPEAT
|
|
|
|
ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
INT iTerminationCooldown = 3000
|
|
FUNC BOOL SCREEN_TERMINATION_CONDITION(OBJECT_INDEX oAtm, BOOL bDoOutOfRange = TRUE)
|
|
|
|
IF iTerminationCooldown < 3000
|
|
CDEBUG1LN(DEBUG_FINANCE, "Atm SCREEN_TERMINATION_CONDITION: ", iTerminationCooldown)
|
|
RETURN TRUE
|
|
ENDIF
|
|
IF SCREEN_TERMINATION_CONDITION_CHECKS(oAtm,bDoOutOfRange)
|
|
iTerminationCooldown = 0
|
|
RETURN TRUE
|
|
ENDIF
|
|
RETURN FALSE
|
|
|
|
ENDFUNC
|
|
|
|
INT iCandidate = NO_CANDIDATE_ID
|
|
|
|
SCALEFORM_INDEX atmmov = NULL
|
|
SCALEFORM_INDEX atmbuttons
|
|
|
|
INT iPendingTransactionAmount = 0
|
|
|
|
BOOL bHeistFinaleBoardUnpinned = FALSE
|
|
BOOL bTriggered = FALSE
|
|
|
|
PROC CLEANUP_ATM()
|
|
|
|
CDEBUG1LN(DEBUG_FINANCE, " - atm_trigger - CLEANUP - Cleaning up the ATM.")
|
|
|
|
IF bTriggered
|
|
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
|
|
CPRINTLN(DEBUG_FINANCE, "Player atm scenario cancel out")
|
|
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())//1388194
|
|
IF (IS_PED_USING_ANY_SCENARIO(PLAYER_PED_ID()))
|
|
|
|
SET_PED_SHOULD_PLAY_IMMEDIATE_SCENARIO_EXIT(PLAYER_PED_ID())
|
|
CLEAR_PED_TASKS(PLAYER_PED_ID())
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
REMOVE_HELP_FROM_FLOW_QUEUE("ATM_1TM_TUT")
|
|
|
|
IF iCandidate != NO_CANDIDATE_ID
|
|
RELEASE_CONTEXT_INTENTION(iCandidate)
|
|
ENDIF
|
|
|
|
IF atmmov != NULL
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(atmmov)
|
|
ENDIF
|
|
|
|
MP_FORCE_TERMINATE_INTERNET_CLEAR()
|
|
SP_FORCE_TERMINATE_INTERNET_CLEAR()
|
|
|
|
g_bInAtm = FALSE//1649814
|
|
|
|
//Disable blinders if we created them
|
|
SET_MULTIHEAD_SAFE(FALSE,TRUE,bCreatedBlinders, TRUE)
|
|
|
|
IF bHeistFinaleBoardUnpinned
|
|
CDEBUG1LN(DEBUG_FINANCE, " - atm_trigger - CLEANUP - Re-pinning heist finale planning baord on cleanup of ATM.")
|
|
PIN_HEIST_BOARD_IN_MEMORY(HEIST_FINALE, TRUE)
|
|
bHeistFinaleBoardUnpinned = FALSE
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
////////////////////////////////MP transaction log
|
|
|
|
PROC ATM_CONTROL_DISABLE()
|
|
SET_CLEAR_ON_CALL_HUD_THIS_FRAME()
|
|
|
|
IF (NOT IS_SYSTEM_UI_BEING_DISPLAYED())
|
|
AND (NOT IS_PAUSE_MENU_ACTIVE())
|
|
DISABLE_ALL_CONTROL_ACTIONS(PLAYER_CONTROL)
|
|
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_PAUSE_ALTERNATE)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_FRONTEND_UP)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_FRONTEND_DOWN)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_FRONTEND_LEFT)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_FRONTEND_RIGHT)
|
|
//DISABLE_ALL_CONTROL_ACTIONS(FRONTEND_CONTROL)4789992
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_CURSOR_X)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_CURSOR_Y)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_CURSOR_ACCEPT)
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
PROC RENDER_ATM()
|
|
|
|
HIDE_HUD_AND_RADAR_THIS_FRAME()
|
|
HIDE_SCRIPTED_HUD_COMPONENT_THIS_FRAME(HUD_MP_RANK_BAR)
|
|
|
|
SET_GAMEPLAY_CAM_RELATIVE_PITCH(0.0)
|
|
SET_GAMEPLAY_CAM_RELATIVE_HEADING(0.0)
|
|
ATM_CONTROL_DISABLE()
|
|
IF g_bInMultiplayer
|
|
SHOW_HUD_COMPONENT_THIS_FRAME(NEW_HUD_MP_CASH)//1544427
|
|
SHOW_HUD_COMPONENT_THIS_FRAME(NEW_HUD_MP_MESSAGE)
|
|
SHOW_HUD_COMPONENT_THIS_FRAME(NEW_HUD_CASH_CHANGE)
|
|
SHOW_HUD_COMPONENT_THIS_FRAME(NEW_HUD_CASH)
|
|
ENDIF
|
|
|
|
|
|
#IF USE_TU_CHANGES
|
|
g_b_IsATMrenderingForTimers = TRUE
|
|
NET_NL()NET_PRINT("RENDER_ATM: g_b_IsATMrenderingForTimers")
|
|
#ENDIF
|
|
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_FRONTEND_PAUSE)
|
|
SET_SCRIPT_GFX_DRAW_ORDER(GFX_ORDER_BEFORE_HUD)
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN(atmmov,255,255,255,255)
|
|
|
|
REPLAY_PREVENT_RECORDING_AND_UI_THIS_FRAME()
|
|
|
|
DISABLE_CELLPHONE_THIS_FRAME_ONLY()
|
|
DISABLE_ALL_MP_HUD_THIS_FRAME()
|
|
WAIT(0)
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
PROC CONFIGURE_ATM_BUTTONS(BOOL bScroll = FALSE, BOOL bAnalogueScroll = FALSE)
|
|
|
|
CPRINTLN(DEBUG_FINANCE, "CONFIGURE_ATM_BUTTONS: bScroll-",bScroll," bAnalogueScroll-",bAnalogueScroll)
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(atmbuttons, "CLEAR_ALL")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(atmbuttons, "SET_CLEAR_SPACE")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(200)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
// Clickable buttons for PC keyboard and mouse
|
|
IF IS_PC_VERSION()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(atmbuttons, "TOGGLE_MOUSE_BUTTONS")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
INT orderlol = 0 //1483746
|
|
|
|
IF g_bInMultiplayer
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(atmbuttons, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(orderlol)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_SELECT")
|
|
IF IS_PC_VERSION()
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE) // CLICKABLE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(INPUT_FRONTEND_ACCEPT))
|
|
ENDIF
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
++orderlol
|
|
|
|
IF IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL)
|
|
bAnalogueScroll = FALSE
|
|
ENDIF
|
|
|
|
IF bScroll
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(atmbuttons, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(orderlol)
|
|
IF bAnalogueScroll
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT_AXIS_Y))
|
|
ELSE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(GET_CONTROL_GROUP_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUTGROUP_FRONTEND_DPAD_UD))
|
|
ENDIF
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_NAV")
|
|
IF IS_PC_VERSION()
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE) // NON-CLICKABLE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(MAX_INPUTS))
|
|
ENDIF
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
++orderlol
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(atmbuttons, "SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(orderlol)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INSTRUCTIONAL_BUTTONS(GET_CONTROL_INSTRUCTIONAL_BUTTONS_STRING(FRONTEND_CONTROL, INPUT_FRONTEND_CANCEL))
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_EXIT")
|
|
IF IS_PC_VERSION()
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE) // CLICKABLE
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(ENUM_TO_INT(INPUT_FRONTEND_CANCEL))
|
|
ENDIF
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
++orderlol
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(atmbuttons, "DRAW_INSTRUCTIONAL_BUTTONS")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
ENDPROC
|
|
|
|
FUNC BOOL CONVERT_FM_TO_VC(OBJECT_INDEX oAtm, INT XDollars)
|
|
INT iRemaining
|
|
IF !NETWORK_CAN_SPEND_MONEY2(XDollars, FALSE, FALSE, FALSE, iRemaining)
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
IF NET_GAMESERVER_TRANSACTION_IN_PROGRESS()
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_FM_TO_VC($",XDollars,") error three (NET_GAMESERVER_TRANSACTION_IN_PROGRESS)")
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
INT currentState, refreshSessionRequested
|
|
NET_GAMESERVER_GET_SESSION_STATE_AND_STATUS(currentState, refreshSessionRequested)
|
|
IF (INT_TO_ENUM(GAMESERVER_STATES, currentState) != GAMESERVER_READY)
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_FM_TO_VC($",XDollars,") error four (currentState[", currentState, "] != GAMESERVER_READY)")
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF NET_GAMESERVER_TRANSFER_WALLET_TO_BANK(GET_MP_INT_PLAYER_STAT(MPPLY_LAST_MP_CHAR), XDollars)
|
|
NET_GAMESERVER_TRANSACTION_STATUS eNSTS
|
|
eNSTS = NET_GAMESERVER_TRANSFER_WALLET_TO_BANK_GET_STATUS()
|
|
|
|
WHILE (eNSTS = TRANSACTION_STATUS_PENDING)
|
|
AND NOT SCREEN_TERMINATION_CONDITION_CHECKS(oAtm)
|
|
eNSTS = NET_GAMESERVER_TRANSFER_WALLET_TO_BANK_GET_STATUS()
|
|
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_FM_TO_VC($",XDollars,") waiting")
|
|
RENDER_ATM()
|
|
ENDWHILE
|
|
|
|
IF eNSTS = TRANSACTION_STATUS_SUCCESSFULL
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_FM_TO_VC($",XDollars,") success!!!")
|
|
NET_GAMESERVER_TRANSFER_CASH_SET_TELEMETRY_NONCE_SEED()
|
|
//
|
|
ELSE
|
|
#IF IS_DEBUG_BUILD
|
|
SWITCH eNSTS
|
|
CASE TRANSACTION_STATUS_NONE
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_FM_TO_VC($",XDollars,") error two (TRANSACTION_STATUS_NONE != TRANSACTION_STATUS_SUCCESSFULL)")
|
|
BREAK
|
|
CASE TRANSACTION_STATUS_PENDING
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_FM_TO_VC($",XDollars,") error two (TRANSACTION_STATUS_PENDING != TRANSACTION_STATUS_SUCCESSFULL)")
|
|
BREAK
|
|
CASE TRANSACTION_STATUS_FAILED
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_FM_TO_VC($",XDollars,") error two (TRANSACTION_STATUS_FAILED != TRANSACTION_STATUS_SUCCESSFULL)")
|
|
BREAK
|
|
CASE TRANSACTION_STATUS_SUCCESSFULL
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_FM_TO_VC($",XDollars,") error two (TRANSACTION_STATUS_SUCCESSFULL != TRANSACTION_STATUS_SUCCESSFULL)")
|
|
BREAK
|
|
CASE TRANSACTION_STATUS_CANCELED
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_FM_TO_VC($",XDollars,") error two (TRANSACTION_STATUS_CANCELED != TRANSACTION_STATUS_SUCCESSFULL)")
|
|
BREAK
|
|
DEFAULT
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_FM_TO_VC($",XDollars,") error two (eNSTS_", eNSTS, " != TRANSACTION_STATUS_SUCCESSFULL)")
|
|
BREAK
|
|
ENDSWITCH
|
|
#ENDIF
|
|
|
|
RETURN FALSE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_FM_TO_VC($",XDollars,") error one (not NET_GAMESERVER_TRANSFER_BANK_TO_WALLET", GET_MP_INT_PLAYER_STAT(MPPLY_LAST_MP_CHAR), ", ", XDollars, "))")
|
|
RETURN FALSE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_FM_TO_VC($",XDollars,") ignore NET_GAMESERVER_TRANSFER_WALLET_TO_BANK")
|
|
ENDIF
|
|
|
|
DEPOSIT_VC(XDollars)
|
|
IF (g_bInMultiplayer) AND NETWORK_IS_GAME_IN_PROGRESS()
|
|
INCREMENT_BY_MP_INT_CHARACTER_STAT(MP_STAT_ATM_BANK_BALANCE,1)
|
|
CPRINTLN(DEBUG_FINANCE, "[KW] INCREMENT_BY_MP_INT_CHARACTER_STAT(MP_STAT_ATM_BANK_BALANCE,1)")
|
|
ENDIF
|
|
bTransactionHappened = TRUE
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
INT iLastTransactionID = -1
|
|
FUNC BOOL CONVERT_VC_TO_FM(OBJECT_INDEX oAtm, INT XDollars)
|
|
INT iOwned = NETWORK_GET_VC_BANK_BALANCE()
|
|
IF XDollars > iOwned
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF USE_SERVER_TRANSACTIONS()
|
|
IF NET_GAMESERVER_TRANSACTION_IN_PROGRESS()
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_VC_TO_FM($",XDollars,") error three (NET_GAMESERVER_TRANSACTION_IN_PROGRESS)")
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
INT currentState, refreshSessionRequested
|
|
NET_GAMESERVER_GET_SESSION_STATE_AND_STATUS(currentState, refreshSessionRequested)
|
|
IF (INT_TO_ENUM(GAMESERVER_STATES, currentState) != GAMESERVER_READY)
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_VC_TO_FM($",XDollars,") error four (currentState[", currentState, "] != GAMESERVER_READY)")
|
|
RETURN FALSE
|
|
ENDIF
|
|
|
|
IF NET_GAMESERVER_TRANSFER_BANK_TO_WALLET(GET_MP_INT_PLAYER_STAT(MPPLY_LAST_MP_CHAR), XDollars)
|
|
NET_GAMESERVER_TRANSACTION_STATUS eNSTS
|
|
eNSTS = NET_GAMESERVER_TRANSFER_BANK_TO_WALLET_GET_STATUS()
|
|
|
|
WHILE (eNSTS = TRANSACTION_STATUS_PENDING)
|
|
AND NOT SCREEN_TERMINATION_CONDITION_CHECKS(oAtm)
|
|
eNSTS = NET_GAMESERVER_TRANSFER_WALLET_TO_BANK_GET_STATUS()
|
|
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_VC_TO_FM($",XDollars,"): waiting...")
|
|
RENDER_ATM()
|
|
ENDWHILE
|
|
|
|
IF eNSTS = TRANSACTION_STATUS_SUCCESSFULL
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_VC_TO_FM($",XDollars,") success!!!")
|
|
NET_GAMESERVER_TRANSFER_CASH_SET_TELEMETRY_NONCE_SEED()
|
|
//
|
|
ELSE
|
|
#IF IS_DEBUG_BUILD
|
|
SWITCH eNSTS
|
|
CASE TRANSACTION_STATUS_NONE
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_VC_TO_FM($",XDollars,") error two (TRANSACTION_STATUS_NONE != TRANSACTION_STATUS_SUCCESSFULL)")
|
|
BREAK
|
|
CASE TRANSACTION_STATUS_PENDING
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_VC_TO_FM($",XDollars,") error two (TRANSACTION_STATUS_PENDING != TRANSACTION_STATUS_SUCCESSFULL)")
|
|
BREAK
|
|
CASE TRANSACTION_STATUS_FAILED
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_VC_TO_FM($",XDollars,") error two (TRANSACTION_STATUS_FAILED != TRANSACTION_STATUS_SUCCESSFULL)")
|
|
BREAK
|
|
CASE TRANSACTION_STATUS_SUCCESSFULL
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_VC_TO_FM($",XDollars,") error two (TRANSACTION_STATUS_SUCCESSFULL != TRANSACTION_STATUS_SUCCESSFULL)")
|
|
BREAK
|
|
CASE TRANSACTION_STATUS_CANCELED
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_VC_TO_FM($",XDollars,") error two (TRANSACTION_STATUS_CANCELED != TRANSACTION_STATUS_SUCCESSFULL)")
|
|
BREAK
|
|
DEFAULT
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_VC_TO_FM($",XDollars,") error two (eNSTS_", eNSTS, " != TRANSACTION_STATUS_SUCCESSFULL)")
|
|
BREAK
|
|
ENDSWITCH
|
|
#ENDIF
|
|
RETURN FALSE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_VC_TO_FM($",XDollars,") error one (not NET_GAMESERVER_TRANSFER_BANK_TO_WALLET", GET_MP_INT_PLAYER_STAT(MPPLY_LAST_MP_CHAR), ", ", XDollars, "))")
|
|
RETURN FALSE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_FINANCE, "CONVERT_VC_TO_FM($",XDollars,") ignore NET_GAMESERVER_TRANSFER_BANK_TO_WALLET")
|
|
ENDIF
|
|
|
|
iLastTransactionID = WITHDRAW_VC( XDollars )
|
|
bTransactionHappened = TRUE
|
|
IF (g_bInMultiplayer) AND NETWORK_IS_GAME_IN_PROGRESS()
|
|
INCREMENT_BY_MP_INT_CHARACTER_STAT(MP_STAT_ATM_BANK_BALANCE,1)
|
|
CPRINTLN(DEBUG_FINANCE, "[KW] INCREMENT_BY_MP_INT_CHARACTER_STAT(MP_STAT_ATM_BANK_BALANCE,1) 2")
|
|
ENDIF
|
|
|
|
RETURN TRUE
|
|
ENDFUNC
|
|
|
|
ENUM TRANSTOTALMODE
|
|
TTM_WITHDRAW,
|
|
TTM_DEPOSIT
|
|
ENDENUM
|
|
FUNC INT GET_TRANSACTION_TOTAL_BY_INDEX(Int index, TRANSTOTALMODE tm)
|
|
INT dol = 0
|
|
|
|
IF tm = TTM_DEPOSIT
|
|
dol = NETWORK_GET_VC_WALLET_BALANCE()
|
|
ELSE
|
|
dol = NETWORK_GET_VC_BANK_BALANCE()
|
|
ENDIF
|
|
|
|
IF dol = 0
|
|
//zero dollars carried, invalid, set 1
|
|
RETURN 1
|
|
ENDIF
|
|
SWITCH index
|
|
CASE 0
|
|
IF 50 > dol
|
|
RETURN dol
|
|
ENDIF
|
|
RETURN 50
|
|
CASE 1
|
|
IF 500 > dol AND dol > 50
|
|
RETURN dol
|
|
ENDIF
|
|
RETURN 500
|
|
CASE 2
|
|
IF 2500 > dol AND dol > 500
|
|
RETURN dol
|
|
ENDIF
|
|
RETURN 2500
|
|
CASE 3
|
|
IF 10000 > dol AND dol > 2500
|
|
RETURN dol
|
|
ENDIF
|
|
RETURN 10000
|
|
CASE 4
|
|
IF 100000 > dol AND dol > 10000
|
|
RETURN dol
|
|
ENDIF
|
|
RETURN 100000
|
|
CASE 5
|
|
IF 10000000 > dol AND dol > 100000
|
|
RETURN dol
|
|
ENDIF
|
|
|
|
|
|
RETURN 10000000
|
|
ENDSWITCH
|
|
RETURN 0
|
|
ENDFUNC
|
|
|
|
|
|
FUNC BOOL DOES_PLAYER_HAVE_MORE_VC_BUCKS_THAN_MIN_ACTION()//implying withdraw
|
|
IF NETWORK_GET_VC_BANK_BALANCE() >= GET_TRANSACTION_TOTAL_BY_INDEX(0,TTM_WITHDRAW)
|
|
RETURN TRUE
|
|
ENDIF
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
|
|
FUNC BOOL DOES_PLAYER_HAVE_MORE_FM_BUCKS_THAN_MIN_ACTION()//implying deposit
|
|
IF NETWORK_GET_VC_WALLET_BALANCE() >= GET_TRANSACTION_TOTAL_BY_INDEX(0,TTM_DEPOSIT)
|
|
RETURN TRUE
|
|
ENDIF
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ENUM MP_ATM_PAGE_ENUM
|
|
MPAPE_FIRST_CHOICE,
|
|
MPAPE_TRANSLOG,
|
|
|
|
//MPAPE_DEPOSIT,
|
|
MPAPE_DEPOSIT_ASK,
|
|
MPAPE_PICK_AMOUNT_DEPOSIT,
|
|
MPAPE_DEPOSIT_PEND,
|
|
MPAPE_CONFIRM_DEPOSIT,
|
|
|
|
//MPAP_WITHDRAW
|
|
MPAPE_WITHDRAW_ASK,
|
|
MPAPE_PICK_AMOUNT_WITHDRAW,
|
|
MPAPE_WITHDRAW_PEND,
|
|
MPAPE_CONFIRM_WITHDRAW,
|
|
|
|
MPAPE_ERROR_PAGE,
|
|
|
|
|
|
|
|
MPAPE_TRANSACTION_COMPLETE
|
|
ENDENUM
|
|
|
|
//////////
|
|
|
|
FUNC BOOL MP_CONFIRM_WITHDRAW_TRANSACTION(OBJECT_INDEX oAtm)
|
|
|
|
INT iTrans = iLastTransactionID
|
|
INT iTime = GET_GAME_TIMER() + 1000
|
|
WHILE (NOT HAS_VC_WITHDRAWAL_COMPLETED(iTrans))
|
|
AND NOT SCREEN_TERMINATION_CONDITION_CHECKS(oAtm)
|
|
CPRINTLN(DEBUG_FINANCE, "MP_CONFIRM_WITHDRAW_TRANSACTION: waiting")
|
|
RENDER_ATM()
|
|
//WAIT(0)
|
|
ENDWHILE
|
|
WHILE iTime > GET_GAME_TIMER()
|
|
AND NOT SCREEN_TERMINATION_CONDITION_CHECKS(oAtm)
|
|
CPRINTLN(DEBUG_FINANCE, "MP_CONFIRM_WITHDRAW_TRANSACTION: waiting")
|
|
RENDER_ATM()
|
|
//WAIT(0)
|
|
ENDWHILE
|
|
|
|
RETURN WAS_VC_WITHDRAWAL_SUCCESSFUL(iTrans)
|
|
ENDFUNC
|
|
|
|
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
FUNC STRING DEBUG_GET_ATM_PAGE_NAME(MP_ATM_PAGE_ENUM currentPage)
|
|
SWITCH currentPage
|
|
CASE MPAPE_FIRST_CHOICE
|
|
RETURN "MPAPE_FIRST_CHOICE"
|
|
CASE MPAPE_TRANSLOG
|
|
RETURN "MPAPE_TRANSLOG"
|
|
CASE MPAPE_DEPOSIT_ASK
|
|
RETURN "MPAPE_DEPOSIT_ASK"
|
|
CASE MPAPE_PICK_AMOUNT_DEPOSIT
|
|
RETURN "MPAPE_PICK_AMOUNT_DEPOSIT"
|
|
CASE MPAPE_CONFIRM_DEPOSIT
|
|
RETURN "MPAPE_CONFIRM_DEPOSIT"
|
|
CASE MPAPE_WITHDRAW_ASK
|
|
RETURN "MPAPE_WITHDRAW_ASK"
|
|
CASE MPAPE_PICK_AMOUNT_WITHDRAW
|
|
RETURN "MPAPE_PICK_AMOUNT_WITHDRAW"
|
|
CASE MPAPE_CONFIRM_WITHDRAW
|
|
RETURN "MPAPE_CONFIRM_WITHDRAW"
|
|
CASE MPAPE_ERROR_PAGE
|
|
RETURN "MPAPE_ERROR_PAGE"
|
|
CASE MPAPE_TRANSACTION_COMPLETE
|
|
RETURN "MPAPE_TRANSACTION_COMPLETE"
|
|
ENDSWITCH
|
|
RETURN "!!DEBUG_GET_ATM_PAGE_NAME missing atm page name!!"
|
|
ENDFUNC
|
|
#ENDIF
|
|
//////////////////////////////////////
|
|
INT browserMpLastSelection = -1
|
|
BOOL bDoMpRefreshUpdate = FALSE
|
|
|
|
|
|
PROC GOTO_ATM_PAGE(MP_ATM_PAGE_ENUM ¤tPage,MP_ATM_PAGE_ENUM toPage)
|
|
#IF IS_DEBUG_BUILD
|
|
CPRINTLN(DEBUG_FINANCE, "GOTO_ATM_PAGE : ",DEBUG_GET_ATM_PAGE_NAME( currentPage) , " -> ", DEBUG_GET_ATM_PAGE_NAME( toPage))
|
|
#ENDIF
|
|
bDoMpRefreshUpdate = TRUE
|
|
currentPage = toPage
|
|
ENDPROC
|
|
|
|
|
|
|
|
/*
|
|
FUNC BOOL DOES_PLAYER_HAVE_MORE_MONEY_THAN_MIN_WITHDRAW()
|
|
IF NETWORK_GET_VC_BANK_BALANCE() > GET_TRANSACTION_TOTAL_BY_INDEX(0)//min value
|
|
RETURN TRUE
|
|
ENDIF
|
|
RETURN FALSE
|
|
ENDFUNC
|
|
*/
|
|
|
|
|
|
|
|
PROC DO_MP_UPDATE_ATM(OBJECT_INDEX oAtm, SCALEFORM_INDEX si, MP_ATM_PAGE_ENUM ¤tPage)
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT_EMPTY")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
CPRINTLN(DEBUG_FINANCE, "DO_MP_UPDATE_ATM: Triggered")
|
|
///INT i = 0
|
|
///
|
|
INT iTime = 0
|
|
|
|
|
|
BOOL bScroll = FALSE
|
|
BOOL bScrollAnalogue = FALSE
|
|
|
|
|
|
|
|
|
|
SWITCH currentPage
|
|
|
|
|
|
CASE MPAPE_FIRST_CHOICE //1 withdraw index //2 transaction log index
|
|
//choose a service
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_SER")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_DIDM")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_WITM")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(3)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_LOG")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_MENU")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
BREAK
|
|
CASE MPAPE_TRANSLOG
|
|
//show the log
|
|
|
|
/*
|
|
DISPLAY_TRANSACTIONS
|
|
|
|
This replaces the previous transaction logs that used 'UPDATE_TEXT' to add data.
|
|
|
|
The first two slots are reserved for the header string and the back button, with log data starting at slot 2.
|
|
|
|
Other than the starting slotID being 2 instead of 4, everything else remains as before.
|
|
|
|
Log entries start from Slot ID 2.
|
|
You can add as many entries as you like, and the page will set it's height dynamically to match the number of entries.
|
|
Cash value must be a positive number.
|
|
Dollar symbols added automatically, as are the ".00" at the end.
|
|
Amounts automatically have a comma every three digits
|
|
Minus symbol added fornegative flag
|
|
CR and DB added to signify credit and debit
|
|
|
|
slotID 0 - String Header
|
|
slotID 1 - STRING button text ("back" button)
|
|
slotID 2 onwards - log data
|
|
|
|
Example data:
|
|
|
|
0, "Transactions Log"
|
|
1, "Back"
|
|
2, 0, 230000, "Somethingsomething"
|
|
3, 1, 2301000, "Somethingsomething"
|
|
|
|
Log data for each slot should have the following elements:
|
|
|
|
param 1 INT - slotID
|
|
param 2 INT - Transaction type (0 for debit, 1 for credit)
|
|
param 3 INT - Value (positive value. Negative values require param 2 to be zero)
|
|
param 4 String - Source of transaction
|
|
*/
|
|
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("MPATM_LOG")
|
|
//ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(GET_PLAYER_NAME(GET_PLAYER_INDEX()))
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_BACK")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
|
|
IF DO_MP_TRANSACTION_LOG(si) > 13
|
|
bScroll = TRUE
|
|
bScrollAnalogue = TRUE
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
/*
|
|
//MPATM_PLCHLDR
|
|
REPEAT 30 i
|
|
|
|
|
|
|
|
DO_PLACEHOLDER_MP_TRANSACTION_LOG()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(i + 2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_PLCHLDR")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(101010101)
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDREPEAT
|
|
*/
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_TRANSACTIONS")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
BREAK
|
|
|
|
CASE MPAPE_DEPOSIT_PEND
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_PEND")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_MESSAGE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
iTime = GET_GAME_TIMER() + 1000
|
|
WHILE iTime > GET_GAME_TIMER()
|
|
AND NOT SCREEN_TERMINATION_CONDITION_CHECKS(oAtm)
|
|
CPRINTLN(DEBUG_FINANCE, "MPAPE_DEPOSIT_PEND: waiting on gameTimer")
|
|
RENDER_ATM()
|
|
ENDWHILE
|
|
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_TRANSACTION_COMPLETE)
|
|
BREAK
|
|
CASE MPAPE_WITHDRAW_PEND
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_PEND")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_MESSAGE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
IF MP_CONFIRM_WITHDRAW_TRANSACTION(oAtm)
|
|
CPRINTLN(DEBUG_FINANCE, "MPAPE_WITHDRAW_PEND: successfull transaction")
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_TRANSACTION_COMPLETE)
|
|
ELSE
|
|
CPRINTLN(DEBUG_FINANCE, "MPAPE_WITHDRAW_PEND: error three (not MP_CONFIRM_WITHDRAW_TRANSACTION)")
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_ERROR_PAGE)
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE MPAPE_DEPOSIT_ASK //1 yes //2 no
|
|
|
|
|
|
IF DOES_PLAYER_HAVE_MORE_FM_BUCKS_THAN_MIN_ACTION()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("MPATM_XDOL")
|
|
ADD_TEXT_COMPONENT_FORMATTED_INTEGER(NETWORK_GET_VC_BANK_BALANCE(),INTEGER_FORMAT_COMMA_SEPARATORS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MO_YES")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MO_NO")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_MESSAGE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_NODO")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_BACK")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_MESSAGE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE MPAPE_WITHDRAW_ASK //1 yes //2 no
|
|
IF DOES_PLAYER_HAVE_MORE_VC_BUCKS_THAN_MIN_ACTION()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("MPATM_XDOL2")
|
|
//ADD_TEXT_COMPONENT_INTEGER(NETWORK_GET_VC_BANK_BALANCE())
|
|
ADD_TEXT_COMPONENT_FORMATTED_INTEGER(NETWORK_GET_VC_BANK_BALANCE(),INTEGER_FORMAT_COMMA_SEPARATORS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MO_YES")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MO_NO")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_MESSAGE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_NODO2")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_BACK")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_MESSAGE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
BREAK
|
|
|
|
|
|
CASE MPAPE_PICK_AMOUNT_DEPOSIT
|
|
IF NOT DOES_PLAYER_HAVE_MORE_FM_BUCKS_THAN_MIN_ACTION()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_NODO")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_BACK")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_MESSAGE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_DITMT")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
|
|
IF NETWORK_GET_VC_WALLET_BALANCE() >= GET_TRANSACTION_TOTAL_BY_INDEX(0,TTM_DEPOSIT)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
|
|
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(GET_TRANSACTION_TOTAL_BY_INDEX(0))
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("ESDOLLA")
|
|
ADD_TEXT_COMPONENT_FORMATTED_INTEGER(GET_TRANSACTION_TOTAL_BY_INDEX(0,TTM_DEPOSIT),INTEGER_FORMAT_COMMA_SEPARATORS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
IF NETWORK_GET_VC_WALLET_BALANCE() >= GET_TRANSACTION_TOTAL_BY_INDEX(1,TTM_DEPOSIT)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(GET_TRANSACTION_TOTAL_BY_INDEX(1))
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("ESDOLLA")
|
|
ADD_TEXT_COMPONENT_FORMATTED_INTEGER(GET_TRANSACTION_TOTAL_BY_INDEX(1,TTM_DEPOSIT),INTEGER_FORMAT_COMMA_SEPARATORS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
IF NETWORK_GET_VC_WALLET_BALANCE() >= GET_TRANSACTION_TOTAL_BY_INDEX(2,TTM_DEPOSIT)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(3)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(GET_TRANSACTION_TOTAL_BY_INDEX(2))
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("ESDOLLA")
|
|
ADD_TEXT_COMPONENT_FORMATTED_INTEGER(GET_TRANSACTION_TOTAL_BY_INDEX(2,TTM_DEPOSIT),INTEGER_FORMAT_COMMA_SEPARATORS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT") ///left button
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(4)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(4444)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_BACK")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
IF NETWORK_GET_VC_WALLET_BALANCE() >= GET_TRANSACTION_TOTAL_BY_INDEX(3,TTM_DEPOSIT)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(5)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(GET_TRANSACTION_TOTAL_BY_INDEX(3))
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("ESDOLLA")
|
|
ADD_TEXT_COMPONENT_FORMATTED_INTEGER(GET_TRANSACTION_TOTAL_BY_INDEX(3,TTM_DEPOSIT),INTEGER_FORMAT_COMMA_SEPARATORS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
IF NETWORK_GET_VC_WALLET_BALANCE() >= GET_TRANSACTION_TOTAL_BY_INDEX(4,TTM_DEPOSIT)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(6)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(GET_TRANSACTION_TOTAL_BY_INDEX(4))
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("ESDOLLA")
|
|
ADD_TEXT_COMPONENT_FORMATTED_INTEGER(GET_TRANSACTION_TOTAL_BY_INDEX(4,TTM_DEPOSIT),INTEGER_FORMAT_COMMA_SEPARATORS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
IF NETWORK_GET_VC_WALLET_BALANCE() >= GET_TRANSACTION_TOTAL_BY_INDEX(5,TTM_DEPOSIT)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(7)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(GET_TRANSACTION_TOTAL_BY_INDEX(5))
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("ESDOLLA")
|
|
ADD_TEXT_COMPONENT_FORMATTED_INTEGER(GET_TRANSACTION_TOTAL_BY_INDEX(5,TTM_DEPOSIT),INTEGER_FORMAT_COMMA_SEPARATORS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
/*
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT") /// right button
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(8)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(8888)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_TLOG")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
*/
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_CASH_OPTIONS")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
BREAK
|
|
CASE MPAPE_CONFIRM_DEPOSIT
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_CONF")
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iPendingTransactionAmount)
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("MPATM_CONF")
|
|
//ADD_TEXT_COMPONENT_INTEGER(iPendingTransactionAmount)
|
|
ADD_TEXT_COMPONENT_FORMATTED_INTEGER(iPendingTransactionAmount,INTEGER_FORMAT_COMMA_SEPARATORS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MO_YES")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MO_NO")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_MESSAGE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BREAK
|
|
CASE MPAPE_PICK_AMOUNT_WITHDRAW
|
|
IF NOT DOES_PLAYER_HAVE_MORE_VC_BUCKS_THAN_MIN_ACTION()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_NODO2")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_BACK")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_MESSAGE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ELSE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_WITMT")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
IF NETWORK_GET_VC_BANK_BALANCE() >= GET_TRANSACTION_TOTAL_BY_INDEX(0,TTM_WITHDRAW)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(GET_TRANSACTION_TOTAL_BY_INDEX(0))
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("ESDOLLA")
|
|
ADD_TEXT_COMPONENT_FORMATTED_INTEGER(GET_TRANSACTION_TOTAL_BY_INDEX(0,TTM_WITHDRAW),INTEGER_FORMAT_COMMA_SEPARATORS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
IF NETWORK_GET_VC_BANK_BALANCE() >= GET_TRANSACTION_TOTAL_BY_INDEX(1,TTM_WITHDRAW)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(GET_TRANSACTION_TOTAL_BY_INDEX(1))
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("ESDOLLA")
|
|
ADD_TEXT_COMPONENT_FORMATTED_INTEGER(GET_TRANSACTION_TOTAL_BY_INDEX(1,TTM_WITHDRAW),INTEGER_FORMAT_COMMA_SEPARATORS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
IF NETWORK_GET_VC_BANK_BALANCE() >= GET_TRANSACTION_TOTAL_BY_INDEX(2,TTM_WITHDRAW)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(3)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(GET_TRANSACTION_TOTAL_BY_INDEX(2))
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("ESDOLLA")
|
|
ADD_TEXT_COMPONENT_FORMATTED_INTEGER(GET_TRANSACTION_TOTAL_BY_INDEX(2,TTM_WITHDRAW),INTEGER_FORMAT_COMMA_SEPARATORS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT") ///left button
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(4)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(4444)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_BACK")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
IF NETWORK_GET_VC_BANK_BALANCE() >= GET_TRANSACTION_TOTAL_BY_INDEX(3,TTM_WITHDRAW)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(5)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(GET_TRANSACTION_TOTAL_BY_INDEX(3))
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("ESDOLLA")
|
|
ADD_TEXT_COMPONENT_FORMATTED_INTEGER(GET_TRANSACTION_TOTAL_BY_INDEX(3,TTM_WITHDRAW),INTEGER_FORMAT_COMMA_SEPARATORS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
IF NETWORK_GET_VC_BANK_BALANCE() >= GET_TRANSACTION_TOTAL_BY_INDEX(4,TTM_WITHDRAW)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(6)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(GET_TRANSACTION_TOTAL_BY_INDEX(4))
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("ESDOLLA")
|
|
ADD_TEXT_COMPONENT_FORMATTED_INTEGER(GET_TRANSACTION_TOTAL_BY_INDEX(4,TTM_WITHDRAW),INTEGER_FORMAT_COMMA_SEPARATORS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
IF NETWORK_GET_VC_BANK_BALANCE() >= GET_TRANSACTION_TOTAL_BY_INDEX(5,TTM_WITHDRAW)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(7)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(GET_TRANSACTION_TOTAL_BY_INDEX(5))
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("ESDOLLA")
|
|
ADD_TEXT_COMPONENT_FORMATTED_INTEGER(GET_TRANSACTION_TOTAL_BY_INDEX(5,TTM_WITHDRAW),INTEGER_FORMAT_COMMA_SEPARATORS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
/*
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT") /// right button
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(8)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(8888)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_TLOG")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
*/
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_CASH_OPTIONS")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
BREAK
|
|
CASE MPAPE_CONFIRM_WITHDRAW
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_CONF")
|
|
//SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(iPendingTransactionAmount)
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("MPATC_CONFW")
|
|
//ADD_TEXT_COMPONENT_INTEGER()
|
|
ADD_TEXT_COMPONENT_FORMATTED_INTEGER(iPendingTransactionAmount,INTEGER_FORMAT_COMMA_SEPARATORS)
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MO_YES")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(2)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MO_NO")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_MESSAGE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BREAK
|
|
|
|
CASE MPAPE_ERROR_PAGE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_ERR")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_BACK")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_MESSAGE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BREAK
|
|
CASE MPAPE_TRANSACTION_COMPLETE
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_TRANCOM")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"SET_DATA_SLOT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(1)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_STRING("MPATM_BACK")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_MESSAGE")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
|
|
CONFIGURE_ATM_BUTTONS(bScroll,bScrollAnalogue)
|
|
|
|
|
|
//DISPLAY_BALANCE
|
|
|
|
//_playerName:String, _balanceString:String, _balance:Number
|
|
// //MPATM_ACBA
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(si,"DISPLAY_BALANCE")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_PLAYER_NAME(GET_PLAYER_NAME(GET_PLAYER_INDEX()))
|
|
BEGIN_TEXT_COMMAND_SCALEFORM_STRING("MPATM_ACBA")
|
|
END_TEXT_COMMAND_SCALEFORM_STRING()
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_PLAYER_NAME(NETWORK_GET_STRING_BANK_BALANCE()) //SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(NETWORK_GET_VC_BANK_BALANCE())
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
PRINTSTRING("update \"Balance $")PRINTINT(NETWORK_GET_VC_BANK_BALANCE())PRINTSTRING("\": ")PRINTSTRING(NETWORK_GET_STRING_BANK_BALANCE())PRINTNL()
|
|
|
|
ENDPROC
|
|
|
|
|
|
/// UPDATE_MOUSE_CURSOR()
|
|
/// To be called each frame
|
|
/// Make sure the call comes after adding all the scaleform buttons and elements, otherwise it seems to crash.
|
|
///
|
|
/// If the player is using mouse controls - Enable cursor and update it's position
|
|
/// If the player is using keyboard/pad controls - Disable the cursor
|
|
|
|
PROC UPDATE_MOUSE_CURSOR(SCALEFORM_INDEX movie)
|
|
|
|
IF IS_PC_VERSION()
|
|
|
|
// Detect if player is selecting items using the mouse cursor (ie not pad and not keyboard)
|
|
IF bMouseMode = FALSE
|
|
|
|
IF IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL)
|
|
|
|
// If player moves mouse, show the cursor
|
|
IF fMouseStartX = -1.0
|
|
fMouseStartX = GET_CONTROL_NORMAL(FRONTEND_CONTROL, INPUT_CURSOR_X)
|
|
fMouseStartY = GET_CONTROL_NORMAL(FRONTEND_CONTROL, INPUT_CURSOR_Y)
|
|
ELSE
|
|
IF fMouseStartX != GET_CONTROL_NORMAL(FRONTEND_CONTROL, INPUT_CURSOR_X)
|
|
OR fMouseStartY != GET_CONTROL_NORMAL(FRONTEND_CONTROL, INPUT_CURSOR_Y)
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movie, "SHOW_CURSOR")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(TRUE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
bMouseMode = TRUE
|
|
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ELSE
|
|
fMouseStartX = -1.0
|
|
ENDIF
|
|
|
|
ELSE
|
|
|
|
// If player uses non-mouse inputs, hide the cursor
|
|
IF NOT IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL)
|
|
OR IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_UP)
|
|
OR IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_DOWN)
|
|
OR IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_LEFT)
|
|
OR IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT)
|
|
OR IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_ACCEPT)
|
|
OR IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_CANCEL)
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movie, "SHOW_CURSOR")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
fMouseStartX = -1.0
|
|
bMouseMode = FALSE
|
|
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
// If mouse cursor is being used, update it's screen position
|
|
IF bMouseMode
|
|
FLOAT fMouseX = GET_CONTROL_NORMAL(FRONTEND_CONTROL, INPUT_CURSOR_X)
|
|
FLOAT fMouseY = GET_CONTROL_NORMAL(FRONTEND_CONTROL, INPUT_CURSOR_Y)
|
|
|
|
IF fMouseX >= 0.0 AND fMouseX <= 1.0
|
|
AND fMouseY >= 0.0 AND fMouseY <= 1.0
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movie, "SET_MOUSE_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT( fMouseX )
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT( fMouseY )
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
/// CLEAR_MOUSE_CURSOR()
|
|
/// Removes cursor
|
|
/// Call this when you finish, to make sure the cursor is removed
|
|
///
|
|
|
|
PROC CLEAR_MOUSE_CURSOR(SCALEFORM_INDEX movie)
|
|
|
|
IF bMouseMode
|
|
|
|
// Disable cursor
|
|
IF IS_PC_VERSION()
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movie, "SHOW_CURSOR")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_BOOL(FALSE)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
ENDIF
|
|
|
|
bMouseMode = FALSE
|
|
fMouseStartX = -1.0
|
|
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
PROC MP_ONCLICK(OBJECT_INDEX oAtm, MP_ATM_PAGE_ENUM ¤tPage)
|
|
CPRINTLN(DEBUG_FINANCE, "MP_ONCLICK: triggered")
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(atmmov, "SET_INPUT_SELECT")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(atmmov, "GET_CURRENT_SELECTION")
|
|
SCALEFORM_RETURN_INDEX fudp = END_SCALEFORM_MOVIE_METHOD_RETURN_VALUE()
|
|
WHILE NOT IS_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_READY(fudp)
|
|
AND NOT SCREEN_TERMINATION_CONDITION_CHECKS(oAtm)
|
|
RENDER_ATM()
|
|
CPRINTLN(DEBUG_FINANCE, "MP_ONCLICK: waiting for input")
|
|
//WAIT(0)
|
|
ENDWHILE
|
|
|
|
|
|
|
|
|
|
browserMpLastSelection = GET_SCALEFORM_MOVIE_METHOD_RETURN_VALUE_INT(fudp)
|
|
|
|
|
|
|
|
|
|
|
|
SWITCH currentPage
|
|
CASE MPAPE_FIRST_CHOICE//1 withdraw index //2 transaction log index
|
|
//bDoMpRefreshUpdate = TRUE
|
|
//currentPage = MPAPE_TRANSLOG
|
|
//CPRINTLN(DEBUG_FINANCE, "MP_ONCLICK : MPAPE_FIRST_CHOICE -> MPAPE_TRANSLOG")
|
|
|
|
SWITCH browserMpLastSelection
|
|
CASE 2
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_PICK_AMOUNT_DEPOSIT)//MPAPE_DEPOSIT_ASK)
|
|
BREAK
|
|
CASE 1
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_PICK_AMOUNT_WITHDRAW)//MPAPE_WITHDRAW_ASK)
|
|
BREAK
|
|
CASE 3
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_TRANSLOG)//2
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
EXIT
|
|
CASE MPAPE_TRANSLOG
|
|
//MPAPE_TRANSLOG // 1 back // 2 transaction
|
|
|
|
SWITCH browserMpLastSelection
|
|
CASE 1
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_FIRST_CHOICE)//1
|
|
BREAK
|
|
CASE 2
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_WITHDRAW_ASK)//2
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
EXIT
|
|
CASE MPAPE_DEPOSIT_ASK
|
|
//1 yes //2 no // if enough money// DOES_PLAYER_HAVE_MORE_MONEY_THAN_MIN_WITHDRAW
|
|
//1 back // if no money
|
|
IF DOES_PLAYER_HAVE_MORE_FM_BUCKS_THAN_MIN_ACTION()
|
|
SWITCH browserMpLastSelection
|
|
CASE 1
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_PICK_AMOUNT_DEPOSIT)//1
|
|
BREAK
|
|
CASE 2
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_FIRST_CHOICE)//2
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
SWITCH browserMpLastSelection
|
|
CASE 1
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_FIRST_CHOICE)//1
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
EXIT
|
|
CASE MPAPE_WITHDRAW_ASK
|
|
//1 yes //2 no // if enough money// DOES_PLAYER_HAVE_MORE_MONEY_THAN_MIN_WITHDRAW
|
|
//1 back // if no money
|
|
IF DOES_PLAYER_HAVE_MORE_VC_BUCKS_THAN_MIN_ACTION()
|
|
SWITCH browserMpLastSelection
|
|
CASE 1
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_PICK_AMOUNT_WITHDRAW)//1
|
|
BREAK
|
|
CASE 2
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_FIRST_CHOICE)//2
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
SWITCH browserMpLastSelection
|
|
CASE 1
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_FIRST_CHOICE)//1
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
EXIT
|
|
|
|
CASE MPAPE_PICK_AMOUNT_DEPOSIT
|
|
//MPAPE_PICK_AMOUNT
|
|
//1 2 3 // amountbuttons
|
|
//5 6 7 //
|
|
//4 //left button, back
|
|
//8 //right button, balance
|
|
|
|
IF NOT DOES_PLAYER_HAVE_MORE_FM_BUCKS_THAN_MIN_ACTION()
|
|
|
|
SWITCH browserMpLastSelection
|
|
CASE 1
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_FIRST_CHOICE)//1
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
ELSE
|
|
|
|
|
|
|
|
//iPendingTransactionAmount
|
|
SWITCH browserMpLastSelection
|
|
CASE 4
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_FIRST_CHOICE)//1
|
|
iPendingTransactionAmount = 0
|
|
BREAK
|
|
CASE 8
|
|
iPendingTransactionAmount = 0
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_TRANSLOG)//1
|
|
BREAK
|
|
CASE 1
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_CONFIRM_DEPOSIT)
|
|
iPendingTransactionAmount = GET_TRANSACTION_TOTAL_BY_INDEX(0,TTM_DEPOSIT)
|
|
BREAK
|
|
CASE 2
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_CONFIRM_DEPOSIT)
|
|
iPendingTransactionAmount = GET_TRANSACTION_TOTAL_BY_INDEX(1,TTM_DEPOSIT)
|
|
BREAK
|
|
CASE 3
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_CONFIRM_DEPOSIT)
|
|
iPendingTransactionAmount = GET_TRANSACTION_TOTAL_BY_INDEX(2,TTM_DEPOSIT)
|
|
BREAK
|
|
CASE 5
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_CONFIRM_DEPOSIT)
|
|
iPendingTransactionAmount = GET_TRANSACTION_TOTAL_BY_INDEX(3,TTM_DEPOSIT)
|
|
BREAK
|
|
CASE 6
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_CONFIRM_DEPOSIT)
|
|
iPendingTransactionAmount = GET_TRANSACTION_TOTAL_BY_INDEX(4,TTM_DEPOSIT)
|
|
BREAK
|
|
CASE 7
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_CONFIRM_DEPOSIT)
|
|
iPendingTransactionAmount = GET_TRANSACTION_TOTAL_BY_INDEX(5,TTM_DEPOSIT)
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
|
|
|
|
EXIT
|
|
CASE MPAPE_PICK_AMOUNT_WITHDRAW
|
|
|
|
|
|
|
|
IF NOT DOES_PLAYER_HAVE_MORE_VC_BUCKS_THAN_MIN_ACTION()
|
|
SWITCH browserMpLastSelection
|
|
CASE 1
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_FIRST_CHOICE)//1
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
SWITCH browserMpLastSelection
|
|
CASE 4
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_FIRST_CHOICE)//1
|
|
iPendingTransactionAmount = 0
|
|
BREAK
|
|
CASE 8
|
|
iPendingTransactionAmount = 0
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_TRANSLOG)//1
|
|
BREAK
|
|
CASE 1
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_CONFIRM_WITHDRAW)
|
|
iPendingTransactionAmount = GET_TRANSACTION_TOTAL_BY_INDEX(0,TTM_WITHDRAW)
|
|
BREAK
|
|
CASE 2
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_CONFIRM_WITHDRAW)
|
|
iPendingTransactionAmount = GET_TRANSACTION_TOTAL_BY_INDEX(1,TTM_WITHDRAW)
|
|
BREAK
|
|
CASE 3
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_CONFIRM_WITHDRAW)
|
|
iPendingTransactionAmount = GET_TRANSACTION_TOTAL_BY_INDEX(2,TTM_WITHDRAW)
|
|
BREAK
|
|
CASE 5
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_CONFIRM_WITHDRAW)
|
|
iPendingTransactionAmount = GET_TRANSACTION_TOTAL_BY_INDEX(3,TTM_WITHDRAW)
|
|
BREAK
|
|
CASE 6
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_CONFIRM_WITHDRAW)
|
|
iPendingTransactionAmount = GET_TRANSACTION_TOTAL_BY_INDEX(4,TTM_WITHDRAW)
|
|
BREAK
|
|
CASE 7
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_CONFIRM_WITHDRAW)
|
|
iPendingTransactionAmount = GET_TRANSACTION_TOTAL_BY_INDEX(5,TTM_WITHDRAW)
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
ENDIF
|
|
|
|
EXIT
|
|
|
|
CASE MPAPE_CONFIRM_DEPOSIT
|
|
//// 1 yes // 2 no
|
|
SWITCH browserMpLastSelection
|
|
CASE 1
|
|
|
|
//perform the transaction
|
|
IF CONVERT_FM_TO_VC(oAtm,iPendingTransactionAmount)
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_DEPOSIT_PEND)
|
|
ELSE
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_ERROR_PAGE)
|
|
ENDIF
|
|
|
|
|
|
iPendingTransactionAmount = 0
|
|
BREAK
|
|
CASE 2
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_FIRST_CHOICE)//2
|
|
BREAK
|
|
ENDSWITCH
|
|
EXIT
|
|
|
|
CASE MPAPE_CONFIRM_WITHDRAW
|
|
//// 1 yes // 2 no
|
|
SWITCH browserMpLastSelection
|
|
CASE 1
|
|
|
|
//perform the transaction
|
|
IF CONVERT_VC_TO_FM(oAtm,iPendingTransactionAmount)
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_WITHDRAW_PEND)
|
|
ELSE
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_ERROR_PAGE)
|
|
ENDIF
|
|
|
|
|
|
iPendingTransactionAmount = 0
|
|
BREAK
|
|
CASE 2
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_FIRST_CHOICE)//2
|
|
BREAK
|
|
ENDSWITCH
|
|
EXIT
|
|
|
|
|
|
|
|
|
|
CASE MPAPE_ERROR_PAGE
|
|
SWITCH browserMpLastSelection
|
|
CASE 1
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_FIRST_CHOICE)//1
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
EXIT
|
|
CASE MPAPE_TRANSACTION_COMPLETE
|
|
SWITCH browserMpLastSelection
|
|
CASE 1
|
|
GOTO_ATM_PAGE(currentPage,MPAPE_FIRST_CHOICE)//1
|
|
BREAK
|
|
ENDSWITCH
|
|
EXIT
|
|
//set currentPage,bDoMpRefreshUpdate and exit
|
|
ENDSWITCH
|
|
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
|
|
INT iPadLeftXLast = 0
|
|
INT iPadLeftYLast = 0
|
|
PROC DO_INPUTS(SCALEFORM_INDEX movin)
|
|
|
|
IF IS_SYSTEM_UI_BEING_DISPLAYED()
|
|
OR IS_PAUSE_MENU_ACTIVE()
|
|
CPRINTLN(DEBUG_FINANCE, "ATM not checking inputs due to IS_SYSTEM_UI_BEING_DISPLAYED or IS_PAUSE_MENU_ACTIVE")
|
|
EXIT
|
|
ENDIF
|
|
|
|
/*
|
|
SET_INPUT_EVENT
|
|
Use this method to pass Dpad input into the ATM, for menu navigation and scrolling
|
|
the transaction log one item at a time. (use SET_ANALOG_STICK_INPUT for smooth scrolling)
|
|
param 1 INT - direction enum
|
|
Direction enums:
|
|
8 = "UP"
|
|
9 = "DOWN"
|
|
10 = "LEFT"
|
|
11 = "RIGHT"
|
|
*/
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_FRONTEND_PAUSE)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_FRONTEND_UP)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_FRONTEND_DOWN)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_FRONTEND_LEFT)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_FRONTEND_RIGHT)
|
|
|
|
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_UP)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(8)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
//PLAY_SOUND_FRONTEND(-1, "PIN_BUTTON","ATM_SOUNDS")
|
|
ENDIF
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_DOWN)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(9)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
//PLAY_SOUND_FRONTEND(-1, "PIN_BUTTON","ATM_SOUNDS")
|
|
ENDIF
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_LEFT)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(10)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
//PLAY_SOUND_FRONTEND(-1, "PIN_BUTTON","ATM_SOUNDS")
|
|
ENDIF
|
|
IF IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_RIGHT)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_INPUT_EVENT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_INT(11)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
//PLAY_SOUND_FRONTEND(-1, "PIN_BUTTON","ATM_SOUNDS")
|
|
ENDIF
|
|
|
|
|
|
IF !g_bInMultiplayer
|
|
EXIT
|
|
ENDIF
|
|
|
|
INT iPadLeftX
|
|
INT iPadLeftY
|
|
|
|
FLOAT delta
|
|
|
|
IF IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL)
|
|
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_CURSOR_SCROLL_UP)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_CURSOR_SCROLL_DOWN)
|
|
|
|
delta = 1.0 +@ g_fWebCursorSensitivity
|
|
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_CURSOR_SCROLL_DOWN)
|
|
OR IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_DOWN)
|
|
iPadLeftY = -200
|
|
ENDIF
|
|
|
|
IF IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_CURSOR_SCROLL_UP)
|
|
OR IS_CONTROL_PRESSED(FRONTEND_CONTROL, INPUT_FRONTEND_UP)
|
|
iPadLeftY = 200
|
|
ENDIF
|
|
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(TO_FLOAT(iPadLeftY) * delta)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
ELSE
|
|
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_FRONTEND_RIGHT_AXIS_X)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_FRONTEND_RIGHT_AXIS_Y)
|
|
|
|
iPadLeftX = GET_CONTROL_VALUE(FRONTEND_CONTROL,INPUT_FRONTEND_RIGHT_AXIS_X) -128
|
|
iPadLeftY = GET_CONTROL_VALUE(FRONTEND_CONTROL,INPUT_FRONTEND_RIGHT_AXIS_Y) -128
|
|
|
|
//deadzone
|
|
IF ((iPadLeftX < 10) AND (iPadLeftX > -10))
|
|
iPadLeftX = 0
|
|
ENDIF
|
|
IF ((iPadLeftY < 10) AND (iPadLeftY > -10))
|
|
iPadLeftY = 0
|
|
ENDIF
|
|
|
|
delta = 1.0 +@ g_fWebCursorSensitivity
|
|
IF (NOT (iPadLeftXLast = iPadLeftX)) OR (NOT (iPadLeftYLast = iPadLeftY))
|
|
//CALL_SCALEFORM_MOVIE_METHOD_WITH_NUMBER(movin, "SET_ANALOG_STICK_INPUT",1.0,TO_FLOAT(iPadLeftX)*g_fWebCursorSensitivity,TO_FLOAT(iPadLeftY)*g_fWebCursorSensitivity)
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(movin, "SET_ANALOG_STICK_INPUT")
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(0.0)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(-(TO_FLOAT(iPadLeftX)) * delta)
|
|
SCALEFORM_MOVIE_METHOD_ADD_PARAM_FLOAT(-(TO_FLOAT(iPadLeftY)) * delta)
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
iPadLeftXLast = iPadLeftX
|
|
iPadLeftYLast = iPadLeftY
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
/*
|
|
MPPLY_STORE_MONEY_SPENT" //MPPLAYER - Real money player has spent in store"
|
|
MPPLY_STORE_MONEY_BOUGHT" Game Money player has bought in the store"
|
|
MPPLY_STORE_TOTAL_MONEY_BOUGHT" MPPLAYER - Total game money player has bought in store
|
|
Script Stats
|
|
MPPLY_BANK_ACCOUNT // virtual cash in players bank account.
|
|
MPPLY_STORE_BOUGHT_SCRIPT // (MPPLY_STORE_MONEY_BOUGHT - MPPLY_STORE_BOUGHT_SCRIPT )Script value player has transferred to in game cash
|
|
*/
|
|
|
|
|
|
PROC Control_Synch_Scene(OBJECT_INDEX oAtm)
|
|
|
|
IF NOT NETWORK_IS_GAME_IN_PROGRESS()
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF IS_PED_INJURED(PLAYER_PED_ID())
|
|
EXIT
|
|
ENDIF
|
|
|
|
TEXT_LABEL_63 tAtmEnterAnimDict,tAtmBaseAnimDict, tAtmIdleAnimDict, tAtmExitAnimDict
|
|
|
|
Get_Atm_Anim_Dict_Names(eAnimSet_enter, tAtmEnterAnimDict)
|
|
Get_Atm_Anim_Dict_Names(eAnimSet_base, tAtmBaseAnimDict)
|
|
Get_Atm_Anim_Dict_Names(eAnimSet_idle, tAtmIdleAnimDict)
|
|
Get_Atm_Anim_Dict_Names(eAnimSet_exit, tAtmExitAnimDict)
|
|
|
|
REQUEST_ANIM_DICT(tAtmExitAnimDict)
|
|
REQUEST_ANIM_DICT(tAtmEnterAnimDict)
|
|
|
|
INT iMaxIdleAnims = 3
|
|
IF GET_ENTITY_MODEL(PLAYER_PED_ID()) = MP_F_FREEMODE_01
|
|
iMaxIdleAnims = 3
|
|
ENDIF
|
|
|
|
INT iLocalATMSynchSceneID
|
|
|
|
SWITCH iATMSynchSceneStage
|
|
CASE 0
|
|
DRAW_DEBUG_TEXT("walk", GET_ENTITY_COORDS(PLAYER_PED_ID()), 064, 256, 064, 064)//////green
|
|
|
|
IF HAS_ANIM_DICT_LOADED(tAtmEnterAnimDict)
|
|
IF GET_SCRIPT_TASK_STATUS(PLAYER_PED_ID(), SCRIPT_TASK_GO_STRAIGHT_TO_COORD) = FINISHED_TASK
|
|
AND HAS_ANIM_DICT_LOADED(tAtmEnterAnimDict)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(iATMSynchSceneID)
|
|
DETACH_SYNCHRONIZED_SCENE(iATMSynchSceneID)
|
|
iATMSynchSceneID = -1
|
|
ENDIF
|
|
iATMSynchSceneID = NETWORK_CREATE_SYNCHRONISED_SCENE(vSynchSceneOrigin,
|
|
GET_ENTITY_ROTATION(oAtm),DEFAULT,FALSE,FALSE)
|
|
|
|
NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE(PLAYER_PED_ID(), iATMSynchSceneID,tAtmEnterAnimDict, "enter",
|
|
SLOW_BLEND_IN, REALLY_SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS|SYNCED_SCENE_DONT_INTERRUPT)
|
|
|
|
NETWORK_START_SYNCHRONISED_SCENE(iATMSynchSceneID)
|
|
|
|
REMOVE_ANIM_DICT(tAtmEnterAnimDict)
|
|
|
|
iATMSynchSceneStage = 1
|
|
ENDIF
|
|
ENDIF
|
|
BREAK
|
|
CASE 1
|
|
DRAW_DEBUG_TEXT("enter", GET_ENTITY_COORDS(PLAYER_PED_ID()), 064, 256, 064, 064)//////green
|
|
|
|
REQUEST_ANIM_DICT(tAtmBaseAnimDict)
|
|
REQUEST_ANIM_DICT(tAtmIdleAnimDict)
|
|
|
|
iLocalATMSynchSceneID = NETWORK_GET_LOCAL_SCENE_FROM_NETWORK_ID(iATMSynchSceneID)
|
|
|
|
IF HAS_ANIM_DICT_LOADED(tAtmBaseAnimDict)
|
|
AND (NOT IS_SYNCHRONIZED_SCENE_RUNNING(iLocalATMSynchSceneID)
|
|
OR IS_SYNCHRONIZED_SCENE_RUNNING(iLocalATMSynchSceneID))
|
|
iATMSynchSceneID = NETWORK_CREATE_SYNCHRONISED_SCENE(vSynchSceneOrigin,
|
|
GET_ENTITY_ROTATION(oAtm),DEFAULT,FALSE,TRUE)
|
|
|
|
NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE(PLAYER_PED_ID(), iATMSynchSceneID,
|
|
tAtmBaseAnimDict, "base", SLOW_BLEND_IN, REALLY_SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS|SYNCED_SCENE_DONT_INTERRUPT)
|
|
NETWORK_START_SYNCHRONISED_SCENE(iATMSynchSceneID)
|
|
|
|
CPRINTLN(DEBUG_FINANCE, "ATM - Control_Synch_Scene \"", tAtmBaseAnimDict, "\" - timeout of enter anim")
|
|
iATMSynchSceneStage = 2
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 2
|
|
DRAW_DEBUG_TEXT("base", GET_ENTITY_COORDS(PLAYER_PED_ID()), 032, 032, 256, 128)//////blue
|
|
|
|
iLocalATMSynchSceneID = NETWORK_GET_LOCAL_SCENE_FROM_NETWORK_ID(iATMSynchSceneID)
|
|
|
|
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(iATMSynchSceneID)
|
|
AND NOT IS_SYNCHRONIZED_SCENE_RUNNING(iLocalATMSynchSceneID)
|
|
iATMSynchSceneID = NETWORK_CREATE_SYNCHRONISED_SCENE(vSynchSceneOrigin,
|
|
GET_ENTITY_ROTATION(oAtm),DEFAULT,FALSE,TRUE)
|
|
|
|
iLocalATMSynchSceneID = NETWORK_GET_LOCAL_SCENE_FROM_NETWORK_ID(iATMSynchSceneID)
|
|
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(iLocalATMSynchSceneID)
|
|
SET_SYNCHRONIZED_SCENE_PHASE(iLocalATMSynchSceneID, 0.0)
|
|
ENDIF
|
|
|
|
NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE(PLAYER_PED_ID(), iATMSynchSceneID,
|
|
tAtmBaseAnimDict, "base",SLOW_BLEND_IN, REALLY_SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS|SYNCED_SCENE_DONT_INTERRUPT)
|
|
NETWORK_START_SYNCHRONISED_SCENE(iATMSynchSceneID)
|
|
|
|
CPRINTLN(DEBUG_FINANCE, "ATM - Control_Synch_Scene \"", tAtmBaseAnimDict, "\" - exit from base anim")
|
|
iATMSynchSceneStage = 2
|
|
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF HAS_ANIM_DICT_LOADED(tAtmIdleAnimDict)
|
|
AND (NOT IS_SYNCHRONIZED_SCENE_RUNNING(iLocalATMSynchSceneID)
|
|
OR GET_SYNCHRONIZED_SCENE_PHASE(iLocalATMSynchSceneID) >= 0.99)
|
|
INT iRandom
|
|
iRandom = GET_RANDOM_INT_IN_RANGE(0,iMaxIdleAnims)
|
|
|
|
IF (ARE_STRINGS_EQUAL(tPreviousIdleAnim, "idle_a") AND (iRandom = 0))
|
|
OR (ARE_STRINGS_EQUAL(tPreviousIdleAnim, "idle_b") AND (iRandom = 1))
|
|
OR (ARE_STRINGS_EQUAL(tPreviousIdleAnim, "idle_c") AND (iRandom = 2))
|
|
OR (ARE_STRINGS_EQUAL(tPreviousIdleAnim, "idle_d") AND (iRandom = 3))
|
|
iRandom++
|
|
|
|
IF iRandom >= iMaxIdleAnims
|
|
iRandom = 0
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(iATMSynchSceneID)
|
|
DETACH_SYNCHRONIZED_SCENE(iATMSynchSceneID)
|
|
iATMSynchSceneID = -1
|
|
ENDIF
|
|
iATMSynchSceneID = NETWORK_CREATE_SYNCHRONISED_SCENE(vSynchSceneOrigin,
|
|
GET_ENTITY_ROTATION(oAtm),DEFAULT,FALSE,TRUE)
|
|
|
|
SWITCH iRandom
|
|
CASE 0
|
|
NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE(PLAYER_PED_ID(), iATMSynchSceneID,
|
|
tAtmIdleAnimDict, "idle_a", SLOW_BLEND_IN, REALLY_SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS|SYNCED_SCENE_DONT_INTERRUPT)
|
|
NETWORK_START_SYNCHRONISED_SCENE(iATMSynchSceneID)
|
|
tPreviousIdleAnim = "idle_a"
|
|
|
|
CPRINTLN(DEBUG_FINANCE, "ATM - Control_Synch_Scene idle_a")
|
|
iATMSynchSceneStage = 3
|
|
BREAK
|
|
CASE 1
|
|
NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE(PLAYER_PED_ID(), iATMSynchSceneID,
|
|
tAtmIdleAnimDict, "idle_b",SLOW_BLEND_IN, REALLY_SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS|SYNCED_SCENE_DONT_INTERRUPT)
|
|
NETWORK_START_SYNCHRONISED_SCENE(iATMSynchSceneID)
|
|
tPreviousIdleAnim = "idle_b"
|
|
|
|
CPRINTLN(DEBUG_FINANCE, "ATM - Control_Synch_Scene idle_b")
|
|
iATMSynchSceneStage = 3
|
|
BREAK
|
|
CASE 2
|
|
NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE(PLAYER_PED_ID(), iATMSynchSceneID,
|
|
tAtmIdleAnimDict, "idle_c",SLOW_BLEND_IN, REALLY_SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS|SYNCED_SCENE_DONT_INTERRUPT)
|
|
NETWORK_START_SYNCHRONISED_SCENE(iATMSynchSceneID)
|
|
tPreviousIdleAnim = "idle_c"
|
|
|
|
CPRINTLN(DEBUG_FINANCE, "ATM - Control_Synch_Scene idle_c")
|
|
iATMSynchSceneStage = 3
|
|
BREAK
|
|
CASE 3
|
|
NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE(PLAYER_PED_ID(), iATMSynchSceneID,
|
|
tAtmIdleAnimDict, "idle_d",SLOW_BLEND_IN, REALLY_SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS|SYNCED_SCENE_DONT_INTERRUPT)
|
|
NETWORK_START_SYNCHRONISED_SCENE(iATMSynchSceneID)
|
|
tPreviousIdleAnim = "idle_d"
|
|
|
|
CPRINTLN(DEBUG_FINANCE, "ATM - Control_Synch_Scene idle_d")
|
|
iATMSynchSceneStage = 3
|
|
BREAK
|
|
|
|
DEFAULT
|
|
tPreviousIdleAnim = "idle_XXX"
|
|
|
|
CPRINTLN(DEBUG_FINANCE, "ATM - Control_Synch_Scene idle_XXX_", iRandom)
|
|
SCRIPT_ASSERT("idle_XXX")
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDIF
|
|
BREAK
|
|
CASE 3
|
|
|
|
IF IS_ENTITY_PLAYING_ANIM(PLAYER_PED_ID(), tAtmIdleAnimDict, "idle_a", ANIM_SYNCED_SCENE)
|
|
DRAW_DEBUG_TEXT("idle_a", GET_ENTITY_COORDS(PLAYER_PED_ID()), 256, 064, 064, 064)//////red
|
|
ELIF IS_ENTITY_PLAYING_ANIM(PLAYER_PED_ID(), tAtmIdleAnimDict, "idle_b", ANIM_SYNCED_SCENE)
|
|
DRAW_DEBUG_TEXT("idle_b", GET_ENTITY_COORDS(PLAYER_PED_ID()), 256, 064, 064, 064)//////red
|
|
ELIF IS_ENTITY_PLAYING_ANIM(PLAYER_PED_ID(), tAtmIdleAnimDict, "idle_c", ANIM_SYNCED_SCENE)
|
|
DRAW_DEBUG_TEXT("idle_c", GET_ENTITY_COORDS(PLAYER_PED_ID()), 256, 064, 064, 064)//////red
|
|
ELIF IS_ENTITY_PLAYING_ANIM(PLAYER_PED_ID(), tAtmIdleAnimDict, "idle_d", ANIM_SYNCED_SCENE)
|
|
DRAW_DEBUG_TEXT("idle_d", GET_ENTITY_COORDS(PLAYER_PED_ID()), 256, 064, 064, 064)//////red
|
|
ELSE
|
|
DRAW_DEBUG_TEXT("idle_XXX", GET_ENTITY_COORDS(PLAYER_PED_ID()), 256, 064, 064, 064)//////red
|
|
ENDIF
|
|
|
|
iLocalATMSynchSceneID = NETWORK_GET_LOCAL_SCENE_FROM_NETWORK_ID(iATMSynchSceneID)
|
|
|
|
IF NOT IS_SYNCHRONIZED_SCENE_RUNNING(iATMSynchSceneID)
|
|
AND NOT IS_SYNCHRONIZED_SCENE_RUNNING(iLocalATMSynchSceneID)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(iATMSynchSceneID)
|
|
DETACH_SYNCHRONIZED_SCENE(iATMSynchSceneID)
|
|
iATMSynchSceneID = -1
|
|
ENDIF
|
|
iATMSynchSceneID = NETWORK_CREATE_SYNCHRONISED_SCENE(vSynchSceneOrigin,
|
|
GET_ENTITY_ROTATION(oAtm),DEFAULT,FALSE,TRUE)
|
|
iLocalATMSynchSceneID = NETWORK_GET_LOCAL_SCENE_FROM_NETWORK_ID(iATMSynchSceneID)
|
|
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(iLocalATMSynchSceneID)
|
|
SET_SYNCHRONIZED_SCENE_PHASE(iLocalATMSynchSceneID, 0.0)
|
|
ENDIF
|
|
|
|
NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE(PLAYER_PED_ID(), iATMSynchSceneID,
|
|
tAtmBaseAnimDict, "base",SLOW_BLEND_IN, REALLY_SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS|SYNCED_SCENE_DONT_INTERRUPT)
|
|
NETWORK_START_SYNCHRONISED_SCENE(iATMSynchSceneID)
|
|
|
|
CPRINTLN(DEBUG_FINANCE, "ATM - Control_Synch_Scene \"", tAtmBaseAnimDict, "\" - exit from idle anim")
|
|
iATMSynchSceneStage = 2
|
|
|
|
EXIT
|
|
ENDIF
|
|
|
|
IF HAS_ANIM_DICT_LOADED(tAtmBaseAnimDict)
|
|
AND (NOT IS_SYNCHRONIZED_SCENE_RUNNING(iLocalATMSynchSceneID)
|
|
OR GET_SYNCHRONIZED_SCENE_PHASE(iLocalATMSynchSceneID) >= 0.99)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(iATMSynchSceneID)
|
|
DETACH_SYNCHRONIZED_SCENE(iATMSynchSceneID)
|
|
iATMSynchSceneID = -1
|
|
ENDIF
|
|
iATMSynchSceneID = NETWORK_CREATE_SYNCHRONISED_SCENE(vSynchSceneOrigin,
|
|
GET_ENTITY_ROTATION(oAtm),DEFAULT,FALSE,TRUE)
|
|
|
|
NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE(PLAYER_PED_ID(), iATMSynchSceneID,
|
|
tAtmBaseAnimDict, "base",SLOW_BLEND_IN, REALLY_SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS|SYNCED_SCENE_DONT_INTERRUPT)
|
|
NETWORK_START_SYNCHRONISED_SCENE(iATMSynchSceneID)
|
|
|
|
CPRINTLN(DEBUG_FINANCE, "ATM - Control_Synch_Scene \"", tAtmBaseAnimDict, "\" - timeout of idle anim")
|
|
iATMSynchSceneStage = 2
|
|
|
|
EXIT
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
ENDPROC
|
|
|
|
|
|
|
|
FUNC BOOL IS_ATM_POSITION_VERBOTEN(VECTOR v)
|
|
|
|
|
|
IF v.x = 129.697525
|
|
AND v.y = -1290.841797
|
|
AND v.z = 28.271421
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
|
|
IF v.x = 130.579117
|
|
AND v.y = -1292.368774
|
|
AND v.z = 28.271421
|
|
RETURN TRUE
|
|
ENDIF
|
|
|
|
|
|
RETURN FALSE
|
|
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Checks if the ATM currently running the script is the one inside the strip club and in the middle aTM
|
|
/// PARAMS:
|
|
/// v - vector position
|
|
FUNC BOOL IS_MIDDLE_STRIP_CLUB_ATM(OBJECT_INDEX obj)
|
|
|
|
BOOL bIsThatTheAtm = IS_ENTITY_AT_COORD(obj, <<130.1504, -1291.6261, 28.2714>>, <<0.01, 0.01, 0.01>>)
|
|
|
|
CDEBUG3LN(DEBUG_FINANCE, " - atm_trigger - IS_MIDDLE_STRIP_CLUB_ATM - Returning: ", PICK_STRING(bIsThatTheAtm, "TRUE", "FALSE"))
|
|
RETURN bIsThatTheAtm
|
|
|
|
ENDFUNC
|
|
|
|
|
|
|
|
PROC FIRE_AND_FORGET_NEW_ATM(INT starttime, MP_ATM_PAGE_ENUM ¤tPage, OBJECT_INDEX oAtm, BOOL skipScenario)
|
|
g_bInATM = TRUE
|
|
BOOL ScenarioTriggered = FALSE
|
|
|
|
|
|
atmmov = REQUEST_SCALEFORM_MOVIE("ATM")
|
|
atmbuttons = REQUEST_SCALEFORM_MOVIE_INSTANCE("INSTRUCTIONAL_BUTTONS")
|
|
|
|
IF IS_MIDDLE_STRIP_CLUB_ATM(oAtm)
|
|
IF HAS_HEIST_BOARD_LOADED(HEIST_FINALE)
|
|
CDEBUG1LN(DEBUG_FINANCE, " - atm_trigger - FIRE_AND_FORGET_NEW_ATM - Unpinning HEIST_FINALE board as IS_MIDDLE_STRIP_CLUB_ATM && HAS_HEIST_BOARD_LOADED(HEIST_FINALE).")
|
|
PIN_HEIST_BOARD_IN_MEMORY(HEIST_FINALE, FALSE)
|
|
bHeistFinaleBoardUnpinned = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
INT itime = GET_GAME_TIMER()
|
|
|
|
INVALIDATE_IDLE_CAM()
|
|
|
|
WHILE NOT HAS_SCALEFORM_MOVIE_LOADED(atmmov)
|
|
AND NOT SCREEN_TERMINATION_CONDITION_CHECKS(oAtm)
|
|
WAIT(0)
|
|
ATM_CONTROL_DISABLE()
|
|
Control_Synch_Scene(oAtm)
|
|
ENDWHILE
|
|
|
|
WHILE (NOT HAS_SCALEFORM_MOVIE_LOADED(atmbuttons))
|
|
AND NOT SCREEN_TERMINATION_CONDITION_CHECKS(oAtm)
|
|
WAIT(0)
|
|
ATM_CONTROL_DISABLE()
|
|
Control_Synch_Scene(oAtm)
|
|
ENDWHILE
|
|
|
|
|
|
CONFIGURE_ATM_BUTTONS()
|
|
|
|
|
|
WHILE (GET_GAME_TIMER() - itime) < starttime
|
|
WAIT(0)
|
|
ATM_CONTROL_DISABLE()
|
|
Control_Synch_Scene(oAtm)
|
|
|
|
IF ATM_HEALTH_DELTA_FAILED()
|
|
EXIT// fail due to damage
|
|
ENDIF
|
|
ENDWHILE
|
|
|
|
|
|
|
|
|
|
INT spInputDelay = GET_GAME_TIMER() + 3500//inputIgnoreTimer
|
|
BOOL bAllowInput = FALSE
|
|
BOOL displaying = TRUE
|
|
BOOL bInitIsDone = FALSE
|
|
bDoMpRefreshUpdate = TRUE
|
|
iRangeCheckGracePeriod= 0
|
|
WHILE displaying
|
|
|
|
//IF IS_SYSTEM_UI_BEING_DISPLAYED()
|
|
//OR IS_PAUSE_MENU_ACTIVE()
|
|
//spin wheels
|
|
// WAIT(0)
|
|
//ENDIF
|
|
|
|
iRangeCheckGracePeriod += ROUND(0 +@ 1000)
|
|
|
|
|
|
RENDER_ATM()
|
|
|
|
// Display mouse cursor (only if mouse is the current input method)
|
|
IF IS_USING_KEYBOARD_AND_MOUSE(FRONTEND_CONTROL)
|
|
SET_MOUSE_CURSOR_THIS_FRAME()
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_PAUSE_ALTERNATE)
|
|
ENDIF
|
|
|
|
IF !g_bInMultiplayer
|
|
IF GET_GAME_TIMER() > spInputDelay
|
|
bAllowInput = TRUE
|
|
ENDIF
|
|
ELSE
|
|
IF spInputDelay > 0
|
|
IF GET_GAME_TIMER() > spInputDelay
|
|
bAllowInput= TRUE
|
|
spInputDelay = -1
|
|
ENDIF
|
|
ELSE
|
|
IF spInputDelay = -1
|
|
bAllowInput = TRUE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_SYSTEM_UI_BEING_DISPLAYED()
|
|
OR IS_PAUSE_MENU_ACTIVE()
|
|
bAllowInput = FALSE
|
|
CPRINTLN(DEBUG_FINANCE, "Atm input suppressed due to IS_SYSTEM_UI_BEING_DISPLAYED")
|
|
ENDIF
|
|
|
|
|
|
BOOL bTerminate = FALSE
|
|
|
|
IF SCREEN_TERMINATION_CONDITION(oAtm)
|
|
//g_bPauseCommsQueues - add a this frame variant of this
|
|
bTerminate = TRUE
|
|
ENDIF
|
|
|
|
IF bAllowInput
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_CANCEL)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_CURSOR_CANCEL)
|
|
ENDIF
|
|
|
|
IF GET_GAME_TIMER() > spInputDelay
|
|
//SET_SCRIPT_GFX_ALIGN(UI_ALIGN_RIGHT, UI_ALIGN_BOTTOM)
|
|
DRAW_SCALEFORM_MOVIE_FULLSCREEN(atmbuttons,255,255,255,255)
|
|
RESET_SCRIPT_GFX_ALIGN()
|
|
ENDIF
|
|
//
|
|
|
|
SWITCH currentPage
|
|
CASE MPAPE_DEPOSIT_PEND
|
|
CASE MPAPE_WITHDRAW_PEND
|
|
bAllowInput = FALSE
|
|
BREAK
|
|
CASE MPAPE_TRANSACTION_COMPLETE
|
|
CASE MPAPE_ERROR_PAGE
|
|
bAllowInput = TRUE
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
|
|
IF bAllowInput
|
|
IF (IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_CANCEL)
|
|
OR IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_CURSOR_CANCEL)
|
|
OR bTerminate)
|
|
AND bInitIsDone
|
|
|
|
PLAY_SOUND_FRONTEND(-1, "PIN_BUTTON","ATM_SOUNDS")
|
|
|
|
IF g_bInMultiplayer
|
|
SWITCH currentPage
|
|
CASE MPAPE_FIRST_CHOICE
|
|
displaying = FALSE
|
|
//Disable blinders on PC
|
|
bCreatedBlinders = SET_MULTIHEAD_SAFE(FALSE,TRUE,bCreatedBlinders, TRUE)
|
|
|
|
BREAK
|
|
CASE MPAPE_TRANSLOG
|
|
bDoMpRefreshUpdate = TRUE
|
|
currentPage = MPAPE_FIRST_CHOICE
|
|
BREAK
|
|
CASE MPAPE_DEPOSIT_ASK
|
|
bDoMpRefreshUpdate = TRUE
|
|
currentPage = MPAPE_FIRST_CHOICE
|
|
BREAK
|
|
CASE MPAPE_PICK_AMOUNT_DEPOSIT
|
|
bDoMpRefreshUpdate = TRUE
|
|
currentPage = MPAPE_FIRST_CHOICE
|
|
BREAK
|
|
CASE MPAPE_CONFIRM_DEPOSIT
|
|
bDoMpRefreshUpdate = TRUE
|
|
currentPage = MPAPE_FIRST_CHOICE
|
|
BREAK
|
|
CASE MPAPE_WITHDRAW_ASK
|
|
bDoMpRefreshUpdate = TRUE
|
|
currentPage = MPAPE_FIRST_CHOICE
|
|
BREAK
|
|
CASE MPAPE_PICK_AMOUNT_WITHDRAW
|
|
bDoMpRefreshUpdate = TRUE
|
|
currentPage = MPAPE_FIRST_CHOICE
|
|
BREAK
|
|
CASE MPAPE_CONFIRM_WITHDRAW
|
|
bDoMpRefreshUpdate = TRUE
|
|
currentPage = MPAPE_FIRST_CHOICE
|
|
BREAK
|
|
CASE MPAPE_ERROR_PAGE
|
|
bDoMpRefreshUpdate = TRUE
|
|
currentPage = MPAPE_FIRST_CHOICE
|
|
BREAK
|
|
CASE MPAPE_TRANSACTION_COMPLETE
|
|
bDoMpRefreshUpdate = TRUE
|
|
currentPage = MPAPE_FIRST_CHOICE
|
|
BREAK
|
|
ENDSWITCH
|
|
ELSE
|
|
//Disable blinders on PC
|
|
bCreatedBlinders = SET_MULTIHEAD_SAFE(FALSE,TRUE,bCreatedBlinders)
|
|
displaying = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
IF !bInitIsDone
|
|
IF !g_bInMultiplayer
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(atmmov,"SET_DATA_SLOT_EMPTY")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
SF_ATM_BALANCE_PAGE(atmmov)
|
|
|
|
BEGIN_SCALEFORM_MOVIE_METHOD(atmmov,"UPDATE_TEXT")
|
|
END_SCALEFORM_MOVIE_METHOD()
|
|
|
|
ENDIF
|
|
bInitIsDone = TRUE
|
|
ENDIF
|
|
|
|
IF g_bInMultiplayer
|
|
IF bDoMpRefreshUpdate
|
|
WHILE bDoMpRefreshUpdate
|
|
bDoMpRefreshUpdate = FALSE
|
|
DO_MP_UPDATE_ATM(oAtm,atmmov,currentPage)
|
|
ENDWHILE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//WAIT(0)
|
|
|
|
// Draw mouse cursor in position on screen (or disable if using pad controls) [MP only, SP has no interaction]
|
|
IF g_bInMultiplayer
|
|
UPDATE_MOUSE_CURSOR(atmmov) // Added for b*1894604: "Can we have mouse support for the MP ATM UI"
|
|
ENDIF
|
|
|
|
IF bAllowInput
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_FRONTEND_ACCEPT)
|
|
ENABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_CURSOR_ACCEPT)
|
|
IF g_bInMultiplayer
|
|
IF (IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_ACCEPT))
|
|
OR (IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_CURSOR_ACCEPT) AND NOT IS_MOUSE_ROLLED_OVER_INSTRUCTIONAL_BUTTONS()) // Added for b*1894604: "Can we have mouse support for the MP ATM UI"
|
|
//IF inputIgnoreTimer < GET_GAME_TIMER()
|
|
MP_ONCLICK(oAtm, currentPage)
|
|
|
|
//PLAY_SOUND_FRONTEND(-1, "PIN_BUTTON","ATM_SOUNDS")
|
|
|
|
|
|
//ENDIF
|
|
ENDIF
|
|
//ELSE
|
|
//CPRINTLN(DEBUG_FINANCE, "FIRE_AND_FORGET_NEW_ATM: no input !g_bInMultiplayer")
|
|
ENDIF
|
|
|
|
DO_INPUTS(atmmov)
|
|
ENDIF
|
|
|
|
|
|
IF !ScenarioTriggered AND !g_bInMultiplayer AND !skipScenario
|
|
IF NOT IS_PED_DEAD_OR_DYING(PLAYER_PED_ID())
|
|
CLEAR_PED_TASKS_IMMEDIATELY(PLAYER_PED_ID())
|
|
ENDIF
|
|
TASK_USE_NEAREST_SCENARIO_TO_COORD(PLAYER_PED_ID(),atmAT, 2.0, -1)
|
|
ScenarioTriggered = TRUE
|
|
ENDIF
|
|
|
|
Control_Synch_Scene(oAtm)
|
|
ENDWHILE
|
|
|
|
// Remove mouse cursor [MP only, SP has no interaction]
|
|
IF g_bInMultiplayer
|
|
CLEAR_MOUSE_CURSOR(atmmov) // Added for b*1894604: "Can we have mouse support for the MP ATM UI"
|
|
ENDIF
|
|
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(atmmov)
|
|
SET_SCALEFORM_MOVIE_AS_NO_LONGER_NEEDED(atmbuttons)
|
|
atmmov = NULL
|
|
atmbuttons = NULL
|
|
|
|
g_bInATM = FALSE
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Do necessary pre game start ini
|
|
PROC PROCESS_PRE_GAME()
|
|
IF NETWORK_IS_GAME_IN_PROGRESS()
|
|
IF NOT NETWORK_TRY_TO_SET_THIS_SCRIPT_IS_NETWORK_SCRIPT(NUM_NETWORK_PLAYERS, FALSE)
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> NETWORK_TRY_TO_SET_THIS_SCRIPT_IS_NETWORK_SCRIPT failed. Maybe there is already an atm_trigger script at these coordinates")
|
|
|
|
CLEANUP_ATM()
|
|
TERMINATE_THIS_THREAD()
|
|
ENDIF
|
|
|
|
// This makes sure the net script is active, waits until it is.
|
|
HANDLE_NET_SCRIPT_INITIALISATION()
|
|
NETWORK_REGISTER_HOST_BROADCAST_VARIABLES(serverBD, SIZE_OF(serverBD))
|
|
NETWORK_REGISTER_PLAYER_BROADCAST_VARIABLES(playerBD, SIZE_OF(playerBD))
|
|
INT i
|
|
REPEAT NUM_NETWORK_PLAYERS i
|
|
serverBD.iSeats[i] = -1
|
|
ENDREPEAT
|
|
SET_THIS_SCRIPT_CAN_BE_PAUSED(FALSE)
|
|
|
|
// KGM: Wait for the first network broadcast before moving on - call this as the last instruction in pre-game
|
|
// (after Initialisation and Broadcast Variable Registration - Hosts can do this too)
|
|
IF NOT Wait_For_First_Network_Broadcast()
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> Failed to receive an initial network broadcast. Cleaning up.")
|
|
|
|
CLEANUP_ATM()
|
|
TERMINATE_THIS_THREAD()
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_FINANCE, "Atm: set started in MP game")
|
|
ELSE
|
|
IF HAS_FORCE_CLEANUP_OCCURRED()
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> Atm script force cleanuped")
|
|
CLEANUP_ATM()
|
|
TERMINATE_THIS_THREAD()
|
|
ENDIF
|
|
ENDIF
|
|
ENDPROC
|
|
|
|
|
|
|
|
SCRIPT (OBJECT_INDEX oAtm)
|
|
|
|
|
|
PROCESS_PRE_GAME()
|
|
|
|
|
|
IF g_BlipSystemPrologueMode
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> Atm reset for blip system prologue mode")
|
|
CLEANUP_ATM()
|
|
TERMINATE_THIS_THREAD()
|
|
ENDIF
|
|
|
|
//BH - preventing ATM during Cops and Crooks~
|
|
#IF FEATURE_FREEMODE_ARCADE
|
|
IF IS_FREEMODE_ARCADE()
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> terminated due to player being in Cops and Crooks")
|
|
CLEANUP_ATM()
|
|
TERMINATE_THIS_THREAD()
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
|
|
//@RJP - 1307176 - preventing player from using ATM during Rampages
|
|
IF g_bIsOnRampage
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> terminated due to player being on RAMPAGE")
|
|
CLEANUP_ATM()
|
|
TERMINATE_THIS_THREAD()
|
|
ENDIF
|
|
|
|
MP_ATM_PAGE_ENUM currentMpPage = MPAPE_FIRST_CHOICE
|
|
//SEQUENCE_INDEX seq = NULL
|
|
IF NOT (DOES_ENTITY_EXIST(oAtm))
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> object passed to atm_trigger script doesn't exist. Terminating.")
|
|
CLEANUP_ATM()
|
|
TERMINATE_THIS_THREAD()
|
|
ENDIF
|
|
|
|
IF NOT (IS_ENTITY_AN_OBJECT(oAtm))
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> object passed to atm_trigger script isn't an object, is a",
|
|
PICK_STRING(IS_ENTITY_A_PED(oAtm), " ped", ""),
|
|
PICK_STRING(IS_ENTITY_A_VEHICLE(oAtm), " veh", ""),
|
|
" - int ", NATIVE_TO_INT(oAtm), ". Terminating.")
|
|
CLEANUP_ATM()
|
|
TERMINATE_THIS_THREAD()
|
|
ENDIF
|
|
|
|
INTERIOR_INSTANCE_INDEX iii =GET_INTERIOR_FROM_ENTITY(oAtm)
|
|
|
|
IF IS_ATM_POSITION_VERBOTEN(GET_ENTITY_COORDS(oAtm,TRUE))//1127454
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> on no trigger list, bailing")
|
|
CLEANUP_ATM()
|
|
TERMINATE_THIS_THREAD()
|
|
ENDIF
|
|
|
|
//BenR - #2015059 - Preventing player from using ATM as an animal.
|
|
IF IS_CURRENTLY_ON_MISSION_OF_TYPE(MISSION_TYPE_ANIMAL)
|
|
OR IS_CURRENTLY_ON_MISSION_OF_TYPE(MISSION_TYPE_DIRECTOR)
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> Atm terminated due to player playing as an animal.")
|
|
CLEANUP_ATM()
|
|
TERMINATE_THIS_THREAD()
|
|
ENDIF
|
|
|
|
|
|
//START_SHAPE_TEST_LOS_PROBE
|
|
//and it is in //depot/gta5/script/dev/shared/include/native/commands_shapetest.sch
|
|
|
|
|
|
// PED_INDEX tmpArray[25]
|
|
BOOL bCheck = TRUE
|
|
//BOOL bButtonDelayer = FALSE
|
|
|
|
|
|
//set up the angular check
|
|
//HEADING_PUSH_TRIGGER_DATA pushData
|
|
|
|
//pushData.targetEntity = INT_TO_NATIVE ( ENTITY_INDEX, NATIVE_TO_INT (oAtm))
|
|
//pushData.fTriggerRange = 1.6
|
|
//pushData.fTriggerSpeedLimit = 1.0 //anything under medium walking speed
|
|
//pushData.fTriggerAngle = 40.0
|
|
//pushData.iTriggerTime = 1000 //1 second trigger
|
|
atmAT = GET_ENTITY_COORDS(oAtm,TRUE)
|
|
atmAT.z += 1.0
|
|
|
|
IF GET_FOLLOW_PED_CAM_VIEW_MODE() != CAM_VIEW_MODE_FIRST_PERSON
|
|
vSynchSceneOrigin = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(oAtm, vSynchSceneOffset3rd)
|
|
ELSE
|
|
vSynchSceneOrigin = GET_OFFSET_FROM_ENTITY_IN_WORLD_COORDS(oAtm, vSynchSceneOffset1st)
|
|
ENDIF
|
|
|
|
PRINTSTRING("vSynchSceneOrigin: ")
|
|
PRINTVECTOR(vSynchSceneOrigin)
|
|
PRINTNL()
|
|
|
|
FLOAT fSynchSceneOrigin_groundZ
|
|
IF GET_GROUND_Z_FOR_3D_COORD(vSynchSceneOrigin, fSynchSceneOrigin_groundZ)
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
PRINTSTRING("fSynchSceneOrigin_groundZ: ")
|
|
PRINTFLOAT(fSynchSceneOrigin_groundZ)
|
|
PRINTSTRING(" //")
|
|
PRINTFLOAT(vSynchSceneOrigin.z - fSynchSceneOrigin_groundZ)
|
|
|
|
IF (ABSF(vSynchSceneOrigin.z - fSynchSceneOrigin_groundZ)-1.0) > 0.01
|
|
PRINTSTRING(": BIG DIFF!!!")
|
|
ENDIF
|
|
|
|
PRINTNL()
|
|
#ENDIF
|
|
|
|
vSynchSceneOrigin.z = fSynchSceneOrigin_groundZ + 1.0
|
|
|
|
ELSE
|
|
PRINTSTRING("fSynchSceneOrigin_groundZ: ZERO")
|
|
PRINTNL()
|
|
ENDIF
|
|
|
|
SETTIMERA(0)
|
|
//INT iDelta = 0
|
|
HINT_SCRIPT_AUDIO_BANK("ATM")
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
SETUP_ATM_DEBUG_WIDGETS()
|
|
#ENDIF
|
|
|
|
//each frame check player range
|
|
WHILE bCheck
|
|
|
|
iTerminationCooldown += ROUND(0 +@ 1000)
|
|
|
|
BOOL contextThisFrame = FALSE
|
|
//CPRINTLN(DEBUG_FINANCE, "ATM script rolling")
|
|
|
|
|
|
//iDelta = TIMERA()
|
|
SETTIMERA(0)
|
|
//if the finance screen is not open
|
|
|
|
//FINH_ATMNEAR
|
|
/*
|
|
WHILE (NOT DOES_ENTITY_EXIST(oAtm))
|
|
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> world brain object doesn't exist, waiting until it does or this script is terminated due to range.")
|
|
//CLEANUP_ATM()
|
|
//TERMINATE_THIS_THREAD()
|
|
WAIT(2000)
|
|
ENDWHILE
|
|
*/
|
|
IF DOES_ENTITY_EXIST(oAtm)
|
|
AND IS_ENTITY_AN_OBJECT(oAtm)
|
|
IF HAS_OBJECT_BEEN_BROKEN(oAtm)
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> object is detected as being dead. Terminating brain script.")
|
|
CLEANUP_ATM()
|
|
TERMINATE_THIS_THREAD()
|
|
|
|
ENDIF
|
|
ENDIF
|
|
IF (g_bInMultiplayer) AND NETWORK_IS_GAME_IN_PROGRESS()
|
|
bRunningInMP = TRUE
|
|
IF SHOULD_THIS_MULTIPLAYER_THREAD_TERMINATE()
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> SHOULD_THIS_MULTIPLAYER_THREAD_TERMINATE()")
|
|
CLEANUP_ATM()
|
|
TERMINATE_THIS_THREAD()
|
|
|
|
ENDIF
|
|
ELIF bRunningInMP
|
|
IF SHOULD_THIS_MULTIPLAYER_THREAD_TERMINATE()
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> SHOULD_THIS_MULTIPLAYER_THREAD_TERMINATE() -2")
|
|
CLEANUP_ATM()
|
|
TERMINATE_THIS_THREAD()
|
|
bRunningInMP = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
BOOL bSkipScenario = TRUE
|
|
IF DOES_ENTITY_EXIST(PLAYER_PED_ID())
|
|
AND (NOT (IS_ENTITY_DEAD(PLAYER_PED_ID())))
|
|
AND (NOT (IS_CUTSCENE_PLAYING()))
|
|
AND IS_PLAYER_PLAYING(GET_PLAYER_INDEX())
|
|
|
|
IF (GET_INTERIOR_FROM_ENTITY(PLAYER_PED_ID()) = iii)
|
|
AND NOT IS_PED_JUMPING(PLAYER_PED_ID())
|
|
|
|
//check for tutorial display bAtmFirstTimeFlowHelpShown
|
|
//if off mission
|
|
IF NOT IS_CURRENTLY_ON_MISSION_OF_TYPE(MISSION_TYPE_OFF_MISSION)
|
|
|
|
IF NOT g_savedGlobals.sFinanceData.bAtmFirstTimeFlowHelpShown
|
|
IF NOT IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
IF g_bInMultiplayer
|
|
PRINT_HELP("ATM_1TM_TUT")
|
|
ELSE
|
|
IF NOT IS_FLOW_HELP_MESSAGE_QUEUED("ATM_1TM_TUT")
|
|
//ATM_1TM_TUT
|
|
ADD_HELP_TO_FLOW_QUEUE("ATM_1TM_TUT",FHP_HIGH)//priority kicked up to high to avoid delay issues
|
|
|
|
ENDIF
|
|
ENDIF
|
|
|
|
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_THIS_HELP_MESSAGE_BEING_DISPLAYED("ATM_1TM_TUT")
|
|
g_savedGlobals.sFinanceData.bAtmFirstTimeFlowHelpShown = TRUE
|
|
ENDIF
|
|
|
|
ENDIF
|
|
|
|
|
|
|
|
|
|
//pushData.triggererEntity = INT_TO_NATIVE ( ENTITY_INDEX, NATIVE_TO_INT (PLAYER_PED_ID()))
|
|
|
|
//IF IS_ENTITY_AT_COORD(PLAYER_PED_ID(),in_coords.vec_coord[0], << LOCATE_SIZE_ON_FOOT_ONLY, LOCATE_SIZE_ON_FOOT_ONLY, LOCATE_SIZE_ON_FOOT_ONLY >>, TRUE,TRUE, TM_ON_FOOT)
|
|
|
|
IF //IS_OBJECT_WITHIN_BRAIN_ACTIVATION_RANGE(oAtm)
|
|
(NOT IS_PED_USING_ANY_SCENARIO(PLAYER_PED_ID()))
|
|
AND (NOT IS_PED_RAGDOLL(PLAYER_PED_ID()))
|
|
AND (NOT IS_PHONE_ONSCREEN())
|
|
//AND (NOT HAS_OBJECT_BEEN_BROKEN(oAtm))
|
|
AND (IS_ENTITY_AT_COORD(PLAYER_PED_ID(),atmAT, << 1, 1, 1 >>, FALSE,TRUE, TM_ON_FOOT))
|
|
AND NOT IS_PED_IN_COVER(PLAYER_PED_ID())
|
|
AND (NOT (Is_Player_Timetable_Scene_In_Progress()))
|
|
AND (NOT SCREEN_TERMINATION_CONDITION(oAtm,FALSE))
|
|
AND (NOT IS_PLAYER_DRIVING_ANY_VEHICLE()) //vehicle check moved here to fix speed issues
|
|
AND (GET_ENTITY_SPEED(PLAYER_PED_ID()) < 4.0)
|
|
AND (GB_GET_PLAYER_CURRENT_GANG_BOSS_MISSION(PLAYER_ID()) != FMMC_TYPE_GB_CASHING_OUT)
|
|
AND (NOT IS_THIS_ROCKSTAR_MISSION_NEW_VS_GUNSMITH(g_FMMC_STRUCT.iAdversaryModeType))
|
|
AND (NOT IS_THIS_ROCKSTAR_MISSION_NEW_VS_HARD_TARGET(g_FMMC_STRUCT.iAdversaryModeType))
|
|
AND (NOT IS_THIS_ROCKSTAR_MISSION_NEW_VS_HOSTILE_TAKEOVER(g_FMMC_STRUCT.iAdversaryModeType))
|
|
AND (NOT IS_BIT_SET(g_FMMC_STRUCT.iOptionsMenuBitSetEighteen, ciOPTIONSBS18_DISABLE_ATM_USE_IN_MISSIONS))
|
|
AND NOT IS_PLAYER_AN_ANIMAL(PLAYER_ID())
|
|
//this one causes some wierdness with the positioning
|
|
//AND DOES_SCENARIO_EXIST_IN_AREA(GET_ENTITY_COORDS(oAtm,TRUE), 5.0, TRUE)
|
|
//CPRINTLN(DEBUG_FINANCE, "ARRRGH")
|
|
IF DOES_SCENARIO_EXIST_IN_AREA( atmAT, 2.0, FALSE ) //added for 1318982
|
|
bSkipScenario = FALSE
|
|
ENDIF
|
|
|
|
BOOL SkipAmbient = FALSE
|
|
IF (IS_PLAYER_USING_BALLISTIC_EQUIPMENT(PLAYER_ID()))
|
|
bSkipScenario = TRUE
|
|
SkipAmbient = TRUE
|
|
IF NOT bDisplayedBEHelp
|
|
IF NOT IS_HELP_MESSAGE_BEING_DISPLAYED()
|
|
BEGIN_TEXT_COMMAND_DISPLAY_HELP("SHOP_JUGG_NONE")
|
|
ADD_TEXT_COMPONENT_SUBSTRING_TEXT_LABEL("GB_COUT_ATM")
|
|
END_TEXT_COMMAND_DISPLAY_HELP(HELP_TEXT_SLOT_STANDARD, FALSE, FALSE)
|
|
CPRINTLN(DEBUG_FINANCE, "ATM suppressed due to wearing ballistic gear")
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//check for peds nearby that are playing the ambient atm set
|
|
|
|
IF IS_SCENARIO_OCCUPIED(atmAT,2.0,TRUE)
|
|
SkipAmbient = TRUE
|
|
CPRINTLN(DEBUG_FINANCE, "Atm input suppressed due to IS_SCENARIO_OCCUPIED")
|
|
ENDIF
|
|
|
|
IF g_bInMultiplayer
|
|
IF NOT NETWORK_IS_GAME_IN_PROGRESS()
|
|
SkipAmbient = TRUE
|
|
CPRINTLN(DEBUG_FINANCE, "Atm input suppressed due to NOT NETWORK_IS_GAME_IN_PROGRESS")
|
|
ENDIF
|
|
ENDIF
|
|
|
|
IF IS_PAUSE_MENU_ACTIVE()
|
|
SkipAmbient = TRUE
|
|
CPRINTLN(DEBUG_FINANCE, "Atm input suppressed due to IS_PAUSE_MENU_ACTIVE")
|
|
ENDIF
|
|
|
|
IF NOT SkipAmbient
|
|
IF iCandidate = NO_CANDIDATE_ID
|
|
REGISTER_CONTEXT_INTENTION(iCandidate,CP_HIGH_PRIORITY, "FINH_ATMNEAR")
|
|
ENDIF
|
|
|
|
contextThisFrame = TRUE
|
|
IF HAS_CONTEXT_BUTTON_TRIGGERED(iCandidate)
|
|
g_bSuppressContextHelpDuringHandling = TRUE
|
|
|
|
|
|
//attempt to push player into scenario
|
|
//DISABLE_ALL_CONTROL_ACTIONS()
|
|
//fire the ATM right away on approach now
|
|
CPRINTLN(DEBUG_FINANCE, "Atm triggering for entity complete" )
|
|
|
|
//SET_PLAYER_CONTROL(GET_PLAYER_INDEX(),FALSE)
|
|
|
|
//BOOL bInScenario = FALSE
|
|
|
|
//IF DOES_SCENARIO_EXIST_IN_AREA(GET_ENTITY_COORDS(oAtm,TRUE), 2.0, TRUE)
|
|
///CPRINTLN(DEBUG_FINANCE, "Atm scenario found, triggering player" )
|
|
|
|
|
|
WHILE NOT REQUEST_SCRIPT_AUDIO_BANK("ATM")
|
|
AND NOT SCREEN_TERMINATION_CONDITION_CHECKS(oAtm)
|
|
CPRINTLN(DEBUG_FINANCE, "Waiting for REQUEST_SCRIPT_AUDIO_BANK(ATM) to return true")
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
//CLEAR_PED_TASKS_IMMEDIATELY(PLAYER_PED_ID())
|
|
//OPEN_SEQUENCE_TASK(seq)
|
|
WAIT(100)
|
|
//TASK_SWAP_WEAPON(NULL,FALSE)
|
|
|
|
TEXT_LABEL_63 tAtmAnimDict = ""
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID())
|
|
SET_CURRENT_PED_WEAPON(PLAYER_PED_ID(),WEAPONTYPE_UNARMED,TRUE)
|
|
IF Get_Atm_Anim_Dict_Names(eAnimSet_enter, tAtmAnimDict)
|
|
TASK_GO_STRAIGHT_TO_COORD(PLAYER_PED_ID(),
|
|
vSynchSceneOrigin,
|
|
PEDMOVEBLENDRATIO_WALK, 5000, GET_ENTITY_HEADING(oAtm),
|
|
DEFAULT_NAVMESH_RADIUS)
|
|
iATMSynchSceneStage = 0
|
|
ENDIF
|
|
ENDIF
|
|
|
|
WAIT(100)
|
|
//CLEAR_PED_TASKS_IMMEDIATELY(PLAYER_PED_ID())
|
|
WAIT(100)
|
|
|
|
IF NOT IS_PED_DEAD_OR_DYING(PLAYER_PED_ID())// added for 1315250
|
|
IF NOT IS_PED_INJURED(PLAYER_PED_ID()) // added for 1315250
|
|
|
|
//Set-up blinders on PC
|
|
bCreatedBlinders = SET_MULTIHEAD_SAFE(TRUE,TRUE, DEFAULT,TRUE)
|
|
|
|
bTriggered = TRUE
|
|
|
|
//CLOSE_SEQUENCE_TASK(seq)
|
|
|
|
//TASK_PERFORM_SEQUENCE(PLAYER_PED_ID(),seq)
|
|
|
|
//bInScenario = TRUE
|
|
|
|
//ENDIF
|
|
|
|
|
|
//wait for the player to get into the damn scenario
|
|
/*//no waiting anymore due to 1331023
|
|
INT iTimeout = GET_GAME_TIMER() + 16000
|
|
WHILE (!IS_ENTITY_DEAD(PLAYER_PED_ID()))
|
|
AND (!IS_PED_RAGDOLL(PLAYER_PED_ID()))
|
|
AND (!IS_PED_USING_ANY_SCENARIO(PLAYER_PED_ID()))
|
|
AND (iTimeout > GET_GAME_TIMER())
|
|
//CPRINTLN(DEBUG_FINANCE, "Waiting for player to get into ATM scenario")
|
|
ATM_CONTROL_DISABLE()
|
|
WAIT(0)
|
|
IF (iTimeout < GET_GAME_TIMER())
|
|
SCRIPT_ASSERT("Player ped failed to get into atm scenario before timeout elapsed")
|
|
ENDIF
|
|
|
|
IF ATM_HEALTH_DELTA_FAILED()
|
|
iTimeout = 0
|
|
ENDIF
|
|
ENDWHILE
|
|
*/
|
|
|
|
|
|
IF g_bInMultiplayer
|
|
playerBD[PARTICIPANT_ID_TO_INT()].bWarpedInside = TRUE
|
|
|
|
SET_MULTIPLAYER_WALLET_CASH()
|
|
SET_MULTIPLAYER_BANK_CASH()
|
|
g_bAtmShowing = TRUE
|
|
ENDIF
|
|
//IF (iTimeout > GET_GAME_TIMER())
|
|
currentMpPage = MPAPE_FIRST_CHOICE
|
|
START_AUDIO_SCENE("ATM_PLAYER_SCENE")
|
|
|
|
|
|
#if IS_DEBUG_BUILD
|
|
IF NOT g_bFake_fire_and_forget_new_atm
|
|
#ENDIF
|
|
FIRE_AND_FORGET_NEW_ATM(0,currentMpPage,oAtm,bSkipScenario)
|
|
|
|
#if IS_DEBUG_BUILD
|
|
ELSE
|
|
WHILE NOT IS_CONTROL_JUST_PRESSED(FRONTEND_CONTROL,INPUT_FRONTEND_CANCEL)
|
|
AND NOT SCREEN_TERMINATION_CONDITION_CHECKS(oAtm)
|
|
Control_Synch_Scene(oAtm)
|
|
WAIT(0)
|
|
ENDWHILE
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
STOP_AUDIO_SCENE("ATM_PLAYER_SCENE")
|
|
//ENDIF
|
|
IF g_bInMultiplayer
|
|
g_bAtmShowing = FALSE
|
|
REMOVE_MULTIPLAYER_WALLET_CASH()
|
|
REMOVE_MULTIPLAYER_BANK_CASH()
|
|
ENDIF
|
|
|
|
IF NOT bSkipScenario
|
|
OR g_bInMultiplayer
|
|
IF NOT IS_PED_DEAD_OR_DYING(PLAYER_PED_ID())
|
|
IF NOT bSkipScenario
|
|
SET_PED_SHOULD_PLAY_IMMEDIATE_SCENARIO_EXIT(PLAYER_PED_ID())
|
|
CLEAR_PED_TASKS(PLAYER_PED_ID())
|
|
ENDIF
|
|
|
|
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
|
|
//WAIT(1000)
|
|
CPRINTLN(DEBUG_FINANCE, "<EXIT_ATM> Player scenario cancel out")
|
|
|
|
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())//1388194
|
|
IF (IS_PED_USING_ANY_SCENARIO(PLAYER_PED_ID()))
|
|
SET_PED_SHOULD_PLAY_IMMEDIATE_SCENARIO_EXIT(PLAYER_PED_ID())
|
|
IF NOT IS_PED_DEAD_OR_DYING(PLAYER_PED_ID())
|
|
CLEAR_PED_TASKS(PLAYER_PED_ID())
|
|
ENDIF
|
|
|
|
//WAIT(1000)
|
|
ENDIF
|
|
|
|
IF Get_Atm_Anim_Dict_Names(eAnimSet_base, tAtmAnimDict)
|
|
REMOVE_ANIM_DICT(tAtmAnimDict)
|
|
ENDIF
|
|
IF Get_Atm_Anim_Dict_Names(eAnimSet_idle, tAtmAnimDict)
|
|
REMOVE_ANIM_DICT(tAtmAnimDict)
|
|
ENDIF
|
|
|
|
IF Get_Atm_Anim_Dict_Names(eAnimSet_exit, tAtmAnimDict)
|
|
IF IS_SYNCHRONIZED_SCENE_RUNNING(iATMSynchSceneID)
|
|
DETACH_SYNCHRONIZED_SCENE(iATMSynchSceneID)
|
|
iATMSynchSceneID = -1
|
|
ENDIF
|
|
iATMSynchSceneID = NETWORK_CREATE_SYNCHRONISED_SCENE(vSynchSceneOrigin, GET_ENTITY_ROTATION(oAtm), DEFAULT,
|
|
FALSE, // SET_SYNCHRONIZED_SCENE_HOLD_LAST_FRAME(iATMSynchSceneID, TRUE)
|
|
FALSE) // SET_SYNCHRONIZED_SCENE_LOOPED(iATMSynchSceneID, FALSE)
|
|
|
|
NETWORK_ADD_PED_TO_SYNCHRONISED_SCENE(PLAYER_PED_ID(), iATMSynchSceneID,
|
|
tAtmAnimDict, "exit",
|
|
NORMAL_BLEND_IN, SLOW_BLEND_OUT, SYNCED_SCENE_USE_PHYSICS|SYNCED_SCENE_DONT_INTERRUPT)
|
|
NETWORK_START_SYNCHRONISED_SCENE(iATMSynchSceneID)
|
|
|
|
REMOVE_ANIM_DICT(tAtmAnimDict)
|
|
ELSE
|
|
CPRINTLN(DEBUG_FINANCE, "<EXIT_ATM> not Get_Atm_Anim_Dict_Names()")
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_FINANCE, "<EXIT_ATM> player is dead [3]")
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_FINANCE, "<EXIT_ATM> player is dead [2]")
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_FINANCE, "<EXIT_ATM> player is dead or dying [1]")
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_FINANCE, "<EXIT_ATM> bSkipScenario = true and g_bInMultiplayer = false")
|
|
ENDIF
|
|
|
|
INT l = 0
|
|
CPRINTLN(DEBUG_FINANCE, "<EXIT_ATM> ATM started preventing punch on leaving ATM")
|
|
WHILE l < 1000
|
|
AND NOT SCREEN_TERMINATION_CONDITION_CHECKS(oAtm)
|
|
l += ROUND(0 +@1000)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL, INPUT_FRONTEND_PAUSE_ALTERNATE)
|
|
DISABLE_CONTROL_ACTION(FRONTEND_CONTROL,INPUT_FRONTEND_CANCEL)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL,INPUT_ATTACK)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL,INPUT_ATTACK)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL,INPUT_MELEE_ATTACK_LIGHT)
|
|
DISABLE_CONTROL_ACTION(PLAYER_CONTROL,INPUT_MELEE_ATTACK_HEAVY)
|
|
|
|
WAIT(0)
|
|
ENDWHILE
|
|
CPRINTLN(DEBUG_FINANCE, "<EXIT_ATM> ATM stopped preventing punch on leaving ATM")
|
|
|
|
IF g_bInMultiplayer
|
|
playerBD[PARTICIPANT_ID_TO_INT()].bWarpedInside = FALSE
|
|
ENDIF
|
|
|
|
bTriggered = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
|
|
//PLAY_SOUND_FRONTEND(-1, "PIN_BUTTON","ATM_SOUNDS")
|
|
RELEASE_CONTEXT_INTENTION(iCandidate)
|
|
|
|
ENDIF
|
|
ELSE // otherwise wait a moment so we're not constantly checking for peds animating
|
|
RELEASE_CONTEXT_INTENTION(iCandidate)
|
|
CPRINTLN(DEBUG_FINANCE, "Atm skipped due to ped with ambient using detected.")
|
|
WAIT(250)
|
|
ENDIF
|
|
|
|
|
|
// #IF IS_DEBUG_BUILD
|
|
// ELSE
|
|
// //1318982
|
|
// SCRIPT_ASSERT("No scenario found in range of ATM.")
|
|
// #ENDIF
|
|
//ENDIF
|
|
ELSE//main
|
|
RELEASE_CONTEXT_INTENTION(iCandidate)
|
|
//if out of range then check if far enough away to finish this script
|
|
BOOL invalidatmstate = FALSE
|
|
IF DOES_ENTITY_EXIST(oAtm)
|
|
IF NOT IS_OBJECT_WITHIN_BRAIN_ACTIVATION_RANGE(oAtm)
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> object out of brain activation range")
|
|
invalidatmstate = TRUE
|
|
ENDIF
|
|
ELSE
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> object does not exist")
|
|
invalidatmstate = TRUE
|
|
ENDIF
|
|
|
|
IF invalidatmstate
|
|
bCheck = FALSE
|
|
ENDIF
|
|
ENDIF
|
|
ENDIF
|
|
ELSE
|
|
//player dead reset tacular
|
|
CPRINTLN(DEBUG_FINANCE, "<ATM_KILL> player dead reset tacular")
|
|
bCheck = FALSE
|
|
ENDIF
|
|
|
|
IF NOT contextThisFrame
|
|
IF iCandidate != NO_CANDIDATE_ID
|
|
RELEASE_CONTEXT_INTENTION(iCandidate)
|
|
ENDIF
|
|
ENDIF
|
|
|
|
#IF IS_DEBUG_BUILD
|
|
MAINTAIN_ATM_DEBUG_WIDGETS()
|
|
#ENDIF
|
|
|
|
WAIT(0)
|
|
ENDWHILE
|
|
|
|
|
|
IF bTransactionHappened
|
|
//CPRINTLN(DEBUG_FINANCE, "ATM script attempting save, CAN_CALL_STAT_SAVE(STAT_SAVETYPE_END_ATM,FALSE)")
|
|
//IF CAN_CALL_STAT_SAVE(STAT_SAVETYPE_END_ATM,FALSE)
|
|
CPRINTLN(DEBUG_FINANCE, "ATM calling REQUEST_SAVE(STAT_SAVETYPE_END_ATM) ")
|
|
REQUEST_SAVE(SSR_REASON_FM_ATM, STAT_SAVETYPE_END_ATM)
|
|
//ENDIF
|
|
|
|
ENDIF
|
|
|
|
CPRINTLN(DEBUG_FINANCE, "ATM script bailed")
|
|
CLEANUP_ATM()
|
|
ENDSCRIPT
|