Вопрос Subtick_move_step

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
18 Авг 2020
Сообщения
69
Реакции
3
можете подсказать правильные паттерны на функции я нашёл

еще в какой-то теме нашёл такой ответ, что субтик работает только в 5 крейтмуве, это правда?

Код:
Expand Collapse Copy
    T* add(T* element)
    {
        static auto add_to_rep_addr = reinterpret_cast<T * (__fastcall*)(repeated_ptr_field_t*, T*)>(pattern->absolute(pattern->find("client.dll", "E8 ? ? ? ? 48 8B D0 8B 4A ? F3 0F 10 47"), 0x1, 0x0));

        return add_to_rep_addr(this, element);
    }
Безы111мянный.png


Код:
Expand Collapse Copy
    c_subtick_move_step* add_sub_tick_move()
    {
        using fndef = c_subtick_move_step * (__fastcall*)(void*);
        static fndef fn_create_new_subtick_move_step = reinterpret_cast<fndef>(pattern->absolute(pattern->find("client.dll", "E8 ? ? ? ? 48 8B D0 49 8B CE E8 ? ? ? ? 48 8B D0"), 0x1, 0x0));

        if (subtick_moves_field.rep && subtick_moves_field.current_size < subtick_moves_field.rep->allocated_size)
            return subtick_moves_field.rep->elements[subtick_moves_field.current_size++];

        c_subtick_move_step* subtick = fn_create_new_subtick_move_step(nullptr);
        subtick_moves_field.add(subtick);

        return subtick;
    }

Безы111мянный.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
можете подсказать правильные паттерны на функции я нашёл

еще в какой-то теме нашёл такой ответ, что субтик работает только в 5 крейтмуве, это правда?

Код:
Expand Collapse Copy
    T* add(T* element)
    {
        static auto add_to_rep_addr = reinterpret_cast<T * (__fastcall*)(repeated_ptr_field_t*, T*)>(pattern->absolute(pattern->find("client.dll", "E8 ? ? ? ? 48 8B D0 8B 4A ? F3 0F 10 47"), 0x1, 0x0));

        return add_to_rep_addr(this, element);
    }
Посмотреть вложение 313444

Код:
Expand Collapse Copy
    c_subtick_move_step* add_sub_tick_move()
    {
        using fndef = c_subtick_move_step * (__fastcall*)(void*);
        static fndef fn_create_new_subtick_move_step = reinterpret_cast<fndef>(pattern->absolute(pattern->find("client.dll", "E8 ? ? ? ? 48 8B D0 49 8B CE E8 ? ? ? ? 48 8B D0"), 0x1, 0x0));

        if (subtick_moves_field.rep && subtick_moves_field.current_size < subtick_moves_field.rep->allocated_size)
            return subtick_moves_field.rep->elements[subtick_moves_field.current_size++];

        c_subtick_move_step* subtick = fn_create_new_subtick_move_step(nullptr);
        subtick_moves_field.add(subtick);

        return subtick;
    }

Посмотреть вложение 313445
rep to add container 48 89 5C 24 ? 57 48 83 EC ? 48 8B D9 48 8B FA 48 8B 49 ? 48 85 C9 74 ? 8B 01
subitck move step
48 89 5C 24 ? 57 48 83 EC ? 33 DB 48 8B F9 48 85 C9 75 ? B9 ? ? ? ? E8 ? ? ? ? 48 85 C0 74 ? 45 33 C0 33 D2 48 8B C8 E8 ? ? ? ? 48 8B D8 48 8B C3 48 8B 5C 24 ? 48 83 C4 ? 5F C3 4C 8D 05 ? ? ? ? BA ? ? ? ? E8 ? ? ? ? 45 33 C0 48 8B D7 48 8B C8 E8 ? ? ? ? 48 8B 5C 24 ? 48 83 C4 ? 5F C3 CC CC CC CC CC 48 89 5C 24 ? 57 48 83 EC ? 33 FF 48 8B D9 48 85 C9 75 ? B9 ? ? ? ? E8 ? ? ? ? 48 85 C0 74 ? 48 89 78 ? EB ? 48 8B C7 48 8B 5C 24 ? 48 83 C4 ? 5F C3 4C 8D 05 ? ? ? ? BA ? ? ? ? E8 ? ? ? ? 48 89 58 ? 48 8B 5C 24 ? 48 8D 0D ? ? ? ? 48 89 08 33 C9 48 89 48 ? 48 89 78 ? 48 83 C4 ? 5F C3 CC CC CC CC CC 48 89 5C 24 ? 56
 

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.


можешь помочь , я пытаюсь получить user_cmd через 5 индекс и у меня крашит на sequence_number с ошибкой что он выдает нулевые значения


Код:
Expand Collapse Copy
    c_user_cmd* get_user_cmd()
    {
        if (!local_player_controller) {
            console->log(console->log_type::log_error, "local_player_controller non found");
            return nullptr;
        }

        using fn_get_command_index = void* (__fastcall*)(void*, int*);
        static fn_get_command_index get_command_index = reinterpret_cast<fn_get_command_index>(pattern->find("client.dll", "48 83 EC ? 4C 8B 0D ? ? ? ? 4C 8B DA"));

        if (!get_command_index) {
            console->log(console->log_type::log_error, "get_command_index non found");
            return nullptr;
        }

        int index = 0;
        get_command_index(local_player_controller, &index);
        int command_index = index - 1;

        if (command_index == -1)
            command_index = 0xFFFFFFFF;

        using fn_get_user_cmd_base = void* (__fastcall*)(void*, int);
        static fn_get_user_cmd_base get_user_cmd_base = reinterpret_cast<fn_get_user_cmd_base>(pattern->find("client.dll", "48 89 4C 24 ? 41 56 41 57"));

        if (!get_user_cmd_base) {
            console->log(console->log_type::log_error, "get_user_cmd_base non found");
            return nullptr;
        }

        static void* off_181BBC948 = reinterpret_cast<void**>(pattern->find("client.dll", "48 8B 0D ? ? ? ? E8 ? ? ? ? 49 8B CC"));

        if (!off_181BBC948) {
            console->log(console->log_type::log_error, "off_181BBC948 non found");
            return nullptr;
        }

        void* user_cmd_base = get_user_cmd_base(off_181BBC948, command_index);
        if (!user_cmd_base) {
            console->log(console->log_type::log_error, "user_cmd_base non found");
            return nullptr;
        }

        using fn_get_user_cmd = c_user_cmd * (__fastcall*)(void*, uint32_t);
        static fn_get_user_cmd get_user_cmd = reinterpret_cast<fn_get_user_cmd>(pattern->find("client.dll", "40 53 48 83 EC ? 8B DA E8 ? ? ? ? 4C 8B C0"));

        if (!get_user_cmd) {
            console->log(console->log_type::log_error, "get_user_cmd non found");
            return nullptr;
        }
        unsigned int sequence_number = *reinterpret_cast<DWORD*>(reinterpret_cast<uintptr_t>(user_cmd_base) + 22952);
        return get_user_cmd(local_player_controller, sequence_number);
    }


111янный.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.


41 56 41 57 48 83 EC ? 48 8D 54 24 @client.dll
все что тебе нужно это вызвать её(структуру к не приложу но твоя задача сделать так чтобы структура содержала sequence_number(0x59A8) и user_cmd_t m_cmds[ 150 ] и потом также через m_cmds вгетать уже current_cmd

C++:
Expand Collapse Copy
 ALWAYS_INLINE user_cmd_t* user_cmd_manager_t::get_user_cmd( ) {
     return &m_cmds[ m_sequence_number % valve::k_mp_backup ];
}
 
Назад
Сверху Снизу