この式で適切な値を返すのに問題があります。Steam によると、式Steam_community_number = (Last_part_of_steam_id * 2) + 76561197960265728 + Second_to_last_part_of_steam_id
は 64 ビットの Steam コミュニティ ID を返す必要があります。現在、この式は を返して7.6561198012096E+16
います。76561198012095632
ある意味では、すでに返されているものとほぼ同じである方程式が返されるはずです。以下のコードで、返された E+16 値を上記の正しい値に変換するにはどうすればよいですか? ありがとう。
function convertSID($steamid) {
if ($steamid == null) { return false; }
//STEAM_X:Y:Z
//W=Z*2+V+Y
//Z, V, Y
//Steam_community_number = (Last_part_of_steam_id * 2) + 76561197960265728 + Second_to_last_part_of_steam_id
if (strpos($steamid, ":1:")) {
$Y = 1;
} else {
$Y = 0;
}
$Z = substr($steamid, 10);
$Z = (int)$Z;
echo "Z: " . $Z . "</br>";
$cid = ($Z * 2) + 76561197960265728 + $Y;
echo "Equation: (" . $Z . " * 2) + 76561197960265728 + " . $Y . "<br/>";
return (string)$cid;
}
そして、私はこの関数を$cid = convertSID("STEAM_0:0:25914952");
出力の例を見たい場合は、ここをチェックしてください: http://joshua-ferrara.com/hkggateway/sidtester.php