• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Вопрос Что такое pad и как его использовать?

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
1 Май 2019
Сообщения
52
Реакции
1
Читаю данный гайд
Пожалуйста, авторизуйтесь для просмотра ссылки.
и стараюсь его использовать,но столкнулся с одной трудностью есть данный код в котором присутствуют pad'ы я понял что их используют чтобы заполнить неизвестную память,но как мне составить самому такую структуру и с чего берутся данные по pad'ам по типу char pad1[0x0EC - 0x010];
Код:
Expand Collapse Copy
struct Vec3 { float x, y, z; };

struct PlayerStruct {
    DWORD32 vftable;        // 0x000
    Vec3 position;          // 0x004
    char pad1[0x0EC - 0x010];
    int health;             // 0x0EC
    int armor;              // 0x0F0
    char pad5[0x11C - 0x0F4];
    int unknown11C;         // 0x11C
    char pad6[0x140 - 0x120];
    int unknown140;         // 0x140
    char pad7[0x1DC - 0x144];
    int frags;              // 0x1DC
    char pad8[0x1E4 - 0x1E0];
    int deaths;             // 0x1E4
    char pad9[0x205 - 0x1E8];
    char name[16];          // 0x205
    char pad10[0x30C - (0x205 + 16)];
    int state;              // 0x30C
    char pad11[0x33C - 0x310];

};
 
Читаю данный гайд
Пожалуйста, авторизуйтесь для просмотра ссылки.
и стараюсь его использовать,но столкнулся с одной трудностью есть данный код в котором присутствуют pad'ы я понял что их используют чтобы заполнить неизвестную память,но как мне составить самому такую структуру и с чего берутся данные по pad'ам по типу char pad1[0x0EC - 0x010];
Код:
Expand Collapse Copy
struct Vec3 { float x, y, z; };

struct PlayerStruct {
    DWORD32 vftable;        // 0x000
    Vec3 position;          // 0x004
    char pad1[0x0EC - 0x010];
    int health;             // 0x0EC
    int armor;              // 0x0F0
    char pad5[0x11C - 0x0F4];
    int unknown11C;         // 0x11C
    char pad6[0x140 - 0x120];
    int unknown140;         // 0x140
    char pad7[0x1DC - 0x144];
    int frags;              // 0x1DC
    char pad8[0x1E4 - 0x1E0];
    int deaths;             // 0x1E4
    char pad9[0x205 - 0x1E8];
    char name[16];          // 0x205
    char pad10[0x30C - (0x205 + 16)];
    int state;              // 0x30C
    char pad11[0x33C - 0x310];

};
у тебя выше подсказка

Пример структуры PlayerStruct демонстрирует использование падингов для правильного выравнивания полей, таких как 'health' и 'name', по известным смещениям памяти, что является ключевым для работы с игровыми данными. вообще идея хуйня, если у тебя будет 100 таких полей ты заебёшься так считать оффсеты

сделай себе геттер:
C++:
Expand Collapse Copy
#define OFFSET(type, name, offset) public:\
    type name() { \
        returrn *reinterpret_cast<type*>(reinterpret_cast<QWORD>(this) + offset); \
    }

и юзай:
OFFSET(int, Health, 0xEC);

player->Health();
 
Назад
Сверху Снизу