Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Запись структуры Glow

keep silence
Участник
Участник
Статус
Оффлайн
Регистрация
17 Дек 2018
Сообщения
548
Реакции
201
Всем привет. Решил всё же начать пользоваться структурами, и, благодаря оцелотику, имеется следующая структура (да, формулировка предложений на высоте):
C++:
Expand Collapse Copy
struct glow_object_t
{
    BYTE nextFreeSlot[0x4];
    BYTE entity[0x4];
    color_t color;
    BYTE pad0[0x10];
    bool m_bRenderWhenOccluded;
    BYTE pad1[0xF];
};
А записываю его (пытаюсь) следующим образом:
C++:
Expand Collapse Copy
glow_object_t glowObject;

glowObject.color = color_t{ 1.f, 1.f, 1.f, 1.f };
glowObject.m_bRenderWhenOccluded = true;

memory.Write<glow_object_t>(get_glow_object_manager() + (currentEntity.get_glow_index() * 0x38), glowObject);

glowObject.m_bRenderWhenOccluded = false;

memory.Write<glow_object_t>(get_glow_object_manager() + (currentEntity.get_glow_index() * 0x38), glowObject);
И оно не работает. Помогите пжпж..... Заранее спасибо.
 
Может тебе следует сначала прочитать эту структуру из игры, ведь там есть не только то, что ты изменяешь?
То есть, то же самое почти, только
glow_object_t glowObject = memory.Read<glow_object_t>(get_glow_object_manager() + (currentEntity.get_glow_index() * 0x38)); ?
upd.: не помогло(
 
То есть, то же самое почти, только
glow_object_t glowObject = memory.Read<glow_object_t>(get_glow_object_manager() + (currentEntity.get_glow_index() * 0x38)); ?
upd.: не помогло(
У меня всё работает с этой структурой, значит ты делаешь что-то не так
c04f5e3bc3eb4f16ccf3c70a6e7916a1.png
Поставь брекпоинт после чтения структуры и посмотри что там, если там какая-то херня, то значит у тебя либо что-то с оффсетами, либо что-то ещё
01e807d5450aaea21527055d69a59294.png


UPD:
glowObject.m_bRenderWhenOccluded = false; memory.Write<glow_object_t>(get_glow_object_manager() + (currentEntity.get_glow_index() * 0x38), glowObject);
Стоп, а почему так, зачем это? Ты же сам и отменяешь glow
 
Последнее редактирование:
Стоп, а почему так, зачем это? Ты же сам и отменяешь glow
Так в экстерналах же так и надо? Применяешь и отменяешь сразу же, из-за чего в них и возникают мерцания?
Снимок.PNG
 
UPD.: Так и не понял, в чём проблема. Есть подозрение на мою структуру цвета:
C++:
Expand Collapse Copy
struct color_t
{
    float r, g, b, a;
};
Хотя, хз, что тут вообще может пойти не так, лол.
 
эта же хуйня сместилась куда-то
Это размер структуры Glow, он не поменялся
Так в экстерналах же так и надо? Применяешь и отменяешь сразу же, из-за чего в них и возникают мерцания?
Нет, зачем это делать? Игра сама отменяет эффект глоу, поэтому оно и мерцает
У тебя какая-то проблема с адресами, он не то читает, со структурой всё норм
 
Это размер структуры Glow, он не поменялся

Нет, зачем это делать? Игра сама отменяет эффект глоу, поэтому оно и мерцает
У тебя какая-то проблема с адресами, он не то читает, со структурой всё норм
Короче мем. Захотелось, блять, сделать рекод читикса на новой базе... Расстроился, написал бхопчик, а он тоже не ворк. Адреса смотрел, вроде правильные, но что-то ж не так. Ради прикола скину основные отрезки кода:
C++:
Expand Collapse Copy
class entity
{
public:
    entity(DWORD new_address)
    {
        address = new_address;
    }
    
    int get_team()
    {
        return memory.Read<int>(address + m_iTeamNum);
    }

    int get_glow_index()
    {
        return memory.Read<int>(address + m_iGlowIndex);
    }
    
    DWORD address = 0;
};
C++:
Expand Collapse Copy
DWORD get_local_player()
{
    return memory.Read<DWORD>(client_dll + dwLocalPlayer);
}

DWORD get_entity(int index)
{
    return memory.Read<DWORD>(client_dll + dwEntityList + index * entLoopDist);
}
C++:
Expand Collapse Copy
entity localPlayer = engine::get_local_player();

for (short int i = 0; i < 32; i++)
{
    entity currentEntity = engine::get_entity(i);

    if (localPlayer.get_team() != currentEntity.get_team())
    {
        glow_object_t glowObject = memory.Read<glow_object_t>(engine::get_glow_object_manager() + currentEntity.get_glow_index() * 0x38);

        glowObject.color = color_t{ 1.f, 1.f, 1.f, 1.f };

        glowObject.m_bRenderWhenOccluded = true;

        memory.Write<glow_object_t>(engine::get_glow_object_manager() + currentEntity.get_glow_index() * 0x38, glowObject);
    }
}

Оффсеты ластовые с hazedumper'а.
 
Короче мем. Захотелось, блять, сделать рекод читикса на новой базе... Расстроился, написал бхопчик, а он тоже не ворк. Адреса смотрел, вроде правильные, но что-то ж не так. Ради прикола скину основные отрезки кода:
C++:
Expand Collapse Copy
class entity
{
public:
    entity(DWORD new_address)
    {
        address = new_address;
    }
  
    int get_team()
    {
        return memory.Read<int>(address + m_iTeamNum);
    }

    int get_glow_index()
    {
        return memory.Read<int>(address + m_iGlowIndex);
    }
  
    DWORD address = 0;
};
C++:
Expand Collapse Copy
DWORD get_local_player()
{
    return memory.Read<DWORD>(client_dll + dwLocalPlayer);
}

DWORD get_entity(int index)
{
    return memory.Read<DWORD>(client_dll + dwEntityList + index * entLoopDist);
}
C++:
Expand Collapse Copy
entity localPlayer = engine::get_local_player();

for (short int i = 0; i < 32; i++)
{
    entity currentEntity = engine::get_entity(i);

    if (localPlayer.get_team() != currentEntity.get_team())
    {
        glow_object_t glowObject = memory.Read<glow_object_t>(engine::get_glow_object_manager() + currentEntity.get_glow_index() * 0x38);

        glowObject.color = color_t{ 1.f, 1.f, 1.f, 1.f };

        glowObject.m_bRenderWhenOccluded = true;

        memory.Write<glow_object_t>(engine::get_glow_object_manager() + currentEntity.get_glow_index() * 0x38, glowObject);
    }
}

Оффсеты ластовые с hazedumper'а.
Посмотри в коде, не закрываешь ли ты случайно хендл к игре, и проверь адреса, которые ты читаешь, если они все 3435973836, то значит хендл закрыт (такое же было давно)
 
Посмотри в коде, не закрываешь ли ты случайно хендл к игре, и проверь адреса, которые ты читаешь, если они все 3435973836, то значит хендл закрыт (такое же было давно)
Снимок.PNG

Хендлы лично я не закрываю, да и обновляющиеся адреса энтитей на карте вроде нормальные

upd.: такое чувство, будто бы чтение работает отлично, а запись не работает вовсе.
 
Последнее редактирование:

Хендлы лично я не закрываю, да и обновляющиеся адреса энтитей на карте вроде нормальные

upd.: такое чувство, будто бы чтение работает отлично, а запись не работает вовсе.
Полностью спастил твой код и он работает
a95759567853a69fcb83c58aec8e60e5.png

Судя по твоему скрину glowObject у тебя и с чтением проблемы, или проблема в get_glow_object_manager()
Можешь в RPM/WPM проверять сколько ты байтов прочитал и записал и сверять с размером нужных тебе данных
Код:
Expand Collapse Copy
T _read;
SIZE_T _readB = 0;
ReadProcessMemory(hHandle, LPVOID(dwAddress), &_read, sizeof(T), &_readB);
//_readB должна быть равна sizeof(T)
То же самое с WPM
 
Полностью спастил твой код и он работает
a95759567853a69fcb83c58aec8e60e5.png

Судя по твоему скрину glowObject у тебя и с чтением проблемы, или проблема в get_glow_object_manager()
Можешь в RPM/WPM проверять сколько ты байтов прочитал и записал и сверять с размером нужных тебе данных
Код:
Expand Collapse Copy
T _read;
SIZE_T _readB = 0;
ReadProcessMemory(hHandle, LPVOID(dwAddress), &_read, sizeof(T), &_readB);
//_readB должна быть равна sizeof(T)
То же самое с WPM
Хочешь прикол? Дело не в коде. Я сейчас на ноуте работаю, а тогда всё делал и тестил на компе. Так вот, у меня и essence lite не работает. То есть, это либо ноут иссуе, либо винда. Убейте меня.
 
Хочешь прикол? Дело не в коде. Я сейчас на ноуте работаю, а тогда всё делал и тестил на компе. Так вот, у меня и essence lite не работает. То есть, это либо ноут иссуе, либо винда. Убейте меня.
У меня таких проблем ещё не было, всем, кому кидал свою поделку, у всех всё работало, на ноутах/компах, наверно должна же быть причина почему он не работает где-то
 
У меня таких проблем ещё не было, всем, кому кидал свою поделку, у всех всё работало, на ноутах/компах, наверно должна же быть причина почему он не работает где-то
Это понятно, но у меня вообще в голове не укладывается, как это возможно ахаха
Спасибо большое, что потратил на меня время. Жаль, что это было зря =)
 
C++:
Expand Collapse Copy
GlowStruct EGlow;

struct GlowStruct
{
    BYTE nextFreeSlot[0x4];
    BYTE entity[0x4];
    float r;
    float g;
    float b;
    float a;
    BYTE pad0[0x10];
    bool m_bRenderWhenOccluded;
    bool m_bRenderWhenUnoccluded;
    bool m_bFullBloomRender;
    int m_nFullBloomStencilTestValue;
    int glowStyle;
};

C++:
Expand Collapse Copy
GlowStruct SetGlowColor(GlowStruct Glow, uintptr_t entity)
{
    Glow.r = 255.f;
    Glow.g = 255.f;
    Glow.b = 255.f;
    Glow.a = 255.f;
    Glow.glowStyle = 0;
    Glow.m_bRenderWhenOccluded = true;
    Glow.m_bRenderWhenUnoccluded = false;
    return Glow;
}

C++:
Expand Collapse Copy
void cGlow()
{
    if (LocalPlayer::isInGame())
    {
        for (short int i = 0; i < 64; i++)
        {
            auto base = Entity::getEntityBase(i);
            if (base != NULL)
            {
                if (LocalPlayer::getLocalTeam() != Entity::getEntityTeam(base))
                {
                    EGlow = mem->read<GlowStruct>(LocalPlayer::getGlowObjects() + (Entity::getGlowIndex(base) * 0x38));
                    EGlow = SetGlowColor(EGlow, base);
                    mem->write<GlowStruct>(LocalPlayer::getGlowObjects() + (Entity::getGlowIndex(base) * 0x38), EGlow);
                }
            }
        }
    }
}

Попробуй это, должно воркать
 
C++:
Expand Collapse Copy
GlowStruct EGlow;

struct GlowStruct
{
    BYTE nextFreeSlot[0x4];
    BYTE entity[0x4];
    float r;
    float g;
    float b;
    float a;
    BYTE pad0[0x10];
    bool m_bRenderWhenOccluded;
    bool m_bRenderWhenUnoccluded;
    bool m_bFullBloomRender;
    int m_nFullBloomStencilTestValue;
    int glowStyle;
};

C++:
Expand Collapse Copy
GlowStruct SetGlowColor(GlowStruct Glow, uintptr_t entity)
{
    Glow.r = 255.f;
    Glow.g = 255.f;
    Glow.b = 255.f;
    Glow.a = 255.f;
    Glow.glowStyle = 0;
    Glow.m_bRenderWhenOccluded = true;
    Glow.m_bRenderWhenUnoccluded = false;
    return Glow;
}

C++:
Expand Collapse Copy
void cGlow()
{
    if (LocalPlayer::isInGame())
    {
        for (short int i = 0; i < 64; i++)
        {
            auto base = Entity::getEntityBase(i);
            if (base != NULL)
            {
                if (LocalPlayer::getLocalTeam() != Entity::getEntityTeam(base))
                {
                    EGlow = mem->read<GlowStruct>(LocalPlayer::getGlowObjects() + (Entity::getGlowIndex(base) * 0x38));
                    EGlow = SetGlowColor(EGlow, base);
                    mem->write<GlowStruct>(LocalPlayer::getGlowObjects() + (Entity::getGlowIndex(base) * 0x38), EGlow);
                }
            }
        }
    }
}

Попробуй это, должно воркать
О, привет) Ещё в тот день мне оцелотик тонко намекнул, что у меня старые оффсеты) Спасибо за готовую структуру с типом глова и фуллблумом!
 
Назад
Сверху Снизу