Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
28 / 57 / 6
Регистрация: 10.01.2011
Сообщений: 1,229
1

Dota GC создание лобби

02.09.2016, 19:45. Просмотров 1993. Ответов 24
Метки нет (Все метки)

Здравствуйте! Документации по этой библиотеке я не нашел, может здесь есть те кто сталкивался с ней
C#
1
2
CMsgPracticeLobbySetDetails details = new CMsgPracticeLobbySetDetails();
dota.CreateLobby("1234", details);
Стим клиент уже находится в доте, но лобби не создается
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.09.2016, 19:45
Ответы с готовыми решениями:

Ники в лобби
Как можно вывести ники в лобби, пытался сделать через OnSerializeNetworkView но узнал что оно не...

Delphi - Socket (Лобби)
Здравствуйте! Такая ситуация, мне нужно всех пользователей распихать в беседу по три человека....

Вылетает Dota 2 / CS: GO
Здравствуйте. Взял б/у компьютер, и столкнулся с такой проблемой как вылет из игр Dota 2 и CS: GO....

Вылетает Dota 2 / CS: GO
Здравствуйте. Взял б/у компьютер, и столкнулся с такой проблемой как вылет из игр Dota 2 и CS: GO....

24
2179 / 1652 / 496
Регистрация: 02.08.2011
Сообщений: 4,782
02.09.2016, 22:48 2
А какой IPEndpoint и порт вы используете при подключении клиента? А то я даже steam-клиентом не могу подключиться, не говоря уже про создание лобби.
Смотрел список здесь.

Добавлено через 19 минут
Всмысле адрес и порт.
1
28 / 57 / 6
Регистрация: 10.01.2011
Сообщений: 1,229
02.09.2016, 23:12  [ТС] 3
IamRain
Там используется steamkit2, для подключения. Порты там не надо вписывать
Тут в папке samples есть примеры, там есть подключение к стиму
Если эта тема интересна вам можно вместе по разбираться
0
2179 / 1652 / 496
Регистрация: 02.08.2011
Сообщений: 4,782
02.09.2016, 23:33 4
Подключение нестабильное, нашел из списка рабочий хост, запомнил его, решил к нему подключиться при следующем запуске: уже не хочет.
1
28 / 57 / 6
Регистрация: 10.01.2011
Сообщений: 1,229
02.09.2016, 23:38  [ТС] 5
Вот подключение:
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using SteamKit2;
using System.IO;
using System.Threading;
using Dota2.GC;
 
namespace Dota2
{
    class Program
    {
        static string user, pass;
 
        static SteamClient steamClient;
        static CallbackManager manager;
        static SteamUser steamUser;
 
        static bool isRunning = false;
        static string authCode;
 
        static void Main(string[] args)
        {
            Console.Write("Username: ");
            user = Console.ReadLine();
 
            Console.Write("Password: ");
            pass = Console.ReadLine();
 
            SteamLogIn();
           
            while (isRunning)
            {
                manager.RunWaitCallbacks(TimeSpan.FromSeconds(1));
                
            }
 
            Console.ReadKey();
        }
 
        static void SteamLogIn()
        {
            steamClient = new SteamClient();
            manager = new CallbackManager(steamClient);
            steamUser = steamClient.GetHandler<SteamUser>();
 
 
            new Callback<SteamClient.ConnectedCallback>(OnConnected, manager);
            new Callback<SteamClient.DisconnectedCallback>(OnDisconnected, manager);
 
            new Callback<SteamUser.LoggedOnCallback>(OnLoggedOn, manager);
            new Callback<SteamUser.LoggedOffCallback>(OnLoggedOff, manager);
 
            new Callback<SteamUser.UpdateMachineAuthCallback>(OnMashineAuth, manager);
 
            SteamDirectory.Initialize().Wait();
 
            isRunning = true;
 
            Console.WriteLine("\nConnecting to steam...\n");
 
            steamClient.Connect();
        }
 
        static void OnConnected(SteamClient.ConnectedCallback callback)
        {
            if (callback.Result != EResult.OK)
            {
                Console.WriteLine("Unable to connect to Steam: {0}", callback.Result);
                isRunning = false;
                return;
            }
 
            Console.WriteLine("Connected to Steam.\nLogging in: {0}", user);
 
            byte[] sentryHash = null;
 
            if (File.Exists("sentry.bin"))
            {
                byte[] sentryFile = File.ReadAllBytes("sentry.bin");
 
                sentryHash = CryptoHelper.SHAHash(sentryFile);
            }
 
            steamUser.LogOn(new SteamUser.LogOnDetails
            {
                Username = user,
                Password = pass,
                AuthCode = authCode,
                SentryFileHash = sentryHash,
            });
            
        }
 
        static void OnLoggedOn(SteamUser.LoggedOnCallback callback)
        {
            if (callback.Result == EResult.AccountLogonDenied)
            {
                Console.WriteLine("The account is steam guard protected.");
 
                Console.Write("Please enter the auth code sent to the email at {0} ", callback.EmailDomain);
 
                authCode = Console.ReadLine();
 
                return;
            }
 
 
            if (callback.Result != EResult.OK)
            {
                Console.WriteLine("Unable to connect to Steam: {0}", callback.Result);
                isRunning = false;
                return;
            }
 
            Console.WriteLine("{0} succesfully logged in!", user);
            //dota.Start();
        }
 
        static void OnMashineAuth(SteamUser.UpdateMachineAuthCallback callback)
        {
            Console.WriteLine("Updating sentryfile...");
 
            byte[] sentryHash = CryptoHelper.SHAHash(callback.Data);
 
            File.WriteAllBytes("sentry.bin", callback.Data);
 
            steamUser.SendMachineAuthResponse(new SteamUser.MachineAuthDetails
            {
                JobID = callback.JobID,
                FileName = callback.FileName,
                BytesWritten = callback.BytesToWrite,
                FileSize = callback.Data.Length,
                Offset = callback.Offset,
                Result = EResult.OK,
                LastError = 0,
                OneTimePassword = callback.OneTimePassword,
                SentryFileHash = sentryHash,
            });
 
            Console.Write("Done.");
        }
 
        static void OnDisconnected(SteamClient.DisconnectedCallback callback)
        {
            Console.WriteLine("\n{0} disconnected from server, reconnecting in 5...\n", user);
 
            Thread.Sleep(TimeSpan.FromSeconds(5));
 
            steamClient.Connect();
        }
 
        static void OnLoggedOff(SteamUser.LoggedOffCallback callback)
        {
            Console.WriteLine("Logged off of steam: {0}", callback.Result);
        }
 
    }
}
0
2179 / 1652 / 496
Регистрация: 02.08.2011
Сообщений: 4,782
02.09.2016, 23:44 6
Я вручную бегаю по CMClient.Servers.GetAllEndPoints(). Далее пытаюсь залогиниться, выходит OnlogonCallback.Result = TryAnotherCM/Invalid. Ох уж эти highload приложения.
1
28 / 57 / 6
Регистрация: 10.01.2011
Сообщений: 1,229
02.09.2016, 23:46  [ТС] 7
IamRain
А ты steam network используешь?
0
2179 / 1652 / 496
Регистрация: 02.08.2011
Сообщений: 4,782
02.09.2016, 23:51 8
мм, я выполняю точно такой же код, что и ты, со своими хотелками.
Хотя просто credentials не те, поправим. Просто интересно стало, чего люди под Steam пишут.
1
28 / 57 / 6
Регистрация: 10.01.2011
Сообщений: 1,229
03.09.2016, 00:01  [ТС] 9
я хочу бота написать, что бы на ботах уровень повышать, но только научился в доту заходить, дальше не идет
0
2179 / 1652 / 496
Регистрация: 02.08.2011
Сообщений: 4,782
03.09.2016, 00:04 10
, очередной ботописатель. Теперь SteamGuard надо обойти...
Цепляется к конкретному хосту (208.78.164.10:27017) только когда переберет несколько предшествующих, с первого раза на целевой не получается.
1
28 / 57 / 6
Регистрация: 10.01.2011
Сообщений: 1,229
03.09.2016, 00:09  [ТС] 11
Цитата Сообщение от IamRain Посмотреть сообщение
Теперь SteamGuard надо обойти...
Так это вручную один раз ввел и больше не надо
А ты steam network используешь?
0
2179 / 1652 / 496
Регистрация: 02.08.2011
Сообщений: 4,782
03.09.2016, 00:10 12
Ну как бы ее все используют, afaik. Но я могу чего-то не знать.
1
28 / 57 / 6
Регистрация: 10.01.2011
Сообщений: 1,229
03.09.2016, 00:14  [ТС] 13
А ты знаешь как какие нибудь манипуляции производить в играх от стим?
0
2179 / 1652 / 496
Регистрация: 02.08.2011
Сообщений: 4,782
03.09.2016, 00:33 14
Нет, не знаю.
Нужно привязать steamClient к GameCoordinator-у игр. Вот это отработало норм:
C#
1
2
3
4
5
6
7
8
9
10
static void InitDotaInteraction(SteamClient client)
        {
            DotaGCHandler.Bootstrap(client); // <--- оно самое
            var gcHandler = client.GetHandler<DotaGCHandler>();
            gcHandler.Start();
            
            CMsgPracticeLobbySetDetails details = new CMsgPracticeLobbySetDetails();
            gcHandler.CreateLobby("1234", details);
            Console.WriteLine("Done");
        }
Добавлено через 37 секунд
Вызываешь в LogonCallback-е.
1
28 / 57 / 6
Регистрация: 10.01.2011
Сообщений: 1,229
03.09.2016, 00:35  [ТС] 15
Цитата Сообщение от IamRain Посмотреть сообщение
Вызываешь в LogonCallback-е.
А где это?
0
2179 / 1652 / 496
Регистрация: 02.08.2011
Сообщений: 4,782
03.09.2016, 00:37 16
Цитата Сообщение от Helldrg Посмотреть сообщение
А где это?
Вот тут:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
static void OnLoggedOn(SteamUser.LoggedOnCallback callback)
        {
            if (callback.Result == EResult.AccountLogonDenied)
            {
                Console.WriteLine("The account is steam guard protected.");
 
                Console.Write("Please enter the auth code sent to the email at {0} ", callback.EmailDomain);
 
                authCode = Console.ReadLine();
 
                return;
            }
 
 
            if (callback.Result != EResult.OK)
            {
                Console.WriteLine("Unable to connect to Steam: {0}", callback.Result);
                isRunning = false;
                return;
            }
 
            Console.WriteLine("{0} succesfully logged in!", user);
            InitDotaInteration(steamClient);
        }
1
28 / 57 / 6
Регистрация: 10.01.2011
Сообщений: 1,229
03.09.2016, 00:39  [ТС] 17
new Callback<SteamUser.LoggedOnCallback>(OnLoggedOn, manager);
OnLoggedOn в этой функции?
0
2179 / 1652 / 496
Регистрация: 02.08.2011
Сообщений: 4,782
03.09.2016, 00:41 18
Цитата Сообщение от Helldrg Посмотреть сообщение
OnLoggedOn в этой функции?
Да, в этой.
1
28 / 57 / 6
Регистрация: 10.01.2011
Сообщений: 1,229
03.09.2016, 00:45  [ТС] 19
у меня не создает лобби(
0
2179 / 1652 / 496
Регистрация: 02.08.2011
Сообщений: 4,782
03.09.2016, 00:48 20
А у меня создало.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.09.2016, 00:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

ПК для dota 2
Хочу собрать компьютер игровой, для доты 2) + для минимальных программ в учебе (PS6, Sony Vegas,...

Скачет пинг в Dota
Доброе время суток! У меня такая проблема. В последнее время в доте сильно скачет пинг. Играю на...

Ноутбук для dota 2
Всем привет , ребят подскажите пожалуйста какой ноутбук будет хорошо тянуть доту 2 на...

Dota/wc3/old school
Сразу к проблеме: Скачет FPS в Warcraft3 (dota) Смотрю, то 60, то вообще 15, что за беда ? В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.