Гайд CSGOSimple config addition | Дополнение к конфигам в CSGOSimple

Забаненный
Статус
Оффлайн
Регистрация
28 Окт 2018
Сообщения
139
Реакции[?]
47
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В дополнение темы https://yougame.biz/threads/51317/
Тут задействуется json и нет показа конфигов в папке как,например,в индиго.
Просто перенести код с индиго - заебычно,т.к. в симпле стоит юникод,а не многобайтовая,а если передавать wchar через (char*) и т.д.,то работать нихуя не будет.
Но т.к мы все понтовые ребята и нам нужно,чтоб все как у бояр ,то выполняем следующие действия:


  • Делаем флаг std::once ,не забывая подключить <mutex>
Код:
std::once_flag flag_ref_config;
  • объявляем вектор и переменные :
Код:
    vector<string> ConfigList;
    static char ConfigName[64] = { 0 };
    static int iConfigSelect = 0;
  • Делаем обновление конфигов,чтобы показывало,что у нас уже в папке (дабы не создавать каждый раз новый конфиг,чтобы уже увидеть имеющиеся).
  • Не забывая при этом делать всю эту конитель через флаг онса,чтобы у нас не было бесконечного списка.
Код:
std::call_once(flag_ref_config, []() {
            WIN32_FIND_DATA FindFileData;
            HANDLE hf = FindFirstFile(L"C:\\AwACheats\\*", &FindFileData);
            if (hf != INVALID_HANDLE_VALUE)
            {
                do
                {
                    wstring ws(FindFileData.cFileName);
                    string str(ws.begin(), ws.end());
                    ConfigList.push_back(str);

                } while (FindNextFile(hf, &FindFileData) != 0);
                FindClose(hf);
            }
        });
  • Ну,а дальше делаем простой вывод,как в индиге
Код:
        if (ConfigList.size() != NULL) {

            ImGui::Text("Config list :");
            ImGui::PushItemWidth(150);
            ImGui::Combo("##SelectConfig", &iConfigSelect, ConfigList);
            ImGui::PopItemWidth();

            if (ImGui::Button("Load config", ImVec2(150, 25))) {
                Configs::LoadCFG("C:\\AwACheats\\" + ConfigList[iConfigSelect]);
            }
        }

        if (ConfigList.size() != NULL) {
            ImGui::NextColumn();
        }

        ImGui::Text("Config name :");
        ImGui::InputText("##Config_Name", ConfigName, 64);

        if (ImGui::Button("Save config", ImVec2(150, 25))) {
            std::string ConfigFileName = ConfigName;

            if (ConfigFileName.size() < 1)
                ConfigFileName = "AwACheat.own";

            Configs::SaveCFG("C:\\AwACheats\\" + ConfigFileName);
            ConfigList.push_back(ConfigFileName);

        }
Результат :
1558744203335.png
1558744274439.png
Про кириллицу не забывайте (писать можно,но по итогу будет хуйня ,как на последнем файле).


Полный листинг :
Код:
vector<string> ConfigList;
void render_config_tab()
{
    if (ImGui::BeginChild("##miscchild", ImVec2(605, 496), false)) {
        ImGui::Text("Config");
        ImGui::Separator();

        ImGui::PushItemWidth(150);
        static char ConfigName[64] = { 0 };
        static int iConfigSelect = 0;

        std::call_once(flag_ref_config, []() {
            WIN32_FIND_DATA FindFileData;
            HANDLE hf = FindFirstFile(L"C:\\AwACheats\\*", &FindFileData);
            if (hf != INVALID_HANDLE_VALUE)
            {
                do
                {
                    wstring ws(FindFileData.cFileName);
                    string str(ws.begin(), ws.end());
                    ConfigList.push_back(str);

                } while (FindNextFile(hf, &FindFileData) != 0);
                FindClose(hf);
            }
        });

        if (ConfigList.size() != NULL) {

            ImGui::Text("Config list :");
            ImGui::PushItemWidth(150);
            ImGui::Combo("##SelectConfig", &iConfigSelect, ConfigList);
            ImGui::PopItemWidth();

            if (ImGui::Button("Load config", ImVec2(150, 25))) {
                Configs::LoadCFG("C:\\AwACheats\\" + ConfigList[iConfigSelect]);
            }
        }

        if (ConfigList.size() != NULL) {
            ImGui::NextColumn();
        }

        ImGui::Text("Config name :");
        ImGui::InputText("##Config_Name", ConfigName, 64);

        if (ImGui::Button("Save config", ImVec2(150, 25))) {
            std::string ConfigFileName = ConfigName;

            if (ConfigFileName.size() < 1)
                ConfigFileName = "AwACheat.own";

            Configs::SaveCFG("C:\\AwACheats\\" + ConfigFileName);
            ConfigList.push_back(ConfigFileName);

        }
        ImGui::PopItemWidth();
    }
      
    ImGui::EndChild();
}
 
Похожие темы
Сверху Снизу