Steam- und Community-IDs

17. September 2008, by Alex

Aus meinem letzten Projekt möchte ich eine Funktion vorstellen, die vorallem für Webmaster mit HLStats interessant sein könnten. Und zwar geht es darum, eine STEAM_ID eines Spielers in seine Community-ID umzuwandeln, um so wiederum an sein Steam-Community-Profil zugelangen.

So bekommt der Spieler schnell ein “Geschicht” und es ermöglicht einemen Kontakt mit ihm aufzunehme und ggf. Freundschaften zu schließen.
Wer mit dem Begriff Steam im Zusammenhang mit Cumputerspielen nichts anfangen kann, für den dürfte das folgende Funktion auch vollkommen uninteressant sein.
Gefunden habe ich diese im Alliedmods Forum und noch ein wenig angepasst:

#01
#02
#03
#04
#05
#06
#07
#08
#09
#10
#11
#12
#13
#14
#15
#16
#17
#18
#19
#20
#21
#22
#23
#24
#25
#26
#27
function GetCommunityID($szAuthID)
{
$iServer = '0';
$iAuthID = '0';
$szTmp = strtok($szAuthID, ':');

while(($szTmp = strtok(':')) !== false)
{
$szTmp2 = strtok(':');

if($szTmp2 !== false)
{
$iServer = $szTmp;
$iAuthID = $szTmp2;
}
}

if($iAuthID == '0')
{
return '0';
}

$i64friendID = bcmul($iAuthID, '2');
$i64friendID = bcadd($i64friendID, bcadd('76561197960265728', $iServer));

return $i64friendID;
}

In die andere Richtung funktoiniert auch:

#01
#02
#03
#04
#05
#06
#07
#08
#09
#10
#11
#12
#13
#14
#15
#16
#17
#18
#19
#20
function GetSteamID($i64friendID)
{
$iServer = '1';

if(bcmod($i64friendID, 2) == '0')
{
$iServer = '0';
}

$i64friendID = bcsub($i64friendID, $iServer);

if(bccomp('76561197960265728', $i64friendID) == -1)
{
$i64friendID = bcsub($i64friendID, '76561197960265728');
}

$i64friendID = bcdiv($i64friendID, '2');

return ('STEAM_0:'.$iServer.':'.$i64friendID);
}

One Response to “Steam- und Community-IDs”

  • Vadik Says:

    not bad im shocked


    Fatal error: Call to undefined function quote_comments_link() in /home/www/kuhrti.de/wp-content/themes/kuhrti6/comments.php on line 43