Исходник ESP Preview

              ru p2cs > all                      
Разработчик
Статус
Оффлайн
Регистрация
19 Авг 2016
Сообщения
1,579
Реакции[?]
1,963
Поинты[?]
133K
после того как я увидел в какой то пасте на юц ужасный ESP Preview я решил сделать свой, который намного лучше сделан.
Код:
enum esp_info_position
{
    RIGHT,
    CENTER_DOWN,
    CENTER_UP
};

struct esp_info_s
{
   esp_info_s(const std::string name, const Color color, const int position = RIGHT)
   {
       f_name = name; f_color = color; f_position = position;
   }
   std::string f_name;
   int f_position;
   Color f_color;
};

void EspPreview()
{
    static std::vector<esp_info_s> info;
    static bool enabled = true;
    ImGui::SetNextWindowSize(ImVec2(280, 430));
    ImGui::Begin("ESP Preview", &enabled, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_ShowBorders);
    {
        auto cur_window = ImGui::GetCurrentWindow();
        ImVec2 w_pos = cur_window->Pos;
        if (Cheat::Visuals.BoxESP)
        {
            if (Cheat::Visuals.BoxESPType == 0) // outline
            {
                cur_window->DrawList->AddRect(ImVec2(w_pos.x + 40, w_pos.y + 60), ImVec2(w_pos.x + 200, w_pos.y + 360), Color(Cheat::EspColor[0] * 255, Cheat::EspColor[1] * 255, Cheat::EspColor[2] * 255).GetU32());
            }
            else if (Cheat::Visuals.BoxESPType == 1) // corners
            {
            }
            else // 3d box // #TODO: proper drawing for 3d box l0l
            {
            }
        }
        if (Cheat::Visuals.Info.Health)
        {
            cur_window->DrawList->AddRectFilled(ImVec2(w_pos.x + 34, w_pos.y + 60), ImVec2(w_pos.x + 37, w_pos.y + 360), Color::Green().GetU32());
        }
        if (Cheat::Visuals.Info.Name)
            info.emplace_back(esp_info_s("name", Color::White(), CENTER_UP));
        if (Cheat::Visuals.Info.Weapon)
            info.emplace_back(esp_info_s("ak-47", Color::White(), CENTER_DOWN));
        if (Cheat::Visuals.Info.Misc)
            info.emplace_back(esp_info_s("hk", Color::White(), RIGHT));
        for (auto render : info)
        {
            auto text_size = ImGui::CalcTextSize(render.f_name.c_str());
            auto pos = ImVec2(w_pos.x + 205, w_pos.y + 60);
            if (render.f_position == CENTER_DOWN)
            {
                pos = ImVec2(w_pos.x + (240 / 2) - text_size.x / 2, pos.y + 315 - text_size.y);
            }
            else if (render.f_position == CENTER_UP)
            {
                pos = ImVec2(w_pos.x + (240 / 2) - text_size.x / 2, pos.y - 5 - text_size.y);
            }
            cur_window->DrawList->AddText(pos, render.f_color.GetU32(), render.f_name.c_str());
        }
    }
    ImGui::End();
    info.clear();
}
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
4 Июн 2018
Сообщения
14
Реакции[?]
4
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ляяя. даже без картинки. так не интересно.
 
              ru p2cs > all                      
Разработчик
Статус
Оффлайн
Регистрация
19 Авг 2016
Сообщения
1,579
Реакции[?]
1,963
Поинты[?]
133K
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Участник
Статус
Оффлайн
Регистрация
20 Апр 2017
Сообщения
1,298
Реакции[?]
377
Поинты[?]
2K
Такой превью можно минимум из 4 исходников паблик выдрать, я думал шо интересного, у нас как обычно дербаним исходники на части. ))
 
Забаненный
Статус
Оффлайн
Регистрация
13 Июл 2017
Сообщения
218
Реакции[?]
116
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
2 минуты для написания данного кода макс. + Если в софте присутствует кастомизация позиции бара/name/прочей херни то тут для полной удобности лучше пропорцию высчитать бокса которой ты в реале рендеришь. А изображение любой может впилить (DrawList->AddImage(ImVec2 стартовая позиция и ImVec2 конечной ну и дальше ещё какая то залупа + IDirect3DTexture9)).
Самый топ на мой взгляд данный вариант :D
 
              ru p2cs > all                      
Разработчик
Статус
Оффлайн
Регистрация
19 Авг 2016
Сообщения
1,579
Реакции[?]
1,963
Поинты[?]
133K
Такой превью можно минимум из 4 исходников паблик выдрать, я думал шо интересного, у нас как обычно дербаним исходники на части. ))
ты там отьехал чтоли? где ты этот код в исходниках видел если я его написал за 3 минуты без каких-либо подсказок ибо это изично.
 
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
Участник
Статус
Оффлайн
Регистрация
20 Апр 2017
Сообщения
1,298
Реакции[?]
377
Поинты[?]
2K
ты там отьехал чтоли? где ты этот код в исходниках видел если я его написал за 3 минуты без каких-либо подсказок ибо это изично.
При чем тут код, я говорю про конечный сам визуальный вариант.

тут и писать нехуй, напиши 3D превью, тогда возможно это интересно будет.
 
              ru p2cs > all                      
Разработчик
Статус
Оффлайн
Регистрация
19 Авг 2016
Сообщения
1,579
Реакции[?]
1,963
Поинты[?]
133K
При чем тут код, я говорю про конечный сам визуальный вариант.

тут и писать нехуй, напиши 3D превью, тогда возможно это интересно будет.
я написал просто как дисс на пасту "tragic" в которой все сделано вот так:

Код:
Code:
ImGui::Text("                        esp preview");
...
if (g_Options.Visuals.Weapon) {
							//ImGui::SameLine(116);
							ImGui::Text("");
							ImGui::Text("");
							ImGui::Text("");
							ImGui::Text("");
							ImGui::Text("");
							ImGui::Spacing();
							ImGui::Spacing();
							ImGui::Spacing();
							ImGui::Spacing();
							ImGui::Spacing();
							ImGui::Spacing();
							ImGui::Spacing();
							ImGui::Spacing();
							ImGui::Spacing();
							ImGui::Spacing();
							ImGui::Spacing();
							ImGui::Text("         weapon");
							ImGui::PushStyleColor(ImGuiCol_Text, ImColor(255, 255, 255, 255));
 
Забаненный
Статус
Оффлайн
Регистрация
13 Июл 2017
Сообщения
218
Реакции[?]
116
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
я написал просто как дисс на пасту "tragic" в которой все сделано вот так:

Код:
Code:
ImGui::Text("                        esp preview");
...
if (g_Options.Visuals.Weapon) {
                            //ImGui::SameLine(116);
                            ImGui::Text("");
                            ImGui::Text("");
                            ImGui::Text("");
                            ImGui::Text("");
                            ImGui::Text("");
                            ImGui::Spacing();
                            ImGui::Spacing();
                            ImGui::Spacing();
                            ImGui::Spacing();
                            ImGui::Spacing();
                            ImGui::Spacing();
                            ImGui::Spacing();
                            ImGui::Spacing();
                            ImGui::Spacing();
                            ImGui::Spacing();
                            ImGui::Spacing();
                            ImGui::Text("         weapon");
                            ImGui::PushStyleColor(ImGuiCol_Text, ImColor(255, 255, 255, 255));
Хоспади памилуй кто та ещё так делает? Кажется мои глаза блть лопнули.....
 
Пользователь
Статус
Оффлайн
Регистрация
28 Апр 2018
Сообщения
134
Реакции[?]
35
Поинты[?]
0
мне кажется так лучше без гейского кода
Код:
void Menu::RenderPreview()
{
if(ImGui::Begin("##EspPreview", &_visible, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoMove))
{
ImDrawList* draw = ImGui::GetWindowDrawList();
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1, 1, 1, 1));
ImGui::BeginGroupBox("esp preview");
{   
int alpha = 0;
static const char* name = "";
ImGui::Dummy();
ImGui::SameLine();   
if (g_Options.esp_player_name)
name = "name";
ImGui::Text(name);
ImVec2 pos = ImGui::GetCursorScreenPos();
ImGui::Spacing();
if (g_Options.esp_player_health)
alpha ? 255 : 0;
draw->AddRect(ImVec2(pos.x, pos.y), ImVec2(pos.x + 2, pos.y + 175),ImColor(0, 255, 0, alpha), 0.0f, 15, 1.f);
ImGui::SameLine();
if (g_Options.esp_player_boxes) {
ImVec2 pos1 = ImGui::GetCursorScreenPos();
draw->AddRect(ImVec2(pos1.x, pos1.y), ImVec2(pos1.x + 100, pos1.y + 175), ImColor(Color::ToImColor(g_Options. color_esp_enemy_visible), 0.0f, 15, 1.f);
}
if (g_Options.esp_player_weapons) {
ImGui::SameLine();
ImGui::Text("weapon");
}
if(g_Options.esp_player_armor) {
ImVec2 pos2 = ImGui::GetCursorScreenPos();
draw->AddRect(ImVec2(pos2.x, pos2.y), ImVec2(pos2.x - 2, pos2.y + 175),ImColor(0,0,255,255), 0.0f, 15.f,1.f);
}                   
}
ImGui::EndGroupBox();
ImGui::PopStyleColor();
}
ImGui::End();
}
 
♥ Web-Developer ♥
Начинающий
Статус
Оффлайн
Регистрация
23 Июн 2018
Сообщения
21
Реакции[?]
22
Поинты[?]
0
мне кажется так лучше без гейского кода
Код:
void Menu::RenderPreview()
{
if(ImGui::Begin("##EspPreview", &_visible, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoMove))
{
ImDrawList* draw = ImGui::GetWindowDrawList();
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1, 1, 1, 1));
ImGui::BeginGroupBox("esp preview");
{  
int alpha = 0;
static const char* name = "";
ImGui::Dummy();
ImGui::SameLine();  
if (g_Options.esp_player_name)
name = "name";
ImGui::Text(name);
ImVec2 pos = ImGui::GetCursorScreenPos();
ImGui::Spacing();
if (g_Options.esp_player_health)
alpha ? 255 : 0;
draw->AddRect(ImVec2(pos.x, pos.y), ImVec2(pos.x + 2, pos.y + 175),ImColor(0, 255, 0, alpha), 0.0f, 15, 1.f);
ImGui::SameLine();
if (g_Options.esp_player_boxes) {
ImVec2 pos1 = ImGui::GetCursorScreenPos();
draw->AddRect(ImVec2(pos1.x, pos1.y), ImVec2(pos1.x + 100, pos1.y + 175), ImColor(Color::ToImColor(g_Options. color_esp_enemy_visible), 0.0f, 15, 1.f);
}
if (g_Options.esp_player_weapons) {
ImGui::SameLine();
ImGui::Text("weapon");
}
if(g_Options.esp_player_armor) {
ImVec2 pos2 = ImGui::GetCursorScreenPos();
draw->AddRect(ImVec2(pos2.x, pos2.y), ImVec2(pos2.x - 2, pos2.y + 175),ImColor(0,0,255,255), 0.0f, 15.f,1.f);
}                  
}
ImGui::EndGroupBox();
ImGui::PopStyleColor();
}
ImGui::End();
}
Да реализовать по разному можно
 
Сверху Снизу