296 lines
11 KiB
Scheme
Executable File
296 lines
11 KiB
Scheme
Executable File
//////////////////////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// SCRIPT NAME : stats_public.sch //
|
|
// AUTHOR : Kenneth Ross //
|
|
// DESCRIPTION : Contains helper funtion to get stat for specified //
|
|
// character. //
|
|
// // //
|
|
//////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
USING "rage_builtins.sch"
|
|
USING "globals.sch"
|
|
USING "net_stat_system.sch"
|
|
|
|
PROC DISABLE_PLAYER_PED_STAT_UPDATES_THIS_FRAME()
|
|
g_bDisableStatUpdatesThisFrame = TRUE
|
|
ENDPROC
|
|
|
|
PROC INCREMENT_PLAYER_PED_STAT(enumCharacterList ePed, PLAYER_STATS_ENUM ePlayerStat, INT iAmount)
|
|
|
|
PRINTLN("INCREMENT_PLAYER_PED_STAT - char=", ePed, ", stat=", ePlayerStat, ", ammount=", iAmount, ", script=", GET_THIS_SCRIPT_NAME())
|
|
|
|
|
|
INT iStatValue
|
|
MP_INT_STATS mpIntStat
|
|
|
|
SWITCH ePed
|
|
CASE CHAR_MICHAEL
|
|
CASE CHAR_FRANKLIN
|
|
CASE CHAR_TREVOR
|
|
g_savedGlobals.sPlayerData.sInfo.iPlayerStatScript[ePlayerStat][ePed] += iAmount
|
|
BREAK
|
|
CASE CHAR_MULTIPLAYER
|
|
|
|
#IF USE_TU_CHANGES
|
|
mpIntStat = MAX_NUM_MP_INT_STATS
|
|
#ENDIF
|
|
|
|
#IF NOT USE_TU_CHANGES
|
|
mpIntStat = MP_STAT_PSTAT_INT9 //Matches the index of the FinalSub MAX_NUM_MP_INT_STATS. To be compiled into SP scripts.
|
|
#ENDIF
|
|
|
|
SWITCH ePlayerStat
|
|
CASE PS_STAMINA mpIntStat = MP_STAT_SCRIPT_INCREASE_STAM BREAK
|
|
CASE PS_LUNG_CAPACITY mpIntStat = MP_STAT_SCRIPT_INCREASE_LUNG BREAK
|
|
CASE PS_STRENGTH mpIntStat = MP_STAT_SCRIPT_INCREASE_STRN BREAK
|
|
CASE PS_DRIVING_ABILITY mpIntStat = MP_STAT_SCRIPT_INCREASE_DRIV BREAK
|
|
CASE PS_FLYING_ABILITY mpIntStat = MP_STAT_SCRIPT_INCREASE_FLY BREAK
|
|
CASE PS_SHOOTING_ABILITY mpIntStat = MP_STAT_SCRIPT_INCREASE_SHO BREAK
|
|
CASE PS_STEALTH_ABILITY mpIntStat = MP_STAT_SCRIPT_INCREASE_STL BREAK
|
|
ENDSWITCH
|
|
|
|
#IF USE_TU_CHANGES
|
|
IF mpIntStat != MAX_NUM_MP_INT_STATS
|
|
iStatValue = GET_MP_INT_CHARACTER_STAT(mpIntStat)
|
|
iStatValue += iAmount
|
|
IF iStatValue > 100
|
|
iStatValue = 100
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(mpIntStat, iStatValue)
|
|
ENDIF
|
|
#ENDIF
|
|
|
|
#IF NOT USE_TU_CHANGES
|
|
IF mpIntStat != MP_STAT_PSTAT_INT9 //Matches the index of the FinalSub MAX_NUM_MP_INT_STATS. To be compiled into SP scripts.
|
|
iStatValue = GET_MP_INT_CHARACTER_STAT(mpIntStat)
|
|
iStatValue += iAmount
|
|
IF iStatValue > 100
|
|
iStatValue = 100
|
|
ENDIF
|
|
SET_MP_INT_CHARACTER_STAT(mpIntStat, iStatValue)
|
|
ENDIF
|
|
#ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
/// PURPOSE: Returns the appropriate stat enum for the given ped and helper stat enum
|
|
///
|
|
/// PARAMS:
|
|
/// ePed - The player ped we want to get the stat for (CHAR_MICHAEL, CHAR_FRANKLIN, CHAR_TREVOR)
|
|
/// ePlayerStat - The helper enum used to look up stats
|
|
/// RETURNS:
|
|
///
|
|
PROC GET_PLAYER_PED_STAT_ENUM(enumCharacterList ePed, PLAYER_STATS_ENUM ePlayerStat, STATSENUM &eSPStat, MP_INT_STATS &eMPStat)
|
|
|
|
SWITCH ePed
|
|
CASE CHAR_MICHAEL
|
|
SWITCH ePlayerStat
|
|
CASE PS_SPECIAL_ABILITY eSPStat = SP0_SPECIAL_ABILITY_UNLOCKED BREAK
|
|
CASE PS_STAMINA eSPStat = SP0_STAMINA BREAK
|
|
CASE PS_LUNG_CAPACITY eSPStat = SP0_LUNG_CAPACITY BREAK
|
|
CASE PS_STRENGTH eSPStat = SP0_STRENGTH BREAK
|
|
CASE PS_DRIVING_ABILITY eSPStat = SP0_WHEELIE_ABILITY BREAK
|
|
CASE PS_FLYING_ABILITY eSPStat = SP0_FLYING_ABILITY BREAK
|
|
CASE PS_SHOOTING_ABILITY eSPStat = SP0_SHOOTING_ABILITY BREAK
|
|
CASE PS_STEALTH_ABILITY eSPStat = SP0_STEALTH_ABILITY BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
CASE CHAR_FRANKLIN
|
|
SWITCH ePlayerStat
|
|
CASE PS_SPECIAL_ABILITY eSPStat = SP1_SPECIAL_ABILITY_UNLOCKED BREAK
|
|
CASE PS_STAMINA eSPStat = SP1_STAMINA BREAK
|
|
CASE PS_LUNG_CAPACITY eSPStat = SP1_LUNG_CAPACITY BREAK
|
|
CASE PS_STRENGTH eSPStat = SP1_STRENGTH BREAK
|
|
CASE PS_DRIVING_ABILITY eSPStat = SP1_WHEELIE_ABILITY BREAK
|
|
CASE PS_FLYING_ABILITY eSPStat = SP1_FLYING_ABILITY BREAK
|
|
CASE PS_SHOOTING_ABILITY eSPStat = SP1_SHOOTING_ABILITY BREAK
|
|
CASE PS_STEALTH_ABILITY eSPStat = SP1_STEALTH_ABILITY BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
CASE CHAR_TREVOR
|
|
SWITCH ePlayerStat
|
|
CASE PS_SPECIAL_ABILITY eSPStat = SP2_SPECIAL_ABILITY_UNLOCKED BREAK
|
|
CASE PS_STAMINA eSPStat = SP2_STAMINA BREAK
|
|
CASE PS_LUNG_CAPACITY eSPStat = SP2_LUNG_CAPACITY BREAK
|
|
CASE PS_STRENGTH eSPStat = SP2_STRENGTH BREAK
|
|
CASE PS_DRIVING_ABILITY eSPStat = SP2_WHEELIE_ABILITY BREAK
|
|
CASE PS_FLYING_ABILITY eSPStat = SP2_FLYING_ABILITY BREAK
|
|
CASE PS_SHOOTING_ABILITY eSPStat = SP2_SHOOTING_ABILITY BREAK
|
|
CASE PS_STEALTH_ABILITY eSPStat = SP2_STEALTH_ABILITY BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
CASE CHAR_MULTIPLAYER
|
|
SWITCH ePlayerStat
|
|
CASE PS_SPECIAL_ABILITY eMPStat = MP_STAT_SPECIAL_ABILITY BREAK
|
|
CASE PS_STAMINA eMPStat = MP_STAT_STAMINA BREAK
|
|
CASE PS_LUNG_CAPACITY eMPStat = MP_STAT_LUNG_CAPACITY BREAK
|
|
CASE PS_STRENGTH eMPStat = MP_STAT_STRENGTH BREAK
|
|
CASE PS_DRIVING_ABILITY eMPStat = MP_STAT_WHEELIE_ABILITY BREAK
|
|
CASE PS_FLYING_ABILITY eMPStat = MP_STAT_FLYING_ABILITY BREAK
|
|
CASE PS_SHOOTING_ABILITY eMPStat = MP_STAT_SHOOTING_ABILITY BREAK
|
|
CASE PS_STEALTH_ABILITY eMPStat = MP_STAT_STEALTH_ABILITY BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
ENDSWITCH
|
|
ENDPROC
|
|
|
|
FUNC BOOL GET_PLAYER_PED_MAXED_STAT_ENUM(enumCharacterList ePed, PLAYER_STATS_ENUM ePlayerStat, STATSENUM &eSPStat)
|
|
|
|
eSPStat = LAST_PLAYING_TIME
|
|
|
|
SWITCH ePed
|
|
CASE CHAR_MICHAEL
|
|
SWITCH ePlayerStat
|
|
CASE PS_SPECIAL_ABILITY eSPStat = SP0_SPECIAL_ABILITY_MAXED BREAK
|
|
CASE PS_STAMINA eSPStat = SP0_STAMINA_MAXED BREAK
|
|
CASE PS_LUNG_CAPACITY eSPStat = SP0_LUNG_CAPACITY_MAXED BREAK
|
|
CASE PS_STRENGTH eSPStat = SP0_STRENGTH_MAXED BREAK
|
|
CASE PS_DRIVING_ABILITY eSPStat = SP0_WHEELIE_ABILITY_MAXED BREAK
|
|
CASE PS_FLYING_ABILITY eSPStat = SP0_FLYING_ABILITY_MAXED BREAK
|
|
CASE PS_SHOOTING_ABILITY eSPStat = SP0_SHOOTING_ABILITY_MAXED BREAK
|
|
CASE PS_STEALTH_ABILITY eSPStat = SP0_STEALTH_ABILITY_MAXED BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
CASE CHAR_FRANKLIN
|
|
SWITCH ePlayerStat
|
|
CASE PS_SPECIAL_ABILITY eSPStat = SP1_SPECIAL_ABILITY_MAXED BREAK
|
|
CASE PS_STAMINA eSPStat = SP1_STAMINA_MAXED BREAK
|
|
CASE PS_LUNG_CAPACITY eSPStat = SP1_LUNG_CAPACITY_MAXED BREAK
|
|
CASE PS_STRENGTH eSPStat = SP1_STRENGTH_MAXED BREAK
|
|
CASE PS_DRIVING_ABILITY eSPStat = SP1_WHEELIE_ABILITY_MAXED BREAK
|
|
CASE PS_FLYING_ABILITY eSPStat = SP1_FLYING_ABILITY_MAXED BREAK
|
|
CASE PS_SHOOTING_ABILITY eSPStat = SP1_SHOOTING_ABILITY_MAXED BREAK
|
|
CASE PS_STEALTH_ABILITY eSPStat = SP1_STEALTH_ABILITY_MAXED BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
CASE CHAR_TREVOR
|
|
SWITCH ePlayerStat
|
|
CASE PS_SPECIAL_ABILITY eSPStat = SP2_SPECIAL_ABILITY_MAXED BREAK
|
|
CASE PS_STAMINA eSPStat = SP2_STAMINA_MAXED BREAK
|
|
CASE PS_LUNG_CAPACITY eSPStat = SP2_LUNG_CAPACITY_MAXED BREAK
|
|
CASE PS_STRENGTH eSPStat = SP2_STRENGTH_MAXED BREAK
|
|
CASE PS_DRIVING_ABILITY eSPStat = SP2_WHEELIE_ABILITY_MAXED BREAK
|
|
CASE PS_FLYING_ABILITY eSPStat = SP2_FLYING_ABILITY_MAXED BREAK
|
|
CASE PS_SHOOTING_ABILITY eSPStat = SP2_SHOOTING_ABILITY_MAXED BREAK
|
|
CASE PS_STEALTH_ABILITY eSPStat = SP2_STEALTH_ABILITY_MAXED BREAK
|
|
ENDSWITCH
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
RETURN (eSPStat != LAST_PLAYING_TIME)
|
|
ENDFUNC
|
|
|
|
FUNC STATSENUM GET_SP_PLAYER_STAT_ENUM(enumCharacterList ePed, PLAYER_STATS_ENUM ePlayerStat)
|
|
STATSENUM eSPStat
|
|
MP_INT_STATS eMPStat
|
|
GET_PLAYER_PED_STAT_ENUM(ePed, ePlayerStat, eSPStat, eMPStat)
|
|
RETURN eSPStat
|
|
ENDFUNC
|
|
|
|
FUNC INT GET_SP_PLAYER_PED_STAT_VALUE(enumCharacterList ePed, PLAYER_STATS_ENUM ePlayerStat)
|
|
INT iCurrentStatValue
|
|
STATSENUM eSPStat = GET_SP_PLAYER_STAT_ENUM(ePed, ePlayerStat)
|
|
STAT_GET_INT(eSPStat, iCurrentStatValue)
|
|
|
|
RETURN iCurrentStatValue
|
|
ENDFUNC
|
|
|
|
|
|
FUNC MP_INT_STATS GET_MP_PLAYER_STAT_ENUM(PLAYER_STATS_ENUM ePlayerStat)
|
|
STATSENUM eSPStat
|
|
MP_INT_STATS eMPStat
|
|
GET_PLAYER_PED_STAT_ENUM(CHAR_MULTIPLAYER, ePlayerStat, eSPStat, eMPStat)
|
|
RETURN eMPStat
|
|
ENDFUNC
|
|
|
|
FUNC INT GET_MP_PLAYER_PED_STAT_VALUE(PLAYER_STATS_ENUM ePlayerStat, INT iSlot = -1)
|
|
MP_INT_STATS eMPStat = GET_MP_PLAYER_STAT_ENUM(ePlayerStat)
|
|
RETURN GET_MP_INT_CHARACTER_STAT(eMPStat, iSlot)
|
|
ENDFUNC
|
|
|
|
/// PURPOSE: Returns the appropriate stat label for the given helper stat enum
|
|
///
|
|
/// PARAMS:
|
|
/// ePlayerStat - The helper enum used to look up stats
|
|
/// RETURNS:
|
|
///
|
|
FUNC STRING GET_PLAYER_STAT_FEED_NAME(PLAYER_STATS_ENUM ePlayerStat)
|
|
SWITCH ePlayerStat
|
|
CASE PS_SPECIAL_ABILITY RETURN "PSF_SPEC_AB" BREAK
|
|
CASE PS_STAMINA RETURN "PSF_STAMINA" BREAK
|
|
CASE PS_LUNG_CAPACITY RETURN "PSF_LUNG" BREAK
|
|
CASE PS_STRENGTH RETURN "PSF_STRENGTH" BREAK
|
|
CASE PS_DRIVING_ABILITY RETURN "PSF_DRIVING" BREAK
|
|
CASE PS_FLYING_ABILITY RETURN "PSF_FLYING" BREAK
|
|
CASE PS_SHOOTING_ABILITY RETURN "PSF_SHOOTING" BREAK
|
|
CASE PS_STEALTH_ABILITY RETURN "PSF_STEALTH" BREAK
|
|
ENDSWITCH
|
|
|
|
RETURN "ERROR"
|
|
ENDFUNC
|
|
|
|
/// PURPOSE: Returns the appropriate stat label for the given helper stat enum
|
|
///
|
|
/// PARAMS:
|
|
/// ePlayerStat - The helper enum used to look up stats
|
|
/// RETURNS:
|
|
///
|
|
FUNC STRING GET_PLAYER_STAT_DISPLAY_NAME(PLAYER_STATS_ENUM ePlayerStat)
|
|
SWITCH ePlayerStat
|
|
CASE PS_SPECIAL_ABILITY RETURN "PS_SPEC_AB" BREAK
|
|
CASE PS_STAMINA RETURN "PS_STAMINA" BREAK
|
|
CASE PS_LUNG_CAPACITY RETURN "PS_LUNG" BREAK
|
|
CASE PS_STRENGTH RETURN "PS_STRENGTH" BREAK
|
|
CASE PS_DRIVING_ABILITY RETURN "PS_DRIVING" BREAK
|
|
CASE PS_FLYING_ABILITY RETURN "PS_FLYING" BREAK
|
|
CASE PS_SHOOTING_ABILITY RETURN "PS_SHOOTING" BREAK
|
|
CASE PS_STEALTH_ABILITY RETURN "PS_STEALTH" BREAK
|
|
ENDSWITCH
|
|
|
|
RETURN "ERROR"
|
|
ENDFUNC
|
|
|
|
FUNC ABILITY_ICON GET_PLAYER_STAT_FEED_ICON(PLAYER_STATS_ENUM ePlayerStat)
|
|
SWITCH ePlayerStat
|
|
CASE PS_SPECIAL_ABILITY RETURN ABILITY_SPECIAL_ABILITY_CAPACITY BREAK
|
|
CASE PS_STAMINA RETURN ABILITY_STAMINA BREAK
|
|
CASE PS_LUNG_CAPACITY RETURN ABILITY_LUNG_CAPACITY BREAK
|
|
CASE PS_STRENGTH RETURN ABILITY_STRENGTH BREAK
|
|
CASE PS_DRIVING_ABILITY RETURN ABILITY_DRIVING BREAK
|
|
CASE PS_FLYING_ABILITY RETURN ABILITY_FLYING_ABILITY BREAK
|
|
CASE PS_SHOOTING_ABILITY RETURN ABILITY_SHOOTING BREAK
|
|
CASE PS_STEALTH_ABILITY RETURN ABILITY_STEALTH_ABILITY BREAK
|
|
ENDSWITCH
|
|
|
|
RETURN ABILITY_INVALID
|
|
ENDFUNC
|
|
|
|
FUNC INT GET_TOTAL_NUMBER_OF_HOURS_FOR_UNSIGNED_INT_STAT(STATSENUM eStat)
|
|
INT iStatValue
|
|
iStatValue = 0
|
|
iStatValue += (STAT_GET_NUMBER_OF_DAYS(eStat) * 24)
|
|
iStatValue += (STAT_GET_NUMBER_OF_HOURS(eStat))
|
|
RETURN iStatValue
|
|
ENDFUNC
|
|
|
|
FUNC INT GET_TOTAL_NUMBER_OF_MINUTES_FOR_UNSIGNED_INT_STAT(STATSENUM eStat)
|
|
INT iStatValue
|
|
iStatValue = 0
|
|
iStatValue += (STAT_GET_NUMBER_OF_DAYS(eStat) * 1440)
|
|
iStatValue += (STAT_GET_NUMBER_OF_HOURS(eStat) * 60)
|
|
iStatValue += (STAT_GET_NUMBER_OF_MINUTES(eStat))
|
|
RETURN iStatValue
|
|
ENDFUNC
|
|
|
|
FUNC INT GET_TOTAL_NUMBER_OF_SECONDS_FOR_UNSIGNED_INT_STAT(STATSENUM eStat)
|
|
INT iStatValue
|
|
iStatValue = 0
|
|
iStatValue += (STAT_GET_NUMBER_OF_DAYS(eStat) * 86400)
|
|
iStatValue += (STAT_GET_NUMBER_OF_HOURS(eStat) * 3600)
|
|
iStatValue += (STAT_GET_NUMBER_OF_MINUTES(eStat) * 60)
|
|
iStatValue += (STAT_GET_NUMBER_OF_SECONDS(eStat))
|
|
RETURN iStatValue
|
|
ENDFUNC
|
|
|