RIP 1.06.2020
-
Автор темы
- #1
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Ну так как мне нехер делать, сделаю пару гайдов для csgosimple (не бейте, если все хуева)
Ну вроде все XDDD На очереди аимботе
Там где у вас файлы Options.hpp, Config.hpp
Создаем ещё Options.cpp, Config.cpp
Создаем ещё Options.cpp, Config.cpp
Заходим в Options.hpp и в инклуды #include <map>, также находим
и удаляем его (а зачем он нам?))
C++:
template <typename T = bool>
class Var {
public:
std::string name;
std::shared_ptr<T> value;
int32_t size;
Var(std::string name, T v) : name(name) {
value = std::make_shared<T>(v);
size = sizeof(T);
}
operator T() { return *value; }
operator T*() { return &*value; }
operator T() const { return *value; }
//operator T*() const { return value; }
};
Там же ищем #define OPTION(type, var, val) Var<type> var = {A(var), val}
и заменяем его на
и заменяем его на
C++:
#define OPTION(type, var, val) type var = val
Заходим в файл Options.cpp, и вставляем
Идем в файл Options.hpp и после
Вставляем
C++:
#include "Options.hpp"
#include "../Valve_sdk/Misc/Enums.hpp"
std::map<int, const char*> K_weapon_names =
{
{ 1, "Desert Eagle" },
{ 2, "Dual Berettas" },
{ 3, "Five-SeveN" },
{ 4, "Glock-18" },
{ 7, "AK-47" },
{ 8, "AUG" },
{ 9, "AWP" },
{ 10, "FAMAS" },
{ 11, "G3SG1" },
{ 13, "Galil AR" },
{ 14, "M249" },
{ 16, "M4A4" },
{ 17, "MAC-10" },
{ 19, "P90" },
{ 23, "MP5" },
{ 24, "UMP-45" },
{ 25, "XM1014" },
{ 26, "PP-Bizon" },
{ 27, "MAG-7" },
{ 28, "Negev" },
{ 29, "Sawed-Off" },
{ 30, "Tec-9" },
{ 32, "P2000" },
{ 33, "MP7" },
{ 34, "MP9" },
{ 35, "Nova" },
{ 36, "P250" },
{ 38, "SCAR-20" },
{ 39, "SG 553" },
{ 40, "SSG 08" },
{ 60, "M4A1-S" },
{ 61, "USP-S" },
{ 63, "CZ75 Auto" },
{ 64, "R8 Revolver" },
};
Options g_Options;
bool g_Unload = false;
C++:
#define OPTION(type, var, val) type var = val
C++:
extern std::map<int, const char*> K_weapon_names;
Идем в Options.hpp и находим
Где у нас сохраняются цвета: Пример:
И заменяем на Float, Пример:
Дальше: Спускаемся в самый конец и находим
inline Options g_Options;
inline bool g_Unload;
и заменяем на
extern Options g_Options;
extern bool g_Unload;
Где у нас сохраняются цвета: Пример:
Пожалуйста, авторизуйтесь для просмотра ссылки.
И заменяем на Float, Пример:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Дальше: Спускаемся в самый конец и находим
inline Options g_Options;
inline bool g_Unload;
и заменяем на
extern Options g_Options;
extern bool g_Unload;
Заходим в файл Config.hpp и все содержимое заменяем на
C++:
#pragma once
#include "../helpers/math.hpp"
#include "../helpers/utils.hpp"
#include "../menu.hpp"
#include "../helpers/input.hpp"
template< typename T >
class ConfigItem
{
std::string category, name;
T* value;
public:
ConfigItem(std::string category, std::string name, T* value)
{
this->category = category;
this->name = name;
this->value = value;
}
};
template< typename T >
class ConfigValue
{
public:
ConfigValue(std::string category_, std::string name_, T* value_, const T& def)
{
category = category_;
name = name_;
value = value_;
default_value = def;
}
std::string category, name;
T* value;
T default_value;
};
class CConfig
{
protected:
std::vector< ConfigValue< int >* > ints;
std::vector< ConfigValue< char >* > chars;
std::vector< ConfigValue< bool >* > bools;
std::vector< ConfigValue< float >* > floats;
private:
void SetupValue(int&, int, std::string, std::string);
void SetupValue(char * value, char * def, std::string category, std::string name);
void SetupValue(bool&, bool, std::string, std::string);
void SetupValue(float&, float, std::string, std::string);
void SetupColor(float value[4], std::string name);
void SetupVisuals();
void SetupMisc();
void SetupColors();
public:
CConfig()
{
}
void Setup();
void Load(const std::string& name);
void Save(const std::string& name);
};
extern CConfig* Config;
Уже почти все)
Заходим в файл Config.cpp и все содержимое заменяем на
Тут где прописан
void CConfig::SetupVisuals() и другие
Нужно вставлять функцию, Пример: SetupValue(g_Options.esp_enabled, false, ("Esp"), ("Enabled"));
Где void CConfig::SetupColors(), Пример: SetupColor(g_Options.color_esp_ally_visible, "Esp team Visible color");
Все это берем с Options.hpp
Заходим в файл Config.cpp и все содержимое заменяем на
C++:
#include "Config.hpp"
#include "Options.hpp"
#include "../Helpers/Math.hpp"
#include "../Helpers/Utils.hpp"
#include "../Helpers/Input.hpp"
#include "../Menu.hpp"
void CConfig::SetupValue(int& value, int def, std::string category, std::string name) { value = def; ints.push_back(new ConfigValue< int >(category, name, &value, def)); }
void CConfig::SetupValue(char* value, char* def, std::string category, std::string name) { value = def; chars.push_back(new ConfigValue< char >(category, name, value, *def)); }
void CConfig::SetupValue(float& value, float def, std::string category, std::string name) { value = def; floats.push_back(new ConfigValue< float >(category, name, &value, def)); }
void CConfig::SetupValue(bool& value, bool def, std::string category, std::string name) { value = def; bools.push_back(new ConfigValue< bool >(category, name, &value, def)); }
void CConfig::SetupColor(float value[4], std::string name)
{
SetupValue(value[0], value[0], ("colors"), name + "_r");
SetupValue(value[1], value[1], ("colors"), name + "_g");
SetupValue(value[2], value[2], ("colors"), name + "_b");
SetupValue(value[3], value[3], ("colors"), name + "_a");
}
void CConfig::SetupVisuals()
{
}
void CConfig::SetupMisc()
{
}
void CConfig::SetupColors()
{
}
void CConfig::Setup() {
CConfig::SetupVisuals();
CConfig::SetupMisc();
CConfig::SetupColors();
}
void CConfig::Save(const std::string& name) {
if (name.empty())
return;
CreateDirectoryA(u8"C:\\Elium\\Configs\\", NULL); //Тут название папки где будут кфг ( \\ нужны обязательно )
std::string file = u8"C:\\Elium\\Configs\\" + name; //Тут название папки где будут кфг ( \\ нужны обязательно )
for (auto value : ints) {
WritePrivateProfileStringA(value->category.c_str(), value->name.c_str(), std::to_string(*value->value).c_str(), file.c_str());
}
for (auto value : floats) WritePrivateProfileStringA(value->category.c_str(), value->name.c_str(), std::to_string(*value->value).c_str(), file.c_str());
for (auto value : bools) WritePrivateProfileStringA(value->category.c_str(), value->name.c_str(), *value->value ? "true" : "false", file.c_str());
}
void CConfig::Load(const std::string& name) {
if (name.empty())
return;
g_ClientState->ForceFullUpdate();
CreateDirectoryA(u8"C:\\Elium\\Configs\\", NULL); //Тут название папки где будут кфг ( \\ нужны обязательно )
std::string file = u8"C:\\Elium\\Configs\\" + name; //Тут название папки где будут кфг ( \\ нужны обязательно )
char value_l[32] = { '\0' };
for (auto value : ints) {
GetPrivateProfileStringA(value->category.c_str(), value->name.c_str(), "0", value_l, 32, file.c_str()); *value->value = atoi(value_l);
}
for (auto value : floats) {
GetPrivateProfileStringA(value->category.c_str(), value->name.c_str(), "0.0f", value_l, 32, file.c_str()); *value->value = atof(value_l);
}
for (auto value : bools) {
GetPrivateProfileStringA(value->category.c_str(), value->name.c_str(), "false", value_l, 32, file.c_str()); *value->value = !strcmp(value_l, "true");
}
}
CConfig* Config = new CConfig();
void CConfig::SetupVisuals() и другие
Нужно вставлять функцию, Пример: SetupValue(g_Options.esp_enabled, false, ("Esp"), ("Enabled"));
Где void CConfig::SetupColors(), Пример: SetupColor(g_Options.color_esp_ally_visible, "Esp team Visible color");
Все это берем с Options.hpp
Идем в Menu.cpp и везде где вот такая ошибка:
Добавляем перед g_Options, &. Пример:
Где у нас выбор цвета ака ImGuiEx::ColorEdit3 заменяем на ImGui::ColorEdit3
Пожалуйста, авторизуйтесь для просмотра ссылки.
Добавляем перед g_Options, &. Пример:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Где у нас выбор цвета ака ImGuiEx::ColorEdit3 заменяем на ImGui::ColorEdit3
В Menu.cpp где у вас Рендер конфиг таба (все содержимое заменяем на):
Дальше идем в Main.cpp И в инклуды добавляем #include "Config.hpp"
Потом вставляем Config->Setup(); Как на скрине:
C++:
static std::vector<std::string> configs;
static auto load_configs = []() {
std::vector<std::string> items = {};
std::string path("C:\\Elium\\Configs"); // Тут изменяем ( \\ после текста нинада)
if (!fs::is_directory(path))
fs::create_directories(path);
for (auto& p : fs::directory_iterator(path))
items.push_back(p.path().string().substr(path.length() + 1));
return items;
};
static auto is_configs_loaded = false;
if (!is_configs_loaded) {
is_configs_loaded = true;
configs = load_configs();
}
static std::string current_config;
static char config_name[32];
ImGui::InputText("##config_name", config_name, sizeof(config_name));
ImGui::SameLine();
if (ImGui::Button("Create")) {
current_config = std::string(config_name);
Config->Save(current_config + ".ini");
is_configs_loaded = false;
memset(config_name, 0, 32);
}
ImGui::ListBoxHeader("##configs");
{
for (auto& config : configs) {
if (ImGui::Selectable(config.c_str(), config == current_config)) {
current_config = config;
}
}
}
ImGui::ListBoxFooter();
if (!current_config.empty()) {
if (ImGui::Button("Load"))
Config->Load(current_config);
ImGui::SameLine();
if (ImGui::Button("Save"))
Config->Save(current_config);
ImGui::SameLine();
if (ImGui::Button("Delete") && fs::remove("C:\\Elium\\Configs\\" + current_config)) { //Тут также изменяем на ваше, \\ обязательно
current_config.clear();
is_configs_loaded = false;
}
ImGui::SameLine();
}
if (ImGui::Button("Refresh"))
is_configs_loaded = false;
Потом вставляем Config->Setup(); Как на скрине:
Пожалуйста, авторизуйтесь для просмотра ссылки.
Так забыл...
Заходим в Chams.cpp и ищем строку с цветом
Идем в Glow.cpp И ищем строку color = g_Options.color_glow_c4_carrier; Заменяем на color = Color(g_Options.color_glow_c4_carrier); (Дальше аналогично)
Идем в Visuals.cpp
И так же ищем строки с цветами (в которых ошибка) Пример: ctx.clr = ctx.is_enemy ? (ctx.is_visible ? g_Options.color_esp_enemy_visible : g_Options.color_esp_enemy_occluded) : (ctx.is_visible ? g_Options.color_esp_ally_visible : g_Options.color_esp_ally_occluded); Заменяем на:
ctx.clr = ctx.is_enemy ?
(ctx.is_visible ? Color(g_Options.color_esp_enemy_visible) : Color(g_Options.color_esp_enemy_occluded)) :
(ctx.is_visible ? Color(g_Options.color_esp_ally_visible) : Color(g_Options.color_esp_ally_occluded));
А дальше опять аналогично ))))))
Заходим в Chams.cpp и ищем строку с цветом
Пожалуйста, авторизуйтесь для просмотра ссылки.
и где clr_back заменяем на
Пожалуйста, авторизуйтесь для просмотра ссылки.
(дальше в чамсах аналогично)Идем в Glow.cpp И ищем строку color = g_Options.color_glow_c4_carrier; Заменяем на color = Color(g_Options.color_glow_c4_carrier); (Дальше аналогично)
Идем в Visuals.cpp
И так же ищем строки с цветами (в которых ошибка) Пример: ctx.clr = ctx.is_enemy ? (ctx.is_visible ? g_Options.color_esp_enemy_visible : g_Options.color_esp_enemy_occluded) : (ctx.is_visible ? g_Options.color_esp_ally_visible : g_Options.color_esp_ally_occluded); Заменяем на:
ctx.clr = ctx.is_enemy ?
(ctx.is_visible ? Color(g_Options.color_esp_enemy_visible) : Color(g_Options.color_esp_enemy_occluded)) :
(ctx.is_visible ? Color(g_Options.color_esp_ally_visible) : Color(g_Options.color_esp_ally_occluded));
А дальше опять аналогично ))))))
Последнее редактирование: