Add best K/D calculation

This commit is contained in:
okvdai
2023-04-24 19:52:19 +02:00
parent 9701fa5559
commit 0f80026a94
3 changed files with 31 additions and 10 deletions
+18 -2
View File
@@ -1,9 +1,11 @@
global function GetStatsFromToneAPI global function GetStatsFromToneAPI
global function getWeaponKillsFromToneApi global function getWeaponKillsFromToneApi
global function getNemesisWeaponFromToneAPI global function getNemesisWeaponFromToneAPI
global function getDWEFromToneAPI
global table globalToneAPIKillData = {} global table globalToneAPIKillData = {}
global table globalToneAPIDeathData = {} global table globalToneAPIDeathData = {}
global table globalToneAPIDWEData = {}
void function GetStatsFromToneAPI() void function GetStatsFromToneAPI()
{ {
@@ -31,6 +33,7 @@ void function GetStatsFromToneAPI_threaded(){
table test = expect table(value) table test = expect table(value)
globalToneAPIKillData[string(key)] <- test.kills globalToneAPIKillData[string(key)] <- test.kills
globalToneAPIDeathData[string(key)] <- test.deaths globalToneAPIDeathData[string(key)] <- test.deaths
globalToneAPIDWEData[string(key)] <- test.deaths_while_equipped
print("[PULSE] " + key + " has been added.") print("[PULSE] " + key + " has been added.")
} }
print("[PULSE] Kill data has been processed.") print("[PULSE] Kill data has been processed.")
@@ -64,9 +67,22 @@ int function getNemesisWeaponFromToneAPI(string weaponRef){
weaponRef = weaponRef.slice(10) weaponRef = weaponRef.slice(10)
} }
if(weaponRef in globalToneAPIKillData){ if(weaponRef in globalToneAPIDeathData){
print("[PULSE] Found matching weapon : " + weaponRef + " with " + globalToneAPIDeathData[weaponRef] + " deaths") print("[PULSE] Found matching weapon : " + weaponRef + " with " + globalToneAPIDeathData[weaponRef] + " nemesis weapon kills")
return expect int(globalToneAPIDeathData[weaponRef]) return expect int(globalToneAPIDeathData[weaponRef])
} }
return 0 return 0
}
int function getDWEFromToneAPI(string weaponRef){
if(weaponRef.find("mp_weapon") != null){
weaponRef = weaponRef.slice(10)
}
if(weaponRef in globalToneAPIDWEData){
print("[PULSE] Found matching weapon : " + weaponRef + " with " + globalToneAPIDeathData[weaponRef] + " deaths while equipped")
return expect int(globalToneAPIDWEData[weaponRef])
}
return 0
} }
@@ -190,7 +190,7 @@ function UpdateViewStatsOverviewMenu()
Hud_Show( weaponImageElem ) Hud_Show( weaponImageElem )
Hud_SetText( weaponNameElem, highestKPMData.printName ) Hud_SetText( weaponNameElem, highestKPMData.printName )
Hud_Show( weaponNameElem ) Hud_Show( weaponNameElem )
Hud_SetText( weaponDescElem, "#STATS_MOST_EFFICIENT_VALUE", highestKPMData.val ) Hud_SetText( weaponDescElem, highestKPMData.val + " K/D")
Hud_Show( weaponDescElem ) Hud_Show( weaponDescElem )
Hud_Hide( noDataElem ) Hud_Hide( noDataElem )
} }
+12 -7
View File
@@ -354,16 +354,21 @@ table<string, table> function GetOverviewWeaponData()
Table[ "nemesis_weapon" ].val = nval Table[ "nemesis_weapon" ].val = nval
} }
local killsPerMinute = 0 float kdval = 0
local hoursEquipped = GetPlayerStatFloat( player, "weapon_stats", "hoursEquipped", weaponName ) float kval = 0
local killCount = GetPlayerStatInt( player, "weapon_kill_stats", "total", weaponName ) float dval = 0
if ( hoursEquipped > 0 ) if( getWeaponKillsFromToneApi(weaponName) != 0 && getDWEFromToneAPI(weaponName) != 0){
killsPerMinute = format( "%.2f", ( killCount / ( hoursEquipped * 60.0 ) ).tofloat() ) kval = float(getWeaponKillsFromToneApi(weaponName))
if ( killsPerMinute.tofloat() > Table[ "highest_kpm" ].val.tofloat() ) dval = float(getDWEFromToneAPI(weaponName))
if (kval / dval > kdval){
kdval = float(getWeaponKillsFromToneApi(weaponName) / getDWEFromToneAPI(weaponName))
}
}
if ( kdval > Table[ "highest_kpm" ].val.tofloat() )
{ {
Table[ "highest_kpm" ].ref = weaponName Table[ "highest_kpm" ].ref = weaponName
Table[ "highest_kpm" ].printName = weaponDisplayName Table[ "highest_kpm" ].printName = weaponDisplayName
Table[ "highest_kpm" ].val = killsPerMinute Table[ "highest_kpm" ].val = kdval
} }
} }