Всем привет, я пишу чит для игры и мне необходимо сделать чтение настроек чита из ini файла.
Вот что мне удалось сделать на данный момент:
Код:
#include <windows.h>
#include <iostream>
#include <cstdlib>
char *IniRead(char *filename, char *section, char *key)
{
char *out = new char[512];
GetPrivateProfileString(
(LPCSTR)section,
(LPCSTR)key,
NULL,
out,
200,
(LPCSTR)filename
);
return out;
}
void ReadfromIni(int argc, char *argv[])
{
char *GlowESPIni = new char[];
char *GlowESP_OEIni = new char[];
char *GE_R_EIni = new char[];
char *GE_G_EIni = new char[];
char *GE_B_EIni = new char[];
char *GE_A_EIni = new char[];
char *GE_R_TIni = new char[];
char *GE_G_TIni = new char[];
char *GE_B_TIni = new char[];
char *GE_A_TIni = new char[];
char *NoFlashIni = new char[];
char *VisibleChamsIni = new char[];
char *VB_RIni = new char[];
char *VB_GIni = new char[];
char *VB_BIni = new char[];
char *VisibleChamsTeamIni = new char[];
char *BunnyHopIni = new char[];
char *TriggerBotIni = new char[];
char *TriggerBotDelayIni = new char[];
char *StrafeHackIni = new char[];
char *SlowSensIni = new char[];
char *SlowSensValueIni = new char[];
GlowESPIni = IniRead("c:\\Settings.ini", "Visuals", "GlowESP");
GlowESP_OEIni = IniRead("c:\\Settings.ini", "Visuals", "GlowESP_OnlyEnemy");
GE_R_EIni = IniRead("c:\\Settings.ini", "Visuals", "GE_R_Enemy");
GE_G_EIni = IniRead("c:\\Settings.ini", "Visuals", "GE_G_Enemy");
GE_B_EIni = IniRead("c:\\Settings.ini", "Visuals", "GE_B_Enemy");
GE_A_EIni = IniRead("c:\\Settings.ini", "Visuals", "GE_A_Enemy");
GE_R_TIni = IniRead("c:\\Settings.ini", "Visuals", "GE_R_Team");
GE_G_TIni = IniRead("c:\\Settings.ini", "Visuals", "GE_G_Team");
GE_B_TIni = IniRead("c:\\Settings.ini", "Visuals", "GE_B_Team");
GE_A_TIni = IniRead("c:\\Settings.ini", "Visuals", "GE_A_Team");
VisibleChamsIni = IniRead("c:\\Settings.ini", "Visuals", "VisibleChams");
VisibleChamsTeamIni = IniRead("c:\\Settings.ini", "Visuals", "VisibleChams_OnlyEnemy");
VB_RIni = IniRead("c:\\Settings.ini", "Visuals", "VB_R");
VB_GIni = IniRead("c:\\Settings.ini", "Visuals", "VB_G");
VB_BIni = IniRead("c:\\Settings.ini", "Visuals", "VB_B");
NoFlashIni = IniRead("c:\\Settings.ini", "Visuals", "NoFlash");
BunnyHopIni = IniRead("c:\\Settings.ini", "Main", "BunnyHop");
TriggerBotIni = IniRead("c:\\Settings.ini", "Main", "TriggerBot");
StrafeHackIni = IniRead("c:\\Settings.ini", "Main", "StrafeHack");
TriggerBotDelayIni = IniRead("c:\\Settings.ini", "Main", "TriggerBotDelay");
SlowSensIni = IniRead("c:\\Settings.ini", "Main", "SlowSens");
SlowSensValueIni = IniRead("c:\\Settings.ini", "Main", "SlowSensValue");
int GlowESPIni_Atoi = atoi(GlowESPIni);
int GlowESP_OEIni_Atoi = atoi(GlowESP_OEIni);
int GE_R_EIniAtoi = atoi(GE_R_EIni);
int GE_G_EIniAtoi = atoi(GE_G_EIni);
int GE_B_EIniAtoi = atoi(GE_B_EIni);
int GE_A_EIniAtoi = atoi(GE_A_EIni);
int GE_R_TIniAtoi = atoi(GE_R_TIni);
int GE_G_TIniAtoi = atoi(GE_G_TIni);
int GE_B_TIniAtoi = atoi(GE_B_TIni);
int GE_A_TIniAtoi = atoi(GE_A_TIni);
int BunnyHopIni_Atoi = atoi(BunnyHopIni);
int TriggerBotIni_Atoi = atoi(TriggerBotIni);
int StrafeHackIni_Atoi = atoi(StrafeHackIni);
int TriggerBotDelayIni_Atoi = atoi(TriggerBotDelayIni);
int NoFlashIni_Atoi = atoi(NoFlashIni);
int VisibleChamsIniAtoi = atoi(VisibleChamsIni);
int VisibleChamsTeamIniAtoi = atoi(VisibleChamsTeamIni);
int VB_RIniAtoi = atoi(VB_RIni);
int VB_GIniAtoi = atoi(VB_GIni);
int VB_BIniAtoi = atoi(VB_BIni);
int SlowSensIni_Atoi = atoi(SlowSensIni);
float SlowSensValueIni_Atoi = atoi(SlowSensValueIni);
TriggerBotDelay = TriggerBotDelayIni_Atoi;
SlowSensValue1 = SlowSensValueIni_Atoi;
VB_R1 = VB_RIniAtoi;
VB_G1 = VB_GIniAtoi;
VB_B1 = VB_BIniAtoi;
float GE_R2_E = (GE_R_EIniAtoi * 0.0039215);
float GE_G2_E = (GE_G_EIniAtoi * 0.0039215);
float GE_B2_E = (GE_B_EIniAtoi * 0.0039215);
float GE_R2_T = (GE_R_TIniAtoi * 0.0039215);
float GE_G2_T = (GE_G_TIniAtoi * 0.0039215);
float GE_B2_T = (GE_B_TIniAtoi * 0.0039215);
float GE_A2_E = 0;
float GE_A2_T = 0;
GE_R3_E = GE_R2_E;
GE_G3_E = GE_G2_E;
GE_B3_E = GE_B2_E;
GE_A3_E = GE_A2_E;
GE_R3_T = GE_R2_T;
GE_G3_T = GE_G2_T;
GE_B3_T = GE_B2_T;
GE_A3_T = GE_A2_T;
if (GE_A_EIniAtoi == 1)
{
GE_A3_E = 0.25f;
}
if (GE_A_EIniAtoi == 2)
{
GE_A3_E = 0.49f;
}
if (GE_A_EIniAtoi == 3)
{
GE_A3_E = 0.99f;
}
if (GE_A_TIniAtoi == 1)
{
GE_A3_T = 0.25f;
}
if (GE_A_TIniAtoi == 2)
{
GE_A3_T = 0.49f;
}
if (GE_A_TIniAtoi == 3)
{
GE_A3_T = 0.99f;
}
if (VisibleChamsTeamIniAtoi == 1)
{
bVCTeam = false;
}
if (VisibleChamsTeamIniAtoi == 0)
{
bVCTeam = true;
}
if (VisibleChamsIniAtoi == 1)
{
bVisibleChams = true;
}
if (VisibleChamsIniAtoi == 0)
{
bVisibleChams = false;
}
if (BunnyHopIni_Atoi == 1)
{
BHop == true;
}
if (GlowESPIni_Atoi == 1)
{
GlowOn = true;
TeamGlow = true;
}
if (GlowESP_OEIni_Atoi == 1)
{
TeamGlow = false;
}
if (TriggerBotIni_Atoi == 1)
{
TriggerOn = true;
bShoot = true;
}
if (StrafeHackIni_Atoi == 1)
{
StrafeHackEnable = true;
}
if (NoFlashIni_Atoi == 1)
{
NoFlash = true;
}
if (NoFlashIni_Atoi == 0)
{
NoFlash = false;
}
if (SlowSensIni_Atoi == 1)
{
SlowSens = true;
}
if (SlowSensValue1 == 0)
{
SlowSensValue1 = 1;
}
}
Вот собственно сам ini файл:
Код:
[Main]
TriggerBot = 1
TriggerBotDelay = 1
BunnyHop = 1
StrafeHack = 0
SlowSens = 1
SlowSensValue = 10
[Visuals]
NoFlash = 1
GlowESP = 1
GlowESP_OnlyEnemy = 1
GE_R_Enemy = 39
GE_G_Enemy = 255
GE_B_Enemy = 28
GE_A_Enemy = 2
GE_R_Team = 211
GE_G_Team = 231
GE_B_Team = 11
GE_A_Team = 2
VisibleChams = 1
VisibleChams_OnlyEnemy = 1
VB_R = 25
VB_G = 0
VB_B = 255
У меня есть несколько вопросов.
1) Я считаю, что код очень громоздкий, я уверен что есть способ чтения гораздо более эффективный и быстрый.
2) GE_R_Team = 211
GE_G_Team = 231
GE_B_Team = 11
GE_A_Team = 2 - это не красиво. Гораздо было бы лучше сделать GE_RGBA_Team = 211,231,11,2 - так было бы лучше, но я не знаю как это сделать
Надеюсь на вашу помощь