Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

Вопрос Get_eye_pos возвращает нули либо странные значения

  • Автор темы Автор темы Divviner
  • Дата начала Дата начала
iq abuser
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
16 Апр 2021
Сообщения
662
Реакции
140
данный код возвращает либо 0, 0, 0 либо невьебические значения с минусом, в чем может быть проблема?
C++:
Expand Collapse Copy
    math::vec3_t get_eye_position()
    {
        math::vec3_t position = { };
        using get_eye_position = void* ( __fastcall* ) ( c_base_player_pawn*, math::vec3_t& );

        ( *reinterpret_cast< get_eye_position** >( this ) )[ 155 ]( this, position );

        return position;
    };
 
Сложно сказать..может индексы устарели, попробуй 156 157
+ Проверь на всякий пожарный какой pointer в this ты передаёшь

Вот нашел на github'e, попробуй так гетнуть тут другой calling convention
ну или если твой способ до этого работал а щас резко перестал значит индекс сто проц

Код:
Expand Collapse Copy
template< typename T >
__forceinline T get_method( void *thisptr, uintptr_t idx )
{
    return reinterpret_cast< T >(( *static_cast< uintptr_t ** >( thisptr ))[ idx ] );
}

Vector get_eye_position( )
{
    Vector tmp;
    using get_eye_position_t = void( __thiscall * )( void *, Vector& );
    utils::get_method< get_eye_position_t >( this, 155 )( this, tmp );
    return tmp;
}
 
Сложно сказать..может индексы устарели, попробуй 156 157
+ Проверь на всякий пожарный какой pointer в this ты передаёшь

Вот нашел на github'e, попробуй так гетнуть тут другой calling convention
ну или если твой способ до этого работал а щас резко перестал значит индекс сто проц

Код:
Expand Collapse Copy
template< typename T >
__forceinline T get_method( void *thisptr, uintptr_t idx )
{
    return reinterpret_cast< T >(( *static_cast< uintptr_t ** >( thisptr ))[ idx ] );
}

Vector get_eye_position( )
{
    Vector tmp;
    using get_eye_position_t = void( __thiscall * )( void *, Vector& );
    utils::get_method< get_eye_position_t >( this, 155 )( this, tmp );
    return tmp;
}
157 пробовал, не работает, сейчас проверю твой вариант, не знаешь кстати что с гловом?
udp на другом сурсе гет ай пос раньше работал с 154 индексом, на уц писали, что сейчас 155 работает
 
Последнее редактирование:
157 пробовал, не работает, сейчас проверю твой вариант, не знаешь кстати что с гловом?
udp на другом сурсе раньше работал с 154 индексом, на уц писали, что сейчас 155 работает
покажи ему код глова
 
Сложно сказать..может индексы устарели, попробуй 156 157
+ Проверь на всякий пожарный какой pointer в this ты передаёшь

Вот нашел на github'e, попробуй так гетнуть тут другой calling convention
ну или если твой способ до этого работал а щас резко перестал значит индекс сто проц

Код:
Expand Collapse Copy
template< typename T >
__forceinline T get_method( void *thisptr, uintptr_t idx )
{
    return reinterpret_cast< T >(( *static_cast< uintptr_t ** >( thisptr ))[ idx ] );
}

Vector get_eye_position( )
{
    Vector tmp;
    using get_eye_position_t = void( __thiscall * )( void *, Vector& );
    utils::get_method< get_eye_position_t >( this, 155 )( this, tmp );
    return tmp;
}
то же самое получается
1680862826249.png

(там где shooted - невьебическое значение и после этого краш)
upd пробовал еще такой метод - то же самое получается
C++:
Expand Collapse Copy
    math::vec3_t get_eye_position()
    {
        return this->game_scene_node()->vec_origin() + this->m_view_offset();
    };
 
Назад
Сверху Снизу