Вопрос Крашит после добавления стим аватара в меню

Забаненный
Статус
Оффлайн
Регистрация
5 Сен 2020
Сообщения
986
Реакции[?]
275
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
при инжекте всё замечательно , аватарка рисуется всё круто , но если оставить открытой менюшку и подождать секунд 30- 40 , то чит просто крашит
1643029401031.png
сам код
Код:
LPDIRECT3DTEXTURE9 menu::steam_image()
{
    LPDIRECT3DTEXTURE9 asdgsdgadsg;

    int iImage = SteamFriends->GetLargeFriendAvatar(SteamUser->GetSteamID());
    if (iImage == -1)
        return nullptr;
    uint32 uAvatarWidth, uAvatarHeight;
    if (!SteamUtils->GetImageSize(iImage, &uAvatarWidth, &uAvatarHeight))
        return nullptr;
    const int uImageSizeInBytes = uAvatarWidth * uAvatarHeight * 4;
    uint8* pAvatarRGBA = new uint8[uImageSizeInBytes];
    if (!SteamUtils->GetImageRGBA(iImage, pAvatarRGBA, uImageSizeInBytes))
    {
        delete[] pAvatarRGBA;
        return nullptr;
    }
    auto res = menu::device_new->CreateTexture(uAvatarWidth,
        uAvatarHeight,
        1,
        D3DUSAGE_DYNAMIC,
        D3DFMT_A8R8G8B8,
        D3DPOOL_DEFAULT,
        &asdgsdgadsg,
        nullptr);
    std::vector<uint8_t> texData;
    texData.resize(uAvatarWidth * uAvatarHeight * 4u);
    CopyConvert(pAvatarRGBA,
        texData.data(),
        uAvatarWidth * uAvatarHeight * 4u);
    D3DLOCKED_RECT rect;
    res = asdgsdgadsg->LockRect(0, &rect, nullptr, D3DLOCK_DISCARD);
    auto src = texData.data();
    auto dst = reinterpret_cast<uint8_t*>(rect.pBits);
    for (auto y = 0u; y < uAvatarHeight; ++y)
    {
        std::copy(src, src + (uAvatarWidth * 4), dst);

        src += uAvatarWidth * 4;
        dst += rect.Pitch;
    }
    res = asdgsdgadsg->UnlockRect(0);
    delete[] pAvatarRGBA;
    return asdgsdgadsg;
}
инцилизирую в present hook
Код:
    for (static auto i = 0; i < 1; menu::steam_image(), i++);
 
Забаненный
Статус
Оффлайн
Регистрация
5 Сен 2020
Сообщения
986
Реакции[?]
275
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
(\ /) _ ($ __ $ ) _ (\ /)
Пользователь
Статус
Оффлайн
Регистрация
22 Окт 2021
Сообщения
361
Реакции[?]
92
Поинты[?]
24K
Забаненный
Статус
Оффлайн
Регистрация
5 Сен 2020
Сообщения
986
Реакции[?]
275
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
5 Сен 2020
Сообщения
986
Реакции[?]
275
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
короче как я и предпологал крашило потому что ава постоянно обновлялась , проблема была в том что она была инцтализирована в menu::render, который был инстализирован в цикле , что бы пофиксить данную проблему нужно инстализировать в menu::initialize
menu.h
Код:
    inline IDirect3DTexture9* avatar_t = nullptr;
menu.cpp в menu::initialize
Код:
if (menu::avatar_t == nullptr)
        menu::avatar_t = menu::steam_image();
в хуке present перед вызовом menu::initialize
Код:
  menu::device_new = device; //это нужно вызвать перед тем как мы будем получать аватарку

    std::call_once(flag, [&] { menu::initialize(device); }); //тут мы получаем аватарку имгуи стили и прочее
 
(\ /) _ ($ __ $ ) _ (\ /)
Пользователь
Статус
Оффлайн
Регистрация
22 Окт 2021
Сообщения
361
Реакции[?]
92
Поинты[?]
24K
Забаненный
Статус
Оффлайн
Регистрация
5 Сен 2020
Сообщения
986
Реакции[?]
275
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу