Гайд Как переместить табы влево Insomnia

push me to the edge
Олдфаг
Олдфаг
Статус
Оффлайн
Регистрация
22 Мар 2017
Сообщения
2,334
Реакции
1,204
Всем привет, последние время на форуме задают очень часто вопросы по типу "Как переместить табы влево"
Ну приступим.
Для начала надо зайти в файл CMenu.h
После чего копируем следующий код​
bool get_system_font_path(const std::string& name, std::string& path)
{
//
// This code is not as safe as it should be.
// Assumptions we make:
// -> GetWindowsDirectoryA does not fail.
// -> The registry key exists.
// -> The subkeys are ordered alphabetically
// -> The subkeys name and data are no longer than 260 (MAX_PATH) chars.
//

char buffer[MAX_PATH];
HKEY registryKey;

GetWindowsDirectoryA(buffer, MAX_PATH);
std::string fontsFolder = buffer + std::string("\\Fonts\\");

if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, "Software\\Microsoft\\Windows NT\\CurrentVersion\\Fonts", 0, KEY_READ, &registryKey)) {
return false;
}

uint32_t valueIndex = 0;
char valueName[MAX_PATH];
uint8_t valueData[MAX_PATH];
std::wstring wsFontFile;

do {
uint32_t valueNameSize = MAX_PATH;
uint32_t valueDataSize = MAX_PATH;
uint32_t valueType;

auto error = RegEnumValueA(
registryKey,
valueIndex,
valueName,
reinterpret_cast<DWORD*>(&valueNameSize),
0,
reinterpret_cast<DWORD*>(&valueType),
valueData,
reinterpret_cast<DWORD*>(&valueDataSize));

valueIndex++;

if (error == ERROR_NO_MORE_ITEMS) {
RegCloseKey(registryKey);
return false;
}

if (error || valueType != REG_SZ) {
continue;
}

if (_strnicmp(name.data(), valueName, name.size()) == 0) {
path = fontsFolder + std::string((char*)valueData, valueDataSize);
RegCloseKey(registryKey);
return true;
}
} while (true);

return false;
}

namespace CMenu
{
bool legitTab = true;
bool visualsTab = false;
bool radarTab = false;
bool changerTab = false;
bool colorsTab = false;
bool miscTab = false;

bool visEspTab = true;
bool visChamsTab = false;
bool visHandsTab = false;
bool visMiscTab = false;

int windowWidth = 800;
int windowHeight = 525;
int curWidth = 1;
int curHeight = 1;
int curX = 0;
int curY = 0;
int tabHeight = 35;

LONGLONG LastFrameTime;
float deltaTime;

LONGLONG milliseconds_now() {
static LARGE_INTEGER s_frequency;
static BOOL s_use_qpc = QueryPerformanceFrequency(&s_frequency);
if (s_use_qpc) {
LARGE_INTEGER now;
QueryPerformanceCounter(&now);
return (1000LL * now.QuadPart) / s_frequency.QuadPart;
}
else {
return GetTickCount();
}
}

float GetDeltaTime()
{
LONGLONG ms = milliseconds_now();
float ret = ms - LastFrameTime;
LastFrameTime = ms;
return ret;
//return 1000.0f / ImGui::GetIO().Framerate;
}

int CalcTabWidth(int tabs)
{
ImGuiStyle& style = ImGui::GetStyle();
return ((windowWidth - (style.WindowPadding.x * 2)) / tabs) - (style.ItemSpacing.x * tabs);
//return (curWidth - ((style.WindowPadding.x) + (style.ItemSpacing.x * tabs))) / tabs;
//return windowWidth / tabs;
}

void SelectTab(bool* tab)
{
legitTab = false;
visualsTab = false;
radarTab = false;
changerTab = false;
colorsTab = false;
miscTab = false;

*tab = true;
}

void SelectVisualsSubTab(bool* tab)
{
visEspTab = false;
visChamsTab = false;
visHandsTab = false;
visMiscTab = false;

*tab = true;
}

bool DrawTab(char* name, int tabWidth, int tabHeight, bool *boole, bool forceTabs = true)
{
bool ret = false;
if (ImGui::Tab(name, ImVec2(tabWidth, tabHeight), *boole))
{
ret = true;
*boole = true;
if (forceTabs) SelectTab(boole);
}

//ImGui::SameLine(0);
return ret;
}

bool DrawTab(char* name, int tabWidth, int tabHeight, bool boole, bool forceTabs = true)
{
return DrawTab(name, tabWidth, tabHeight, &boole, forceTabs);
}

void DrawTabs()
{
int w, h;
Interface.Engine->GetScreenSize(w, h);

if (ImGui::Begin(XorStr("Your name"), &G::MenuOpened, ImVec2(700, 380), 1.0F, ImGuiWindowFlags_ShowBorders))
{
//ImGui::NewLine(3);

ImGuiContext* io = ImGui::GetCurrentContext();
ImGuiStyle& style = ImGui::GetStyle();
int tabWidth = CalcTabWidth(6) + 20;

float lastSize = io->FontSize;
io->FontSize = 20;


ImGui::BeginGroup(); //создаем группу объектовa
DrawTab(XorStr("Legit"), tabWidth, tabHeight, &legitTab);
DrawTab(XorStr("Visuals"), tabWidth, tabHeight, &visualsTab);
DrawTab(XorStr("Radar"), tabWidth, tabHeight, &radarTab);
DrawTab(XorStr("Paints"), tabWidth, tabHeight, &changerTab);
DrawTab(XorStr("Colors"), tabWidth, tabHeight, &colorsTab);
DrawTab(XorStr("Misc"), tabWidth, tabHeight, &miscTab);
io->FontSize = lastSize;

ImGui::Text(XorStr("Config"));
if (ImGui::Button(XorStr("Load"), ImVec2(120, 0))) Config::Read();
if (ImGui::Button(XorStr("Save"), ImVec2(120, 0))) Config::Save();

ImGui::EndGroup(); //объединяем объекты в группу

ImGui::SameLine(/*posX*/); //сдвигаем фрейм в право

ImGui::BeginGroup(); //создаем новую группу объектов

//ImGui::EndGroup(); //объединяем объекты в группу

}
//ImGui::End();
}
И вставляем в свой файл начиная с самого начала
Также нужно вам разобраться с этими строчками​
namespace CMenu
{
bool legitTab = true;
bool visualsTab = false;
bool radarTab = false;
bool changerTab = false;
bool colorsTab = false;
bool miscTab = false;
Предварительно замените все названия на свои !!!
Enjoy!​
P.S Не стоит писать что уже было и кидать кучу тем где просто оставляют код. Я сделал гайд для новичков которые хотят видеть табы слева.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
блэт, жди теперь 10+ софтов с табами слева, типа нью универсал топ хак
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я не против бесплатных паст, а новчикам хорошо
меня бесит то что некоторые их продают и говорят что они писали весь чит сами с нуля.
MOONSQUAD и PrimalHack - это две топ инсомнии
 
Назад
Сверху Снизу