-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В дополнение темы 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);
}
Про кириллицу не забывайте (писать можно,но по итогу будет хуйня ,как на последнем файле).
Полный листинг :
Код:
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();
}