Необходимость переноса чаще всего возникает тогда, когда игрок Вашего сервера приобретает лицензионную версию игры, а играя с пиратки, он уже неплохо поднялся в статистике. Тут-то и возникает вопрос о том, как бы перенести его статистику (не набирать же ее игроку вновь, не всем это понравится). Постараюсь более доходчиво и наглядно объяснить как изменить SteamID игрока в статистике HLstatsX:CE.
Шаг 1. Подготовка к переносу.
Прежде всего, необходимо найти оба аккаунта игрока (старый и новый).
Обязательно отключаем Deamon статистики, если игрок находится на сервере на момент изменений!!!
После того, как Вы отключили Deamon статистики, нужно записать новый SteamID игрока, чтобы не потерять и узнать ID игрока в самой статистике (Не путать SteamID и ID игрока в статистике - это две совершенно разные вещи!!!) Как узнать SteamID, думаю, все знают, а кто не знает, напоминаю, выглядит он примерно так: STEAM_0:X:XXXXXXXXXX, а найти его можно на странице профиля игрока в статистике.
ID игрока можно найти так:
Открываем страницу статистики.
Переходим к списку игроков.
Ищем нужного игрока (его новый профиль).
Открываем его профиль.
В адресной строке браузера, мы видим что-то вроде этого:
Код:
http://your_hlstats_url/hlstats.php?mode=playerinfo&player=38069
38069 - это и есть ID нового игрока в статистике.
Шаг 2. Удаление нового игрока из базы.
Теперь нам необходимо удалить нового игрока из базы статистики. Для этого, необходимо:
Войти в phpMyAdmin для управления базой данных статистики.
Выбираем базу данных статистики (если у Вас много баз данных на одном аккаунте).
В phpMyAdmin выбираем пункт SQL:
И выполняем запрос:
DELETE FROM имя_вашей_базы.hlstats_Players WHERE playerId='38069';
DELETE FROM имя_вашей_базы.hlstats_PlayerNames WHERE playerId='38069';
DELETE FROM имя_вашей_базы.hlstats_PlayerUniqueIds WHERE playerId='38069';
DELETE FROM имя_вашей_базы.hlstats_Players_Awards WHERE playerId='38069';
DELETE FROM имя_вашей_базы.hlstats_Players_History WHERE playerId='38069';
DELETE FROM имя_вашей_базы.hlstats_Players_Ribbons WHERE playerId='38069';
DELETE FROM имя_вашей_базы.hlstats_Events_ChangeName WHERE playerId='38069';
DELETE FROM имя_вашей_базы.hlstats_Events_ChangeTeam WHERE playerId='38069';
DELETE FROM имя_вашей_базы.hlstats_Events_Connects WHERE playerId='38069';
DELETE FROM имя_вашей_базы.hlstats_Events_Disconnects WHERE playerId='38069';
DELETE FROM имя_вашей_базы.hlstats_Events_Entries WHERE playerId='38069';
DELETE FROM имя_вашей_базы.hlstats_Events_Frags WHERE killerId='38069';
DELETE FROM имя_вашей_базы.hlstats_Events_Frags WHERE victimId='38069';
DELETE FROM имя_вашей_базы.hlstats_Events_Latency WHERE playerId='38069';
DELETE FROM имя_вашей_базы.hlstats_Events_PlayerActions WHERE playerId='38069';
DELETE FROM имя_вашей_базы.hlstats_Events_Suicides WHERE playerId='38069';
DELETE FROM имя_вашей_базы.hlstats_Events_TeamBonuses WHERE playerId='38069';
DELETE FROM имя_вашей_базы.hlstats_Events_Teamkills WHERE killerId='38069';
DELETE FROM имя_вашей_базы.hlstats_Events_Teamkills WHERE victimId='38069';
Примечание: имя_вашей_базы меняете на имя своей базы статистики, например, stats; 38069 - ID игрока. Игрок, с указанным ID будет удален из базы.
Шаг 3. Замена SteamID старого игрока.
Замена производится так же через phpMyAdmin. В базе статистики находим таблицу hlstats_PlayerUniqueIds и выбираем ее. Как было описано в первом шаге ищем ID СТАРОГО игрока. После того, как нашли ID игрока, меняем значение столбца uniqueId.
SteamID игрока в базе хранится немного в другом формате. Не в STEAM_0:X:XXXXXXXXXX, а в X:XXXXXXXXXX. Это означает, что STEAM_0: мы отбрасываем и вписываем только то, что стоит после.
Вот и все, Steam ID старого игрока заменен на новый и его игровая статистика на Вашем сервере не затронута.