Christmas Patriarch

How to assign Steam statistics in ServerPerks

class Stats2SteamMut extends Mutator;
var array<PlayerController> PendingPlayers;
var    const SteamStatsAndAchievementsBase.SteamStatInt TmpStat;
var bool bTimeToSave;
function PostBeginPlay()
{
    if(KFGameType(Level.Game)==None) Destroyed();
    SetTimer(2.0, true);
    Super.PostBeginPlay();
}
function Timer()
{
    local Controller C;
    if(!KFGameType(Level.Game).bWaveInProgress && bTimeToSave)
    {
        for( C = Level.ControllerList; C != None; C = C.nextController )
        {
            if( C.IsA('PlayerController') && C.PlayerReplicationInfo.PlayerID>0 )
            {
                StatsRoutine(PlayerController(C));
            }
        }
        bTimeToSave=false;
    }
    if(KFGameType(Level.Game).bWaveInProgress && !bTimeToSave)
        bTimeToSave=true;
}
function StatsRoutine(PlayerController PC)
{
    local int tmpValue;
    local ServerStStats SPStats;
    if    (
            PC.SteamStatsAndAchievements==none
            ||    ServerStStats(PC.SteamStatsAndAchievements)==none
        )
    {
        return;
    }
    SPStats=ServerStStats(PC.SteamStatsAndAchievements);
    PC.SteamStatsAndAchievements.GetStatInt(TmpStat, "HeadshotKills");
    tmpValue=TmpStat.Value;
    if(tmpValue<SPStats.MyStatsObject.HeadshotKillsStat)
    {
        PC.SteamStatsAndAchievements.SetStatInt(KFSteamStatsAndAchievements(PC.SteamStatsAndAchievements).HeadshotKillsStat,SPStats.MyStatsObject.HeadshotKillsStat);
        PC.ServerInitializeSteamStatInt(KFSteamStatsAndAchievements(PC.SteamStatsAndAchievements).KFSTAT_HeadshotKills, KFSteamStatsAndAchievements(PC.SteamStatsAndAchievements).HeadshotKillsStat.Value);
        KFSteamStatsAndAchievements(PC.SteamStatsAndAchievements).CheckSharpshooterPerks(true);
        PC.SteamStatsAndAchievements.FlushStatToSteamInt(KFSteamStatsAndAchievements(PC.SteamStatsAndAchievements).HeadshotKillsStat, "HeadshotKills");
        PC.SteamStatsAndAchievements.FlushStatsToSteamDatabase();
        Log("SetSteamStats"@tmpValue@SPStats.MyStatsObject.HeadshotKillsStat);
    }
}
defaultproperties
{
    bAddToServerPackages=True
    GroupName="KF-Stats2Steam"
    FriendlyName="Stats2Steam Mut"
    Description="Stats2Steam Mut"
}

Author: Flame