Как сделать присвоение Steam статистики в ServerPerks

Как сделать присвоение Steam статистики в ServerPerks

  • Тема закрыта
  • Вы не можете ответить в тему

Как сделать присвоение Steam статистики в ServerPerks Как сделать присвоение Steam статистики в ServerPerks Автор: Flame

Geekrainian #1

    • Группа: Администратор
    • Сообщений: 800

    Отправлено:

    Как сделать присвоение Steam статистики в 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"
    }

    Автор: Flame

    Назад