Family Sharing Detector

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #1
Выкладываю экспериментальную версию детектера Steam Family Sharing.

Что умеет?
Детектить Steam Family Sharing, и выполнять определённую прописанную команду.

Почему в архиве два файла?
Потому что. Мне нынче понравилось выполнять некоторый полезный функционал в виде библиотек во имя избежания дублирования кода в некоторых плагинах.

Первый файл (FamilySharingDetector) является как раз той самой библиотекой, которая выполняет запросы к Steam Web API. Естественно, требуется Steam Web API Key. Указывается в переменную sm_fs_apikey. Если у Вас ключ используется уже в Сб, не беда. Один и тот же ключ можно где угодно использовать одновременно.
Если у Вас игра CS:GO, CSS или TF2, можете содержимое спойлера не читать.
Для адекватной работы так же требуется указать AppID. Он прописывается в консольную переменную sm_fs_appid

Второй файл (FSD_BasePunishments) - обёртка над библиотекой. Логирует все замеченные Шейринги (если активно, консольная переменная sm_fs_log), и может выполнять указанные команды (консольная переменная sm_fs_cmd).
Для команд есть специальные токены.
  • {UserID} - UserID игрока, который запалился на Шеринге.
  • {ClientID} - ID энтити игрока, который запалился на Шеринге.
  • {UserName} - никнейм игрока, который запалился на Шеринге.
  • {ClientID_v2} - SteamID v2 игрока, который запалился на Шеринге. Оффтоп
  • {OwnerID} - CommunityID игрока, который и раздаёт игру.
  • {OwnerID_v2} - SteamID v2 игрока, который и раздаёт игру.
Если имеете некие познания в Скриптинге, можете добавить свои токены. Вам в файл FSD_BP/Replacers.sp

Как работает?
Через Steam Web API. Он предоставляет такую информацию.

Что требуется для работы?
  • SteamWorks

Если будут проблемы с работой, пишите, пожалуйста, в эту тему.

Ах да. Если у Вас CS:GO, то для Вас этот плагин в буквальном смысле бесполезен, наверное. Слышал от некоторых людей, что с CS:GO Шейринг адекватно не работает.

Ах да. [x2]
Ещё и на TF2 бесполезно. Она ж бесплатна :D

Оффтоп
 

Вложения

  • FSD.7z
    22.9 КБ · Просмотры: 104

HooLIGUN

MatchMaking CS:S / RGMIX.ru
Сообщения
1,062
Реакции
267
@Коробка из под бананов глянешь?
После обновы на СМ 1.10 (не факт что после), начали встречаться вот такие кривые (отрицательные) стимиды в {OwnerID_v2} , хотя {OwnerID} отображается корректно
 
Последнее редактирование:

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #3
Гляну.
Есть возможность показать, как выглядит {OwnerID} и {OwnerID_v2} для одного и того же игрока?
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #5
Ого, неужели Steam Community ID перевалили за 76561199...
Ладно, попробую что-то придумать. В этом же посте приложу.

Вот так должно прокатить, но я не проверял:
C-подобный:
public void __InLine_OwnerID_v2(int iClient, const char[] szOwner, char[] szBuffer, int iMaxLength) {
    // if >= STEAM_0:0:19867136 | 76561198000000000
    // if < | 76561197960265728
    int iAccountID;

    // Steam Account ID
    if (szOwner[7] == '7') {
        iAccountID = StringToInt(szOwner[8]) - 960265728;
    } else {
        char szTempBuffer[16];
        strcopy(szTempBuffer, sizeof(szTempBuffer), szOwner[7]);
        szTempBuffer[0] -= 8;
        iAccountID = StringToInt(szTempBuffer) + 39734272;
    }

    FormatEx(szBuffer, iMaxLength, "STEAM_0:%d:%d", iAccountID % 2, iAccountID / 2);
}
 
Последнее редактирование:

HooLIGUN

MatchMaking CS:S / RGMIX.ru
Сообщения
1,062
Реакции
267
Кто может адаптировать под стимворкс? Готов заплатить
 
Сверху Снизу