Получение CommunityID (SteamID64)
Описание:
Данное руководство покажет и поможет вам в получении CommunityID
Использование:
Для получения ссылки клиента на профиль в STEAM нам нужен сам Steam ID. Для его получения можно воспользоваться GetClientAuthString.
Для получения ссылки нужно воспользоваться GetCommunityIDString
Пример:
Код
new String:SteamID[21] = "STEAM_0:0:6070829", String:CommunityID[18];
GetCommunityIDString(SteamID, CommunityID, sizeof(CommunityID));
Обратите внимание, что лучше всего установить размер CommunityIDs в значении 18
Ну и собственно сам stock
Код
stock bool:GetCommunityIDString(const String:SteamID[], String:CommunityID[], const CommunityIDSize)
{
new Identifier[17] = {7, 6, 5, 6, 1, 1, 9, 7, 9, 6, 0, 2, 6, 5, 7, 2, 8};
decl String:SteamIDParts[3][11];
if (ExplodeString(SteamID, ":", SteamIDParts, sizeof(SteamIDParts), sizeof(SteamIDParts[])) != 3)
{
strcopy(CommunityID, CommunityIDSize, "");
return false;
}
new SteamIDNumber[CommunityIDSize - 1];
for (new i = 0; i < strlen(SteamIDParts[2]); i++)
{
SteamIDNumber[CommunityIDSize - 2 - i] = SteamIDParts[2][strlen(SteamIDParts[2]) - 1 - i] - 48;
}
new Current, CarryOver;
for (new i = (sizeof(Identifier) - 1); i > -1 ; i--)
{
Current = Identifier [i]+ (2 * SteamIDNumber[i]) + CarryOver;
if (i == sizeof(Identifier) - 1 && strcmp(SteamIDParts[1], "1") == 0)
{
Current++;
}
CarryOver = Current/10;
Current %= 10;
SteamIDNumber [i]= Current;
CommunityID [i]= SteamIDNumber [i]+ 48;
}
CommunityID[CommunityIDSize - 1] = '\0';
return true;
}
Оригинал