Как сделать steam group auto invite?

Обсуждаем все, что относится к выделенным серверам *NIX (Unix, Linux) и Windows
Сообщение
Автор
Аватара пользователя
rsg16
Лейтенант
Лейтенант
Сообщения: 120
Зарегистрирован: 08.11.2009
Откуда: Укрина
Поблагодарили: 10 раз

#1 Сообщение 06.09.2011, 16:22

На многих серверах при входе на сервер приходит приглашение в стим групу, возможно это как-то реализовать?

Аватара пользователя
Z-RAY-Z
Капитан
Капитан
Сообщения: 424
Зарегистрирован: 29.01.2010
Откуда: Нововоронеж
Поблагодарили: 2 раза
Контактная информация:

#2 Сообщение 06.09.2011, 16:34

Можешь кинуть IP'ы таких серверов?
Я тоже задавался таким вопросом, где то нашёл это:
код

Код: Выделить всё

http://forums.eventscripts.com/viewtopic.php?f=25&t=29376&start=18
http://www.python.org/download/
http://www.chmaas.handshake.de/delphi/freeware/cmsort/cmsort.htm

You also need Python and sidconv.py 

cmsort.exe will find Steam IDs and save it in a text file. 
Here you can download cmsort.exe 

sidconv.py:
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)
---------------------------------------------------------------------------------
bot.bat
@echo off 
type *.log | find "STEAM_" >c:\temp\scrape.txt 
cmsort /d c:\temp\scrape.txt C:\temp\steamids.txt 
for /f %%a in (c:\temp\steamids.txt) do c:\python\python.exe sidconv.py %%a >>c:\temp\communitylist.txt 

@Echo off 
REM You need to know your own Inviter ID and Group ID  
SET GROUPID=103582733552053221 
SET INVITERID=76561198092836596 
REM This script assumes you're logged in to steam already via IE  
for /f %%a in (c:\temp\communitylist.txt) do call :LOOP %%a 
goto :END 

:LOOP 
start http://steamcommunity.com/actions/GroupInvite?type=groupInvite^&inviter=%INVITERID%^&invitee=%1^&group=%GROUPID%
REM Ping a dummy address for 40ish seconds before doing the next invite  
ping 1.1.1.1 -n 1 -w 40000 >nul 
goto :END 

:END
Последний раз редактировалось Z-RAY-Z 06.09.2011, 16:34, всего редактировалось 1 раз.
Изображение
Изображение

Аватара пользователя
rsg16
Лейтенант
Лейтенант
Сообщения: 120
Зарегистрирован: 08.11.2009
Откуда: Укрина
Поблагодарили: 10 раз

#3 Сообщение 06.09.2011, 16:46

ну вот IP: 88.190.226.5:27015
такое есть на всех серверах papys-aperos.fr

я думаю что такое можна реализовать в motd окне через java скрипт...

Аватара пользователя
cuttep
Капитан
Капитан
Сообщения: 446
Зарегистрирован: 26.06.2010
Откуда: http://www.evoplay.ru
Поблагодарили: 1 раз
Контактная информация:

#4 Сообщение 06.09.2011, 19:23

rsg16 писал(а):ну вот IP: 88.190.226.5:27015
такое есть на всех серверах papys-aperos.fr

я думаю что такое можна реализовать в motd окне через java скрипт...
через флеш в motd просче можно

Аватара пользователя
Z-RAY-Z
Капитан
Капитан
Сообщения: 424
Зарегистрирован: 29.01.2010
Откуда: Нововоронеж
Поблагодарили: 2 раза
Контактная информация:

#5 Сообщение 06.09.2011, 19:51

Можешь рассказать, как можно это сделать?
Изображение
Изображение

Аватара пользователя
cuttep
Капитан
Капитан
Сообщения: 446
Зарегистрирован: 26.06.2010
Откуда: http://www.evoplay.ru
Поблагодарили: 1 раз
Контактная информация:

#6 Сообщение 07.09.2011, 17:41

ответил в лс

Аватара пользователя
rsg16
Лейтенант
Лейтенант
Сообщения: 120
Зарегистрирован: 08.11.2009
Откуда: Укрина
Поблагодарили: 10 раз

#7 Сообщение 07.09.2011, 19:41

cuttep
можеш ещо мне ответить

Аватара пользователя
PhO3n1X
Сержант
Сержант
Сообщения: 96
Зарегистрирован: 01.01.2006
Откуда: Latvia
Поблагодарили: 1 раз
Контактная информация:

#8 Сообщение 07.09.2011, 20:01

Реализовал такое как скрипт на PHP, который HLstatsX запускает при подключении нового игрока. Делиться или разъяснять что либо, не буду, ибо нефиг. В последнее время такое появилось на многих серверах, и если честно, то начинает бесить. Кому это очень надо, тот сам догадается как это реализовать, а всем остальным советую ещё раз подумать, надо ли оно вам? Лично мне бы не хотелось, чтобы такие вещи валялись на каждом углу и чтоб в скором времени эту лавочку бы прикрыли.
GunGame.LV - Pro Gamers Portal | CS:S GG & DM Servers
Изображение

Изображение Изображение

Аватара пользователя
Dogerty
Сержант
Сержант
Сообщения: 65
Зарегистрирован: 02.06.2008

#9 Сообщение 07.09.2011, 21:20

Я нормального ответа не вижу. Может кто-то объяснить понятно как это реализовать.

Аватара пользователя
Z-RAY-Z
Капитан
Капитан
Сообщения: 424
Зарегистрирован: 29.01.2010
Откуда: Нововоронеж
Поблагодарили: 2 раза
Контактная информация:

#10 Сообщение 07.09.2011, 21:46

Скрипт нужен также, как и нормальное объяснение его реализации.
PhO3n1X, не стесняйся, выкладывай - мы посмотрим и укажем на недостатки, если таковые имеются.
Изображение
Изображение

Аватара пользователя
AnTiSpameR
Капитан
Капитан
Сообщения: 458
Зарегистрирован: 11.10.2008
Откуда: Belarus
Поблагодарили: 31 раз
Контактная информация:

#11 Сообщение 08.09.2011, 14:26

Тоже искал, но и не нашел кто знает, поделитесь.
Изображение Изображение Изображение Изображение Изображение

Изображение

Аватара пользователя
PhO3n1X
Сержант
Сержант
Сообщения: 96
Зарегистрирован: 01.01.2006
Откуда: Latvia
Поблагодарили: 1 раз
Контактная информация:

#12 Сообщение 08.09.2011, 15:36

И не найдёте, потому что скорее всего в паблике ничего подобного нету. А теперь догадайтесь почему...
GunGame.LV - Pro Gamers Portal | CS:S GG & DM Servers
Изображение

Изображение Изображение

Аватара пользователя
net-master
Капитан
Капитан
Сообщения: 446
Зарегистрирован: 07.11.2009
Поблагодарили: 1 раз

#13 Сообщение 08.09.2011, 21:23

Пустая тема delete

Deus_Ex_Machina
Капитан
Капитан
Сообщения: 492
Зарегистрирован: 23.05.2010
Благодарил (а): 14 раз
Поблагодарили: 43 раза
Контактная информация:

#14 Сообщение 08.09.2011, 22:26

Код: Выделить всё

<script language="javascript" type="text/javascript">
var inviteUrl = "http://steamcommunity.com/actions/GroupInvite";
var invitableGroups = new Array();
var inviter = "удалено"; - отправляющий
var invitee = "удалено"; - кому отправляется
invitableGroups.push(new Array("103582791429535324", "Black Mesa"));
invitableGroups.push(new Array("103582791430188442", "NuclearDawn"));
invitableGroups.push(new Array("103582791430243859", "CSmania.RU"));
Кусок кода из страницы профиля в стиме. Если у кого есть познания в JS, наверное, сможет использовать.

Также есть это: http://cdn.steamcommunity.com/public/ja ... nctions.js

Код: Выделить всё

function doGroupInvite(e)
{
	var srcEl = window.event ? window.event.srcElement : e ? e.target : null;
	if(!srcEl)
	{
		return;
	}
	groupInvLink = getGoodElement(srcEl, 'a', 'groupInviteLink',0);
	if(groupInvLink)
	{
		groupId = groupInvLink.id.slice(2);
		var postData = {
			"xml": 1,
			"type": "groupInvite",
			"inviter": inviter,
			"invitee": invitee,
			"group": groupId
		};
		createQuery2(inviteUrl, receiveGroupInvite, postData);
	}
	pickEl = document.getElementById('groupInviteSelect');
	if(pickEl)
	{
		pickEl.parentNode.removeChild(pickEl);
	}
}
Добавлено спустя 2 минуты:
http://cdn.steamcommunity.com/public/ja ... /global.js

Код: Выделить всё

function createQuery2( postUrl, returnFn, postData )
{
	uid = Math.round(Math.random()*100000);
	rUid = "requester"+uid;
	eval(rUid+" = new xHttpQuery_Post();");
	eval(rUid+".postUrl = postUrl;");
	eval(rUid+".returnFn = returnFn;");
	eval(rUid+".postData = postData;");
	eval(rUid+".selfRef = ""+rUid+"";");
	eval(rUid+".doRequest();");
}
Добавлено спустя 7 минут 33 секунды:
Короче,

Код: Выделить всё

script type="text/javascript" src="http://cdn.steamcommunity.com/public/javascript/prototype-1.7.js?v=3393499856&l=russian"></script>
<script type="text/javascript" src="http://cdn.steamcommunity.com/public/javascript/scriptaculous/scriptaculous.js?v=1496844821&l=russian&load=effects,controls,slider,dragdrop"></script>
<script type="text/javascript" src="http://cdn.steamcommunity.com/public/javascript/global.js?v=399144474&l=russian"></script>
<script type="text/javascript" src="http://cdn.steamcommunity.com/public/javascript/modal.js?v=336484009&l=russian"></script>
<script type="text/javascript" src="http://cdn.steamcommunity.com/public/javascript/profile_functions.js?v=3576045272&l=russian"></script>
<script type="text/javascript" src="http://cdn.steamcommunity.com/public/javascript/comment_functions.js?v=3644622779&l=russian"></script>
<script type="text/javascript" language="javascript">
Добавлено спустя 4 минуты 14 секунд:
Вообще, думаю, вся соль в этом:
Приведенный выше урл работает, но для страницы нужна авторизация.

Villain
Сержант
Сержант
Сообщения: 56
Зарегистрирован: 09.10.2011
Поблагодарили: 22 раза
Контактная информация:

#15 Сообщение 09.10.2011, 00:15

Эта ссылка у меня не работает.

при переходе по ней с правильно заданными параметрами посылает xml

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
- <response>
- <results>
- <![CDATA[ Missing or invalid form session key
]]>
</results>
</response>

что я не так делаю? перед переходом авторизован был 100%.

Ответить