-
Автор темы
- #1
C++:
#include <ShlObj_core.h>
#include <unordered_map>
#include "menu.h"
#include "../ImGui/code_editor.h"
#include "../constchars.h"
#include "../cheats/misc/logs.h"
#include "../ImGui/checkmark.h"
#include "../ImGui/MenuControls.h"
#include "../BASS/API.h"
#include "../BASS/bass.h"
#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING
#define ALPHA (ImGuiColorEditFlags_AlphaPreview | ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoLabel | ImGuiColorEditFlags_AlphaBar| ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_Float)
#define NOALPHA (ImGuiColorEditFlags_NoTooltip | ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoLabel | ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_InputRGB | ImGuiColorEditFlags_Float)
std::vector <std::string> files;
std::vector <std::string> scripts;
std::string editing_script;
auto selected_script = 0;
auto loaded_editing_script = false;
static auto menu_setupped = false;
static auto should_update = true;
IDirect3DTexture9* all_skins[36];
std::string get_wep(int id, int custom_index = -1, bool knife = true)
{
if (custom_index > -1)
{
if (knife)
{
switch (custom_index)
{
case 0: return ("weapon_knife");
case 1: return ("weapon_bayonet");
case 2: return ("weapon_knife_css");
case 3: return ("weapon_knife_skeleton");
case 4: return ("weapon_knife_outdoor");
case 5: return ("weapon_knife_cord");
case 6: return ("weapon_knife_canis");
case 7: return ("weapon_knife_flip");
case 8: return ("weapon_knife_gut");
case 9: return ("weapon_knife_karambit");
case 10: return ("weapon_knife_m9_bayonet");
case 11: return ("weapon_knife_tactical");
case 12: return ("weapon_knife_falchion");
case 13: return ("weapon_knife_survival_bowie");
case 14: return ("weapon_knife_butterfly");
case 15: return ("weapon_knife_push");
case 16: return ("weapon_knife_ursus");
case 17: return ("weapon_knife_gypsy_jackknife");
case 18: return ("weapon_knife_stiletto");
case 19: return ("weapon_knife_widowmaker");
}
}
else
{
switch (custom_index)
{
case 0: return ("ct_gloves"); //-V1037
case 1: return ("studded_bloodhound_gloves");
case 2: return ("t_gloves");
case 3: return ("ct_gloves");
case 4: return ("sporty_gloves");
case 5: return ("slick_gloves");
case 6: return ("leather_handwraps");
case 7: return ("motorcycle_gloves");
case 8: return ("specialist_gloves");
case 9: return ("studded_hydra_gloves");
}
}
}
else
{
switch (id)
{
case 0: return ("knife");
case 1: return ("gloves");
case 2: return ("weapon_ak47");
case 3: return ("weapon_aug");
case 4: return ("weapon_awp");
case 5: return ("weapon_cz75a");
case 6: return ("weapon_deagle");
case 7: return ("weapon_elite");
case 8: return ("weapon_famas");
case 9: return ("weapon_fiveseven");
case 10: return ("weapon_g3sg1");
case 11: return ("weapon_galilar");
case 12: return ("weapon_glock");
case 13: return ("weapon_m249");
case 14: return ("weapon_m4a1_silencer");
case 15: return ("weapon_m4a1");
case 16: return ("weapon_mac10");
case 17: return ("weapon_mag7");
case 18: return ("weapon_mp5sd");
case 19: return ("weapon_mp7");
case 20: return ("weapon_mp9");
case 21: return ("weapon_negev");
case 22: return ("weapon_nova");
case 23: return ("weapon_hkp2000");
case 24: return ("weapon_p250");
case 25: return ("weapon_p90");
case 26: return ("weapon_bizon");
case 27: return ("weapon_revolver");
case 28: return ("weapon_sawedoff");
case 29: return ("weapon_scar20");
case 30: return ("weapon_ssg08");
case 31: return ("weapon_sg556");
case 32: return ("weapon_tec9");
case 33: return ("weapon_ump45");
case 34: return ("weapon_usp_silencer");
case 35: return ("weapon_xm1014");
default: return ("unknown");
}
}
}
IDirect3DTexture9* get_skin_preview(const char* weapon_name, const std::string& skin_name, IDirect3DDevice9* device)
{
IDirect3DTexture9* skin_image = nullptr;
std::string vpk_path;
if (strcmp(weapon_name, ("unknown")) && strcmp(weapon_name, ("knife")) && strcmp(weapon_name, ("gloves"))) //-V526
{
if (skin_name.empty() || skin_name == ("default"))
vpk_path = ("resource/flash/econ/weapons/base_weapons/") + std::string(weapon_name) + (".png");
else
vpk_path = ("resource/flash/econ/default_generated/") + std::string(weapon_name) + ("_") + std::string(skin_name) + ("_light_large.png");
}
else
{
if (!strcmp(weapon_name, ("knife")))
vpk_path = ("resource/flash/econ/weapons/base_weapons/weapon_knife.png");
else if (!strcmp(weapon_name, ("gloves")))
vpk_path = ("resource/flash/econ/weapons/base_weapons/ct_gloves.png");
else if (!strcmp(weapon_name, ("unknown")))
vpk_path = ("resource/flash/econ/weapons/base_weapons/weapon_snowball.png");
}
const auto handle = m_basefilesys()->Open(vpk_path.c_str(), ("r"), ("GAME"));
if (handle)
{
int file_len = m_basefilesys()->Size(handle);
char* image = new char[file_len]; //-V121
m_basefilesys()->Read(image, file_len, handle);
m_basefilesys()->Close(handle);
D3DXCreateTextureFromFileInMemory(device, image, file_len, &skin_image);
delete[] image;
}
if (!skin_image)
{
std::string vpk_path;
if (strstr(weapon_name, ("bloodhound")) != NULL || strstr(weapon_name, ("hydra")) != NULL)
vpk_path = ("resource/flash/econ/weapons/base_weapons/ct_gloves.png");
else
vpk_path = ("resource/flash/econ/weapons/base_weapons/") + std::string(weapon_name) + (".png");
const auto handle = m_basefilesys()->Open(vpk_path.c_str(), ("r"), ("GAME"));
if (handle)
{
int file_len = m_basefilesys()->Size(handle);
char* image = new char[file_len]; //-V121
m_basefilesys()->Read(image, file_len, handle);
m_basefilesys()->Close(handle);
D3DXCreateTextureFromFileInMemory(device, image, file_len, &skin_image);
delete[] image;
}
}
return skin_image;
}
void c_menu::menu_setup(ImGuiStyle& style) //-V688
{
}
std::string get_config_dir()
{
std::string folder;
static TCHAR path[MAX_PATH];
if (SUCCEEDED(SHGetFolderPath(NULL, 0x001a, NULL, NULL, path)))
folder = std::string(path) + ("\\Lrimuse.pw\\Configs\\");
CreateDirectory(folder.c_str(), NULL);
return folder;
}
void load_config()
{
if (cfg_manager->files.empty())
return;
cfg_manager->load(cfg_manager->files.at(g_cfg.selected_config), false);
c_lua::get().unload_all_scripts();
for (auto& script : g_cfg.scripts.scripts)
c_lua::get().load_script(c_lua::get().get_script_id(script));
scripts = c_lua::get().scripts;
if (selected_script >= scripts.size())
selected_script = scripts.size() - 1; //-V103
for (auto& current : scripts)
{
if (current.size() >= 5 && current.at(current.size() - 1) == 'c')
current.erase(current.size() - 5, 5);
else if (current.size() >= 4)
current.erase(current.size() - 4, 4);
}
for (auto i = 0; i < g_cfg.skins.skinChanger.size(); ++i)
all_skins[i] = nullptr;
g_cfg.scripts.scripts.clear();
cfg_manager->load(cfg_manager->files.at(g_cfg.selected_config), true);
cfg_manager->config_files();
eventlogs::get().add(("Loaded ") + files.at(g_cfg.selected_config) + (" config"), false);
}
void save_config()
{
if (cfg_manager->files.empty())
return;
g_cfg.scripts.scripts.clear();
for (auto i = 0; i < c_lua::get().scripts.size(); ++i)
{
auto script = c_lua::get().scripts.at(i);
if (c_lua::get().loaded.at(i))
g_cfg.scripts.scripts.emplace_back(script);
}
cfg_manager->save(cfg_manager->files.at(g_cfg.selected_config));
cfg_manager->config_files();
eventlogs::get().add(("Saved ") + files.at(g_cfg.selected_config) + (" config"), false);
}
void remove_config()
{
if (cfg_manager->files.empty())
return;
eventlogs::get().add(("Removed ") + files.at(g_cfg.selected_config) + (" config"), false);
cfg_manager->remove(cfg_manager->files.at(g_cfg.selected_config));
cfg_manager->config_files();
files = cfg_manager->files;
if (g_cfg.selected_config >= files.size())
g_cfg.selected_config = files.size() - 1; //-V103
for (auto& current : files)
if (current.size() > 2)
current.erase(current.size() - 3, 3);
}
void add_config()
{
auto empty = true;
for (auto current : g_cfg.new_config_name)
{
if (current != ' ')
{
empty = false;
break;
}
}
if (empty)
g_cfg.new_config_name = ("config");
eventlogs::get().add(("Added ") + g_cfg.new_config_name + (" config"), false);
if (g_cfg.new_config_name.find((".pw")) == std::string::npos)
g_cfg.new_config_name += (".pw");
cfg_manager->save(g_cfg.new_config_name);
cfg_manager->config_files();
g_cfg.selected_config = cfg_manager->files.size() - 1; //-V103
files = cfg_manager->files;
for (auto& current : files)
if (current.size() > 2)
current.erase(current.size() - 3, 3);
}
__forceinline void padding(float x, float y)
{
}
void child_title(const char* label)
{
}
namespace config_listbox
{
static auto vector_getter = [](void* vec, int idx, const char** out_text)
{
auto& vector = *static_cast<std::vector<std::string>*>(vec);
if (idx < 0 || idx >= static_cast<int>(vector.size())) { return false; }
*out_text = vector.at(idx).c_str();
return true;
};
bool ListBox(const char* label, int* currIndex, std::vector<std::string>& values, int height_in_items = -1)
{
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (values.empty()) { return false; }
return ImGui::ListBox(label, currIndex, vector_getter, static_cast<void*>(&values), values.size(), height_in_items);
}
static bool ListBox(const char* label, int* current_item, std::function<const char* (int)> lambda, int items_count, int height_in_items)
{
return ImGui::ListBox(label, current_item, [](void* data, int idx, const char** out_text)
{
*out_text = (*reinterpret_cast<std::function<const char* (int)>*>(data))(idx);
return true;
}, &lambda, items_count, height_in_items);
}
}
void draw_combo(const char* name, int& variable, const char* labels[], int count)
{
ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 6);
ImGui::Text(name);
ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 5);
ImGui::Combo(std::string(("##COMBO__") + std::string(name)).c_str(), &variable, labels, count);
}
void draw_combo(const char* name, int& variable, bool (*items_getter)(void*, int, const char**), void* data, int count)
{
ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 6);
ImGui::Text(name);
ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 5);
ImGui::Combo(std::string(("##COMBO__") + std::string(name)).c_str(), &variable, items_getter, data, count);
}
bool LabelClick(const char* label, bool* v, const char* unique_id)
{
ImGuiWindow* window = ImGui::GetCurrentWindow();
if (window->SkipItems)
return false;
// The concatoff/on thingies were for my weapon config system so if we're going to make that, we still need this aids.
char Buf[64];
_snprintf(Buf, 62, ("%s"), label);
char getid[128];
sprintf_s(getid, 128, ("%s%s"), label, unique_id);
ImGuiContext& g = *GImGui;
const ImGuiStyle& style = g.Style;
const ImGuiID id = window->GetID(getid);
const ImVec2 label_size = ImGui::CalcTextSize(label, NULL, true);
const ImRect check_bb(window->DC.CursorPos, ImVec2(label_size.y + style.FramePadding.y * 2 + window->DC.CursorPos.x, window->DC.CursorPos.y + label_size.y + style.FramePadding.y * 2));
ImGui::ItemSize(check_bb, style.FramePadding.y);
ImRect total_bb = check_bb;
if (label_size.x > 0)
{
ImGui::SameLine(0, style.ItemInnerSpacing.x);
const ImRect text_bb(ImVec2(window->DC.CursorPos.x, window->DC.CursorPos.y + style.FramePadding.y), ImVec2(window->DC.CursorPos.x + label_size.x, window->DC.CursorPos.y + style.FramePadding.y + label_size.y));
ImGui::ItemSize(ImVec2(text_bb.GetWidth(), check_bb.GetHeight()), style.FramePadding.y);
total_bb = ImRect(ImMin(check_bb.Min, text_bb.Min), ImMax(check_bb.Max, text_bb.Max));
}
if (!ImGui::ItemAdd(total_bb, id))
return false;
bool hovered, held;
bool pressed = ImGui::ButtonBehavior(total_bb, id, &hovered, &held);
if (pressed)
*v = !(*v);
if (*v)
ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(198 / 255.f, 123 / 255.f, 219 / 255.f, 1.f));
if (label_size.x > 0.0f)
ImGui::RenderText(ImVec2(check_bb.GetTL().x + 12, check_bb.GetTL().y), Buf);
if (*v)
ImGui::PopStyleColor();
return pressed;
}
void draw_keybind(const char* label, key_bind* key_bind, const char* unique_id)
{
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (key_bind->key == KEY_ESCAPE)
key_bind->key = KEY_NONE;
auto clicked = false;
auto text = (std::string)m_inputsys()->ButtonCodeToString(key_bind->key);
if (key_bind->key <= KEY_NONE || key_bind->key >= KEY_MAX)
text = ("Bind");
if (hooks::input_shouldListen && hooks::input_receivedKeyval == &key_bind->key)
{
clicked = true;
text = ("...");
}
auto textsize = ImGui::CalcTextSize(text.c_str()).x + 8;
auto labelsize = ImGui::CalcTextSize(label);
ImGui::Text(label);
ImGui::SameLine();
ImGui::SetCursorPosX(ImGui::GetWindowSize().x - (ImGui::GetWindowSize().x - ImGui::CalcItemWidth()) - max(50, textsize));
ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 3);
if (ImGui::KeybindButton(text.c_str(), unique_id, ImVec2(max(50, textsize), 23), clicked, ImGuiButtonFlags_DontClosePopups))
clicked = true;
if (clicked)
{
hooks::input_shouldListen = true;
hooks::input_receivedKeyval = &key_bind->key;
}
static auto hold = false, toggle = false;
switch (key_bind->mode)
{
case HOLD:
hold = true;
toggle = false;
break;
case TOGGLE:
toggle = true;
hold = false;
break;
}
if (ImGui::BeginPopup(unique_id))
{
ImGui::SetCursorPosY(ImGui::GetCursorPosY() + 6);
ImGui::SetCursorPosX(ImGui::GetCursorPosX() + ((ImGui::GetCurrentWindow()->Size.x / 2) - (ImGui::CalcTextSize(("Hold")).x / 2)));
ImGui::SetCursorPosX(ImGui::GetCursorPosX() - 11);
if (LabelClick(("Hold"), &hold, unique_id))
{
if (hold)
{
toggle = false;
key_bind->mode = HOLD;
}
else if (toggle)
{
hold = false;
key_bind->mode = TOGGLE;
}
else
{
toggle = false;
key_bind->mode = HOLD;
}
ImGui::CloseCurrentPopup();
}
ImGui::SetCursorPosX(ImGui::GetCursorPosX() + ((ImGui::GetCurrentWindow()->Size.x / 2) - (ImGui::CalcTextSize(("Toggle")).x / 2)));
ImGui::SetCursorPosX(ImGui::GetCursorPosX() - 11);
ImGui::SetCursorPosY(ImGui::GetCursorPosY() - 9);
if (LabelClick(("Toggle"), &toggle, unique_id))
{
if (toggle)
{
hold = false;
key_bind->mode = TOGGLE;
}
else if (hold)
{
toggle = false;
key_bind->mode = HOLD;
}
else
{
hold = false;
key_bind->mode = TOGGLE;
}
ImGui::CloseCurrentPopup();
}
ImGui::EndPopup();
}
}
void draw_multicombo(std::string name, std::vector<int>& variable, const char* labels[], int count, std::string& preview)
{
ImGui::Text(((" ") + name).c_str());
auto hashname = ("##") + name; // we dont want to render name of combo
for (auto i = 0, j = 0; i < count; i++)
{
if (variable[i])
{
if (j)
//preview += (" "); //+ (std::string)labels[i];
(std::string)labels[i];
else
preview = labels[i];
j++;
}
}
if (ImGui::BeginCombo(hashname.c_str(), preview.c_str())) // draw start
{
ImGui::BeginGroup();
{
for (auto i = 0; i < count; i++)
ImGui::Selectable(labels[i], (bool*)&variable[i], ImGuiSelectableFlags_DontClosePopups);
}
ImGui::EndGroup();
ImGui::EndCombo();
}
preview = ("None"); // reset preview to use later
}
void draw_semitabs(const char* labels[], int count, int& tab, ImGuiStyle& style)
{
}
__forceinline void tab_start()
{
}
__forceinline void tab_end()
{
}
void lua_edit(std::string window_name)
{
std::string file_path;
auto get_dir = [&]() -> void
{
static TCHAR path[MAX_PATH];
if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, NULL, path)))
file_path = std::string(path) + ("\\Lrimuse.pw\\Scripts\\");
CreateDirectory(file_path.c_str(), NULL);
file_path += window_name + (".lua");
};
get_dir();
const char* child_name = (window_name + window_name).c_str();
ImGui::SetNextWindowSize(ImVec2(700, 700), ImGuiCond_Once);
ImGui::GetColorU32(ImVec4(40 / 255.f, 40 / 255.f, 40 / 255.f, 1.f));
ImGui::Begin(window_name.c_str(), nullptr, ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoCollapse);
ImGui::PushStyleVar(ImGuiStyleVar_ScrollbarSize, 5.f);
static TextEditor editor;
if (!loaded_editing_script)
{
static auto lang = TextEditor::LanguageDefinition::Lua();
editor.SetLanguageDefinition(lang);
editor.SetReadOnly(false);
std::ifstream t(file_path);
if (t.good())
{
std::string str((std::istreambuf_iterator<char>(t)), std::istreambuf_iterator<char>());
editor.SetText(str);
}
loaded_editing_script = true;
}
ImGui::SetWindowFontScale(1.f + ((1.0) * 0.5f));
ImGui::SetWindowSize(ImVec2(ImFloor(500 * (1.f + ((1.0) * 0.5f))), ImFloor(500 * (1.f + ((1.0) * 0.5f)))));
editor.Render(child_name, ImGui::GetWindowSize() - ImVec2(0, 66 * (1.f + ((1.0) * 0.5f))));
ImGui::Separator();
ImGui::SetCursorPosX(ImGui::GetCursorPosX() + ImGui::GetWindowSize().x - (16.f * (1.f + ((1.0) * 0.5f))) - (250.f * (1.f + ((1.0) * 0.5f))));
ImGui::BeginGroup();
if (ImGui::CustomButton(("Save"), (("Save") + window_name).c_str(), ImVec2(40 * (1.f + ((1.0) * 0.5f)), 0), true, c_menu::get().skeet_menu, ("")))
{
std::ofstream out;
out.open(file_path);
out << editor.GetText() << std::endl;
out.close();
}
ImGui::SameLine();
if (ImGui::CustomButton(("Close"), (("Close") + window_name).c_str(), ImVec2(40 * (1.f + ((1.0) * 0.5f)), 0), ImGuiItemFlags_ButtonRepeat, c_menu::get().skeet_menu, ("")))
{
g_ctx.globals.focused_on_input = false;
loaded_editing_script = false;
editing_script.clear();
}
ImGui::EndGroup();
ImGui::PopStyleVar();
ImGui::End();
}
static int tab = 0;
void c_menu::draw(bool is_open)
{
static float m_alpha = 0.0002f;
m_alpha = math::clamp(m_alpha + (8.f * (is_open ? 1.f : -1.f)), 0.0001f, 1.f);
public_alpha = m_alpha;
if (m_alpha <= 0.0001f)
return;
ImGui::PushStyleVar(ImGuiStyleVar_Alpha, m_alpha);
if (!menu_setupped)
menu_setup(ImGui::GetStyle());
ImGui::PushStyleColor(ImGuiCol_ScrollbarGrab, ImVec4(ImGui::GetStyle().Colors[ImGuiCol_ScrollbarGrab].x, ImGui::GetStyle().Colors[ImGuiCol_ScrollbarGrab].y, ImGui::GetStyle().Colors[ImGuiCol_ScrollbarGrab].z, m_alpha));
ImGui::Begin("ThighHighs & Tranny hake", nullptr, ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoScrollWithMouse | ImGuiWindowFlags_NoTitleBar);
{
ImGui::BeginChild("Complete Border", ImVec2(660.f, 640.f), false);
{
//ImGui::Image(bg, ImVec2(648.f, 628.f));
}
ImGui::EndChild();
ImGui::SameLine(6.f);
style->Colors[ImGuiCol_ChildBg] = ImColor(0, 0, 0, 0);
ImGui::BeginChild("Menu Contents", ImVec2(660.f, 640.f), false);
{
ImGui::ColorBar("unicorn", ImVec2(648.f, 2.f));
style->ItemSpacing = ImVec2(0.f, -1.f);
ImGui::BeginTabs("Tabs", ImVec2(0.0000001f, 622.f), false);
{
style->ItemSpacing = ImVec2(0.f, 0.f);
style->ButtonTextAlign = ImVec2(0.5f, 0.47f);
ImGui::PushFont(skeet_icon);
switch (tab)
{
case 0:
ImGui::TabSpacer("##Top Spacer", ImVec2(75.f, 10.f));
if (ImGui::SelectedTab("A", ImVec2(75.f, 66.f))) tab = 0;
if (ImGui::Tab("G", ImVec2(75.f, 66.f))) tab = 1;
if (ImGui::Tab("B", ImVec2(75.f, 66.f))) tab = 2;
if (ImGui::Tab("C", ImVec2(75.f, 66.f))) tab = 3;
if (ImGui::Tab("F", ImVec2(75.f, 66.f))) tab = 4;
if (ImGui::Tab("D", ImVec2(75.f, 66.f))) tab = 5;
//if (ImGui::Tab("E", ImVec2(75.f, 66.f))) tab = 6;
if (ImGui::Tab("H", ImVec2(75.f, 66.f))) tab = 6;
if (ImGui::Tab("I", ImVec2(75.f, 66.f))) tab = 7;
ImGui::TabSpacer2("##Bottom Spacer", ImVec2(75.f, 7.f));
break;
case 1:
ImGui::TabSpacer("##Top Spacer", ImVec2(75.f, 10.f));
if (ImGui::Tab("A", ImVec2(75.f, 66.f))) tab = 0;
if (ImGui::SelectedTab("G", ImVec2(75.f, 66.f))) tab = 1;
if (ImGui::Tab("B", ImVec2(75.f, 66.f))) tab = 2;
if (ImGui::Tab("C", ImVec2(75.f, 66.f))) tab = 3;
if (ImGui::Tab("F", ImVec2(75.f, 66.f))) tab = 4;
if (ImGui::Tab("D", ImVec2(75.f, 66.f))) tab = 5;
//if (ImGui::Tab("E", ImVec2(75.f, 66.f))) tab = 6;
if (ImGui::Tab("H", ImVec2(75.f, 66.f))) tab = 6;
if (ImGui::Tab("I", ImVec2(75.f, 66.f))) tab = 7;
ImGui::TabSpacer2("##Bottom Spacer", ImVec2(75.f, 7.f));
break;
case 2:
ImGui::TabSpacer("##Top Spacer", ImVec2(75.f, 10.f));
if (ImGui::Tab("A", ImVec2(75.f, 66.f))) tab = 0;
if (ImGui::Tab("G", ImVec2(75.f, 66.f))) tab = 1;
if (ImGui::SelectedTab("B", ImVec2(75.f, 66.f))) tab = 2;
if (ImGui::Tab("C", ImVec2(75.f, 66.f))) tab = 3;
if (ImGui::Tab("F", ImVec2(75.f, 66.f))) tab = 4;
if (ImGui::Tab("D", ImVec2(75.f, 66.f))) tab = 5;
//if (ImGui::Tab("E", ImVec2(75.f, 66.f))) tab = 6;
if (ImGui::Tab("H", ImVec2(75.f, 66.f))) tab = 6;
if (ImGui::Tab("I", ImVec2(75.f, 66.f))) tab = 7;
ImGui::TabSpacer2("##Bottom Spacer", ImVec2(75.f, 7.f));
break;
case 3:
ImGui::TabSpacer("##Top Spacer", ImVec2(75.f, 10.f));
if (ImGui::Tab("A", ImVec2(75.f, 66.f))) tab = 0;
if (ImGui::Tab("G", ImVec2(75.f, 66.f))) tab = 1;
if (ImGui::Tab("B", ImVec2(75.f, 66.f))) tab = 2;
if (ImGui::SelectedTab("C", ImVec2(75.f, 66.f))) tab = 3;
if (ImGui::Tab("F", ImVec2(75.f, 66.f))) tab = 4;
if (ImGui::Tab("D", ImVec2(75.f, 66.f))) tab = 5;
//if (ImGui::Tab("E", ImVec2(75.f, 66.f))) tab = 6;
if (ImGui::Tab("H", ImVec2(75.f, 66.f))) tab = 6;
if (ImGui::Tab("I", ImVec2(75.f, 66.f))) tab = 7;
ImGui::TabSpacer2("##Bottom Spacer", ImVec2(75.f, 7.f));
break;
case 4:
ImGui::TabSpacer("##Top Spacer", ImVec2(75.f, 10.f));
if (ImGui::Tab("A", ImVec2(75.f, 66.f))) tab = 0;
if (ImGui::Tab("G", ImVec2(75.f, 66.f))) tab = 1;
if (ImGui::Tab("B", ImVec2(75.f, 66.f))) tab = 2;
if (ImGui::Tab("C", ImVec2(75.f, 66.f))) tab = 3;
if (ImGui::SelectedTab("F", ImVec2(75.f, 66.f))) tab = 4;
if (ImGui::Tab("D", ImVec2(75.f, 66.f))) tab = 5;
//if (ImGui::Tab("E", ImVec2(75.f, 66.f))) tab = 6;
if (ImGui::Tab("H", ImVec2(75.f, 66.f))) tab = 6;
if (ImGui::Tab("I", ImVec2(75.f, 66.f))) tab = 7;
ImGui::TabSpacer2("##Bottom Spacer", ImVec2(75.f, 7.f));
break;
case 5:
ImGui::TabSpacer("##Top Spacer", ImVec2(75.f, 10.f));
if (ImGui::Tab("A", ImVec2(75.f, 66.f))) tab = 0;
if (ImGui::Tab("G", ImVec2(75.f, 66.f))) tab = 1;
if (ImGui::Tab("B", ImVec2(75.f, 66.f))) tab = 2;
if (ImGui::Tab("C", ImVec2(75.f, 66.f))) tab = 3;
if (ImGui::Tab("F", ImVec2(75.f, 66.f))) tab = 4;
if (ImGui::SelectedTab("D", ImVec2(75.f, 66.f))) tab = 5;
//if (ImGui::Tab("E", ImVec2(75.f, 66.f))) tab = 6;
if (ImGui::Tab("H", ImVec2(75.f, 66.f))) tab = 6;
if (ImGui::Tab("I", ImVec2(75.f, 66.f))) tab = 7;
ImGui::TabSpacer2("##Bottom Spacer", ImVec2(75.f, 7.f));
break;
case 6:
ImGui::TabSpacer("##Top Spacer", ImVec2(75.f, 10.f));
if (ImGui::Tab("A", ImVec2(75.f, 66.f))) tab = 0;
if (ImGui::Tab("G", ImVec2(75.f, 66.f))) tab = 1;
if (ImGui::Tab("B", ImVec2(75.f, 66.f))) tab = 2;
if (ImGui::Tab("C", ImVec2(75.f, 66.f))) tab = 3;
if (ImGui::Tab("F", ImVec2(75.f, 66.f))) tab = 4;
if (ImGui::Tab("D", ImVec2(75.f, 66.f))) tab = 5;
//if (ImGui::SelectedTab("E", ImVec2(75.f, 66.f))) tab = 6;
if (ImGui::SelectedTab("H", ImVec2(75.f, 66.f))) tab = 6;
if (ImGui::Tab("I", ImVec2(75.f, 66.f))) tab = 7;
ImGui::TabSpacer2("##Bottom Spacer", ImVec2(75.f, 7.f));
break;
case 7:
ImGui::TabSpacer("##Top Spacer", ImVec2(75.f, 10.f));
if (ImGui::Tab("A", ImVec2(75.f, 66.f))) tab = 0;
if (ImGui::Tab("G", ImVec2(75.f, 66.f))) tab = 1;
if (ImGui::Tab("B", ImVec2(75.f, 66.f))) tab = 2;
if (ImGui::Tab("C", ImVec2(75.f, 66.f))) tab = 3;
if (ImGui::Tab("F", ImVec2(75.f, 66.f))) tab = 4;
if (ImGui::Tab("D", ImVec2(75.f, 66.f))) tab = 5;
//if (ImGui::Tab("E", ImVec2(75.f, 66.f))) tab = 6;
if (ImGui::Tab("H", ImVec2(75.f, 66.f))) tab = 6;
if (ImGui::SelectedTab("I", ImVec2(75.f, 66.f))) tab = 7;
ImGui::TabSpacer2("##Bottom Spacer", ImVec2(75.f, 7.f));
break;
}
ImGui::PopFont();
style->ButtonTextAlign = ImVec2(0.5f, 0.5f);
} ImGui::EndTabs();
ImGui::SameLine(75.f);
ImGui::BeginChild("Tab Contents", ImVec2(572.f, 622.f), false);
{
style->Colors[ImGuiCol_Border] = ImColor(0, 0, 0, 0);
switch (tab)
{
case 0:
Aimbot();
break;
case 1:
Antiaim();
break;
case 2:
Legit();
break;
case 3:
Visuals();
break;
case 4:
Chams();
break;
case 5:
Misc();
break;
case 6:
Configurations();
break;
case 7:
Luas();
break;
}
style->Colors[ImGuiCol_Border] = ImColor(10, 10, 10, 255);
} ImGui::EndChild();
style->ItemSpacing = ImVec2(4.f, 4.f);
style->Colors[ImGuiCol_ChildBg] = ImColor(17, 17, 17, 255);
} ImGui::EndChild();
ImGui::PushFont(skeet_menu);
if (!editing_script.empty())
lua_edit(editing_script);
ImGui::PopFont();
}
ImGui::End();
}
void c_menu::Legit()
{
ImGui::PushFont(skeet_menu);
ImGuiStyle* style = &ImGui::GetStyle();
InsertSpacer("Top Spacer");
const char* legit_weapons[6] = { ("Deagle"), ("Pistols"), ("Rifles"), ("SMGs"), ("Snipers"), ("Heavy") };
const char* hitbox_legit[3] = { ("Nearest"), ("Head"), ("Body") };
static int weapontab_legit = 0;
InsertGroupBoxTop(("Weapon Selection"), ImVec2(537.f, 61.f));
{
ImGui::Columns(6, nullptr, false);
ImGui::PushFont(weapon_font);
style->ButtonTextAlign = ImVec2(0.8f, 0.75f);
ImGui::PushItemWidth(158.f);
if (ImGui::TabButton("J", ImVec2(50, 45))) weapontab_legit = 0;
ImGui::NextColumn();
{
if (ImGui::TabButton("C", ImVec2(50, 45))) weapontab_legit = 1;
}
ImGui::NextColumn();
{
if (ImGui::TabButton("W", ImVec2(50, 45))) weapontab_legit = 2;
}
ImGui::NextColumn();
{
if (ImGui::TabButton("N", ImVec2(62, 45))) weapontab_legit = 3;
}
ImGui::NextColumn();
{
if (ImGui::TabButton("Z", ImVec2(62, 45))) weapontab_legit = 4;
}
ImGui::NextColumn();
{
if (ImGui::TabButton("d", ImVec2(62, 45))) weapontab_legit = 5;
}
ImGui::PopFont();
} InsertEndGroupBoxTop(("Weapon Selection Cover"), ("Weapon Selection"), ImVec2(536.f, 11.f));
InsertSpacer(("Weapon Selection - Main Group boxes Spacer"));
ImGui::Columns(2, NULL, false);
{
InsertGroupBoxLeft("Aimbot", 427.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.4f);
ImGui::CustomSpacing(9.f);
ImGui::PushItemWidth(158.f);
InsertCheckbox(("Enable"), g_cfg.legitbot.enabled);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Enable key"), &g_cfg.legitbot.key, ("##HOTKEY_LGBT_KEY"));
if (g_cfg.legitbot.enabled)
g_cfg.ragebot.enable = false;
InsertCheckbox(("Friendly fire"), g_cfg.legitbot.friendly_fire);
InsertCheckbox(("Automatic pistols"), g_cfg.legitbot.autopistol);
InsertCheckbox(("Automatic scope"), g_cfg.legitbot.autoscope);
if (g_cfg.legitbot.autoscope)
InsertCheckbox(("Unscope after shot"), g_cfg.legitbot.unscope);
InsertCheckbox(("Snipers in zoom only"), g_cfg.legitbot.sniper_in_zoom_only);
InsertCheckbox(("Enable in air"), g_cfg.legitbot.do_if_local_in_air);
InsertCheckbox(("Enable if flashed"), g_cfg.legitbot.do_if_local_flashed);
InsertCheckbox(("Enable in smoke"), g_cfg.legitbot.do_if_enemy_in_smoke);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Automatic fire key"), &g_cfg.legitbot.autofire_key, ("##HOTKEY_AUTOFIRE_LGBT_KEY"));
InsertSliderInt((" Automatic fire delay"), g_cfg.legitbot.autofire_delay, 0, 12, false, (!g_cfg.legitbot.autofire_delay ? ("None") : (g_cfg.legitbot.autofire_delay == 1 ? ("%d tick") : ("%d ticks"))));
} InsertEndGroupBoxLeft("Aimbot Cover", "Aimbot");
}
ImGui::NextColumn(); {
InsertGroupBoxRight("Weapon", 282.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
ImGui::PushItemWidth(158.f);
//InsertCombo(("Current weapon"), hooks::legit_weapon, legit_weapons, ARRAYSIZE(legit_weapons));
switch (weapontab_legit)
{
case 0:
InsertCombo(("Hitbox"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].priority, hitbox_legit, ARRAYSIZE(hitbox_legit));
InsertCheckbox(("Automatic stop"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].auto_stop);
InsertCombo(("Field of view type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].fov_type, LegitFov, ARRAYSIZE(LegitFov));
InsertSlider((" Field of view amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].fov, 0.f, 30.f, ("%.2f"));
ImGui::Spacing();
InsertSlider((" Silent field of view"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].silent_fov, 0.f, 30.f, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 0].silent_fov ? ("None") : ("%.2f"))); //-V550
ImGui::Spacing();
InsertCombo(("Smooth type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].smooth_type, LegitSmooth, ARRAYSIZE(LegitSmooth));
InsertSlider((" Smooth amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].smooth, 1.f, 12.f, ("%.1f"));
ImGui::Spacing();
InsertSliderInt((" Automatic wall damage"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].awall_dmg, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 0].awall_dmg ? ("None") : ("%d")));
InsertSliderInt((" Automatic fire hitchance"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].autofire_hitchance, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 0].autofire_hitchance ? ("None") : ("%d")));
InsertSlider((" Target switch delay"), g_cfg.legitbot.weapon[hooks::legit_weapon = 0].target_switch_delay, 0.f, 1.f, ("%.0f"));
break;
case 1:
InsertCombo(("Hitbox"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].priority, hitbox_legit, ARRAYSIZE(hitbox_legit));
InsertCheckbox(("Automatic stop"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].auto_stop);
InsertCombo(("Field of view type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].fov_type, LegitFov, ARRAYSIZE(LegitFov));
InsertSlider((" Field of view amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].fov, 0.f, 30.f, ("%.2f"));
ImGui::Spacing();
InsertSlider((" Silent field of view"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].silent_fov, 0.f, 30.f, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 1].silent_fov ? ("None") : ("%.2f"))); //-V550
ImGui::Spacing();
InsertCombo(("Smooth type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].smooth_type, LegitSmooth, ARRAYSIZE(LegitSmooth));
InsertSlider((" Smooth amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].smooth, 1.f, 12.f, ("%.1f"));
ImGui::Spacing();
InsertSliderInt((" Automatic wall damage"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].awall_dmg, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 1].awall_dmg ? ("None") : ("%d")));
InsertSliderInt((" Automatic fire hitchance"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].autofire_hitchance, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 1].autofire_hitchance ? ("None") : ("%d")));
InsertSlider((" Target switch delay"), g_cfg.legitbot.weapon[hooks::legit_weapon = 1].target_switch_delay, 0.f, 1.f, ("%.0f"));
break;
case 2:
InsertCombo(("Hitbox"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].priority, hitbox_legit, ARRAYSIZE(hitbox_legit));
InsertCheckbox(("Automatic stop"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].auto_stop);
InsertCombo(("Field of view type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].fov_type, LegitFov, ARRAYSIZE(LegitFov));
InsertSlider((" Field of view amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].fov, 0.f, 30.f, ("%.2f"));
ImGui::Spacing();
InsertSlider((" Silent field of view"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].silent_fov, 0.f, 30.f, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 2].silent_fov ? ("None") : ("%.2f"))); //-V550
ImGui::Spacing();
InsertCombo(("Smooth type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].smooth_type, LegitSmooth, ARRAYSIZE(LegitSmooth));
InsertSlider((" Smooth amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].smooth, 1.f, 12.f, ("%.1f"));
ImGui::Spacing();
InsertSliderInt((" Automatic wall damage"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].awall_dmg, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 2].awall_dmg ? ("None") : ("%d")));
InsertSliderInt((" Automatic fire hitchance"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].autofire_hitchance, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 2].autofire_hitchance ? ("None") : ("%d")));
InsertSlider((" Target switch delay"), g_cfg.legitbot.weapon[hooks::legit_weapon = 2].target_switch_delay, 0.f, 1.f, ("%.0f"));
break;
case 3:
InsertCombo(("Hitbox"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].priority, hitbox_legit, ARRAYSIZE(hitbox_legit));
InsertCheckbox(("Automatic stop"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].auto_stop);
InsertCombo(("Field of view type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].fov_type, LegitFov, ARRAYSIZE(LegitFov));
InsertSlider((" Field of view amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].fov, 0.f, 30.f, ("%.2f"));
ImGui::Spacing();
InsertSlider((" Silent field of view"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].silent_fov, 0.f, 30.f, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 3].silent_fov ? ("None") : ("%.2f"))); //-V550
ImGui::Spacing();
InsertCombo(("Smooth type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].smooth_type, LegitSmooth, ARRAYSIZE(LegitSmooth));
InsertSlider((" Smooth amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].smooth, 1.f, 12.f, ("%.1f"));
ImGui::Spacing();
InsertSliderInt((" Automatic wall damage"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].awall_dmg, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 3].awall_dmg ? ("None") : ("%d")));
InsertSliderInt((" Automatic fire hitchance"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].autofire_hitchance, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 3].autofire_hitchance ? ("None") : ("%d")));
InsertSlider((" Target switch delay"), g_cfg.legitbot.weapon[hooks::legit_weapon = 3].target_switch_delay, 0.f, 1.f, ("%.0f"));
break;
case 4:
InsertCombo(("Hitbox"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].priority, hitbox_legit, ARRAYSIZE(hitbox_legit));
InsertCheckbox(("Automatic stop"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].auto_stop);
InsertCombo(("Field of view type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].fov_type, LegitFov, ARRAYSIZE(LegitFov));
InsertSlider((" Field of view amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].fov, 0.f, 30.f, ("%.2f"));
ImGui::Spacing();
InsertSlider((" Silent field of view"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].silent_fov, 0.f, 30.f, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 4].silent_fov ? ("None") : ("%.2f"))); //-V550
ImGui::Spacing();
InsertCombo(("Smooth type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].smooth_type, LegitSmooth, ARRAYSIZE(LegitSmooth));
InsertSlider((" Smooth amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].smooth, 1.f, 12.f, ("%.1f"));
ImGui::Spacing();
InsertSliderInt((" Automatic wall damage"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].awall_dmg, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 4].awall_dmg ? ("None") : ("%d")));
InsertSliderInt((" Automatic fire hitchance"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].autofire_hitchance, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 4].autofire_hitchance ? ("None") : ("%d")));
InsertSlider((" Target switch delay"), g_cfg.legitbot.weapon[hooks::legit_weapon = 4].target_switch_delay, 0.f, 1.f, ("%.0f"));
break;
case 5:
InsertCombo(("Hitbox"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].priority, hitbox_legit, ARRAYSIZE(hitbox_legit));
InsertCheckbox(("Automatic stop"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].auto_stop);
InsertCombo(("Field of view type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].fov_type, LegitFov, ARRAYSIZE(LegitFov));
InsertSlider((" Field of view amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].fov, 0.f, 30.f, ("%.2f"));
ImGui::Spacing();
InsertSlider((" Silent field of view"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].silent_fov, 0.f, 30.f, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 5].silent_fov ? ("None") : ("%.2f"))); //-V550
ImGui::Spacing();
InsertCombo(("Smooth type"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].smooth_type, LegitSmooth, ARRAYSIZE(LegitSmooth));
InsertSlider((" Smooth amount"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].smooth, 1.f, 12.f, ("%.1f"));
ImGui::Spacing();
InsertSliderInt((" Automatic wall damage"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].awall_dmg, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 5].awall_dmg ? ("None") : ("%d")));
InsertSliderInt((" Automatic fire hitchance"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].autofire_hitchance, 0, 100, false, (!g_cfg.legitbot.weapon[hooks::legit_weapon = 5].autofire_hitchance ? ("None") : ("%d")));
InsertSlider((" Target switch delay"), g_cfg.legitbot.weapon[hooks::legit_weapon = 5].target_switch_delay, 0.f, 1.f, ("%.0f"));
break;
}
} InsertEndGroupBoxRight("Weapon Cover", "Weapon");
InsertSpacer("Weapon - Other Spacer");
InsertGroupBoxRight("RCS", 123.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
ImGui::PushItemWidth(158.f);
InsertCombo(("Type"), g_cfg.legitbot.weapon[hooks::legit_weapon].rcs_type, RCSType, ARRAYSIZE(RCSType));
InsertSlider((" Amount"), g_cfg.legitbot.weapon[hooks::legit_weapon].rcs, 0.f, 100.f, ("%.0f%%"), 1.f);
if (g_cfg.legitbot.weapon[hooks::legit_weapon].rcs > 0)
{
InsertSlider((" Custom field of view"), g_cfg.legitbot.weapon[hooks::legit_weapon].custom_rcs_fov, 0.f, 30.f, (!g_cfg.legitbot.weapon[hooks::legit_weapon].custom_rcs_fov ? ("None") : ("%.2f"))); //-V550
InsertSlider((" Custom smooth"), g_cfg.legitbot.weapon[hooks::legit_weapon].custom_rcs_smooth, 0.f, 12.f, (!g_cfg.legitbot.weapon[hooks::legit_weapon].custom_rcs_smooth ? ("None") : ("%.1f"))); //-V550
}
} InsertEndGroupBoxRight("RCS Cover", "RCS");
}
ImGui::PopFont();
}
void c_menu::Aimbot()
{
ImGui::PushFont(skeet_menu);
ImGuiStyle* style = &ImGui::GetStyle();
InsertSpacer("Top Spacer");
static int weapontab_rage = 0;
InsertGroupBoxTop(("Weapon Selection"), ImVec2(535.f, 61.f));
{
ImGui::Columns(8, nullptr, false);
ImGui::PushFont(weapon_font);
style->ButtonTextAlign = ImVec2(0.4f, 0.75f);
ImGui::PushItemWidth(158.f);
if (ImGui::TabButton("J", ImVec2(50, 45))) weapontab_rage = 0;
ImGui::NextColumn();
{
if (ImGui::TabButton("C", ImVec2(50, 45))) weapontab_rage = 1;
}
ImGui::NextColumn();
{
if (ImGui::TabButton("N", ImVec2(50, 45))) weapontab_rage = 2;
}
ImGui::NextColumn();
{
if (ImGui::TabButton("d", ImVec2(62, 45))) weapontab_rage = 3;
}
//ImGui::NextColumn();
//{
//if (ImGui::TabButton("f", ImVec2(62, 45))) weapontab_rage = 4;
//}
ImGui::NextColumn();
{
if (ImGui::TabButton("W", ImVec2(62, 45))) weapontab_rage = 4;
}
ImGui::NextColumn();
{
if (ImGui::TabButton("a", ImVec2(62, 45))) weapontab_rage = 5;
}
ImGui::NextColumn();
{
if (ImGui::TabButton("Z", ImVec2(62, 45))) weapontab_rage = 6;
}
ImGui::NextColumn();
{
if (ImGui::TabButton("X", ImVec2(62, 45))) weapontab_rage = 7;
}
ImGui::PopFont();
} InsertEndGroupBoxTop(("Weapon Selection Cover"), ("Weapon Selection"), ImVec2(536.f, 11.f));
InsertSpacer(("Weapon Selection - Main Group boxes Spacer"));
ImGui::Columns(2, NULL, false);
{
InsertGroupBoxLeft("Ragebot", 427.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.4f);
ImGui::CustomSpacing(9.f);
ImGui::PushItemWidth(158.f);
InsertCheckbox("Enable", g_cfg.ragebot.enable);
if (g_cfg.ragebot.enable)
g_cfg.legitbot.enabled = false;
InsertSliderInt((" Field of view"), g_cfg.ragebot.field_of_view, 1, 180, ("%d"));
InsertCheckbox("Silent aim", g_cfg.ragebot.silent_aim);
InsertCheckbox("Automatic wall", g_cfg.ragebot.autowall);
InsertCheckbox("Aimbot with zeus", g_cfg.ragebot.zeus_bot);
InsertCheckbox("Aimbot with knife", g_cfg.ragebot.knife_bot);
InsertCheckbox("Automatic fire", g_cfg.ragebot.autoshoot);
ImGui::Spacing();
InsertCheckbox("Double tap", g_cfg.ragebot.double_tap);
if (g_cfg.ragebot.double_tap)
{
ImGui::SameLine();
draw_keybind((""), &g_cfg.ragebot.double_tap_key, ("##HOTKEY_DT"));
InsertSliderInt((" Shift value##DT"), g_cfg.ragebot.double_tap_shift_value, 1, 16, ("%d"));
InsertCheckbox(("Slow teleport"), g_cfg.ragebot.slow_teleport);
}
InsertCheckbox("Hide shots", g_cfg.antiaim.hide_shots);
if (g_cfg.antiaim.hide_shots)
{
ImGui::SameLine();
draw_keybind((""), &g_cfg.antiaim.hide_shots_key, ("##HOTKEY_HIDESHOTS"));
}
style->ItemSpacing = ImVec2(0, 0);
style->WindowPadding = ImVec2(6, 6);
} InsertEndGroupBoxLeft("Aimbot Cover", "Ragebot");
}
ImGui::NextColumn();
{
const char* rage_weapons[8] = { ("Revolver / Deagle"), ("Pistols"), ("SMGs"), ("Rifles"), ("Auto"), ("Scout"), ("AWP"), ("Heavy") };
InsertGroupBoxRight("Weapon", 427.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
//InsertCombo(("Current weapon"), hooks::rage_weapon, rage_weapons, ARRAYSIZE(rage_weapons));
switch (weapontab_rage)
{
case 0:
InsertCombo(("Target selection"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].selection_type, selection, ARRAYSIZE(selection));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Hitboxes"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].hitboxes, hitboxes, ARRAYSIZE(hitboxes), preview);
InsertCheckbox(("Static point scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].static_point_scale);
if (g_cfg.ragebot.weapon[hooks::rage_weapon = 0].static_point_scale)
{
InsertSlider((" Head scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].head_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 0].head_scale ? ("%.2f") : ("None"));
InsertSlider((" Body scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].body_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 0].body_scale ? ("%.2f") : ("None"));
}
InsertCheckbox(("Enable max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].max_misses);
InsertSliderInt((" Max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].max_misses_amount, 0, 6, ("%d"));
InsertCheckbox(("Prefer safe points"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].prefer_safe_points);
InsertCheckbox(("Prefer body aim"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].prefer_body_aim);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Force safe points"), &g_cfg.ragebot.safe_point_key, ("##HOKEY_FORCE_SAFE_POINTS"));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Force body aim"), &g_cfg.ragebot.body_aim_key, ("##HOKEY_FORCE_BODY_AIM"));
InsertCheckbox(("Automatic stop"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].autostop);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Modifiers"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].autostop_modifiers, autostop_modifiers, ARRAYSIZE(autostop_modifiers), preview);
InsertCheckbox(("Hitchance"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].hitchance);
InsertSliderInt((" Hitchance amount"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].hitchance_amount, 1, 100, ("%d"));
InsertSliderInt((" Minimum visible damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].minimum_visible_damage, 1, 120, ("%d"));
InsertSliderInt((" Minimum wall damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].minimum_damage, 1, 120, ("%d"));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind(("Damage override"), &g_cfg.ragebot.weapon[hooks::rage_weapon = 0].damage_override_key, ("##HOTKEY__DAMAGE_OVERRIDE"));
if (g_cfg.ragebot.weapon[hooks::rage_weapon = 0].damage_override_key.key > KEY_NONE && g_cfg.ragebot.weapon[hooks::rage_weapon = 0].damage_override_key.key < KEY_MAX)
InsertSliderInt((" Minimum override damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 0].minimum_override_damage, 1, 120, ("%d"));
break;
case 1:
InsertCombo(("Target selection"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].selection_type, selection, ARRAYSIZE(selection));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Hitboxes"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].hitboxes, hitboxes, ARRAYSIZE(hitboxes), preview);
InsertCheckbox(("Static point scale"), g_cfg.ragebot.weapon[hooks::rage_weapon].static_point_scale);
if (g_cfg.ragebot.weapon[hooks::rage_weapon = 1].static_point_scale)
{
InsertSlider((" Head scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].head_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 1].head_scale ? ("%.2f") : ("None"));
InsertSlider((" Body scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].body_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 1].body_scale ? ("%.2f") : ("None"));
}
InsertCheckbox(("Enable max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].max_misses);
InsertSliderInt((" Max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].max_misses_amount, 0, 6, ("%d"));
InsertCheckbox(("Prefer safe points"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].prefer_safe_points);
InsertCheckbox(("Prefer body aim"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].prefer_body_aim);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Force safe points"), &g_cfg.ragebot.safe_point_key, ("##HOKEY_FORCE_SAFE_POINTS"));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Force body aim"), &g_cfg.ragebot.body_aim_key, ("##HOKEY_FORCE_BODY_AIM"));
InsertCheckbox(("Automatic stop"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].autostop);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Modifiers"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].autostop_modifiers, autostop_modifiers, ARRAYSIZE(autostop_modifiers), preview);
InsertCheckbox(("Hitchance"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].hitchance);
InsertSliderInt((" Hitchance amount"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].hitchance_amount, 1, 100, ("%d"));
InsertSliderInt((" Minimum visible damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].minimum_visible_damage, 1, 120, ("%d"));
InsertSliderInt((" Minimum wall damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].minimum_damage, 1, 120, ("%d"));
draw_keybind(("Damage override"), &g_cfg.ragebot.weapon[hooks::rage_weapon = 1].damage_override_key, ("##HOTKEY__DAMAGE_OVERRIDE"));
if (g_cfg.ragebot.weapon[hooks::rage_weapon = 1].damage_override_key.key > KEY_NONE && g_cfg.ragebot.weapon[hooks::rage_weapon = 1].damage_override_key.key < KEY_MAX)
InsertSliderInt((" Minimum override damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 1].minimum_override_damage, 1, 120, ("%d"));
break;
case 2:
InsertCombo(("Target selection"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].selection_type, selection, ARRAYSIZE(selection));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Hitboxes"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].hitboxes, hitboxes, ARRAYSIZE(hitboxes), preview);
InsertCheckbox(("Static point scale"), g_cfg.ragebot.weapon[hooks::rage_weapon =2].static_point_scale);
if (g_cfg.ragebot.weapon[hooks::rage_weapon = 2].static_point_scale)
{
InsertSlider((" Head scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].head_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 2].head_scale ? ("%.2f") : ("None"));
InsertSlider((" Body scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].body_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 2].body_scale ? ("%.2f") : ("None"));
}
InsertCheckbox(("Enable max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].max_misses);
InsertSliderInt((" Max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].max_misses_amount, 0, 6, ("%d"));
InsertCheckbox(("Prefer safe points"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].prefer_safe_points);
InsertCheckbox(("Prefer body aim"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].prefer_body_aim);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Force safe points"), &g_cfg.ragebot.safe_point_key, ("##HOKEY_FORCE_SAFE_POINTS"));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Force body aim"), &g_cfg.ragebot.body_aim_key, ("##HOKEY_FORCE_BODY_AIM"));
InsertCheckbox(("Automatic stop"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].autostop);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Modifiers"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].autostop_modifiers, autostop_modifiers, ARRAYSIZE(autostop_modifiers), preview);
InsertCheckbox(("Hitchance"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].hitchance);
InsertSliderInt((" Hitchance amount"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].hitchance_amount, 1, 100, ("%d"));
InsertSliderInt((" Minimum visible damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].minimum_visible_damage, 1, 120, ("%d"));
InsertSliderInt((" Minimum wall damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].minimum_damage, 1, 120, ("%d"));
draw_keybind(("Damage override"), &g_cfg.ragebot.weapon[hooks::rage_weapon = 2].damage_override_key, ("##HOTKEY__DAMAGE_OVERRIDE"));
if (g_cfg.ragebot.weapon[hooks::rage_weapon = 2].damage_override_key.key > KEY_NONE && g_cfg.ragebot.weapon[hooks::rage_weapon = 2].damage_override_key.key < KEY_MAX)
InsertSliderInt((" Minimum override damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 2].minimum_override_damage, 1, 120, ("%d"));
break;
case 3:
InsertCombo(("Target selection"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].selection_type, selection, ARRAYSIZE(selection));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Hitboxes"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].hitboxes, hitboxes, ARRAYSIZE(hitboxes), preview);
InsertCheckbox(("Static point scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].static_point_scale);
if (g_cfg.ragebot.weapon[hooks::rage_weapon = 7].static_point_scale)
{
InsertSlider((" Head scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].head_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 7].head_scale ? ("%.2f") : ("None"));
InsertSlider((" Body scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].body_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 7].body_scale ? ("%.2f") : ("None"));
}
InsertCheckbox(("Enable max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].max_misses);
InsertSliderInt((" Max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].max_misses_amount, 0, 6, ("%d"));
InsertCheckbox(("Prefer safe points"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].prefer_safe_points);
InsertCheckbox(("Prefer body aim"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].prefer_body_aim);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Force safe points"), &g_cfg.ragebot.safe_point_key, ("##HOKEY_FORCE_SAFE_POINTS"));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Force body aim"), &g_cfg.ragebot.body_aim_key, ("##HOKEY_FORCE_BODY_AIM"));
InsertCheckbox(("Automatic stop"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].autostop);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Modifiers"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].autostop_modifiers, autostop_modifiers, ARRAYSIZE(autostop_modifiers), preview);
InsertCheckbox(("Hitchance"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].hitchance);
InsertSliderInt((" Hitchance amount"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].hitchance_amount, 1, 100, ("%d"));
InsertSliderInt((" Minimum visible damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].minimum_visible_damage, 1, 120, ("%d"));
InsertSliderInt((" Minimum wall damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].minimum_damage, 1, 120, ("%d"));
draw_keybind(("Damage override"), &g_cfg.ragebot.weapon[hooks::rage_weapon = 7].damage_override_key, ("##HOTKEY__DAMAGE_OVERRIDE"));
if (g_cfg.ragebot.weapon[hooks::rage_weapon = 7].damage_override_key.key > KEY_NONE && g_cfg.ragebot.weapon[hooks::rage_weapon = 7].damage_override_key.key < KEY_MAX)
InsertSliderInt((" Minimum override damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 7].minimum_override_damage, 1, 120, ("%d"));
break;
case 4:
InsertCombo(("Target selection"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].selection_type, selection, ARRAYSIZE(selection));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Hitboxes"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].hitboxes, hitboxes, ARRAYSIZE(hitboxes), preview);
InsertCheckbox(("Static point scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].static_point_scale);
if (g_cfg.ragebot.weapon[hooks::rage_weapon = 3].static_point_scale)
{
InsertSlider((" Head scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].head_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 3].head_scale ? ("%.2f") : ("None"));
InsertSlider((" Body scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].body_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 3].body_scale ? ("%.2f") : ("None"));
}
InsertCheckbox(("Enable max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].max_misses);
InsertSliderInt((" Max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].max_misses_amount, 0, 6, ("%d"));
InsertCheckbox(("Prefer safe points"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].prefer_safe_points);
InsertCheckbox(("Prefer body aim"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].prefer_body_aim);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Force safe points"), &g_cfg.ragebot.safe_point_key, ("##HOKEY_FORCE_SAFE_POINTS"));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Force body aim"), &g_cfg.ragebot.body_aim_key, ("##HOKEY_FORCE_BODY_AIM"));
InsertCheckbox(("Automatic stop"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].autostop);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Modifiers"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].autostop_modifiers, autostop_modifiers, ARRAYSIZE(autostop_modifiers), preview);
InsertCheckbox(("Hitchance"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].hitchance);
InsertSliderInt((" Hitchance amount"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].hitchance_amount, 1, 100, ("%d"));
InsertSliderInt((" Minimum visible damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].minimum_visible_damage, 1, 120, ("%d"));
InsertSliderInt((" Minimum wall damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].minimum_damage, 1, 120, ("%d"));
draw_keybind(("Damage override"), &g_cfg.ragebot.weapon[hooks::rage_weapon = 3].damage_override_key, ("##HOTKEY__DAMAGE_OVERRIDE"));
if (g_cfg.ragebot.weapon[hooks::rage_weapon = 3].damage_override_key.key > KEY_NONE && g_cfg.ragebot.weapon[hooks::rage_weapon = 3].damage_override_key.key < KEY_MAX)
InsertSliderInt((" Minimum override damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 3].minimum_override_damage, 1, 120, ("%d"));
break;
case 5:
InsertCombo(("Target selection"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].selection_type, selection, ARRAYSIZE(selection));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Hitboxes"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].hitboxes, hitboxes, ARRAYSIZE(hitboxes), preview);
InsertCheckbox("Automatic scope", g_cfg.ragebot.weapon[hooks::rage_weapon = 5].autoscope);
InsertCheckbox(("Static point scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].static_point_scale);
if (g_cfg.ragebot.weapon[hooks::rage_weapon = 5].static_point_scale)
{
InsertSlider((" Head scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].head_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 5].head_scale ? ("%.2f") : ("None"));
InsertSlider((" Body scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].body_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 5].body_scale ? ("%.2f") : ("None"));
}
InsertCheckbox(("Enable max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].max_misses);
InsertSliderInt((" Max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].max_misses_amount, 0, 6, ("%d"));
InsertCheckbox(("Prefer safe points"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].prefer_safe_points);
InsertCheckbox(("Prefer body aim"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].prefer_body_aim);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Force safe points"), &g_cfg.ragebot.safe_point_key, ("##HOKEY_FORCE_SAFE_POINTS"));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Force body aim"), &g_cfg.ragebot.body_aim_key, ("##HOKEY_FORCE_BODY_AIM"));
InsertCheckbox(("Automatic stop"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].autostop);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Modifiers"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].autostop_modifiers, autostop_modifiers, ARRAYSIZE(autostop_modifiers), preview);
InsertCheckbox(("Hitchance"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].hitchance);
InsertSliderInt((" Hitchance amount"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].hitchance_amount, 1, 100, ("%d"));
InsertSliderInt((" Minimum visible damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].minimum_visible_damage, 1, 120, ("%d"));
InsertSliderInt((" Minimum wall damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 5].minimum_damage, 1, 120, ("%d"));
draw_keybind(("Damage override"), &g_cfg.ragebot.weapon[hooks::rage_weapon = 5].damage_override_key, ("##HOTKEY__DAMAGE_OVERRIDE"));
if (g_cfg.ragebot.weapon[hooks::rage_weapon = 5].damage_override_key.key > KEY_NONE && g_cfg.ragebot.weapon[hooks::rage_weapon = 5].damage_override_key.key < KEY_MAX)
InsertSliderInt((" Minimum override damage"), g_cfg.ragebot.weapon[hooks::rage_weapon].minimum_override_damage, 1, 120, ("%d"));
break;
case 6:
InsertCombo(("Target selection"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].selection_type, selection, ARRAYSIZE(selection));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Hitboxes"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].hitboxes, hitboxes, ARRAYSIZE(hitboxes), preview);
InsertCheckbox("Automatic scope", g_cfg.ragebot.weapon[hooks::rage_weapon = 6].autoscope);
InsertCheckbox(("Static point scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].static_point_scale);
if (g_cfg.ragebot.weapon[hooks::rage_weapon = 6].static_point_scale)
{
InsertSlider((" Head scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].head_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 6].head_scale ? ("%.2f") : ("None"));
InsertSlider((" Body scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].body_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 6].body_scale ? ("%.2f") : ("None"));
}
InsertCheckbox(("Enable max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].max_misses);
InsertSliderInt((" Max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].max_misses_amount, 0, 6, ("%d"));
InsertCheckbox(("Prefer safe points"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].prefer_safe_points);
InsertCheckbox(("Prefer body aim"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].prefer_body_aim);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Force safe points"), &g_cfg.ragebot.safe_point_key, ("##HOKEY_FORCE_SAFE_POINTS"));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Force body aim"), &g_cfg.ragebot.body_aim_key, ("##HOKEY_FORCE_BODY_AIM"));
InsertCheckbox(("Automatic stop"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].autostop);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Modifiers"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].autostop_modifiers, autostop_modifiers, ARRAYSIZE(autostop_modifiers), preview);
InsertCheckbox(("Hitchance"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].hitchance);
InsertSliderInt((" Hitchance amount"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].hitchance_amount, 1, 100, ("%d"));
InsertSliderInt((" Minimum visible damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].minimum_visible_damage, 1, 120, ("%d"));
InsertSliderInt((" Minimum wall damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].minimum_damage, 1, 120, ("%d"));
draw_keybind(("Damage override"), &g_cfg.ragebot.weapon[hooks::rage_weapon = 6].damage_override_key, ("##HOTKEY__DAMAGE_OVERRIDE"));
if (g_cfg.ragebot.weapon[hooks::rage_weapon = 6].damage_override_key.key > KEY_NONE && g_cfg.ragebot.weapon[hooks::rage_weapon = 6].damage_override_key.key < KEY_MAX)
InsertSliderInt((" Minimum override damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 6].minimum_override_damage, 1, 120, ("%d"));
break;
case 7:
InsertCombo(("Target selection"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].selection_type, selection, ARRAYSIZE(selection));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Hitboxes"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].hitboxes, hitboxes, ARRAYSIZE(hitboxes), preview);
InsertCheckbox("Automatic scope", g_cfg.ragebot.weapon[hooks::rage_weapon = 4].autoscope);
InsertCheckbox(("Static point scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].static_point_scale);
if (g_cfg.ragebot.weapon[hooks::rage_weapon = 4].static_point_scale)
{
InsertSlider((" Head scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].head_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 4].head_scale ? ("%.2f") : ("None"));
InsertSlider((" Body scale"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].body_scale, 0.0f, 1.0f, g_cfg.ragebot.weapon[hooks::rage_weapon = 4].body_scale ? ("%.2f") : ("None"));
}
InsertCheckbox(("Enable max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].max_misses);
InsertSliderInt((" Max misses"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].max_misses_amount, 0, 6, ("%d"));
InsertCheckbox(("Prefer safe points"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].prefer_safe_points);
InsertCheckbox(("Prefer body aim"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].prefer_body_aim);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Force safe points"), &g_cfg.ragebot.safe_point_key, ("##HOKEY_FORCE_SAFE_POINTS"));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Force body aim"), &g_cfg.ragebot.body_aim_key, ("##HOKEY_FORCE_BODY_AIM"));
InsertCheckbox(("Automatic stop"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].autostop);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Modifiers"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].autostop_modifiers, autostop_modifiers, ARRAYSIZE(autostop_modifiers), preview);
InsertCheckbox(("Hitchance"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].hitchance);
InsertSliderInt((" Hitchance amount"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].hitchance_amount, 1, 100, ("%d"));
InsertSliderInt((" Minimum visible damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].minimum_visible_damage, 1, 120, ("%d"));
InsertSliderInt((" Minimum wall damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].minimum_damage, 1, 120, ("%d"));
draw_keybind(("Damage override"), &g_cfg.ragebot.weapon[hooks::rage_weapon = 4].damage_override_key, ("##HOTKEY__DAMAGE_OVERRIDE"));
if (g_cfg.ragebot.weapon[hooks::rage_weapon = 4].damage_override_key.key > KEY_NONE && g_cfg.ragebot.weapon[hooks::rage_weapon = 4].damage_override_key.key < KEY_MAX)
InsertSliderInt((" Minimum override damage"), g_cfg.ragebot.weapon[hooks::rage_weapon = 4].minimum_override_damage, 1, 120, ("%d"));
break;
}
} InsertEndGroupBoxRight("Weapon Cover", "Weapon");
}
ImGui::PopFont();
}
void c_menu::Antiaim()
{
ImGui::PushFont(skeet_menu);
ImGuiStyle* style = &ImGui::GetStyle();
InsertSpacer("Top Spacer");
ImGui::Columns(2, NULL, false);
{
InsertGroupBoxLeft("Anti-aim", 506.f);
{
static auto type = 0;
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
InsertCheckbox(("Enable"), g_cfg.antiaim.enable);
InsertCombo(("Anti-aim type"), g_cfg.antiaim.antiaim_type, antiaim_type, ARRAYSIZE(antiaim_type));
if (g_cfg.antiaim.antiaim_type)
{
InsertCombo(("Desync"), g_cfg.antiaim.desync, desync, ARRAYSIZE(desync));
if (g_cfg.antiaim.desync)
{
InsertCombo(("LBY type"), g_cfg.antiaim.legit_lby_type, lby_type, ARRAYSIZE(lby_type));
if (g_cfg.antiaim.desync == 1)
{
draw_keybind(("Invert desync"), &g_cfg.antiaim.flip_desync, ("##HOTKEY_INVERT_DESYNC"));
}
}
}
else
{
InsertCombo(("Movement type"), type, movement_type, ARRAYSIZE(movement_type));
InsertCombo(("Pitch"), g_cfg.antiaim.type[type].pitch, pitch, ARRAYSIZE(pitch));
InsertCombo(("Yaw"), g_cfg.antiaim.type[type].yaw, yaw, ARRAYSIZE(yaw));
InsertCombo(("Base angle"), g_cfg.antiaim.type[type].base_angle, baseangle, ARRAYSIZE(baseangle));
if (g_cfg.antiaim.type[type].yaw)
{
InsertSliderInt(g_cfg.antiaim.type[type].yaw == 1 ? (" Jitter range") : (" Spin range"), g_cfg.antiaim.type[type].range, 1, 180, ("%d°"));
if (g_cfg.antiaim.type[type].yaw == 2)
InsertSliderInt((" Spin speed"), g_cfg.antiaim.type[type].speed, 1, 15, ("%d°"));
}
InsertCombo(("Desync"), g_cfg.antiaim.type[type].desync, desync, ARRAYSIZE(desync));
if (g_cfg.antiaim.type[type].desync)
{
if (type == ANTIAIM_STAND)
{
InsertCombo(("LBY type"), g_cfg.antiaim.lby_type, lby_type, ARRAYSIZE(lby_type));
}
if (type != ANTIAIM_STAND || !g_cfg.antiaim.lby_type)
{
InsertSliderInt((" Desync range"), g_cfg.antiaim.type[type].desync_range, 1, 60 , ("%d°"));
InsertSliderInt((" Inverted desync range"), g_cfg.antiaim.type[type].inverted_desync_range, 1, 60, ("%d°"));
InsertSliderInt((" Body lean"), g_cfg.antiaim.type[type].body_lean, 0, 100, ("%d°"));
InsertSliderInt((" Inverted body lean"), g_cfg.antiaim.type[type].inverted_body_lean, 0, 100, ("%d°"));
}
if (g_cfg.antiaim.type[type].desync == 1)
{
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind(("Invert desync"), &g_cfg.antiaim.flip_desync, ("##HOTKEY_INVERT_DESYNC"));
}
}
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind(("Manual back"), &g_cfg.antiaim.manual_back, ("##HOTKEY_INVERT_BACK"));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind(("Manual left"), &g_cfg.antiaim.manual_left, ("##HOTKEY_INVERT_LEFT"));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind(("Manual right"), &g_cfg.antiaim.manual_right, ("##HOTKEY_INVERT_RIGHT"));
if (g_cfg.antiaim.manual_back.key > KEY_NONE && g_cfg.antiaim.manual_back.key < KEY_MAX || g_cfg.antiaim.manual_left.key > KEY_NONE && g_cfg.antiaim.manual_left.key < KEY_MAX || g_cfg.antiaim.manual_right.key > KEY_NONE && g_cfg.antiaim.manual_right.key < KEY_MAX)
{
InsertCheckbox(("Manuals indicator"), g_cfg.antiaim.flip_indicator);
ImGui::SameLine();
ImGui::ColorEdit(("##invc"), &g_cfg.antiaim.flip_indicator_color, ALPHA);
}
}
} InsertEndGroupBoxLeft("Anti-aim Cover", "Anti-aim");
}
ImGui::NextColumn();
{
InsertGroupBoxRight("Fake lag", 331.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
InsertCheckbox(("Enable"), g_cfg.antiaim.fakelag);
InsertCombo(("Fake lag type"), g_cfg.antiaim.fakelag_type, fakelags, ARRAYSIZE(fakelags));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Fake lag triggers"), g_cfg.antiaim.fakelag_enablers, lagstrigger, ARRAYSIZE(lagstrigger), preview);
InsertSliderInt((" Limit"), g_cfg.antiaim.fakelag_limit, 1, 16, ("%d"));
auto enabled_fakelag_triggers = false;
for (auto i = 0; i < ARRAYSIZE(lagstrigger); i++)
if (g_cfg.antiaim.fakelag_enablers[i])
enabled_fakelag_triggers = true;
InsertSliderInt((" Triggers limit"), g_cfg.antiaim.triggers_fakelag_limit, 1, 16, ("%d"));
}
InsertEndGroupBoxRight("Fake lag Cover", "Fake lag");
InsertSpacer("Fake lag - Other Spacer");
InsertGroupBoxRight("Other", 153.f);
{
}
InsertEndGroupBoxRight("Other Cover", "Other");
}
ImGui::PopFont();
}
void c_menu::Visuals()
{
ImGui::PushFont(skeet_menu);
ImGuiStyle* style = &ImGui::GetStyle();
InsertSpacer("Top Spacer");
ImGui::Columns(2, NULL, false);
{
auto player = players_section;
InsertGroupBoxLeft("Player ESP", 506.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
const char* players_esp[3] = { ("Enemy"), ("Team"), ("Local") };
InsertCheckbox(("Enable"), g_cfg.player.enable);
InsertCombo(("Current ESP"), hooks::players_esp, players_esp, ARRAYSIZE(players_esp));
//auto player = players_section;
//ImGui::Checkbox(("OOF arrows"), &g_cfg.player.arrows);
//ImGui::SameLine();
//ImGui::ColorEdit(("##arrowscolor"), &g_cfg.player.arrows_color, ALPHA);
//if (g_cfg.player.arrows)
//{
//ImGui::SliderInt(("Arrows distance"), &g_cfg.player.distance, 1, 100);
//ImGui::SliderInt(("Arrows size"), &g_cfg.player.size, 1, 100);
//}
InsertCheckbox(("Bounding box"), g_cfg.player.type[hooks::players_esp].box);
ImGui::SameLine();
ImGui::ColorEdit(("##boxcolor"), &g_cfg.player.type[hooks::players_esp].box_color, ALPHA);
InsertCheckbox(("Name"), g_cfg.player.type[hooks::players_esp].name);
ImGui::SameLine();
ImGui::ColorEdit(("##namecolor"), &g_cfg.player.type[hooks::players_esp].name_color, ALPHA);
InsertCheckbox(("Health bar"), g_cfg.player.type[hooks::players_esp].health);
InsertCheckbox(("Health color"), g_cfg.player.type[hooks::players_esp].custom_health_color);
ImGui::SameLine();
ImGui::ColorEdit(("##healthcolor"), &g_cfg.player.type[hooks::players_esp].health_color, ALPHA);
for (auto i = 0, j = 0; i < ARRAYSIZE(flags); i++)
{
if (g_cfg.player.type[hooks::players_esp].flags[i])
{
if (j)
preview += (", ") + (std::string)flags[i];
else
preview = flags[i];
j++;
}
}
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Flags"), g_cfg.player.type[hooks::players_esp].flags, flags, ARRAYSIZE(flags), preview);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Weapon"), g_cfg.player.type[hooks::players_esp].weapon, weaponplayer, ARRAYSIZE(weaponplayer), preview);
if (g_cfg.player.type[hooks::players_esp].weapon[WEAPON_ICON] || g_cfg.player.type[hooks::players_esp].weapon[WEAPON_TEXT])
{
ImGui::Spacing();
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Color "));
ImGui::SameLine();
ImGui::ColorEdit(("##weapcolor"), &g_cfg.player.type[hooks::players_esp].weapon_color, ALPHA);
ImGui::Spacing();
}
InsertCheckbox(("Ammo bar"), g_cfg.player.type[hooks::players_esp].ammo);
ImGui::SameLine();
ImGui::ColorEdit(("##ammocolor"), &g_cfg.player.type[hooks::players_esp].ammobar_color, ALPHA);
InsertCheckbox(("Footsteps"), g_cfg.player.type[hooks::players_esp].footsteps);
ImGui::SameLine();
ImGui::ColorEdit(("##footstepscolor"), &g_cfg.player.type[hooks::players_esp].footsteps_color, ALPHA);
if (g_cfg.player.type[hooks::players_esp].footsteps)
{
InsertSliderInt((" Thickness"), g_cfg.player.type[hooks::players_esp].thickness, 1, 10, ("%d"));
InsertSliderInt((" Radius"), g_cfg.player.type[hooks::players_esp].radius, 50, 500, ("%d"));
}
InsertCheckbox(("Snap lines"), g_cfg.player.type[hooks::players_esp].snap_lines);
ImGui::SameLine();
ImGui::ColorEdit(("##snapcolor"), &g_cfg.player.type[hooks::players_esp].snap_lines_color, ALPHA);
if (g_cfg.ragebot.enable)
{
InsertCheckbox(("Aimbot points"), g_cfg.player.show_multi_points);
ImGui::SameLine();
ImGui::ColorEdit(("##showmultipointscolor"), &g_cfg.player.show_multi_points_color, ALPHA);
}
InsertCheckbox(("Aimbot hitboxes"), g_cfg.player.lag_hitbox);
ImGui::SameLine();
ImGui::ColorEdit(("##lagcompcolor"), &g_cfg.player.lag_hitbox_color, ALPHA);
InsertCombo(("Player model T"), g_cfg.player.player_model_t, player_model_t, ARRAYSIZE(player_model_t));
InsertCombo(("Player model CT"), g_cfg.player.player_model_ct, player_model_ct, ARRAYSIZE(player_model_ct));
} InsertEndGroupBoxLeft("Player ESP Cover", "Player ESP");
}
ImGui::NextColumn();
{
InsertGroupBoxRight("Other", 506.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Indicators"), g_cfg.esp.indicators, indicators, ARRAYSIZE(indicators), preview);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Removals"), g_cfg.esp.removals, removals, ARRAYSIZE(removals), preview);
InsertCheckbox(("Fix zoom sensivity"), g_cfg.esp.fix_zoom_sensivity);
InsertCheckbox(("Grenade prediction"), g_cfg.esp.grenade_prediction);
ImGui::SameLine();
ImGui::ColorEdit(("##grenpredcolor"), &g_cfg.esp.grenade_prediction_color, ALPHA);
if (g_cfg.esp.grenade_prediction)
{
InsertCheckbox(("On click"), g_cfg.esp.on_click);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Tracer color "));
ImGui::SameLine();
ImGui::ColorEdit(("##tracergrenpredcolor"), &g_cfg.esp.grenade_prediction_tracer_color, ALPHA);
ImGui::Spacing();
}
InsertCheckbox(("Grenade projectiles"), g_cfg.esp.projectiles);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (g_cfg.esp.projectiles)
draw_multicombo(("Grenade ESP"), g_cfg.esp.grenade_esp, proj_combo, ARRAYSIZE(proj_combo), preview);
if (g_cfg.esp.grenade_esp[GRENADE_ICON] || g_cfg.esp.grenade_esp[GRENADE_TEXT])
{
ImGui::Spacing();
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Color "));
ImGui::SameLine();
ImGui::ColorEdit(("##projectcolor"), &g_cfg.esp.projectiles_color, ALPHA);
}
if (g_cfg.esp.grenade_esp[GRENADE_BOX])
{
ImGui::Spacing();
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Box color "));
ImGui::SameLine();
ImGui::ColorEdit(("##grenade_box_color"), &g_cfg.esp.grenade_box_color, ALPHA);
}
if (g_cfg.esp.grenade_esp[GRENADE_GLOW])
{
ImGui::Spacing();
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Glow color "));
ImGui::SameLine();
ImGui::ColorEdit(("##grenade_glow_color"), &g_cfg.esp.grenade_glow_color, ALPHA);
}
InsertCheckbox(("Fire timer"), g_cfg.esp.molotov_timer);
ImGui::SameLine();
ImGui::ColorEdit(("##molotovcolor"), &g_cfg.esp.molotov_timer_color, ALPHA);
InsertCheckbox(("Smoke timer"), g_cfg.esp.smoke_timer);
ImGui::SameLine();
ImGui::ColorEdit(("##smokecolor"), &g_cfg.esp.smoke_timer_color, ALPHA);
InsertCheckbox(("Bomb indicator"), g_cfg.esp.bomb_timer);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Weapon ESP"), g_cfg.esp.weapon, weaponesp, ARRAYSIZE(weaponesp), preview);
if (g_cfg.esp.weapon[WEAPON_ICON] || g_cfg.esp.weapon[WEAPON_TEXT] || g_cfg.esp.weapon[WEAPON_DISTANCE])
{
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Color "));
ImGui::SameLine();
ImGui::ColorEdit(("##weaponcolor"), &g_cfg.esp.weapon_color, ALPHA);
}
if (g_cfg.esp.weapon[WEAPON_BOX])
{
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Box color "));
ImGui::SameLine();
ImGui::ColorEdit(("##weaponboxcolor"), &g_cfg.esp.box_color, ALPHA);
}
if (g_cfg.esp.weapon[WEAPON_GLOW])
{
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Glow color "));
ImGui::SameLine();
ImGui::ColorEdit(("##weaponglowcolor"), &g_cfg.esp.weapon_glow_color, ALPHA);
}
if (g_cfg.esp.weapon[WEAPON_AMMO])
{
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Ammo bar color "));
ImGui::SameLine();
ImGui::ColorEdit(("##weaponammocolor"), &g_cfg.esp.weapon_ammo_color, ALPHA);
ImGui::Spacing();
}
InsertCheckbox(("Client bullet impacts"), g_cfg.esp.client_bullet_impacts);
ImGui::SameLine();
ImGui::ColorEdit(("##clientbulletimpacts"), &g_cfg.esp.client_bullet_impacts_color, ALPHA);
InsertCheckbox(("Server bullet impacts"), g_cfg.esp.server_bullet_impacts);
ImGui::SameLine();
ImGui::ColorEdit(("##serverbulletimpacts"), &g_cfg.esp.server_bullet_impacts_color, ALPHA);
InsertCheckbox(("Local bullet tracers"), g_cfg.esp.bullet_tracer);
ImGui::SameLine();
ImGui::ColorEdit(("##bulltracecolor"), &g_cfg.esp.bullet_tracer_color, ALPHA);
InsertCheckbox(("Enemy bullet tracers"), g_cfg.esp.enemy_bullet_tracer);
ImGui::SameLine();
ImGui::ColorEdit(("##enemybulltracecolor"), &g_cfg.esp.enemy_bullet_tracer_color, ALPHA);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Hit marker"), g_cfg.esp.hitmarker, hitmarkers, ARRAYSIZE(hitmarkers), preview);
InsertCheckbox(("Damage marker"), g_cfg.esp.damage_marker);
InsertCheckbox(("Kill effect"), g_cfg.esp.kill_effect);
ImGui::NewLine(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::SliderFloat((" Duration"), &g_cfg.esp.kill_effect_duration, 0.1f, 3.0f);
ImGui::Spacing();
ImGui::Spacing();
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind(("Thirdperson"), &g_cfg.misc.thirdperson_toggle, ("##TPKEY__HOTKEY"));
InsertCheckbox(("Thirdperson when spectating"), g_cfg.misc.thirdperson_when_spectating);
if (g_cfg.misc.thirdperson_toggle.key > KEY_NONE && g_cfg.misc.thirdperson_toggle.key < KEY_MAX)
InsertSliderInt((" Thirdperson distance"), g_cfg.misc.thirdperson_distance, 100, 300, ("%d"));
InsertSliderInt((" Field of view"), g_cfg.esp.fov, 0, 89, ("%d"));
InsertCheckbox(("Taser range"), g_cfg.esp.taser_range);
InsertCheckbox(("Show spread"), g_cfg.esp.show_spread);
ImGui::SameLine();
ImGui::ColorEdit(("##spredcolor"), &g_cfg.esp.show_spread_color, ALPHA);
InsertCheckbox(("Penetration crosshair"), g_cfg.esp.penetration_reticle);
InsertCheckbox(("Rain"), g_cfg.esp.rain);
InsertCheckbox(("Full bright"), g_cfg.esp.bright);
InsertCombo(("Skybox"), g_cfg.esp.skybox, skybox, ARRAYSIZE(skybox));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Color "));
ImGui::SameLine();
ImGui::ColorEdit(("##skyboxcolor"), &g_cfg.esp.skybox_color, NOALPHA);
ImGui::Spacing();
if (g_cfg.esp.skybox == 21)
{
static char sky_custom[64] = "\0";
if (!g_cfg.esp.custom_skybox.empty())
strcpy_s(sky_custom, sizeof(sky_custom), g_cfg.esp.custom_skybox.c_str());
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Name"));
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.f);
if (ImGui::InputText(("##customsky"), sky_custom, sizeof(sky_custom)))
g_cfg.esp.custom_skybox = sky_custom;
}
InsertCheckbox(("Color modulation"), g_cfg.esp.nightmode);
if (g_cfg.esp.nightmode)
{
ImGui::Spacing();
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" World color "));
ImGui::SameLine();
ImGui::ColorEdit(("##worldcolor"), &g_cfg.esp.world_color, ALPHA);
ImGui::Spacing();
ImGui::Spacing();
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Props color "));
ImGui::SameLine();
ImGui::ColorEdit(("##propscolor"), &g_cfg.esp.props_color, ALPHA);
ImGui::Spacing();
}
InsertCheckbox(("World modulation"), g_cfg.esp.world_modulation);
if (g_cfg.esp.world_modulation)
{
ImGui::NewLine(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::SliderFloat((" Bloom"), &g_cfg.esp.bloom, 0.0f, 750.0f);
ImGui::NewLine(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::SliderFloat((" Exposure"), &g_cfg.esp.exposure, 0.0f, 2000.0f);
ImGui::NewLine(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::SliderFloat((" Ambient"), &g_cfg.esp.ambient, 0.0f, 1500.0f);
}
InsertCheckbox(("Fog modulation"), g_cfg.esp.fog);
if (g_cfg.esp.fog)
{
InsertSliderInt((" Distance"), g_cfg.esp.fog_distance, 0, 2500, ("%d"));
InsertSliderInt((" Density"), g_cfg.esp.fog_density, 0, 100, ("%d"));
ImGui::Spacing();
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Color "));
ImGui::SameLine();
ImGui::ColorEdit(("##fogcolor"), &g_cfg.esp.fog_color, NOALPHA);
ImGui::Spacing();
ImGui::Spacing();
}
} InsertEndGroupBoxRight("Other Cover", "Other");
}
ImGui::PopFont();
}
void c_menu::Misc()
{
ImGui::PushFont(skeet_menu);
ImGuiStyle* style = &ImGui::GetStyle();
InsertSpacer("Top Spacer");
ImGui::Columns(2, NULL, false);
{
InsertGroupBoxLeft("Miscellaneous", 506.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
InsertCheckbox(("Anti-screenshot"), g_cfg.misc.anti_screenshot);
InsertCheckbox(("Clantag"), g_cfg.misc.clantag_spammer);
InsertCheckbox(("Chat spam"), g_cfg.misc.chat);
InsertCheckbox("Anti-untrusted", g_cfg.misc.anti_untrusted);
InsertCheckbox("Rank reveal", g_cfg.misc.rank_reveal);
InsertCheckbox("Unlock inventory", g_cfg.misc.inventory_access);
InsertCheckbox("Gravity ragdolls", g_cfg.misc.ragdolls);
InsertCheckbox("Preserve killfeed", g_cfg.esp.preserve_killfeed);
InsertCheckbox("Aspect ratio", g_cfg.misc.aspect_ratio);
if (g_cfg.misc.aspect_ratio)
{
ImGui::NewLine(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::SliderFloat((" Amount"), &g_cfg.misc.aspect_ratio_amount, 0.1f, 2.f);
}
InsertCheckbox(("Enable buybot"), g_cfg.misc.buybot_enable);
if (g_cfg.misc.buybot_enable)
{
InsertCombo(("Snipers"), g_cfg.misc.buybot1, mainwep, ARRAYSIZE(mainwep));
InsertCombo(("Pistols"), g_cfg.misc.buybot2, secwep, ARRAYSIZE(secwep));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Other"), g_cfg.misc.buybot3, grenades, ARRAYSIZE(grenades), preview);
}
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Logs"), g_cfg.misc.events_to_log, events, ARRAYSIZE(events), preview);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_multicombo(("Logs output"), g_cfg.misc.log_output, events_output, ARRAYSIZE(events_output), preview);
if (g_cfg.misc.events_to_log[EVENTLOG_HIT] || g_cfg.misc.events_to_log[EVENTLOG_ITEM_PURCHASES] || g_cfg.misc.events_to_log[EVENTLOG_BOMB])
{
ImGui::Spacing();
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Color "));
ImGui::SameLine();
ImGui::ColorEdit(("##logcolor"), &g_cfg.misc.log_color, ALPHA);
ImGui::Spacing();
}
} InsertEndGroupBoxLeft("Miscellaneous Cover", "Miscellaneous");
}
ImGui::NextColumn();
{
InsertGroupBoxRight("Settings", 156.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
InsertCheckbox("Watermark", g_cfg.menu.watermark);
InsertCheckbox("Spectators list", g_cfg.misc.spectators_list);
InsertCombo("Hitsound", g_cfg.esp.hitsound, sounds, ARRAYSIZE(sounds));
InsertCheckbox("Killsound", g_cfg.esp.killsound);
} InsertEndGroupBoxRight("Settings Cover", "Settings");
InsertSpacer("Settings - Other Spacer");
InsertGroupBoxRight("Other", 328.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
InsertCheckbox(("Automatic jump"), g_cfg.misc.bunnyhop);
InsertCombo((" Automatic strafes"), g_cfg.misc.airstrafe, strafes, ARRAYSIZE(strafes));
InsertCheckbox(("Crouch in air"), g_cfg.misc.crouch_in_air);
InsertCheckbox(("Fast stop"), g_cfg.misc.fast_stop);
InsertCheckbox(("Slide walk"), g_cfg.misc.slidewalk);
InsertCheckbox(("No duck cooldown"), g_cfg.misc.noduck);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (g_cfg.misc.noduck)
draw_keybind((" Fake duck"), &g_cfg.misc.fakeduck_key, ("##FAKEDUCK__HOTKEY"));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Slow walk"), &g_cfg.misc.slowwalk_key, ("##SLOWWALK__HOTKEY"));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Auto peek"), &g_cfg.misc.automatic_peek, ("##AUTOPEEK__HOTKEY"));
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
draw_keybind((" Edge jump"), &g_cfg.misc.edge_jump, ("##EDGEJUMP__HOTKEY"));
/*std::string zstations[] =
{
"http://air.radiorecord.ru:805/synth_320",
"https://shoutcast1.hardcoreradio.n1:9000/hcr-mp3",
"http://air.radiorecord.ru:805/tm_320",
"http://air.radiorecord.ru:805/mix_320",
"http://air2.radiorecord.ru:805/rr_320",
"http://air.radiorecord.ru:805/dub_320",
"http://air.radiorecord.ru:805/teo_320",
"http://air.radiorecord.ru:805/dc_320",
"http://air.radiorecord.ru:805/goa_320",
"http://air.radiorecord.ru:805/hbass_320",
"http://air.radiorecord.ru:805/1980_320",
"http://air.radiorecord.ru:805/rock_320",
"http://air.radiorecord.ru:805/cadillac_320",
"http://air.radiorecord.ru:805/eurodance_320",
"http://antenaradio.org:4550/",
"http://streaming.tdiradio.com/tdiradiobezreklama-mp3"
};
InsertCheckbox("Radio", g_cfg.misc.radio);
ImGui::NewLine(); ImGui::SameLine(42.f);
ImGui::Text("Radio Station");
ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (ImGui::ListBox("", &g_cfg.misc.radiostation, radio_name, IM_ARRAYSIZE(radio_name), 17))
{
BASS_ChannelStop(stream);
stream = NULL;
stream = BASS_StreamCreateURL(zstations[g_cfg.misc.radiostation].c_str(), 0, 0, NULL, 0);
}
if (g_cfg.misc.radio)
{
static bool radioInit = false;
if (!radioInit) {
BASS_Init(-1, 44100, BASS_DEVICE_3D, 0, NULL);
stream = BASS_StreamCreateURL(zstations[g_cfg.misc.radiostation].c_str(), 0, 0, NULL, 0);
radioInit = true;
}
static float vol = 0.1f;
BASS_ChannelSetAttribute(stream, BASS_ATTRIB_VOL, vol / 100.0f);
BASS_ChannelPlay(stream, false);
InsertSlider("Radio volume", vol, 0.f, 100.0f, "%0.f%");
}
else if (!g_cfg.misc.radio)
{
BASS_ChannelStop(stream);
stream = NULL;
}*/
} InsertEndGroupBoxRight("Other Cover", "Other");
}
ImGui::PopFont();
}
/*void c_menu::Skins()
{
ImGui::PushFont(skeet_menu);
ImGuiStyle* style = &ImGui::GetStyle();
InsertSpacer("Top Spacer");
ImGui::Columns(2, NULL, false);
{
InsertGroupBoxLeft("Knife options", 112.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
}
InsertEndGroupBoxLeft("Knife options Cover", "Knife options");
InsertSpacer("Fake lag - Other Spacer");
InsertGroupBoxLeft("Glove options", 376.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
}
InsertEndGroupBoxLeft("Glove options Cover", "Glove options");
}
ImGui::NextColumn();
{
InsertGroupBoxRight("Weapon skin", 506.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
}
InsertEndGroupBoxRight("Weapon skin Cover", "Weapon skin");
}
ImGui::PopFont();
}*/
void c_menu::Configurations()
{
ImGui::PushFont(skeet_menu);
ImGuiStyle* style = &ImGui::GetStyle();
InsertSpacer("Top Spacer");
ImGui::Columns(2, NULL, false);
{
InsertGroupBoxLeft("Configs", 506.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
static auto should_update = true;
if (should_update)
{
should_update = false;
cfg_manager->config_files();
files = cfg_manager->files;
for (auto& current : files)
if (current.size() > 2)
current.erase(current.size() - 3, 3);
}
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (ImGui::Button(("Open configs folder")))
{
std::string folder;
auto get_dir = [&folder]() -> void
{
static TCHAR path[MAX_PATH];
if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, NULL, path)))
folder = std::string(path) + ("\\Lrimuse.pw\\Configs\\");
CreateDirectory(folder.c_str(), NULL);
};
get_dir();
ShellExecute(NULL, ("open"), folder.c_str(), NULL, NULL, SW_SHOWNORMAL);
}
InsertSpacer("Top Spacer 1");
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.f);
config_listbox::ListBox(("##CONFIGS"), &g_cfg.selected_config, files, 7);
ImGui::PopStyleVar();
InsertSpacer("Top Spacer 2");
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (ImGui::Button(("Refresh configs")))
{
cfg_manager->config_files();
files = cfg_manager->files;
for (auto& current : files)
if (current.size() > 2)
current.erase(current.size() - 3, 3);
}
InsertSpacer("Top Spacer 3");
static char config_name[64] = "\0";
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.f);
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::InputText(("##configname"), config_name, sizeof(config_name));
ImGui::PopStyleVar();
InsertSpacer("Top Spacer 33");
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (ImGui::Button(("Create config")))
{
g_cfg.new_config_name = config_name;
add_config();
}
InsertSpacer("Top Spacer 4");
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (ImGui::Button(("Save Config")))
save_config();
InsertSpacer("Top Spacer 5");
ImGui::PopStyleVar();
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (ImGui::Button(("Load config")))
load_config();
InsertSpacer("Top Spacer 6");
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (ImGui::Button(("Remove config")))
remove_config();
}
InsertEndGroupBoxLeft("Configs Cover", "Configs");
}
ImGui::NextColumn();
{
InsertGroupBoxRight("Players list", 506.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
auto player = players_section;
static std::vector <Player_list_data> players;
static auto current_player = 0;
InsertSpacer("Player list spacer");
if (!players.empty())
{
std::vector <std::string> player_names;
for (auto player : players)
player_names.emplace_back(player.name);
ImGui::PushItemWidth(291);
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.f);
config_listbox::ListBox(("##PLAYERLIST"), ¤t_player, player_names, 7);
ImGui::PopStyleVar();
ImGui::PopItemWidth();
}
if (!g_cfg.player_list.refreshing)
{
players.clear();
for (auto player : g_cfg.player_list.players)
players.emplace_back(player);
}
InsertSpacer("Player list spacer for 2 spcae");
if (!players.empty())
{
if (current_player >= players.size())
current_player = players.size() - 1;
InsertCheckbox(("White list"), g_cfg.player_list.white_list[players.at(current_player).i]);
if (!g_cfg.player_list.white_list[players.at(current_player).i])
{
InsertCheckbox(("High priority"), g_cfg.player_list.high_priority[players.at(current_player).i]);
InsertCheckbox(("Force safe points"), g_cfg.player_list.force_safe_points[players.at(current_player).i]);
InsertCheckbox(("Force body aim"), g_cfg.player_list.force_body_aim[players.at(current_player).i]);
InsertCheckbox(("Low delta"), g_cfg.player_list.low_delta[players.at(current_player).i]);
}
}
} InsertEndGroupBoxRight("Players list Cover", "Players list");
}
ImGui::PopFont();
}
void c_menu::Luas()
{
ImGui::PushFont(skeet_menu);
ImGuiStyle* style = &ImGui::GetStyle();
InsertSpacer("Top Spacer");
ImGui::Columns(2, NULL, false);
{
InsertGroupBoxLeft("Scripts", 506.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
static auto should_update = true;
if (should_update)
{
should_update = false;
scripts = c_lua::get().scripts;
for (auto& current : scripts)
{
if (current.size() >= 5 && current.at(current.size() - 1) == 'c')
current.erase(current.size() - 5, 5);
else if (current.size() >= 4)
current.erase(current.size() - 4, 4);
}
}
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (ImGui::Button(("Open scripts folder")))
{
std::string folder;
auto get_dir = [&folder]() -> void
{
static TCHAR path[MAX_PATH];
if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, NULL, path)))
folder = std::string(path) + ("\\Lrimuse.pw\\Scripts\\");
CreateDirectory(folder.c_str(), NULL);
};
get_dir();
ShellExecute(NULL, ("open"), folder.c_str(), NULL, NULL, SW_SHOWNORMAL);
}
ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 1.f);
InsertSpacer("Top Spacer");
if (scripts.empty())
config_listbox::ListBox(("##LUAS"), &selected_script, scripts, 7);
else
{
auto backup_scripts = scripts;
for (auto& script : scripts)
{
auto script_id = c_lua::get().get_script_id(script + (".lua"));
if (script_id == -1)
continue;
if (c_lua::get().loaded.at(script_id))
scripts.at(script_id) += (" [loaded]");
}
config_listbox::ListBox(("##LUAS"), &selected_script, scripts, 7);
scripts = std::move(backup_scripts);
}
InsertSpacer("Top Spacer 2");
ImGui::PopStyleVar();
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (ImGui::Button(("Refresh scripts")))
{
c_lua::get().refresh_scripts();
scripts = c_lua::get().scripts;
if (selected_script >= scripts.size())
selected_script = scripts.size() - 1; //-V103
for (auto& current : scripts)
{
if (current.size() >= 5 && current.at(current.size() - 1) == 'c')
current.erase(current.size() - 5, 5);
else if (current.size() >= 4)
current.erase(current.size() - 4, 4);
}
}
InsertSpacer("Top Spacer 3");
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (ImGui::Button(("Edit script")))
{
loaded_editing_script = false;
editing_script = scripts.at(selected_script);
}
InsertSpacer("Top Spacer 4");
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (ImGui::Button(("Load script")))
{
c_lua::get().load_script(selected_script);
c_lua::get().refresh_scripts();
scripts = c_lua::get().scripts;
if (selected_script >= scripts.size())
selected_script = scripts.size() - 1; //-V103
for (auto& current : scripts)
{
if (current.size() >= 5 && current.at(current.size() - 1) == 'c')
current.erase(current.size() - 5, 5);
else if (current.size() >= 4)
current.erase(current.size() - 4, 4);
}
eventlogs::get().add(("Loaded ") + scripts.at(selected_script) + (" script"), false); //-V106
}
InsertSpacer("Top Spacer 5");
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (ImGui::Button(("Unload script")))
{
c_lua::get().unload_script(selected_script);
c_lua::get().refresh_scripts();
scripts = c_lua::get().scripts;
if (selected_script >= scripts.size())
selected_script = scripts.size() - 1; //-V103
for (auto& current : scripts)
{
if (current.size() >= 5 && current.at(current.size() - 1) == 'c')
current.erase(current.size() - 5, 5);
else if (current.size() >= 4)
current.erase(current.size() - 4, 4);
}
eventlogs::get().add(("Unloaded ") + scripts.at(selected_script) + (" script"), false); //-V106
}
InsertSpacer("Top Spacer 6");
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (ImGui::Button(("Reload all scripts")))
{
c_lua::get().reload_all_scripts();
c_lua::get().refresh_scripts();
scripts = c_lua::get().scripts;
if (selected_script >= scripts.size())
selected_script = scripts.size() - 1; //-V103
for (auto& current : scripts)
{
if (current.size() >= 5 && current.at(current.size() - 1) == 'c')
current.erase(current.size() - 5, 5);
else if (current.size() >= 4)
current.erase(current.size() - 4, 4);
}
}
InsertSpacer("Top Spacer 7");
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
if (ImGui::Button(("Unload all scripts")))
{
c_lua::get().unload_all_scripts();
c_lua::get().refresh_scripts();
scripts = c_lua::get().scripts;
if (selected_script >= scripts.size())
selected_script = scripts.size() - 1; //-V103
for (auto& current : scripts)
{
if (current.size() >= 5 && current.at(current.size() - 1) == 'c')
current.erase(current.size() - 5, 5);
else if (current.size() >= 4)
current.erase(current.size() - 4, 4);
}
}
} InsertEndGroupBoxLeft("Scripts Cover", "Scripts");
}
ImGui::NextColumn();
{
InsertGroupBoxRight("Script elements", 506.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
//InsertCheckbox(("Developer mode"), g_cfg.scripts.developer_mode);
//InsertCheckbox(("Allow HTTP requests"), g_cfg.scripts.allow_http);
//InsertCheckbox(("Allow files read or write"), g_cfg.scripts.allow_file);
auto previous_check_box = false;
for (auto& current : c_lua::get().scripts)
{
auto& items = c_lua::get().items.at(c_lua::get().get_script_id(current));
for (auto& item : items)
{
std::string item_name;
auto first_point = false;
auto item_str = false;
for (auto& c : item.first)
{
if (c == '.')
{
if (first_point)
{
item_str = true;
continue;
}
else
first_point = true;
}
if (item_str)
item_name.push_back(c);
}
switch (item.second.type)
{
case NEXT_LINE:
previous_check_box = false;
break;
case CHECK_BOX:
previous_check_box = true;
InsertCheckbox(item_name.c_str(), item.second.check_box_value);
break;
case COMBO_BOX:
previous_check_box = false;
ImGui::Spacing(); ImGui::NewLine(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); ImGui::PopItemWidth(); ImGui::CustomSpacing(1.f);
draw_combo(item_name.c_str(), item.second.combo_box_value, [](void* data, int idx, const char** out_text)
{
auto labels = (std::vector <std::string>*)data;
*out_text = labels->at(idx).c_str(); //-V106
return true;
}, &item.second.combo_box_labels, item.second.combo_box_labels.size());
break;
case SLIDER_INT:
previous_check_box = false;
ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(159.f); ImGui::PopItemWidth();
ImGui::SliderInt(item_name.c_str(), &item.second.slider_int_value, item.second.slider_int_min, item.second.slider_int_max);
break;
case SLIDER_FLOAT:
previous_check_box = false;
ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(159.f); ImGui::PopItemWidth();
ImGui::SliderFloat(item_name.c_str(), &item.second.slider_float_value, item.second.slider_float_min, item.second.slider_float_max);
break;
case COLOR_PICKER:
if (previous_check_box)
previous_check_box = false;
else
ImGui::Text((item_name + ' ').c_str());
ImGui::SameLine();
ImGui::ColorEdit((("##") + item_name).c_str(), &item.second.color_picker_value, ALPHA, true);
break;
}
}
}
}
InsertEndGroupBoxRight("Script elements Cover", "Script elements");
}
ImGui::PopFont();
}
void c_menu::Chams()
{
ImGui::PushFont(skeet_menu);
ImGuiStyle* style = &ImGui::GetStyle();
InsertSpacer("Top Spacer");
ImGui::Columns(2, NULL, false);
{
InsertGroupBoxLeft("Weapon/Arms chams", 506.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
InsertCheckbox(("Arms chams"), g_cfg.esp.arms_chams);
ImGui::SameLine();
ImGui::ColorEdit(("##armscolor"), &g_cfg.esp.arms_chams_color, ALPHA);
InsertCombo(("Arms chams material"), g_cfg.esp.arms_chams_type, chamstype, ARRAYSIZE(chamstype));
if (g_cfg.esp.arms_chams_type != 6)
{
InsertCheckbox(("Arms double material "), g_cfg.esp.arms_double_material);
ImGui::SameLine();
ImGui::ColorEdit(("##armsdoublematerial"), &g_cfg.esp.arms_double_material_color, ALPHA);
}
InsertCheckbox(("Arms animated material "), g_cfg.esp.arms_animated_material);
ImGui::SameLine();
ImGui::ColorEdit(("##armsanimatedmaterial"), &g_cfg.esp.arms_animated_material_color, ALPHA);
ImGui::Spacing();
InsertCheckbox(("Weapon chams"), g_cfg.esp.weapon_chams);
ImGui::SameLine();
ImGui::ColorEdit(("##weaponchamscolors"), &g_cfg.esp.weapon_chams_color, ALPHA);
InsertCombo(("Weapon chams material"), g_cfg.esp.weapon_chams_type, chamstype, ARRAYSIZE(chamstype));
if (g_cfg.esp.weapon_chams_type != 6)
{
InsertCheckbox(("Double material "), g_cfg.esp.weapon_double_material);
ImGui::SameLine();
ImGui::ColorEdit(("##weapondoublematerial"), &g_cfg.esp.weapon_double_material_color, ALPHA);
}
InsertCheckbox(("Animated material "), g_cfg.esp.weapon_animated_material);
ImGui::SameLine();
ImGui::ColorEdit(("##weaponanimatedmaterial"), &g_cfg.esp.weapon_animated_material_color, ALPHA);
} InsertEndGroupBoxLeft("Weapon/Arms chams Cover", "Weapon/Arms chams");
//InsertSpacer("Chams - Other Spacer");
/*InsertGroupBoxLeft("Enemy", 244.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
} InsertEndGroupBoxLeft("Enemy Cover", "Enemy chams");*/
}
ImGui::NextColumn();
{
InsertGroupBoxRight("Local", 506.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
// 0 = Enemy
// 1 = Team
// 2 = Local
const char* players_chams[3] = { ("Enemy"), ("Team"), ("Local") };
//auto player = players_section;
InsertCombo(("Current Chams"), hooks::players_chams, players_chams, ARRAYSIZE(players_chams));
if (hooks::players_chams == 2)
{
InsertCombo(("Type"), g_cfg.player.local_chams_type, local_chams_type, ARRAYSIZE(local_chams_type));
}
if (!g_cfg.player.local_chams_type == 1)
{
ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f); draw_multicombo(("Chams"), g_cfg.player.type[hooks::players_chams].chams, g_cfg.player.type[hooks::players_chams].chams[PLAYER_CHAMS_VISIBLE] ? chamsvisact : chamsvis, g_cfg.player.type[hooks::players_chams].chams[PLAYER_CHAMS_VISIBLE] ? ARRAYSIZE(chamsvisact) : ARRAYSIZE(chamsvis), preview);
}
if (hooks::players_chams == 2 && !g_cfg.player.local_chams_type == 0)
{
InsertCheckbox(("Enable desync chams"), g_cfg.player.fake_chams_enable);
InsertCheckbox(("Visualize lag"), g_cfg.player.visualize_lag);
InsertCheckbox(("Layered"), g_cfg.player.layered);
InsertCombo(("Player chams material"), g_cfg.player.fake_chams_type, chamstype, ARRAYSIZE(chamstype));
ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Color "));
ImGui::SameLine();
ImGui::ColorEdit(("##fakechamscolor"), &g_cfg.player.fake_chams_color, ALPHA);
ImGui::Spacing();
InsertCheckbox(("Double material "), g_cfg.player.fake_double_material);
ImGui::SameLine();
ImGui::ColorEdit(("##doublematerialcolor"), &g_cfg.player.fake_double_material_color, ALPHA);
InsertCheckbox(("Animated material"), g_cfg.player.fake_animated_material);
ImGui::SameLine();
ImGui::ColorEdit(("##animcolormat"), &g_cfg.player.fake_animated_material_color, ALPHA);
}
if (hooks::players_chams == 0 || hooks::players_chams == 1 || !g_cfg.player.local_chams_type == 1)
{
InsertCombo(("Player chams material"), g_cfg.player.type[hooks::players_chams].chams_type, chamstype, ARRAYSIZE(chamstype));
ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Visible "));
ImGui::SameLine();
ImGui::ColorEdit(("##chamsvisible"), &g_cfg.player.type[hooks::players_chams].chams_color, ALPHA);
ImGui::Spacing();
ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Invisible "));
ImGui::SameLine();
ImGui::ColorEdit(("##chamsinvisible"), &g_cfg.player.type[hooks::players_chams].xqz_color, ALPHA);
ImGui::Spacing();
InsertCheckbox(("Double material "), g_cfg.player.type[hooks::players_chams].double_material);
ImGui::SameLine();
ImGui::ColorEdit(("##doublematerialcolor"), &g_cfg.player.type[hooks::players_chams].double_material_color, ALPHA);
InsertCheckbox(("Animated material"), g_cfg.player.type[hooks::players_chams].animated_material);
ImGui::SameLine();
ImGui::ColorEdit(("##animcolormat"), &g_cfg.player.type[hooks::players_chams].animated_material_color, ALPHA);
}
if (hooks::players_chams == 0)
{
InsertCheckbox(("Backtrack chams"), g_cfg.player.backtrack_chams);
InsertCombo(("Backtrack chams material"), g_cfg.player.backtrack_chams_material, chamstype, ARRAYSIZE(chamstype));
ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Color "));
ImGui::SameLine();
ImGui::ColorEdit(("##backtrackcolor"), &g_cfg.player.backtrack_chams_color, ALPHA);
ImGui::Spacing();
InsertCheckbox(("Ragdoll chams"), g_cfg.player.type[hooks::players_chams].ragdoll_chams);
InsertCombo(("Ragdoll chams material"), g_cfg.player.type[hooks::players_chams].ragdoll_chams_material, chamstype, ARRAYSIZE(chamstype));
ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Color "));
ImGui::SameLine();
ImGui::ColorEdit(("##ragdollcolor"), &g_cfg.player.type[hooks::players_chams].ragdoll_chams_color, ALPHA);
ImGui::Spacing();
}
if (hooks::players_chams == 2)
{
InsertCheckbox(("Transparency in scope"), g_cfg.player.transparency_in_scope);
ImGui::NewLine(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::SliderFloat((" Alpha"), &g_cfg.player.transparency_in_scope_amount, 0.0f, 1.0f);
}
InsertCheckbox(("Glow"), g_cfg.player.type[hooks::players_chams].glow);
InsertCombo(("Glow type"), g_cfg.player.type[hooks::players_chams].glow_type, glowtype, ARRAYSIZE(glowtype));
ImGui::Spacing(); ImGui::NewLine(); ImGui::SameLine(42.f); ImGui::PushItemWidth(158.f);
ImGui::Text((" Color "));
ImGui::SameLine();
ImGui::ColorEdit(("##glowcolor"), &g_cfg.player.type[hooks::players_chams].glow_color, ALPHA);
ImGui::Spacing();
} InsertEndGroupBoxRight("Local Cover", "Local");
//InsertSpacer("Chams other - Other Spacer");
/*InsertGroupBoxRight("Team", 244.f);
{
style->ItemSpacing = ImVec2(4, 2);
style->WindowPadding = ImVec2(4, 4);
style->ButtonTextAlign = ImVec2(0.5f, -2.0f);
ImGui::CustomSpacing(9.f);
} InsertEndGroupBoxRight("Team Cover", "Team");*/
}
ImGui::PopFont();
}
Сурсы goodtap.pw.