• Я зарабатываю 100 000 RUB / месяц на этом сайте!

    А знаешь как? Я всего-лишь публикую (создаю темы), а админ мне платит. Трачу деньги на мороженое, робуксы и сервера в Minecraft. А ещё на паль из Китая. 

    Хочешь так же? Пиши и узнавай условия: https://t.me/alex_redact
    Реклама: https://t.me/yougame_official

Исходник Molotov polygon

  • Автор темы Автор темы Fuhrer1
  • Дата начала Дата начала
Участник
Участник
Статус
Оффлайн
Регистрация
2 Фев 2020
Сообщения
819
Реакции
378
Код:
Expand Collapse Copy
static const auto flame_polygon = [] {
            std::array<vec3_t, 3> points;
            for (std::size_t i = 0; i < points.size(); ++i) {
                points[i] = vec3_t{ 60.0f * std::cos(DEG2RAD(i * (360.0f / points.size()))),
                                    60.0f * std::sin(DEG2RAD(i * (360.0f / points.size()))),
                                    0.0f };
            }
            return points;
        }();

        std::vector<vec3_t> points;

        for (int i = 0; i <= entity->fire_count(); i++)
            points.push_back(entity->origin() + vec3_t(entity->fire_x_delta()[i], entity->fire_y_delta()[i], entity->fire_z_delta()[i]));

        std::vector<ImVec2> screen_points;

        for (const auto& pos : points) {
            for (const auto& point : flame_polygon) {
                ImVec2 screen;

                if (math::world_to_screen(pos + point, screen))
                    screen_points.push_back(screen);
            }
        }       
        
        if (!screen_points.empty())
            render::polygon_filled(convex_hull(screen_points), ImColor(255, 0, 0, 150));
netvars
Код:
Expand Collapse Copy
auto& fire_x_delta()
    {
        return netvar_manager::get_netvar< int[] >("DT_Inferno", "m_fireXDelta", this);
    }
    
    auto& fire_y_delta()
    {
        return netvar_manager::get_netvar< int[] >("DT_Inferno", "m_fireYDelta", this);
    }
    
    auto& fire_z_delta()
    {
        return netvar_manager::get_netvar< int[] >("DT_Inferno", "m_fireZDelta", this);
    }
    
    auto& fire_count()
    {
        return netvar_manager::get_netvar< int >("DT_Inferno", "m_fireCount", this);
    }
ss:
1628939690042.png

ну и что бы вы смогли использовать код вам нужен будет правильный
Пожалуйста, авторизуйтесь для просмотра ссылки.
, его я вам не дам, сами сделаете
 
Код:
Expand Collapse Copy
static const auto flame_polygon = [] {
            std::array<vec3_t, 3> points;
            for (std::size_t i = 0; i < points.size(); ++i) {
                points[i] = vec3_t{ 60.0f * std::cos(DEG2RAD(i * (360.0f / points.size()))),
                                    60.0f * std::sin(DEG2RAD(i * (360.0f / points.size()))),
                                    0.0f };
            }
            return points;
        }();

        std::vector<vec3_t> points;

        for (int i = 0; i <= entity->fire_count(); i++)
            points.push_back(entity->origin() + vec3_t(entity->fire_x_delta()[i], entity->fire_y_delta()[i], entity->fire_z_delta()[i]));

        std::vector<ImVec2> screen_points;

        for (const auto& pos : points) {
            for (const auto& point : flame_polygon) {
                ImVec2 screen;

                if (math::world_to_screen(pos + point, screen))
                    screen_points.push_back(screen);
            }
        }      
       
        if (!screen_points.empty())
            render::polygon_filled(convex_hull(screen_points), ImColor(255, 0, 0, 150));
netvars
Код:
Expand Collapse Copy
auto& fire_x_delta()
    {
        return netvar_manager::get_netvar< int[] >("DT_Inferno", "m_fireXDelta", this);
    }
   
    auto& fire_y_delta()
    {
        return netvar_manager::get_netvar< int[] >("DT_Inferno", "m_fireYDelta", this);
    }
   
    auto& fire_z_delta()
    {
        return netvar_manager::get_netvar< int[] >("DT_Inferno", "m_fireZDelta", this);
    }
   
    auto& fire_count()
    {
        return netvar_manager::get_netvar< int >("DT_Inferno", "m_fireCount", this);
    }
ss:Посмотреть вложение 166172
ну и что бы вы смогли использовать код вам нужен будет правильный
Пожалуйста, авторизуйтесь для просмотра ссылки.
, его я вам не дам, сами сделаете
только вчера это сделал :CoolCat:
 
  • Ахаха
Реакции: abbc
А не легче было сразу так
C++:
Expand Collapse Copy
        int* m_fireXDelta = reinterpret_cast<int*>((DWORD)inferno + 0x9E4);
        int* m_fireYDelta = reinterpret_cast<int*>((DWORD)inferno + 0xB74);
        int* m_fireZDelta = reinterpret_cast<int*>((DWORD)inferno + 0xD04);
        int m_fireCount = *reinterpret_cast<int*>((DWORD)inferno + 0x13A8);
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Для тех кто не может найти convexhull:
Пожалуйста, авторизуйтесь для просмотра ссылки.
(no ad)
 
C++:
Expand Collapse Copy
int orientation(ImVec2 p, ImVec2 q, ImVec2 r)
{
    int val = (q.y - p.y) * (r.x - q.x) -
        (q.x - p.x) * (r.y - q.y);

    if (val == 0) return 0;
    return (val > 0) ? 1 : 2;
}

std::vector<ImVec2> convexHull(std::vector<ImVec2> points, int n)
{
    std::vector<ImVec2> hull;

    if (n < 3) return hull;

    int l = 0;
    for (int i = 1; i < n; i++)
        if (points[i].x < points[l].x)
            l = i;
    int p = l, q;
    do
    {
        hull.push_back(points[p]);

        q = (p + 1) % n;
        for (int i = 0; i < n; i++)
        {
            if (orientation(points[p], points[i], points[q]) == 2)
                q = i;
        }
        p = q;

    } while (p != l);

    return hull;
}

Usage


C++:
Expand Collapse Copy
auto hull = convexHull(screen_points, screen_points.size());
list->AddConvexPolyFilled(hull.data(), hull.size(), ImColor(1.f, 0.f, 0.f, 0.5f));
 
А не легче было сразу так
C++:
Expand Collapse Copy
        int* m_fireXDelta = reinterpret_cast<int*>((DWORD)inferno + 0x9E4);
        int* m_fireYDelta = reinterpret_cast<int*>((DWORD)inferno + 0xB74);
        int* m_fireZDelta = reinterpret_cast<int*>((DWORD)inferno + 0xD04);
        int m_fireCount = *reinterpret_cast<int*>((DWORD)inferno + 0x13A8);
нафиг надо что бы функция работала вечно! пусть лучше оффсеты отвалятся с большим апдейтом...
 
Последнее редактирование:
А не легче было сразу так
C++:
Expand Collapse Copy
        int* m_fireXDelta = reinterpret_cast<int*>((DWORD)inferno + 0x9E4);
        int* m_fireYDelta = reinterpret_cast<int*>((DWORD)inferno + 0xB74);
        int* m_fireZDelta = reinterpret_cast<int*>((DWORD)inferno + 0xD04);
        int m_fireCount = *reinterpret_cast<int*>((DWORD)inferno + 0x13A8);
а почему у тебя координаты int, а не float?)
 
нафиг надо что бы функция работала вечно! пусть лучше оффсеты отвалятся с большим апдейтом...
чел... они у меня в кске 18 года и на нью работают, не думаю что они уже вообще отвалятся...
 
convex hull for surface render?
 
Последнее редактирование:
что? это математическая функция, она получает крайние точки, под сюрфейс абсолютно также делается
imvec -> vertex
в классе vertex нету x, y.
пробывать я не стал переделывать.
у меня без convexhull соединяет все точки полигоном
 
imvec -> vertex
в классе vertex нету x, y.
пробывать я не стал переделывать.
у меня без convexhull соединяет все точки полигоном
Код:
Expand Collapse Copy
    std::vector<Vertex_t> vertices;

    for (int i = 0; i < points.size(); i++)
    {  
        auto point = points.at(i);

        vertices.emplace_back(Vertex_t(Vector2D(point.x, point.y)));
    }

    m_surface()->DrawSetColor(color);
    m_surface()->DrawTexturedPolygon(points, vertices.data());
использование вертексов есть даже в лв
 
this molotov polygon or something something called was inaccurate except u really want to get the hurt event trigger vector
every infernoRadius = 30.0f
just loop this with huge steps and use these points for accurate range.
I didn't really understand why you even bother "event trigger vector" ??
molotov.png

here is an accurate molotov range.
 

Вложения

  • molotov.png
    molotov.png
    731.4 KB · Просмотры: 120
Назад
Сверху Снизу