Вопрос Как работает радар ?

На самом деле я Zodiak
Участник
Статус
Оффлайн
Регистрация
22 Дек 2020
Сообщения
1,019
Реакции[?]
181
Поинты[?]
70K
Как проецировать на радар игроков? Кастом радар имеется в виду, не Ксго
 
кто читает тот умрет
Участник
Статус
Оффлайн
Регистрация
29 Июл 2019
Сообщения
696
Реакции[?]
540
Поинты[?]
153K
А как он может работать? Получил позицию врага и отрисовал что угодно где тебе угодно, офк соблюдая масштабы и еблю с 2д/3д координатами
 
На самом деле я Zodiak
Участник
Статус
Оффлайн
Регистрация
22 Дек 2020
Сообщения
1,019
Реакции[?]
181
Поинты[?]
70K
А как он может работать? Получил позицию врага и отрисовал что угодно где тебе угодно, офк соблюдая масштабы и еблю с 2д/3д координатами
заебись спасибо :roflanBuldiga: пойду получупозицию врага и нарисую треугольник в правом нижнем углу экрана
 
кто читает тот умрет
Участник
Статус
Оффлайн
Регистрация
29 Июл 2019
Сообщения
696
Реакции[?]
540
Поинты[?]
153K
заебись спасибо :roflanBuldiga: пойду получупозицию врага и нарисую треугольник в правом нижнем углу экрана
не ну епта а в чем проблема? рисуешь либо в браузере либо хуяришь свой оверлей, сокет в помощь
 
На самом деле я Zodiak
Участник
Статус
Оффлайн
Регистрация
22 Дек 2020
Сообщения
1,019
Реакции[?]
181
Поинты[?]
70K
не ну епта а в чем проблема? рисуешь либо в браузере либо хуяришь свой оверлей, сокет в помощь
речь не о том как отрендерить вообще что либо..... речь о том как расчитать позицию на радаре имея позицию в мире, или вектор от меня до врага-
 
Pa$$ter
Пользователь
Статус
Оффлайн
Регистрация
9 Июн 2020
Сообщения
241
Реакции[?]
83
Поинты[?]
12K
речь не о том как отрендерить вообще что либо..... речь о том как расчитать позицию на радаре имея позицию в мире, или вектор от меня до врага-
Вот паста из моего экстернала (можно идеально наложить на ингейм радар), логика из ксго но портируется под любую игру:
C++:
Vec3 Origin = Game.Read<Vec3>(LocalPlayer + O.m_vecOrigin);
Vec2 Pivot = Vec2(Origin.x, Origin.y); // 2д позиция локал плеера

auto CAngles = Game.Read<Vec3>(ClientState + O.dwClientState_ViewAngles); // Угол локал плеера

for (int i = 0; i < 64; i++)
{
    Vec2 Difference = Pivot - Vec2(RadarPositions[i].x, RadarPositions[i].y); // Разница между позицией локал и таргет игрока.
    float Length = VecLength(Difference); // Теорема пифагора $$$
    Length *= HConfig->flRadarZoom; // Скейл под размер радара

    if (Length > Size / 2) Length = Size / 2; // Кламп чтобы за пределы радара не вылазили точки

    Vec3 BestAngle = CalcBestAngle(Origin, RadarPositions[i]); // Находим угол между нами и противником
    Vec3 AngleDifference = ClampAngles(CAngles - BestAngle); // Находим разницу между нашим углом и углом между противников

    // Тригонометрическая окружность.
    Vec2 Pos = RadarCenter + Vec2(sinf(AngleDifference.y * 0.017453292519) * Length, -cosf(AngleDifference.y * 0.017453292519) * Length);
}
tldr найти угол между тобой и энеми и длину на которую он удалён, и по формуле тригонометрической окружности отрендерить вокруг центральной точки радара.
 
Сверху Снизу