Преобразование SteamID в статистике HlStatsX

Тема в разделе "Игровые серверы", создана пользователем V1TSK, 31 авг 2014.

  1. V1TSK

    V1TSK EasyCoding Team

    Сообщения:
    22.263
    Как известно, недавно Valve сменили формат SteamID, поэтому у всех игроков статистика начала отсчитываться заново и многим это не нравится.

    Для того, чтобы устранить это недоразумение, нужно:
    1. обновить HlStatsX до новейшей версии, поддерживающей записи в обоих форматах;
    2. конвертировать старые SteamID игроков в новый формат.
    Для быстрого конвертирования существует скрипт, написанный пользователем C00ller с форума AlliedModders:
    PHP:
    <?php

    // RUN ONLY ONCE!!! Or restore from backup before any extra run!

    $DBServ "localhost";
    $DBUser "root";
    $DBPass "";
    $DBName "hlstats";
    $DBTable "hlstats_PlayerUniqueIds";

    $db mysql_connect($DBServ$DBUser$DBPass) or die("Can't connect to MySQL server");
    mysql_select_db($DBName) or die("Can't select DB");

    $now time();

    mysql_query("CREATE TABLE " $DBTable "_copy_" $now " LIKE $DBTable");
    mysql_query("INSERT " $DBTable "_copy_" $now " SELECT * FROM $DBTable");

    mysql_query("DELETE FROM $DBTable WHERE game = 'tf' AND INSTR(uniqueId, 'U') > 0");
    mysql_query("UPDATE $DBTable SET uniqueId=CONCAT('[U:1:', SUBSTR(uniqueId, 1, 1)+SUBSTR(uniqueId, 3)*2, ']') WHERE game = 'tf'");

    mysql_close($db);

    echo 
    "Done";
    Вам нужно только указать в переменных данные соединения с БД HlStatsX и выполнить этот скрипт на сервере (всего один раз) командой:
    Код:
    php имя.php
    Выполнять следует из командной строки, подключившись по SSH, т.к. веб-сервер ограничивает время выполнения скриптов 30 секундами (может быть изменено в php.ini).

    Перед выполнением обязательно сделайте резервные копии всей базы данных.