Другое С/С++ Вопрос - Ответ

Musaigen

abobusnik
Проверенный
1,582
1,301
Здравствуйте, всем. Хукую вращение камеры во время прицеливания, но в результате мой прицел смещается вправо по яву и вверх по питчу. Предполагаю что неверно считаю позицию прицела.

C++:
using o_camera_process_t = void(__thiscall*)(void* cam, vec3d* cam_pos, float x, float y, float z);
inline o_camera_process_t o_camera_process{};

#define HOOK( target, hook, original ) \
    if ( MH_CreateHook( sdk::address_t{ target }.as< LPVOID >( ), \
        reinterpret_cast< LPVOID >( &hook ), reinterpret_cast< LPVOID* >( &original ) ) != MH_OK ) \
        THROW_IF_DBG( "can't hook " #hook "." ) \
       
// хукую вращение камеры во время прицеливания
HOOK((void*)0x00521500, hooks::camera_process, hooks::o_camera_process);

void __fastcall camera_process(void* cam, void* unused, vec3d* cam_pos, float x, float y, float z) {
   
    // cam_pos использую для получения позиции камеры
    // стоит знать что это не 0x46F730 который из собейта
    // 0x46F730 > cam_pos
   
    vec3d world_coords{ 1,2,3 }; // любые координаты чтобы направить на нее прицел

    const auto crosshair_pos = (float*)0xB6EC10;
    const auto mult = tan(TheCamera.FindCamFOV() * 0.5f * 0.017453292f);
       
    auto delta_vec = *cam_pos - world_coords;
    float f_x = 3.14f - atan2(1.0f, mult * (crosshair_pos[1] - 0.5f + crosshair_pos[1] - 0.5f));

    float yaw = atan2f(delta_vec.y, -delta_vec.x) - 3.14f / 2;
    *(float*)0xB6F258 = -(yaw - f_x);

    o_camera_process(cam, cam_pos, x, y, z);
}
Судя по коду, ты неправильно узнаёшь направление (delta_vec), нужно от координат, куда направить игрока, отнимать координаты камеры.
 

S0Ft1k1337

Новичок
11
3
нужно от координат, куда направить игрока, отнимать координаты камеры.
Не работает. delta_vec правильная. Моя камера устанавливается в середине экрана относительно прицела, и из-за этого мой прицел съезжает вправо(т. к. в игре он находится не в центре экрана)
 

umbrella saxon

Участник
45
20
подскажите как я могу зарегистрировать команду, пытался найти гайды но находил только для sampfuncs плагинов. Как это можно сделать в формате asi
 

Rafaelofff

Потрачен
120
5
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всем привет, есть скорость машины - pVehicle->m_vecMoveSpeed, и мне нужно для каршота когда я зажимаю шифт, она прибавляла скорость, т.к если сразу с разогнаться 100 км/ч до 300 км/ч, то кикнет, по этому мне нужно чтобы машина по немногу ускорялась, допустим 50 км в секунду, не знаю как сделать.
 

[w0te]

Потрачен
773
488
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всем привет, есть скорость машины - pVehicle->m_vecMoveSpeed, и мне нужно для каршота когда я зажимаю шифт, она прибавляла скорость, т.к если сразу с разогнаться 100 км/ч до 300 км/ч, то кикнет, по этому мне нужно чтобы машина по немногу ускорялась, допустим 50 км в секунду, не знаю как сделать.
Получи текущею скорость и прибавляй к ней свою скорость
 

legendabrn

Известный
Проверенный
122
172
Всем привет, есть скорость машины - pVehicle->m_vecMoveSpeed, и мне нужно для каршота когда я зажимаю шифт, она прибавляла скорость, т.к если сразу с разогнаться 100 км/ч до 300 км/ч, то кикнет, по этому мне нужно чтобы машина по немногу ускорялась, допустим 50 км в секунду, не знаю как сделать.
на данный момент используя с++ это реализовать нельзя, я бы сказал нереально. попробуй прикрутить джаваскрипт
 

[w0te]

Потрачен
773
488
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
  • Bug
Реакции: legendabrn

Rafaelofff

Потрачен
120
5
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Мы любим здесь Богданов всех. Мы не любим, когда за Богдана надо делать то что он сам хочет
Нет, просто не шарю как можно сделать, но впринципе допёр как можно

Как найти координаты человека по его id? Plugin sdk

Получи текущею скорость и прибавляй к ней свою скорость
Смотри, при зажатии W у тебя ставиться скорость допустим 50 км/ч и она статичная, то есть не изменяется, т.e если поставить на W умножение и.т.д, то толку 0, и по этому умножать или прибавлять текущую скорость не получиться, потому что она статичная.
 
Последнее редактирование:

sc6ut

неизвестный
Модератор
382
1,075
Нет, просто не шарю как можно сделать, но впринципе допёр как можно

Как найти координаты человека по его id? Plugin sdk


Смотри, при зажатии W у тебя ставиться скорость допустим 50 км/ч и она статичная, то есть не изменяется, т.e если поставить на W умножение и.т.д, то толку 0, и по этому умножать или прибавлять текущую скорость не получиться, потому что она статичная.
смотри, ты не знаешь язык, ты не знаешь как на нем писать, ты не знаешь как на нем читать и ты пытаешься с нами на нем говорить. у тебя что-то получится? нет. вот с языками программирования тоже самое. выучи базу, пойми как устроено то апи, которое ты собираешься юзать, пойми задачу и разложи её на несколько этапов и реализуй, постепенно проверяю поэтапный результат. другого выхода нет, ты не можешь вечно спрашивать на форуме, вернее можешь, но мне еще сообщений 20 твоих назад хотелось послать тебя куда подальше, поэтому делай выводы.
 
  • Bug
Реакции: Musaigen