Files
gtav-src/script/dev_ng/singleplayer/scripts/Minigames/ShootingRange/range_debug.sch
T
2025-09-29 00:52:08 +02:00

260 lines
8.3 KiB
Scheme
Executable File

// range_debug.sch
USING "commands_network.sch"
#IF IS_DEBUG_BUILD
USING "range_round.sch"
USING "range_public.sch"
USING "commands_debug.sch"
USING "commands_player.sch"
FUNC STRING RANGE_GET_DEBUG_WEAPON_NAME(RANGE_WEAPON_CATEGORY eCategory, RANGE_WEAPON_TYPE eWeapon)
SWITCH (eCategory)
CASE WEAPCAT_PISTOL
IF (eWeapon = RANGE_PISTOL)
RETURN "Pistol"
ELIF (eWeapon = RANGE_DLC_PISTOL50)
RETURN "Pistol .50"
ELIF (eWeapon = RANGE_COMBATPISTOL)
RETURN "Combat Pistol"
ELIF (eWeapon = RANGE_APPISTOL)
RETURN "AP Pistol"
ENDIF
BREAK
CASE WEAPCAT_SMG
IF (eWeapon = RANGE_MICROSMG)
RETURN "Micro SMG"
ELIF (eWeapon = RANGE_SMG)
RETURN "SGM"
ELIF (eWeapon = RANGE_DLC_ASSAULTSMG)
RETURN "Assault SMG"
ENDIF
BREAK
CASE WEAPCAT_AR
IF (eWeapon = RANGE_ASSAULTRIFLE)
RETURN "Assault Rifle"
ELIF (eWeapon = RANGE_CARBINERIFLE)
RETURN "Carbine Rifle"
ELIF (eWeapon = RANGE_DLC_SPECIALCARBINE)
RETURN "Special Carbine"
ELIF (eWeapon = RANGE_DLC_HEAVYRIFLE)
RETURN "Heavy Rifle"
ELIF (eWeapon = RANGE_ADVANCEDRIFLE)
RETURN "Advanced Rifle"
ENDIF
BREAK
CASE WEAPCAT_SHOTGUN
IF (eWeapon = RANGE_PUMPSHOTGUN)
RETURN "Pump Shotgun"
ELIF (eWeapon = RANGE_SAWNOFFSHOTGUN)
RETURN "Sawn-off Shotgun"
ELIF (eWeapon = RANGE_DLC_BULLPUPSHOTGUN)
RETURN "Bullpup Shotgun"
ELIF (eWeapon = RANGE_ASSAULTSHOTGUN)
RETURN "Assault Shotgun"
ENDIF
BREAK
CASE WEAPCAT_LIGHT_MG
IF (eWeapon = RANGE_MG)
RETURN "MG"
ELIF (eWeapon = RANGE_COMBATMG)
RETURN "Combat MG"
ELIF (eWeapon = RANGE_DLC_ASSAULTMG)
RETURN "Assault MG"
ENDIF
BREAK
CASE WEAPCAT_MINIGUN
RETURN "Minigun"
BREAK
ENDSWITCH
RETURN "NOT HANDLED!"
ENDFUNC
FUNC STRING RANGE_GET_ROUND_DEBUG_NAME_FROM_TYPE(RANGE_ROUND_TYPE eRndType)
SWITCH (eRndType)
CASE RT_PISTOL_CHAL_1
RETURN "PISTOL 1"
CASE RT_PISTOL_CHAL_2
RETURN "PISTOL 2"
CASE RT_PISTOL_CHAL_3
RETURN "PISTOL 3"
CASE RT_SMG_CHAL_1
RETURN "SMG 1"
CASE RT_SMG_CHAL_2
RETURN "SMG 2"
CASE RT_SMG_CHAL_3
RETURN "SMG 3"
CASE RT_AR_CHAL_1
RETURN "AR 1"
CASE RT_AR_CHAL_2
RETURN "AR 2"
CASE RT_AR_CHAL_3
RETURN "AR 3"
CASE RT_SHOTGUN_CHAL_1
RETURN "SHOTGUN 1"
CASE RT_SHOTGUN_CHAL_2
RETURN "SHOTGUN 2"
CASE RT_SHOTGUN_CHAL_3
RETURN "SHOTGUN 3"
CASE RT_LMG_CHAL_1
RETURN "LMG 1"
CASE RT_LMG_CHAL_2
RETURN "LMG 2"
CASE RT_LMG_CHAL_3
RETURN "LMG 3"
CASE RT_MINIGUN_CHAL_1
RETURN "HEAVY 1"
CASE RT_MINIGUN_CHAL_2
RETURN "HEAVY 2"
CASE RT_MINIGUN_CHAL_3
RETURN "HEAVY 3"
BREAK
ENDSWITCH
RETURN "NOT HANDLED!"
ENDFUNC
FUNC STRING RANGE_GET_MEDAL_DEBUG_NAME(RANGE_ROUND_MEDAL eMedal)
SWITCH eMedal
CASE RRM_GOLD
RETURN "GOLD"
CASE RRM_SILVER
RETURN "SILVER"
CASE RRM_BRONZE
RETURN "BRONZE"
DEFAULT
RETURN "NO MEDAL!"
ENDSWITCH
RETURN "NOT HANDLED!"
ENDFUNC
PROC EXPORT_ROUND_DATA_TO_NETWORK_DEBUG_FILE(Range_RoundInfo & sRndInfo, Range_Challenge & sRoundChallenge)
CDEBUG2LN(DEBUG_SHOOTRANGE, "EXPORT_ROUND_DATA_TO_NETWORK_DEBUG_FILE called")
// Set our path.
TEXT_LABEL_63 txtFilePath = "N:/RSGSAN/RDR2/usr/rparadis/Exports/"
// Construct our file name.
TEXT_LABEL_63 txtFileName = GET_PLAYER_NAME(GET_PLAYER_INDEX())
IF ARE_STRINGS_EQUAL(GET_PLAYER_NAME(GET_PLAYER_INDEX()), "User")
CDEBUG2LN(DEBUG_SHOOTRANGE, "Seriously? Your username is 'user'? Appending game time onto the end to make you unique. You should fix that, though.")
txtFileName += GET_GAME_TIMER()
ENDIF
txtFileName += ".log"
IF OPEN_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
// Write some shit! (63 characters at a time)
TEXT_LABEL_63 txtTemp
txtTemp = "--------------------"
SAVE_STRING_TO_NAMED_DEBUG_FILE(txtTemp, txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
// Challenge:
txtTemp = "Challenge: "
txtTemp += RANGE_GET_ROUND_DEBUG_NAME_FROM_TYPE(sRndInfo.eRoundType)
SAVE_STRING_TO_NAMED_DEBUG_FILE(txtTemp, txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
// User:
txtTemp = "User: "
txtTemp += GET_PLAYER_NAME(GET_PLAYER_INDEX())
SAVE_STRING_TO_NAMED_DEBUG_FILE(txtTemp, txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
// Weapon used:
txtTemp = "Weapon Used: "
txtTemp += RANGE_GET_DEBUG_WEAPON_NAME(sRndInfo.eWeaponCat, sRndInfo.eWeaponType)
SAVE_STRING_TO_NAMED_DEBUG_FILE(txtTemp, txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
// Score earned:
txtTemp = "Score Earned: "
txtTemp += sRndInfo.sScoreData.iP1Score
SAVE_STRING_TO_NAMED_DEBUG_FILE(txtTemp, txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
// Hits per zone:
txtTemp = "Hits Per Zone (bullseye first): "
txtTemp += sRndInfo.iZ1Hits
txtTemp += " / "
txtTemp += sRndInfo.iZ2Hits
txtTemp += " / "
txtTemp += sRndInfo.iZ3Hits
txtTemp += " / "
txtTemp += sRndInfo.iZ4Hits
SAVE_STRING_TO_NAMED_DEBUG_FILE(txtTemp, txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
// Misses:
txtTemp = "Number of Misses: "
INT iNumMisses = sRndInfo.iTotalShots - (sRndInfo.iZ1Hits + sRndInfo.iZ2Hits + sRndInfo.iZ3Hits + sRndInfo.iZ4Hits)
txtTemp += iNumMisses
SAVE_STRING_TO_NAMED_DEBUG_FILE(txtTemp, txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
// Accuracy:
txtTemp = "Accuracy: "
INT iAcc = sRndInfo.iZ1Hits + sRndInfo.iZ2Hits + sRndInfo.iZ3Hits + sRndInfo.iZ4Hits
iAcc = ROUND((TO_FLOAT(iAcc) / TO_FLOAT(sRndInfo.iTotalShots)) * 100.0)
txtTemp += iAcc
txtTemp += "% "
SAVE_STRING_TO_NAMED_DEBUG_FILE(txtTemp, txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
// Goals for this challenge:
txtTemp = "GOALS"
SAVE_STRING_TO_NAMED_DEBUG_FILE(txtTemp, txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
txtTemp = "Bronze: "
txtTemp += sRoundChallenge.iBronzeReq
SAVE_STRING_TO_NAMED_DEBUG_FILE(txtTemp, txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
txtTemp = "Silver: "
txtTemp += sRoundChallenge.iSilverReq
SAVE_STRING_TO_NAMED_DEBUG_FILE(txtTemp, txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
txtTemp = "Gold: "
txtTemp += sRoundChallenge.iGoldReq
SAVE_STRING_TO_NAMED_DEBUG_FILE(txtTemp, txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
// Medal earned:
txtTemp = "Medal Earned: "
txtTemp += RANGE_GET_MEDAL_DEBUG_NAME(GET_MEDAL_FOR_SCORE(sRoundChallenge, sRndInfo.sScoreData.iP1Score))
SAVE_STRING_TO_NAMED_DEBUG_FILE(txtTemp, txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
txtTemp = "===================="
SAVE_STRING_TO_NAMED_DEBUG_FILE(txtTemp, txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
SAVE_NEWLINE_TO_NAMED_DEBUG_FILE(txtFilePath, txtFileName)
CLOSE_DEBUG_FILE()
CDEBUG2LN(DEBUG_SHOOTRANGE, "")
CDEBUG2LN(DEBUG_SHOOTRANGE, "Dear Unwitting Tester,")
CDEBUG2LN(DEBUG_SHOOTRANGE, "I am tracking you. Your round results have been written to a network debug file.")
CDEBUG2LN(DEBUG_SHOOTRANGE, "I appreciate your cooperation.")
CDEBUG2LN(DEBUG_SHOOTRANGE, " Sincerely,")
CDEBUG2LN(DEBUG_SHOOTRANGE, " Ryan Paradis")
CDEBUG2LN(DEBUG_SHOOTRANGE, "")
ELSE
CDEBUG2LN(DEBUG_SHOOTRANGE, "Couldn't access netwrok location. Not tracking you. Sorry.")
ENDIF
ENDPROC
#ENDIF