Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Информационная доска

Данный раздел предназначен для обсуждения, а также решения технических проблем связанных с серверной частью. Обсуждения касательно игровых клиентов ведутся здесь.

1. Во время создания новой темы аккуратно оформляйте её, не допускайте грамматических ошибок.
2. Описывая проблему старайтесь, как можно больше рассказать о ней, а так же о действиях с сервером после которых она возникла, по возможности подкрепите информацию логами.
3. Если вопрос касается проблемы в работе сервера, то обязательно прикрепляйте список плагинов (введите в консоли сервера: meta list и amxx plugins), настройки server.cfg, логи. Так же указывайте операционную систему, версию HLDS (введите к консоли сервера: version) и где хостится сервер.

Длинную информацию скрывайте под спойлер.

Web статистика игроков на сервере

Статус пользователя google.bsk
сообщение 25.2.2020, 8:31
Сообщение #1
Стаж: 13 лет

Сообщений: 1296
Благодарностей: 232
Полезность: 26

Всем привет. После перехода на rehlds у всех нон-стим игроков, которые играли ранее на hlds, заменился steam id, ну и соответственно сбилась их игровая статистика.
Можно ли как-то полностью удалить из базы данных статистики всех всех игроков, которые играют с нон-стим версии, а steam игроков оставить без изменения?
На всякий случай прикрепил скриншот структуры базы данных игроков из php my admin:

Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя sas333
сообщение 25.2.2020, 8:55
Сообщение #2


Стаж: 13 лет
Город: Красноярск

Сообщений: 374
Благодарностей: 60
Полезность: 148

google.bsk, используете CsStats MySQL?


Хостинг игровых серверов host-v.ru
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя google.bsk
сообщение 25.2.2020, 9:21
Сообщение #3
Стаж: 13 лет

Сообщений: 1296
Благодарностей: 232
Полезность: 26

Цитата(sas333 @ 25.2.2020, 11:55) *
google.bsk, используете CsStats MySQL?

Ну да
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Puwok
сообщение 25.2.2020, 20:31
Сообщение #4


Стаж: 14 лет

Сообщений: 100
Благодарностей: 33
Полезность: < 0

Тебе нужно найти человека, который напишет небольшой кусок кода на php, который из всех выведенных данных из MySQL выберет игроков у которых Authid начинается с STEAM_0 и удалит их из MySQL.

Если ничего не поменялось, то _1 - это STEAM, а _0 - это NoSteam.


Уже ничем не владею, совсем обленился...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Gecko
сообщение 26.2.2020, 2:35
Сообщение #5
Стаж: 7 лет 4 месяца

Сообщений: 1247
Благодарностей: 518
Полезность: 346

Цитата(Puwok @ 25.2.2020, 20:31) *
Тебе нужно найти человека, который напишет небольшой кусок кода на php, который из всех выведенных данных из MySQL выберет игроков у которых Authid начинается с STEAM_0 и удалит их из MySQL.

Если ничего не поменялось, то _1 - это STEAM, а _0 - это NoSteam.

Необязательно на php.

А вообще самый простой вариант если STEAM_0 - это NoSteam
Выполни запрос в phpmeadmin

перейди в нужную базу и перейди во вкладку SQL
И выполни:

Цитата
delete from ИМЯ_ТАБЛИЦЫ where authid like '%STEAM_0%'


Где ИМЯ_ТАБЛИЦЫ - подставь нужную таблицу а authid это нужный столбец.

Другой пример:
К примеру, я хочу удалить все баны которые хранятся в таблице amx_bans у которых есть значение STEAM_0 столбца Player_id

Для этого я отправлю следующий запрос:
Цитата
delete from amx_bans where player_id like '%STEAM_0%'


по итогу выполнения запроса должно удалить все строки в которых столбец player_id содержит в значении STEAM_0



Не отвечаю на ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
podbot
сообщение 26.2.2020, 2:43
Сообщение #6
Стаж: 11 лет

Сообщений: 1242
Благодарностей: 366
Полезность: < 0

Цитата(Puwok @ 25.2.2020, 21:31) *
Тебе нужно найти человека, который напишет небольшой кусок кода на php, который из всех выведенных данных из MySQL выберет игроков у которых Authid начинается с STEAM_0 и удалит их из MySQL.

Если ничего не поменялось, то _1 - это STEAM, а _0 - это NoSteam.

ничего не поменялось steam может быть и 0 и 1


Отредактировал: podbot, - 26.2.2020, 2:48
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Gecko
сообщение 26.2.2020, 2:48
Сообщение #7
Стаж: 7 лет 4 месяца

Сообщений: 1247
Благодарностей: 518
Полезность: 346

podbot, тогда ответ очевиден, нету данных с которыми можно работать, всё что имеем это authid где нет возможности идентифицировать NonSteam.

Отредактировал: Gecko, - 26.2.2020, 2:48


Не отвечаю на ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя georgeml
сообщение 26.2.2020, 3:20
Сообщение #8
Стаж: 12 лет

Сообщений: 1467
Благодарностей: 439
Полезность: 423

Цитата
Если ничего не поменялось, то _1 - это STEAM, а _0 - это NoSteam.


Зависит от настроек префиксов серверного эмулятора. Значение может быть любое от 0 до 9, как и все могут быть одинаковыми
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
podbot
сообщение 26.2.2020, 4:43
Сообщение #9
Стаж: 11 лет

Сообщений: 1242
Благодарностей: 366
Полезность: < 0

не совсем понятно, зачем тебе их удалять (быстрее от этого ничего не станет), но решение проблемы там простое, насколько помню в таких плагинах есть очистка не активных игроков через какой-то промежуток, думаю дальше разберешься
если нет такой функции, можно sql запросом
Код
DELETE FROM `csstats` WHERE `last_join`< (NOW() - INTERVAL 30 DAY)

это больше 30 дней не активные удаляются

Отредактировал: podbot, - 26.2.2020, 4:49
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 27.2.2020, 8:42
Сообщение #10


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(Gecko @ 26.2.2020, 3:48) *
podbot, тогда ответ очевиден, нету данных с которыми можно работать, всё что имеем это authid где нет возможности идентифицировать NonSteam.

вообще-то есть
берем steamID из базы и конвертирует его в steam64 (CommunityID)
через api steam по steam64 проверяем есть ли такой игрок в steam'e, если нет - пиратка
учитывай что алгоритм генерации steamID для пираток не известен - могут быть коллизии, хотя лично такого ни раза не встречал

Cкрытый текст

Код
function SteamID2CommunityID($steamid)
{
   $parts = explode(':', str_replace('STEAM_', '' ,$steamid));
   return bcadd(bcadd('76561197960265728', $parts['1']), bcmul($parts['2'], '2'));
}

function get_steam_info($steam64)
      {
         $_STEAMAPIKEY = "STEAM API KEY";

         $opts = array(
            'http'=>array(
               'method'=>"GET",
               'header'=>"Accept-language: en\r\n" .
               "Cookie: foo=bar\r\n"
            )
         );
         $context = stream_context_create($opts);
         $url = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=$_STEAMAPIKEY&steamids=$steam64";
         $response = file_get_contents($url, false, $context);
         $json_decoded = json_decode($response);
         foreach ($json_decoded->response->players as $player);

//test
//         echo ($steam64 .'</br>'. $player->personaname);

         return $player;
      }




можно еще пару вариантов реализации придумать в той или иной мере
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя georgeml
сообщение 27.2.2020, 12:13
Сообщение #11
Стаж: 12 лет

Сообщений: 1467
Благодарностей: 439
Полезность: 423

Legenda,
через api steam по steam64 проверяем есть ли такой игрок в steam'e, если нет - пиратка

,брррр.. поздравляем.. вы потеряли своих уников и 50 % знаний
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя mOdest
сообщение 27.2.2020, 13:08
Сообщение #12


Стаж: 9 лет 9 месяцев

Сообщений: 1255
Благодарностей: 255
Полезность: 79

Legenda, "через api steam по steam64 проверяем есть ли такой игрок в steam'e, если нет - пиратка" lol.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 27.2.2020, 19:29
Сообщение #13


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(georgeml @ 27.2.2020, 13:13) *
Legenda,
через api steam по steam64 проверяем есть ли такой игрок в steam'e, если нет - пиратка

,брррр.. поздравляем.. вы потеряли своих уников и 50 % знаний

это почему?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: