This goes for all those lazy asses out there :) works in combination with
hlstatsx. Requirements: php with pear:http_request and GMP support
1. create a php file on your web server invite_steam.php with following
content (replace the defines at the beginning):
<?
> define("ACC_NAME", "your_steam_login");
> define("ACC_PASS", "your_steam_pass");
> define("GROUP_ID", "group_id"); // open steam group page and see "Enter
> chat room" link, which contains ID
> define("MY_STEAM_ID", "STEAM_0:1:1"); // steam ID which can invite to join
> group
>
> $invite_steam_id = $_GET['i'];
>
> $ids = file('invited_ids.txt');
> foreach($ids as $id) {
> $id = trim($id);
> if ( $id == $invite_steam_id )
> die($id .": Already invited!\n");
> }
>
> function GetFriendID( $steam_id ) {
> if ( !$steam_id )
> return 0;
> $auth = explode(':', $steam_id);
> if ( !$auth[2] )
> return 0;
> $fid = gmp_init($auth[2]);
> $fid = gmp_mul($fid, "2");
> $fid = gmp_add($fid, "76561197960265728");
> $fid = gmp_add($fid, $auth[1]);
> return gmp_strval($fid);
> }
>
>
> require_once "HTTP/Request.php";
>
> $req = &new HTTP_Request('https://steamcommunity.com');
> $req->setMethod(HTTP_REQUEST_METHOD_POST);
>
> $req->addPostData("action", "doLogin");
> $req->addPostData("goto", "");
>
> $req->addPostData("steamAccountName", ACC_NAME);
> $req->addPostData("steamPassword", ACC_PASS);
>
> echo "Login: ";
>
> $res = $req->sendRequest();
> if (PEAR::isError($res))
> die($res->getMessage());
>
> $cookies = $req->getResponseCookies();
> if ( !$cookies )
> die("fail!\n");
>
> echo "ok\n";
>
> foreach($cookies as $cookie)
> $req->addCookie($cookie['name'],$cookie['value']);
>
> $mid = GetFriendID(MY_STEAM_ID);
> $fid = GetFriendID($invite_steam_id);
> $url = "
> http://steamcommunity.com/actions/GroupInvite?type=groupInvite&inviter=$mid&invitee=$fid&group=";
> . GROUP_ID;
>
> echo "Inviting $invite_steam_id ($fid): ";
> $req->setMethod(HTTP_REQUEST_METHOD_GET);
> $req->setUrl($url);
>
> $res = $req->sendRequest();
> if (PEAR::isError($res))
> die($res->getMessage());
>
> $data = $req->getResponseBody();
> preg_match("/CDATA\[([^\]]+)\]/", $data, $matches);
> echo $matches[1] . "\n";
> if ( $matches[1] == "OK" )
> file_put_contents('invited_ids.txt', $invite_steam_id . "\n",
> FILE_APPEND);
> ?>
>
2. open hlstats.pl file and find a line containing "STEAM USERID validated"
3. paste (and replace address) the following code after line "my $playerinfo
= &getPlayerInfo($ev_player, 0);" :
> $runcmd = "wget -O /dev/stdout
> http://your.web.server.address/invite_steam.php?i=".$playerinfo->{"uniqueid"}."
> -q";
> print `$runcmd`;
4. go grab some beer and watch your group to grow :)
import cookielib
import urllib
import urllib2
###
class Inviter(object):
INVITER_ID = '' # Your Steam ID
INVITER_LOGIN = '' # Your Steam login
INVITER_PASS = '' # Your Steam password
INVITER_GROUP = '' # Group number
BASE_URL = 'https://steamcommunity.com'
def inviteToGroup(self, steamid):
data = urllib.urlencode({
'action': 'doLogin',
'goto': '',
'steamAccountName': self.INVITER_LOGIN,
'steamPassword': self.INVITER_PASS,
})
# Login to Steam
jar = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
opener.open(self.BASE_URL, data).close()
# Invite SteamID to group
opener.open('http://steamcommunity.com/actions/GroupInvite?type=groupInvite&inviter=%s&invitee=%s&group=%s' %
(self.steamIDToCommunityID(self.INVITER_ID), self.steamIDToCommunityID(steamid), self.INVITER_GROUP)).close()
@staticmethod
def steamIDToCommunityID(steamid):
x, server, id = steamid.split(':')
return str(int(id) * 2 + int(server) + 76561197960265728L)
def invite(steamid):
Inviter().inviteToGroup(steamid)
import sys, os, re
SID_NONE = 1<<0
SID_PRINT = 1<<1
SID_PROCESS = 1<<2
SID_QUIET = 1<<3
def about():
print "Steam Id <-> Community ID Converter\n" \
"Programmed by theY4Kman, algorithm discovered by voogru\n"
def syntax(command=None):
if command == ["help", "?", "/?"]:
print "Displays the help message."
else:
print "Usage: ", os.path.basename(sys.argv[0]), " SteamID|CommunityID [/p] [/q]\n" \
"Options:\n" \
" /p Show the process of deriving the Steam/Community ID\n" \
" /q Quiet mode. Only print out the Steam/Community ID"
def proc(message, check=SID_NONE, flags=SID_NONE):
if flags & check: print message
def convert(i, flags=SID_NONE):
steamid = re.compile(r'STEAM_0:([01]):(\d{1,10})').match(i)
commid = re.compile(r"(\d{17})").match(i)
if steamid:
proc("Steam ID -> Community ID\n\n%s" % i, SID_PROCESS, flags)
tok = steamid.groups()
auth = int(tok[1]) * 2
server = int(tok[0])
proc("%s * 2 = %d" % (tok[1], auth), SID_PROCESS, flags)
tok = auth + 76561197960265728 + server
proc("%d + 76561197960265728 + %d = %d" % (auth, server, tok), SID_PROCESS, flags)
if flags & SID_PRINT: print tok
else: return tok
else:
proc("Community ID -> Steam ID\n", SID_PROCESS, flags)
tok = int(i)
server = tok % 2
proc("%s is %s, so the auth server is %d" % (i, (server and "odd") or "even", server), SID_PROCESS, flags)
auth = tok - server
proc("%d - %d = %d" % (tok, server, auth), SID_PROCESS, flags)
auth -= 76561197960265728
proc("%d - 76561197960265728 = %d" % (tok - server, auth), SID_PROCESS, flags)
proc("%d / 2 = %d" % (auth, auth/2), SID_PROCESS, flags)
auth /= 2
if flags & SID_PRINT: print "\nSteam ID: STEAM_0:%d:%d" % (server, auth)
else: return "STEAM_0:%d:%d" % (server, auth)
return
if __name__ == '__main__':
if len(sys.argv) < 2:
syntax()
exit()
if sys.argv[1] == "about":
about()
exit()
if sys.argv[1] in ["help", "?", "/?"]:
syntax((len(sys.argv) >= 3) and sys.argv[2] or None)
exit()
flags = SID_NONE
i = None
for option in sys.argv[1:]:
if option == "/p": flags |= SID_PROCESS
if option == "/q": flags |= SID_QUIET
else:
if not i and re.compile(r'STEAM_0:[01]:\d{1,10}').match(option) or re.compile(r"\d{17}").match(option): i = option
if not i: # Then whom?
syntax()
else:
if flags & (SID_QUIET|SID_PROCESS) == (SID_QUIET|SID_PROCESS): flags ^= SID_PROCESS
convert(i, flags|SID_PRINT)
опять таки ты его купил люди прут в группу и вдруг выходит очередное обновление STEAM и эту дурочку зафиксили и прощай твои денежки на ветер плагин попросту стал не дееспособным) Понял в чем жопа ? :D
Адресок не дашь, где можно купить?Хочешь можешь купить и выложить исходник плагина сюда (или скиньтесь с кем нить) - тем самым превлечешь большое кол-во пользвателей на сайт чтоб они могли скачать исходник))))
Сообщение от Данилка
Очень интерестно...а PHP скрипт случайно не вот ет не ?
Короче всё с тобой ясно. Ты действительно думаешь, что я бы стал продавать то что свободно можно взять в интернете? Да и то что ты тут показываешь, никак не пахнет PHP скриптом. Если не собираешься покупать скрипт, то я думаю нам больше не о чем разговаривать.
Цитата: Сообщение от Данилка
Хочешь можешь купить и выложить исходник плагина сюда (или скиньтесь с кем нить) - тем самым превлечешь большое кол-во пользвателей на сайт чтоб они могли скачать исходник))))
Адресок не дашь, где можно купить?
Купил Steam group invater у PhO3n1X, всё работает чётко и без проблем! За такие деньги лучше купить и не мучатся....
А варианты представлены више нужно доделывать...
Скомпилируй у себя на ПК, какие проблемы? Разницы нет на какой платформе компилить плагин.Как можно не через сайт скомпилировать?
Ладно я признаюсь в одном на самом деле есть оидн способ как пригласить в группу людей...без какого либо плагина charles в помощь ;) (намек я думаю всем ясен)
Вот только там не всегда срабатывает так запрос обновляеться каждые 3-5 секунд короче копайтесь на здоровье =)
Я не совсем так обьяснил и ты не так понял я всего лишь дал опять таки подсказку людям а как и что делаеться я почти знаю но говорить не буду ибо не могу)))
Действуйте думайте излагайте мысли =)
Запрос обновляеться то есть даеться время для обработки запроса если в течении 3-5 секунд не успеешь его обработать то выскачет ошибочка короче думай :D
Вот что бывает когда человек пытаеться помочь людям обливают тебя говнецом говоря что ты лжец ! (обсурд) такие как ты засранцы короче кому надо тому пригодиться а кому нет пусть проходит мимо
А если ты такой знаток хренов может сделаешь плагин инвайтер м ?