Вопрос Как получить Steam ID ?

Новичок
Статус
Оффлайн
Регистрация
24 Дек 2023
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Нужен именно Steam Id до принятия матча или загрузки карты/лобби. Как было в овервульфе.
Заранее спасибо за ответ. Если выгорит, то выложу исходники своего овервульфа.
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
644
Реакции[?]
102
Поинты[?]
65K
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Можешь у мя глянуть, конечно оно не дописано, но думаю то что тебе надо найдёшь там
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
759
Реакции[?]
328
Поинты[?]
60K
Нужен именно Steam Id до принятия матча или загрузки карты/лобби. Как было в овервульфе.
Заранее спасибо за ответ. Если выгорит, то выложу исходники своего овервульфа.
там вроде незадолго до того как игру находит от гс прилетает протобаф пакет с лобби(UpdateMultiple по-моему) там лобби лежит. в общем консоль открой игру ищи и смотри че там высирает, пакет должен быть большой(сотни/тысячи байт вроде). вот его распарси и вот тебе твое лобби
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Можешь у мя глянуть, конечно оно не дописано, но думаю то что тебе надо найдёшь там
C++:
auto& gc = CGCClient::get( );
if ( &gc && gc.GetLobbyManager( )->lobby_data )
референс это ненулевой указатель. не надо его чекать на ноль(подразумевается что он уже чекнут гдето на ноль и соответствующие действия уже приняты). если тебе надо его чекать на ноль - значит это не референс, не возвращай референс с get, возвращай указатель.
C++:
void COverWolf::process_lobby_members(CGCClient& gc)//функция нам заявляет что она не собирается проверять на ноль это обязанность того кто вызывает. еще лучше сразу lobby_data референсом(т.е. чекнуть перед вызовом) передать вместо гс так как тут гс токо для лобби даты нужен
{
    if (gc.GetLobbyManager( )->lobby_data ) ...
}
...
if(CGCClient* gc = CGCClient::get(); gc != nullptr)
    overwolf.process_lobby_members(*gc);
указатель это специальная фиговина которая тебе говорит "ПРОВЕРЬТЕ МЕНЯ НА НОЛЬ ПРЕЖДЕ ЧЕМ ЧТО-ТО СО МНОЙ ДЕЛАТЬ". референс говорит наоборот что проверять не надо проверка уже была перед тем как указатель в референс звездочкой переделали. так вот если твой гет возвращает то что нужно протом проверить на ноль то это указатель а не референс
также последний символ в строке это .back() (передний это .front())
Пожалуйста, авторизуйтесь для просмотра ссылки.
C++:
if ( url[ url.size( ) - 1 ] == ',' ) url.pop_back( );
->
if ( url.back() == ',' ) url.pop_back( );
ну и перед тем как бек/фронт(или [0] или [сайз - 1]) использовать нужно убедиться что сайз не равен 0(т.е. !url.empty()). тут то у тебя конечно оно не может быть нулем(т.к. у тебя std::string url = "
Пожалуйста, авторизуйтесь для просмотра ссылки.
"), но просто на будущее/другим пишу мало ли в другом месте напишешь где строка может быть нулевая(например цикл 0 итераций пробежался и не добавил ваще нихуя в строку которая изначально пустая была)

ну и если curl собираешь именно с openssl(на будущее/для других)(хз насчет других бекендов), то у опенссл в ините хуета есть вот такая, и она естественно при отсутствии дллки в PEB(ммап и тд) будет фейлить и опенссл будет выебываться, надо компилить с OPENSSL_NO_PINSHARED например
Пожалуйста, авторизуйтесь для просмотра ссылки.

C++:
#if !defined(OPENSSL_USE_NODELETE) \
    && !defined(OPENSSL_NO_PINSHARED)
# if defined(DSO_WIN32) && !defined(_WIN32_WCE)
    {
        HMODULE handle = NULL;
        BOOL ret;

        /* We don't use the DSO route for WIN32 because there is a better way */
        ret = GetModuleHandleEx(GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS
                                | GET_MODULE_HANDLE_EX_FLAG_PIN,
                                (void *)&base_inited, &handle);

        OSSL_TRACE1(INIT,
                    "ossl_init_load_crypto_nodelete: "
                    "obtained DSO reference? %s\n",
                    (ret == TRUE ? "No!" : "Yes."));
        return (ret == TRUE) ? 1 : 0;
    }
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
644
Реакции[?]
102
Поинты[?]
65K
PEB(ммап и тд) будет фейлить и опенссл будет
Кстати я с такой хуитой в глфв уже сталкивался, когда glfwinit фейлил, там оказывается тоже getmodulehandleex юзается. 2 дня ушло чтоб понять в чом прикол)
 
Сверху Снизу