Это расширение никак не связано со SteamTools!
WTF?
Не так давно Valve добавили в Steam новую возможность - Steam Family Sharing, позволяющий делиться библиотекой игр с другими людьми. Аккаунты с VAC-баном не могут им воспользоваться.
Однако это ввело довольно серьезную проблему для администраторов - читер может зайти с другого аккаунта, поделившись библиотекой основного. Появились даже вот такие группы.
После обсуждения Valve ввели новую функцию в библиотеку авторизации - возможность получения SteamID основного аккаунта.
KyleS с AlliedModders сделал простое расширение, которое добавляет возможность использования этого forward'а в SM.
ВНИМАНИЕ!
Поскольку игры не обновлялись с момента добавления этой возможности, вам нужно будет заменить библиотеки авторизации на обновленные! Старые библиотеки будут выдавать мусор в переменной OwnerID. Библиотеки взяты из последнего Steamworks SDK (126a), их нужно скинуть в папку bin в корне сервера. Помните, что при запуске обновления через SteamCMD они могут замениться стандартными!
Поставил. Что теперь?
Теперь появился новый форвард SW_OnValidateClient(OwnerID, ClientID), который при авторизации (обычно после OnClientAuthorized) передает ID пользователя в формате, аналогичном нативу GetSteamAccountID
Если вы используете SourceBans, то вам нужно добавить в конец плагина sourcebans.sp следующий код:
Затем скопировать из архива SteamWorks.inc в папку scripting/include и скомпилировать плагин.
PS: плагин работает, но ругается добавление в лог банов..
Оригинал
WTF?
Не так давно Valve добавили в Steam новую возможность - Steam Family Sharing, позволяющий делиться библиотекой игр с другими людьми. Аккаунты с VAC-баном не могут им воспользоваться.
Однако это ввело довольно серьезную проблему для администраторов - читер может зайти с другого аккаунта, поделившись библиотекой основного. Появились даже вот такие группы.
После обсуждения Valve ввели новую функцию в библиотеку авторизации - возможность получения SteamID основного аккаунта.
KyleS с AlliedModders сделал простое расширение, которое добавляет возможность использования этого forward'а в SM.
ВНИМАНИЕ!
Поскольку игры не обновлялись с момента добавления этой возможности, вам нужно будет заменить библиотеки авторизации на обновленные! Старые библиотеки будут выдавать мусор в переменной OwnerID. Библиотеки взяты из последнего Steamworks SDK (126a), их нужно скинуть в папку bin в корне сервера. Помните, что при запуске обновления через SteamCMD они могут замениться стандартными!
Поставил. Что теперь?
Теперь появился новый форвард SW_OnValidateClient(OwnerID, ClientID), который при авторизации (обычно после OnClientAuthorized) передает ID пользователя в формате, аналогичном нативу GetSteamAccountID
Если вы используете SourceBans, то вам нужно добавить в конец плагина sourcebans.sp следующий код:
Код:
#include <SteamWorks>
public SW_OnValidateClient(OwnerSteamID, ClientSteamID)
{
if(OwnerSteamID && OwnerSteamID!=ClientSteamID)
{
new tmp;
for(new i = 1; i <= MaxClients; i++)
{
if(IsClientConnected(i))
{
tmp = GetSteamAccountID(i);
if(tmp && tmp == ClientSteamID)
{
decl String:steamid[32];
Format(steamid,sizeof(steamid),"STEAM_0:%d:%d",OwnerSteamID%2,OwnerSteamID/2);
LogMessage("[SB] Checking FamilySharing user %L Owner: %s (OSID: %d, CSID: %d)",i,steamid,OwnerSteamID,ClientSteamID);
OnClientAuthorized(i,steamid);
break;
}
}
}
}
}
Затем скопировать из архива SteamWorks.inc в папку scripting/include и скомпилировать плагин.
PS: плагин работает, но ругается добавление в лог банов..
Оригинал