[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Форум » Уроки SourceMod (SourcePawn) Скриптинга » Получение CommunityID (SteamID64) (Взято с world-source.ru)
Получение CommunityID (SteamID64)
rootДата: Воскресенье, 03.02.2013, 10:40 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 561
Статус: Offline
Получение 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;
}

Оригинал
 
Форум » Форум » Уроки SourceMod (SourcePawn) Скриптинга » Получение CommunityID (SteamID64) (Взято с world-source.ru)
  • Страница 1 из 1
  • 1
Поиск: