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

Rafaelofff

Потрачен
120
5
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Спасибо большое

Спасибо большое
Я это уже видел, подумал не совсем то, вообщем если CPed это локальный игрок, то остальные игроки это какой файл? Хочу узнавать координаты игроков

Если не трудно, объясни что сделать?
1644265897472.png

 
Последнее редактирование:
  • Злость
Реакции: Dark_Knight

Rafaelofff

Потрачен
120
5
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Спасибо большое


Я это уже видел, подумал не совсем то, вообщем если CPed это локальный игрок, то остальные игроки это какой файл? Хочу узнавать координаты игроков

Если не трудно, объясни что сделать?
Посмотреть вложение 135414
разобрался, как сделать так чтоб прицел был на постоянке показан?
 

Dark_Knight

Me, me and me.
Друг
4,081
2,099
разобрался, как сделать так чтоб прицел был на постоянке показан?
1. Рисовать свой прицел.
2. Установить состояние прицела на отрисовку и заблокировать запись его состояния.
3. Мы можем показать, как правильно ходить в туалет. Куда именно ты будешь ходить ты должен сам определится.
 
  • Нравится
Реакции: AnWu и THERION

[w0te]

Потрачен
771
492
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Парни, есть fmovespeed (onfoot), как узнать его?
1:
float speedX = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fMoveSpeed[0];
float speedY = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fMoveSpeed[1];
float speedZ = SF->getSAMP()->getPlayers()->pLocalPlayer->onFootData.fMoveSpeed[2];
( Это если у тебя .sf плагины )
UPD:
@Rafaelofff
Могу для .ASI посоветовать API, он почти как у .SF, там даже пример имгуя есть, тебе остаётся только открыть .sln и выбрать Release x86
API -> https://github.com/DpO4uLa/SAMP_API
Могу примеры ещё накидать тебе.
 
Последнее редактирование:
  • Bug
Реакции: kin4stat

Musaigen

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

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
24
подскажите как я могу зарегистрировать команду, пытался найти гайды но находил только для sampfuncs плагинов. Как это можно сделать в формате asi
 

Rafaelofff

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

[w0te]

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

legendabrn

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

[w0te]

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