home - STEAMID I/O[U:1:1256976798] - как получить такого вида стимид?
нет, в смысле в SM в плагине...
char szSteam2[32], szSteam3[32];
GetClientAuthId(iClient, AuthId_Steam2, szSteam2, sizeof(szSteam2));
PrintToChatAll("SteamID2: %s", szSteam2);
GetClientAuthId(szSteam2, AuthId_Steam3, szSteam3, sizeof(szSteam3));
PrintToChatAll("SteamID3: %s", szSteam3);
STEAM_X:Y:Z - [U:1:Z*2+Y]@R1KO, @Rabb1t, ребят а подскажите как перевести SteamID в SteamID3 и наоборот.?
[PHP] Регулярные выражения и Steamid3 - нашел тут тему но это для PHP но для уврененности хотеб бы чтоб более опытные пользователи подсказали код на SM...
Также нужно учест STEAM_0:1:XXX , так и STEAM_0:0:XXX и подобные вещи.
public bool ConvertSIDv2ToSIDv3(char[] szSID, char[] szOutput, int iMaxLength) {
if (StrContains(szSID, "STEAM_") != 0)
return false;
char szExplodedStr[3][20];
if (ExplodeString(szSID, ":", szExplodedStr, 3, sizeof(szExplodedStr[])) != 3)
return false;
FormatEx(szOutput, iMaxLength, "[U:1:%d]", (StringToInt(szExplodedString[2]) * 2) + StringToInt(szExplodedString[1]));
return true;
}
char szSteam2[32];
char szSteam3[20];
strcopy(szSteam2, sizeof(szSteam2), "STEAM_0:0:55665612");
ConvertSIDv2ToSIDv3(szSteam2, szSteam3, sizeof(szSteam3));
PrintToServer("SteamID v2: %s\nSteamID v3: %s", szSteam2, szSteam3);
// выведет:
// SteamID v2: STEAM_0:0:55665612
// SteamID v3: [U:1:111331224]
if(!strncmp(szSID, "STEAM_", 6))if (StrContains(szSID, "STEAM_") != 0)
return false;
stock bool ConvertSIDv2ToSIDv3(char[] szSID, char[] szOutput, int iMaxLength) {
if (StrContains(szSID, "STEAM_") != 0)
return false;
FormatEx(szOutput, iMaxLength, "[U:1:%d]", (StringToInt(szSID[9]) * 2) + (szSID[8]-48));
return true;
}
возвращает [U:1:1]... что-то не то.if(!strncmp(szSID, "STEAM_", 6))
но и куда оптимизировать есть
--- Добавлено позже ---
вроде такPHP:stock bool ConvertSIDv2ToSIDv3(char[] szSID, char[] szOutput, int iMaxLength) { if (StrContains(szSID, "STEAM_") != 0) return false; FormatEx(szOutput, iMaxLength, "[U:1:%d]", (StringToInt(szSID[9]) * 2) + (szSID[8]-48)); return true; }
void ConvertSIDv2ToSIDv3(char[] szSID, char[] szOutput, int iMaxLength)
{
PrintToChatAll("Входит: %s", szSID);
if (StrContains(szSID, "STEAM_") != 0)
return false;
char szExplodedStr[3][20];
if (ExplodeString(szSID, ":", szExplodedStr, 3, sizeof(szExplodedStr[])) != 3)
return false;
FormatEx(szOutput, iMaxLength, "[U:1:%d]", (StringToInt(szExplodedStr[2]) * 2) + StringToInt(szExplodedStr[1]));
PrintToChatAll("Выходит: %s", szOutput);
return true;
}