pull/35/head
AtomBottle 1 year ago
parent 5844a65971
commit 10eb5c40e4

@ -2,26 +2,26 @@
##### UnknownCheats thread: https://www.unknowncheats.me/forum/apex-legends/406426-kvm-vmread-apex-esp-aimbot.html ##### UnknownCheats thread: https://www.unknowncheats.me/forum/apex-legends/406426-kvm-vmread-apex-esp-aimbot.html
#new features #new features
- Xp Level ESP - Esp for player's Level
- seerhealthESP/some aimbot code,paste from https://github.com/KrackerCo/apex_dma_kvm_pub. - seerhealthESP / some parts of aimbot codes,paste from https://github.com/KrackerCo/apex_dma_kvm_pub.
- platform userid ESP,use it to search player's rank'. - support UTF-8 text
> idont know why after add rank ESP,the client will crash,but i keep void"GetJson", these code are paste from https://www.unknowncheats.me/forum/apex-legends/520061-rank-statistics-players.html,
if someone can finish it, + pull request please
- support UTF-8 ESP for japanese and chinese
- free camera - free camera
- overlay's streamproof by setwindowdisplaffinity - overlay's streamproof by setwindowdisplaffinity
- client's stream proof,(hide commandline),check it in client : main.cpp (void ShowWindow) - client's streamproof,(hide the CMD window), disable/enable it by : main.cpp (void ShowWindow)
- you can enable aimbot/esp for your teammates - you can enable aimbot/esp for your teammates
- press mouse4 to disable visible check - press mouse4 to disable visible check(Aim at enemies behind smoke)
- display legend's name (https://www.unknowncheats.me/forum/3915178-post14046.html)
# how to use # how to use
## guest ## guest
- to bypass EAC detection,use ctrl+h to replace "serial-string" to anything you want. - ctrl+h to replace "changeableplace" to other contents to bypass memory detection.
- in Guest: main.cpp,overlay.cpp,overlay.h
- in CustomOverlay: main.cpp - in CustomOverlay: main.cpp
- better with VMprotect - better use VMprotect
- release x64, use custom overlay. - build in release x64, use custom overlay for streamproof.
## linux ## linux
- change no-recoil strength in Game.cpp - you could change Recoil setting strength in Game.cpp
- for rank esp, you need your own apikey,reg one from apexlegendsapi, use index.html ,input userid to search player's rank - Add_off is the offset of client.exe. it would show on the window of client.exe
- what's "add_off"? ,it's in apex_dma.cpp , will display in client's commandline ## Documents about Bypassing
* i have no time to teach about GPU passthrough or how to install this repo, because i only have a few time .....sorry of that* - https://github.com/WCharacter/RDTSC-KVM-Handler
- https://github.com/A1exxander/KVM-Spoofing
*If you are concerned with Passthrough/bypass , ask Unknowncheats community for help*

@ -249,32 +249,6 @@ float Entity::GetYaw()
return yaw; return yaw;
} }
bool Entity::isGlowing()
{
return *(int*)(buffer + OFFSET_GLOW_ENABLE) == 7;
}
bool Entity::isZooming()
{
return *(int*)(buffer + OFFSET_ZOOMING) == 1;
}
void Entity::enableGlow()
{
apex_mem.Write<int>(ptr + OFFSET_GLOW_T1, 16256);
apex_mem.Write<int>(ptr + OFFSET_GLOW_T2, 1193322764);
apex_mem.Write<int>(ptr + OFFSET_GLOW_ENABLE, 7);
apex_mem.Write<int>(ptr + OFFSET_GLOW_THROUGH_WALLS, 2);
}
void Entity::disableGlow()
{
apex_mem.Write<int>(ptr + OFFSET_GLOW_T1, 0);
apex_mem.Write<int>(ptr + OFFSET_GLOW_T2, 0);
apex_mem.Write<int>(ptr + OFFSET_GLOW_ENABLE, 2);
apex_mem.Write<int>(ptr + OFFSET_GLOW_THROUGH_WALLS, 5);
}
void Entity::SetViewAngles(SVector angles) void Entity::SetViewAngles(SVector angles)
{ {
apex_mem.Write<SVector>(ptr + OFFSET_VIEWANGLES, angles); apex_mem.Write<SVector>(ptr + OFFSET_VIEWANGLES, angles);
@ -311,21 +285,6 @@ bool Item::isItem()
return strncmp(class_name, "CPropSurvival", 13) == 0; return strncmp(class_name, "CPropSurvival", 13) == 0;
} }
bool Item::isGlowing()
{
return *(int*)(buffer + OFFSET_ITEM_GLOW) == 1363184265;
}
void Item::enableGlow()
{
apex_mem.Write<int>(ptr + OFFSET_ITEM_GLOW, 1363184265);
}
void Item::disableGlow()
{
apex_mem.Write<int>(ptr + OFFSET_ITEM_GLOW, 1411417991);
}
Vector Item::getPosition() Vector Item::getPosition()
{ {
return *(Vector*)(buffer + OFFSET_ORIGIN); return *(Vector*)(buffer + OFFSET_ORIGIN);

@ -12,7 +12,7 @@
Memory apex_mem; Memory apex_mem;
Memory client_mem; Memory client_mem;
uint64_t add_off = 0xa1040; uint64_t add_off = 0x114514;
bool freecam = false; bool freecam = false;
bool lockall_enable = false; bool lockall_enable = false;
@ -65,8 +65,8 @@ typedef struct player
int xp_level = 0; int xp_level = 0;
int maxshield = 0; int maxshield = 0;
int armortype = 0; int armortype = 0;
uint64_t uid = 0;
char name[33] = { 0 }; char name[33] = { 0 };
char model_name[33] = { 0 };
}player; }player;
struct Matrix struct Matrix
@ -205,15 +205,6 @@ void DoActions()
continue; continue;
} }
if (player_glow && !Target.isGlowing())
{
Target.enableGlow();
}
else if (!player_glow && Target.isGlowing())
{
Target.disableGlow();
}
ProcessPlayer(LPlayer, Target, entitylist, c); ProcessPlayer(LPlayer, Target, entitylist, c);
c++; c++;
} }
@ -240,15 +231,6 @@ void DoActions()
{ {
continue; continue;
} }
if (player_glow && !Target.isGlowing())
{
Target.enableGlow();
}
else if (!player_glow && Target.isGlowing())
{
Target.disableGlow();
}
} }
} }
@ -383,8 +365,6 @@ static void EspLoop()
int xp; int xp;
apex_mem.Read<int>(centity + OFFSET_XP, xp); apex_mem.Read<int>(centity + OFFSET_XP, xp);
int xp_level = calc_level(xp); int xp_level = calc_level(xp);
uint64_t uid = 0;
apex_mem.Read<uint64_t>(centity + OFFSET_UID, uid);
players[c] = players[c] =
{ {
dist, dist,
@ -401,10 +381,13 @@ static void EspLoop()
shield, shield,
xp_level, xp_level,
maxshield, maxshield,
armortype, armortype
uid
}; };
Target.get_name(g_Base, i - 1, &players[c].name[0]); Target.get_name(g_Base, i - 1, &players[c].name[0]);
uint64_t model_ptr;
apex_mem.Read(centity + OFFSET_MODELNAME, model_ptr);
apex_mem.ReadArray(model_ptr,&players[c].model_name[0], 32);
lastvis_esp[c] = Target.lastVisTime(); lastvis_esp[c] = Target.lastVisTime();
valid = true; valid = true;
c++; c++;
@ -478,8 +461,6 @@ static void EspLoop()
int xp_level = calc_level(xp); int xp_level = calc_level(xp);
uint64_t uid;
apex_mem.Read<uint64_t>(centity + OFFSET_UID, uid);
players[i] = players[i] =
{ {
dist, dist,
@ -497,9 +478,12 @@ static void EspLoop()
xp_level, xp_level,
maxshield, maxshield,
armortype, armortype,
uid
}; };
Target.get_name(g_Base, i - 1, &players[i].name[0]); Target.get_name(g_Base, i - 1, &players[i].name[0]);
uint64_t model_ptr;
apex_mem.Read(centity + OFFSET_MODELNAME, model_ptr);
apex_mem.ReadArray(model_ptr,&players[i].model_name[0], 32);
lastvis_esp[i] = Target.lastVisTime(); lastvis_esp[i] = Target.lastVisTime();
valid = true; valid = true;
} }
@ -678,10 +662,7 @@ int main(int argc, char* argv[])
} }
const char* cl_proc = "client.exe"; const char* cl_proc = "client.exe";
const char* ap_proc = "R5Apex.exe"; const char* ap_proc = "r5apex.exe";
//const char* ap_proc = "EasyAntiCheat_launcher.exe";
//Client "add" offset
//uint64_t add_off = 0x40d20;
std::thread aimbot_thr; std::thread aimbot_thr;
std::thread esp_thr; std::thread esp_thr;

@ -1,120 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://unpkg.com/nes.css/css/nes.min.css">
<style>
body {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
height: 100vh;
}
table {
border-collapse: collapse;
width: 100%;
}
th, td {
border: 1px solid black;
padding: 8px;
}
img {
max-width: 100%;
height: auto;
}
.legend-icon {
max-width: 20%;
height: auto;
}
.legend-container {
display:flex;
justify-content:center;
align-items:center;
width:100%;
height:auto;
}
.legend-container img{
max-width:40%;
height:auto;
margin-right:auto;
margin-left:auto;
}
/* Add this CSS to center the progress bar */
progress {
margin-left: auto;
margin-right: auto;
display:block;
}
</style>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body class="nes-container is-dark with-title">
<h1 class="title">ApexApi tool</h1>
<script>
function createTable() {
var url = "https://api.mozambiquehe.re/bridge?auth=";
var auth = document.getElementById("auth").value;
url += auth + "&platform=PC&uid=";
var uid = document.getElementById("uid").value;
url += uid;
$.getJSON(url, function(data) {
var rankDiv = data.global.rank.rankDiv;
var rankName = data.global.rank.rankName;
if (rankName != "Master" && rankName != "Apex Predator" && rankName != "Unranked") {
rankName += " " + rankDiv;
}
var ALStopIntGlobal = data.global.rank.ALStopIntGlobal;
var rankImg = data.global.rank.rankImg;
var icon = data.legends.selected.ImgAssets.icon;
var level = data.global.level;
var toNextLevelPercent = data.global.toNextLevelPercent;
var table = "<table><tr><th>Rank</th><th>Global</th><th>RankImg</th><th>Legend</th></tr>";
table += "<tr><td>" + rankName + "</td><td>" + ALStopIntGlobal + "</td><td><img src='" + rankImg + "'></td><td><div class='legend-container'><img class='legend-icon' src='" + icon + "'></div></td></tr>";
table += "</table>";
$("#table").html(table);
// Add this line to define the variable
var progressValue = toNextLevelPercent;
// Use the variable in the progress bar
$('progress').attr('value', progressValue);
//text
$('progress').before('<span>level ' + level + '</span>');
});
}
</script>
<label for="auth">APIKEY:</label>
<input type="text" id="auth" name="auth">
<label for="uid">UID:</label>
<input type="text" id="uid" name="uid">
<button type="button" class="nes-btn is-primary" onclick="createTable()">Search</button>
<div id="table"></div>
<progress class="nes-progress is-primary" value=100 max="100"></progress>
</body>
</html>

@ -1,52 +1,42 @@
#define OFFSET_UID 0x25c8 //m_platformUserId //game version: 3.0.51.45 / date:2023/11/21
#define OFFSET_ARMOR_TYPE 0x4654 //m_armorType #define OFFSET_ARMOR_TYPE 0x4634 //m_armorType
#define OFFSET_MAXSHIELD 0x0174 //m_shieldhealthmax #define OFFSET_MAXSHIELD 0x01a4 //m_shieldhealthmax
#define OFFSET_MODELNAME 0x0030 //m_modelname
#define OFFSET_XP 0x36c4 //m_xp #define OFFSET_XP 0x369c //m_xp
#define OFFSET_WEAPON 0x1a14 //m_latestPrimaryWeapons #define OFFSET_WEAPON 0x1964 //m_latestPrimaryWeapons
#define OFFSET_WEAPON_NAME 0x1858 //m_weaponNameIndex 2nd one #define OFFSET_WEAPON_NAME 0x17a8 //m_weaponNameIndex 2nd one
#define OFFSET_ENTITYLIST 0x1e53c68 //cl_entitylist #define OFFSET_ENTITYLIST 0x1d71858 //cl_entitylist
#define OFFSET_LOCAL_ENT 0x22036C0 + 0x8 //.?AVC_GameMovement@@ + 0x8 #define OFFSET_LOCAL_ENT 0x211fac8 //.?AVC_GameMovement@@ + 0x8
#define OFFSET_NAME_LIST 0xbe94b60 //NameList #define OFFSET_NAME_LIST 0xc275bf0 //NameList
#define OFFSET_TEAM 0x044c //m_iTeamNum #define OFFSET_TEAM 0x037c //m_iTeamNum
#define OFFSET_HEALTH 0x043c //m_iHealth #define OFFSET_HEALTH 0x036c //m_iHealth
#define OFFSET_SHIELD 0x170 //m_shieldHealth #define OFFSET_SHIELD 0x1a0 //m_shieldHealth
#define OFFSET_NAME 0x589 //m_iName #define OFFSET_NAME 0x04b9 //m_iName
#define OFFSET_SIGN_NAME 0x580 //m_iSignifierName #define OFFSET_SIGN_NAME 0x04b0 //m_iSignifierName
#define OFFSET_ABS_VELOCITY 0x140 //m_vecAbsVelocity #define OFFSET_ABS_VELOCITY 0x0170 //m_vecAbsVelocity
#define OFFSET_VISIBLE_TIME 0x1A70 //CPlayer!lastVisibleTime #define OFFSET_VISIBLE_TIME 0x19BD+0x3 //CPlayer!lastVisibleTime
#define OFFSET_ZOOMING 0x1c51 //m_bZooming #define OFFSET_ZOOMING 0x1c01 //m_bZooming
#define OFFSET_YAW 0x22bc - 0x8 //m_currentFramePlayer.m_ammoPoolCount - 0x8 #define OFFSET_YAW 0x226c - 0x8 //m_currentFramePlayer.m_ammoPoolCount - 0x8
#define OFFSET_LIFE_STATE 0x798 //m_lifeState, >0 = dead #define OFFSET_LIFE_STATE 0x06c8 //m_lifeState, >0 = dead
#define OFFSET_BLEED_OUT_STATE 0x2750 //m_bleedoutState, >0 = knocked #define OFFSET_BLEED_OUT_STATE 0x2710 //m_bleedoutState, >0 = knocked
#define OFFSET_ORIGIN 0x014c //m_vecAbsOrigin #define OFFSET_ORIGIN 0x017c //m_vecAbsOrigin
#define OFFSET_BONES 0x0e98 + 0x48 //m_nForceBone + 0x48 #define OFFSET_BONES 0x0dd0 + 0x48 //m_nForceBone + 0x48
#define OFFSET_STUDIOHDR 0x10e8 //CBaseAnimating!m_pStudioHdr #define OFFSET_STUDIOHDR 0x1020 //CBaseAnimating!m_pStudioHdr
#define OFFSET_AIMPUNCH 0x24b8 //m_currentFrameLocalPlayer.m_vecPunchWeapon_Angle #define OFFSET_AIMPUNCH 0x2468 //m_currentFrameLocalPlayer.m_vecPunchWeapon_Angle
#define OFFSET_CAMERAPOS 0x1f50 //CPlayer!camera_origin #define OFFSET_CAMERAPOS 0x1f00 //CPlayer!camera_origin
#define OFFSET_VIEWANGLES 0x25b4 - 0x14 //m_ammoPoolCapacity - 0x14 #define OFFSET_VIEWANGLES 0x2564 - 0x14 //m_ammoPoolCapacity - 0x14
#define OFFSET_BREATH_ANGLES OFFSET_VIEWANGLES - 0x10 #define OFFSET_BREATH_ANGLES OFFSET_VIEWANGLES - 0x10
#define OFFSET_OBSERVER_MODE 0x34f4 //m_iObserverMode #define OFFSET_OBSERVER_MODE 0x34c4 //m_iObserverMode
#define OFFSET_OBSERVING_TARGET 0x3500 //m_hObserverTarget #define OFFSET_OBSERVING_TARGET 0x34d0 //m_hObserverTarget
#define OFFSET_MATRIX 0x11a350 //ViewMatrix #define OFFSET_MATRIX 0x11a350 //ViewMatrix
#define OFFSET_RENDER 0x743AAA0 //ViewRender #define OFFSET_RENDER 0x7389d40 //ViewRender
#define OFFSET_BULLET_SPEED 0x1f3c
#define OFFSET_BULLET_SCALE 0x1f44
#define OFFSET_ZOOM_FOV 0x16b0 + 0xb8 //m_playerData + m_curZoomFOV
#define OFFSET_AMMO 0x1634 //m_ammoInClip //1634
#define OFFSET_ITEM_GLOW 0x2c0 //m_highlightFunctionBits
#define OFFSET_GLOW_T1 0x262 //16256 = enabled, 0 = disabled #define OFFSET_BULLET_SPEED 0x19e0 + 0x04dc //CWeaponX!m_flProjectileSpeed maybe its WeaponSettings.projectile_launch_speed now
#define OFFSET_GLOW_T2 0x2dc //1193322764 = enabled, 0 = disabled #define OFFSET_BULLET_SCALE 0x19e0 + 0x04e4 //CWeaponX!m_flProjectileScale maybe its WeaponSettings.projectile_gravity_scale now
#define OFFSET_GLOW_ENABLE 0x3c8 //7 = enabled, 2 = disabled//for BH GLOW #define OFFSET_ZOOM_FOV 0x1600 + 0xb8 //m_playerData + m_curZoomFOV
#define OFFSET_GLOW_THROUGH_WALLS 0x3d0 //2 = enabled, 5 = disabled//for BH GLOW #define OFFSET_AMMO 0x15b0 //m_ammoInClip
#define GLOW_COLOR 0x1D0 // Script_CopyHighlightState 15th mov
#define OFFSET_GLOW_ENABLE_GLOW_CONTEXT OFFSET_GLOW_ENABLE // Script_Highlight_SetCurrentContext
#define OFFSET_GLOW_THROUGH_WALLS_GLOW_VISIBLE_TYPE OFFSET_GLOW_THROUGH_WALLS // Script_Highlight_SetVisibilityType 5th mov

@ -1,213 +1,229 @@
#include "main.h" #include "main.h"
typedef struct serial - stringplayer typedef struct changeableplaceplayer
{ {
float serial - stringdist = 0; float changeableplacedist = 0;
int serial - stringentity_team = 0; int changeableplaceentity_team = 0;
float serial - stringboxMiddle = 0; float changeableplaceboxMiddle = 0;
float serial - stringh_y = 0; float changeableplaceh_y = 0;
float serial - stringwidth = 0; float changeableplacewidth = 0;
float serial - stringheight = 0; float changeableplaceheight = 0;
float serial - stringb_x = 0; float changeableplaceb_x = 0;
float serial - stringb_y = 0; float changeableplaceb_y = 0;
bool serial - stringknocked = false; bool changeableplaceknocked = false;
bool serial - stringvisible = false; bool changeableplacevisible = false;
int serial - stringhealth = 0; int changeableplacehealth = 0;
int serial - stringshield = 0; int changeableplaceshield = 0;
int serial - stringxp_level = 0; int changeableplacexp_level = 0;
int serial - stringmaxshield = 0; int changeableplacemaxshield = 0;
int serial - stringarmortype = 0; int changeableplacearmortype = 0;
uint64_t serial - stringuid = 0; char changeableplacename[33] = { 0 };
char serial - stringname[33] = { 0 }; char changeableplacemodel_name[33] = { 0 };
}serial - stringplayer; }changeableplaceplayer;
typedef struct serial - stringrankinfomation uint32_t changeableplacecheck = 0xABCD;
{ int changeableplaceaim_key = VK_XBUTTON2;
char rankserial - stringinfo[17]; int changeableplaceaim_key2 = VK_XBUTTON1;
}serial - stringrankinfomation;
uint32_t serial - stringcheck = 0xABCD;
//VK_XBUTTON2=<3D>ϲ<EFBFBD><CFB2> //VK_XBUTTON1 = <20>²<EFBFBD><C2B2>
int serial - stringaim_key = VK_XBUTTON2;
int serial - stringaim_key2 = VK_XBUTTON1;
int serial - stringshoot_key = VK_LBUTTON; int changeableplaceshoot_key = VK_LBUTTON;
float serial - stringscale = 1.4f; float changeableplacescale = 1.4f;
bool serial - stringfiring_range; bool changeableplacefiring_range;
int serial - stringoffset = 0; int changeableplaceoffset = 0;
bool serial - stringuse_nvidia = false; bool changeableplaceuse_nvidia = false;
bool serial - stringactive = true; bool changeableplaceactive = true;
bool serial - stringready = false; bool changeableplaceready = false;
extern serial - stringvisuals serial - stringv; extern changeableplacevisuals changeableplacev;
int serial - stringaim = 2; //read int changeableplaceaim = 2; //read
float serial - stringuid_dist = 150.0f * 40.0f; float changeableplacexp_dist = 200.0f * 40.0f;
float serial - stringname_dist = 150.0f * 40.0f; float changeableplacename_dist = 100.0f * 40.0f;
bool serial - stringfreecam = false;//read bool changeableplacefreecam = false;//read
bool serial - stringlockall_mode = false; //read bool changeableplacelockall_mode = false; //read
bool serial - stringesp = true; //read bool changeableplaceesp = true; //read
bool serial - stringitem_glow = false; bool changeableplaceitem_glow = false;
bool serial - stringplayer_glow = false; bool changeableplaceplayer_glow = false;
bool serial - stringaim_no_recoil = true; bool changeableplaceaim_no_recoil = true;
bool serial - stringaiming = false; //read bool changeableplaceaiming = false; //read
uint64_t serial - stringg_Base = 0; //write uint64_t changeableplaceg_Base = 0; //write
float serial - stringmax_dist = 650.0f * 40.0f; //read float changeableplacemax_dist = 650.0f * 40.0f; //read
float serial - stringseer_dist = 400.0 * 40.0f; float changeableplaceseer_dist = 400.0 * 40.0f;
float serial - stringsmooth = 77.0f; float changeableplacesmooth = 82.0f;
float serial - stringmax_fov = 20.0f; float changeableplacemax_fov = 12.0f;
int serial - stringbone = 3; int changeableplacebone = 3;
bool serial - stringthirdperson = false; bool changeableplacethirdperson = false;
int serial - stringspectators = 0; //write int changeableplacespectators = 0; //write
int serial - stringallied_spectators = 0; //write int changeableplaceallied_spectators = 0; //write
bool serial - stringchargerifle = false; bool changeableplacechargerifle = false;
bool serial - stringshooting = false; //read bool changeableplaceshooting = false; //read
int serial - stringindex = 0; int changeableplaceindex = 0;
bool serial - stringvalid = false; //write bool changeableplacevalid = false; //write
bool serial - stringnext = false; //read write bool changeableplacenext = false; //read write
uint64_t serial - stringadd[23]; uint64_t changeableplaceadd[23];
bool serial - stringk_f5 = 0; bool changeableplacek_f5 = 0;
bool serial - stringk_f6 = 0; bool changeableplacek_f6 = 0;
bool serial - stringk_f8 = 0; bool changeableplacek_f8 = 0;
/* bool IsKeyDown(int vk)
static size_t Writeserial-stringCallback(void* conserial-stringtents, size_t serial-stringsize, size_t nserial-stringmemb, void* userial-stringserp)
{ {
((std::string*)userial-stringserp)->append((char*)conserial-stringtents, serial-stringsize * nserial-stringmemb); return (GetAsyncKeyState(vk) & 0x8000) != 0;
return serial-stringsize * nserial-stringmemb;
} }
std::string getJson(std::string url) changeableplaceplayer changeableplaceplayers[100];
{
CURL* cserial-stringurl;
CURLcode serial-stringres;
std::string readserial-stringBuffer;
cserial-stringurl = curl_easy_init(); std::string changeableplaceprocess_model_name(char changeableplacemodel_name[]) {
if (cserial-stringurl) if (strstr(changeableplacemodel_name, "dummie")) {
{ return u8"人机";
curl_easy_setopt(cserial-stringurl, CURLOPT_URL, url.c_str());
curl_easy_setopt(cserial-stringurl, CURLOPT_WRITEFUNCTION, Writeserial-stringCallback);
curl_easy_setopt(cserial-stringurl, CURLOPT_WRITEDATA, &readserial-stringBuffer);
serial-stringres = curl_easy_perform(cserial-stringurl);
curl_easy_cleanup(cserial-stringurl);
} }
return readserial-stringBuffer; else if (strstr(changeableplacemodel_name, "bangalore")) {
return u8"班加罗尔";
} }
else if (strstr(changeableplacemodel_name, "fuse")) {
return u8"暴雷";
std::string getserial-stringRank(long platforserial-stringmUserId) {
std::string userial-stringrl = "https://api.mozambiquehe.re/bridge?auth=";
userial-stringrl.append("99e187016931e489d971d808b87ab050");
userial-stringrl.append("&uid=");
userial-stringrl.append(std::to_string(platforserial-stringmUserId));
userial-stringrl.append("&platform=PC");
std::string serial-stringjson = getJson(userial-stringrl);
Json::Value serial-stringroot;
Json::Reader reserial-stringader;
bool parsingserial-stringSuccessful = reserial-stringader.parse(serial-stringjson, serial-stringroot);
if (!parsingserial-stringSuccessful)
{
printf("Failed to parse configuration\n");
return "err";
} }
std::string raserial-stringnkname = serial-stringroot["global"]["rank"]["rankName"].asString(); else if (strstr(changeableplacemodel_name, "ash")) {
if (raserial-stringnkname == "") { return u8"艾许";
return "err";
} }
std::string inB4A893fo = ""; else if (strstr(changeableplacemodel_name, "madmaggie")) {
std::string raserial-stringnkdiv = serial-stringroot["global"]["rank"]["rankDiv"].asString(); return u8"疯马吉";
std::string raserial-stringnkglobal = serial-stringroot["global"]["rank"]["ALStopIntGlobal"].asString();
if (raserial-stringnkname == "Apex Predator") {
inB4A893fo.append(raserial-stringnkname);
inB4A893fo.append(raserial-stringnkglobal);
} }
else { else if (strstr(changeableplacemodel_name, "ballistic")) {
inB4A893fo.append(raserial-stringnkname); return u8"弹道";
inB4A893fo.append(raserial-stringnkdiv);
} }
return inB4A893fo; else if (strstr(changeableplacemodel_name, "pathfinder")) {
return u8"探路者";
} }
*/ else if (strstr(changeableplacemodel_name, "stim")) {
bool IsKeyDown(int vk) return u8"动力小子";
{ }
return (GetAsyncKeyState(vk) & 0x8000) != 0; else if (strstr(changeableplacemodel_name, "revenant")) {
return u8"亡灵";
}
else if (strstr(changeableplacemodel_name, "nova")) {
return u8"地平线";
}
else if (strstr(changeableplacemodel_name, "valkyrie")) {
return u8"瓦尔基里";
}
else if (strstr(changeableplacemodel_name, "bloodhound")) {
return u8"寻血猎犬";
}
else if (strstr(changeableplacemodel_name, "crypto")) {
return u8"密客";
} }
serial - stringplayer serial - stringplayers[100]; else if (strstr(changeableplacemodel_name, "seer")) {
serial - stringrankinfomation serial - stringrank_infomation[100]; return u8"希尔";
void Overlay::Renderserial - stringEsp() }
else if (strstr(changeableplacemodel_name, "wraith")) {
return u8"恶灵";
}
else if (strstr(changeableplacemodel_name, "vantage")) {
return u8"万蒂奇";
}
else if (strstr(changeableplacemodel_name, "gibraltar")) {
return u8"直布罗陀";
}
else if (strstr(changeableplacemodel_name, "lifeline")) {
return u8"命脉";
}
else if (strstr(changeableplacemodel_name, "loba")) {
return u8"罗芭";
}
else if (strstr(changeableplacemodel_name, "holo")) {
return u8"幻象";
}
else if (strstr(changeableplacemodel_name, "newcastle")) {
return u8"纽卡斯尔";
}
else if (strstr(changeableplacemodel_name, "conduit")) {
return u8"导线管";
}
else if (strstr(changeableplacemodel_name, "caustic")) {
return u8"侵蚀";
}
else if (strstr(changeableplacemodel_name, "wattson")) {
return u8"沃特森";
}
else if (strstr(changeableplacemodel_name, "rampart")) {
return u8"兰伯特";
}
else if (strstr(changeableplacemodel_name, "catalyst")) {
return u8"催化剂";
}
else return u8"读取出错";
}
void Overlay::RenderchangeableplaceEsp()
{ {
serial - stringnext = false; changeableplacenext = false;
if (serial - stringg_Base != 0 && serial - stringesp) if (changeableplaceg_Base != 0 && changeableplaceesp)
{ {
memset(serial - stringplayers, 0, sizeof(serial - stringplayers)); memset(changeableplaceplayers, 0, sizeof(changeableplaceplayers));
memset(serial - stringrank_infomation, 0, sizeof(serial - stringrank_infomation)); while (!changeableplacenext && changeableplaceesp)
while (!serial - stringnext && serial - stringesp)
{ {
std::this_thread::sleep_for(std::chrono::milliseconds(1)); std::this_thread::sleep_for(std::chrono::milliseconds(1));
} }
if (serial - stringnext && serial - stringvalid) if (changeableplacenext && changeableplacevalid)
{ {
ImGui::SetNextWindowPos(ImVec2(0, 0)); ImGui::SetNextWindowPos(ImVec2(0, 0));
ImGui::SetNextWindowSize(ImVec2((float)getserial - stringWidth(), (float)getserial - stringHeight())); ImGui::SetNextWindowSize(ImVec2((float)getchangeableplaceWidth(), (float)getchangeableplaceHeight()));
ImGui::Begin(XorStr("##esp"), (bool*)true, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoBackground | ImGuiWindowFlags_NoBringToFrontOnFocus); ImGui::Begin(XorStr("##esp"), (bool*)true, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoBackground | ImGuiWindowFlags_NoBringToFrontOnFocus);
for (int i = 0; i < 100; i++) for (int i = 0; i < 100; i++)
{ {
if (serial - stringplayers[i].serial - stringhealth > 0) if (changeableplaceplayers[i].changeableplacehealth > 0)
{ {
//xp and userid //xp+legend
std::string serial - stringrankstr = std::to_string(serial - stringplayers[i].serial - stringxp_level); std::string changeableplacexpstr = std::to_string(changeableplaceplayers[i].changeableplacexp_level);
serial - stringrankstr = serial - stringrankstr.substr(0, serial - stringrankstr.find('.')) + u8"<EFBFBD><EFBFBD>( uid:" + std::to_string(serial - stringplayers[i].serial - stringuid) + u8")"; changeableplacexpstr = u8"Level:" + changeableplacexpstr.substr(0, changeableplacexpstr.find('.')) + " Legend:" + changeableplaceprocess_model_name(changeableplaceplayers[i].changeableplacemodel_name);
//DISTENCE + teamnum //DISTENCE + teamnum
std::string serial - stringdistance = std::to_string(serial - stringplayers[i].serial - stringdist / 39.62); std::string changeableplacedistance = std::to_string(changeableplaceplayers[i].changeableplacedist / 39.62);
serial - stringdistance = serial - stringdistance.substr(0, serial - stringdistance.find('.')) + u8"<EFBFBD><EFBFBD>(" + std::to_string(serial - stringplayers[i].serial - stringentity_team) + u8"С<EFBFBD><EFBFBD>)"; changeableplacedistance = changeableplacedistance.substr(0, changeableplacedistance.find('.')) + u8"M( No." + std::to_string(changeableplaceplayers[i].changeableplaceentity_team) + u8")";
;
if (serial - stringv.serial - stringbox) if (changeableplacev.changeableplacebox)
{ {
if (serial - stringplayers[i].serial - stringvisible) if (changeableplaceplayers[i].changeableplacevisible)
{ {
if (serial - stringplayers[i].serial - stringdist < 1600.0f) if (changeableplaceplayers[i].changeableplacedist < 1600.0f)
Drawserial - stringBox(RED, serial - stringplayers[i].serial - stringboxMiddle, serial - stringplayers[i].serial - stringh_y, serial - stringplayers[i].serial - stringwidth, serial - stringplayers[i].serial - stringheight); //BOX DrawchangeableplaceBox(RED, changeableplaceplayers[i].changeableplaceboxMiddle, changeableplaceplayers[i].changeableplaceh_y, changeableplaceplayers[i].changeableplacewidth, changeableplaceplayers[i].changeableplaceheight); //BOX
else else
Drawserial - stringBox(ORANGE, serial - stringplayers[i].serial - stringboxMiddle, serial - stringplayers[i].serial - stringh_y, serial - stringplayers[i].serial - stringwidth, serial - stringplayers[i].serial - stringheight); //BOX DrawchangeableplaceBox(ORANGE, changeableplaceplayers[i].changeableplaceboxMiddle, changeableplaceplayers[i].changeableplaceh_y, changeableplaceplayers[i].changeableplacewidth, changeableplaceplayers[i].changeableplaceheight); //BOX
} }
else else
{ {
Drawserial - stringBox(WHITE, serial - stringplayers[i].serial - stringboxMiddle, serial - stringplayers[i].serial - stringh_y, serial - stringplayers[i].serial - stringwidth, serial - stringplayers[i].serial - stringheight); //white if player not visible DrawchangeableplaceBox(WHITE, changeableplaceplayers[i].changeableplaceboxMiddle, changeableplaceplayers[i].changeableplaceh_y, changeableplaceplayers[i].changeableplacewidth, changeableplaceplayers[i].changeableplaceheight); //white if player not visible
} }
} }
if (serial - stringv.serial - stringline) if (changeableplacev.changeableplaceline)
Drawserial - stringLine(ImVec2((float)(getserial - stringWidth() / 2), (float)getserial - stringHeight()), ImVec2(serial - stringplayers[i].serial - stringb_x, serial - stringplayers[i].serial - stringb_y), BLUE, 1); //LINE FROM MIDDLE SCREEN DrawchangeableplaceLine(ImVec2((float)(getchangeableplaceWidth() / 2), (float)getchangeableplaceHeight()), ImVec2(changeableplaceplayers[i].changeableplaceb_x, changeableplaceplayers[i].changeableplaceb_y), BLUE, 1); //LINE FROM MIDDLE SCREEN
if (serial - stringv.serial - stringdistance) if (changeableplacev.changeableplacedistance)
{ {
if (serial - stringplayers[i].serial - stringknocked) if (changeableplaceplayers[i].changeableplaceknocked)
Stringserial - string(ImVec2(serial - stringplayers[i].serial - stringboxMiddle, (serial - stringplayers[i].serial - stringb_y + 1)), RED, serial - stringdistance.c_str()); //DISTANCE Stringchangeableplace(ImVec2(changeableplaceplayers[i].changeableplaceboxMiddle, (changeableplaceplayers[i].changeableplaceb_y + 1)), RED, changeableplacedistance.c_str()); //DISTANCE
else else
Stringserial - string(ImVec2(serial - stringplayers[i].serial - stringboxMiddle, (serial - stringplayers[i].serial - stringb_y + 1)), WHITE, serial - stringdistance.c_str()); //DISTANCE Stringchangeableplace(ImVec2(changeableplaceplayers[i].changeableplaceboxMiddle, (changeableplaceplayers[i].changeableplaceb_y + 1)), WHITE, changeableplacedistance.c_str()); //DISTANCE
} }
//esp stuff of shield bar/ bar color //esp stuff of shield bar/ bar color
if (serial - stringv.serial - stringhealthbar && serial - stringplayers[i].serial - stringdist <= serial - stringseer_dist) if (changeableplacev.changeableplacehealthbar && changeableplaceplayers[i].changeableplacedist <= changeableplaceseer_dist)
Drawserial - stringHealth((serial - stringplayers[i].serial - stringb_x - (serial - stringplayers[i].serial - stringwidth / 2.0f) + 5), (serial - stringplayers[i].serial - stringb_y - serial - stringplayers[i].serial - stringheight - 10), serial - stringplayers[i].serial - stringshield, serial - stringplayers[i].serial - stringmaxshield, serial - stringplayers[i].serial - stringarmortype, serial - stringplayers[i].serial - stringhealth); DrawchangeableplaceHealth((changeableplaceplayers[i].changeableplaceb_x - (changeableplaceplayers[i].changeableplacewidth / 2.0f) + 5), (changeableplaceplayers[i].changeableplaceb_y - changeableplaceplayers[i].changeableplaceheight - 10), changeableplaceplayers[i].changeableplaceshield, changeableplaceplayers[i].changeableplacemaxshield, changeableplaceplayers[i].changeableplacearmortype, changeableplaceplayers[i].changeableplacehealth);
//name //name
if (serial - stringv.serial - stringname && serial - stringplayers[i].serial - stringdist <= serial - stringname_dist) if (changeableplacev.changeableplacename && changeableplaceplayers[i].changeableplacedist <= changeableplacename_dist)
Stringserial - string(ImVec2(serial - stringplayers[i].serial - stringboxMiddle, (serial - stringplayers[i].serial - stringb_y - serial - stringplayers[i].serial - stringheight - 15)), WHITE, serial - stringplayers[i].serial - stringname); Stringchangeableplace(ImVec2(changeableplaceplayers[i].changeableplaceboxMiddle, (changeableplaceplayers[i].changeableplaceb_y - changeableplaceplayers[i].changeableplaceheight - 15)), WHITE, changeableplaceplayers[i].changeableplacename);
//uid //xp and legend
if (serial - stringv.serial - stringrenderrank && serial - stringplayers[i].serial - stringdist <= serial - stringuid_dist) { if (changeableplacev.changeableplacerenderxp && changeableplaceplayers[i].changeableplacedist <= changeableplacexp_dist) {
Stringserial - string(ImVec2((serial - stringplayers[i].serial - stringb_x - (serial - stringplayers[i].serial - stringwidth / 2.0f) + 5), (serial - stringplayers[i].serial - stringb_y - serial - stringplayers[i].serial - stringheight - 45)), WHITE, serial - stringrankstr.c_str()); Stringchangeableplace(ImVec2(changeableplaceplayers[i].changeableplaceboxMiddle - changeableplaceplayers[i].changeableplacewidth , (changeableplaceplayers[i].changeableplaceb_y - changeableplaceplayers[i].changeableplaceheight - 15)), GREEN , changeableplacexpstr.c_str());
} }
} }
} }
ImGui::End(); ImGui::End();
} }
} }
@ -216,74 +232,74 @@ void Overlay::Renderserial - stringEsp()
int main(int argc, char** argv) int main(int argc, char** argv)
{ {
ShowWindow(GetForegroundWindow(), 0); //ShowWindow(GetForegroundWindow(), 0); // Hide the window
serial - stringadd[0] = (uintptr_t)&serial - stringcheck; changeableplaceadd[0] = (uintptr_t)&changeableplacecheck;
serial - stringadd[1] = (uintptr_t)&serial - stringaim; changeableplaceadd[1] = (uintptr_t)&changeableplaceaim;
serial - stringadd[2] = (uintptr_t)&serial - stringesp; changeableplaceadd[2] = (uintptr_t)&changeableplaceesp;
serial - stringadd[3] = (uintptr_t)&serial - stringaiming; changeableplaceadd[3] = (uintptr_t)&changeableplaceaiming;
serial - stringadd[4] = (uintptr_t)&serial - stringg_Base; changeableplaceadd[4] = (uintptr_t)&changeableplaceg_Base;
serial - stringadd[5] = (uintptr_t)&serial - stringnext; changeableplaceadd[5] = (uintptr_t)&changeableplacenext;
serial - stringadd[6] = (uintptr_t)&serial - stringplayers[0]; changeableplaceadd[6] = (uintptr_t)&changeableplaceplayers[0];
serial - stringadd[7] = (uintptr_t)&serial - stringvalid; changeableplaceadd[7] = (uintptr_t)&changeableplacevalid;
serial - stringadd[8] = (uintptr_t)&serial - stringmax_dist; changeableplaceadd[8] = (uintptr_t)&changeableplacemax_dist;
serial - stringadd[9] = (uintptr_t)&serial - stringitem_glow; changeableplaceadd[9] = (uintptr_t)&changeableplaceitem_glow;
serial - stringadd[10] = (uintptr_t)&serial - stringplayer_glow; changeableplaceadd[10] = (uintptr_t)&changeableplaceplayer_glow;
serial - stringadd[11] = (uintptr_t)&serial - stringaim_no_recoil; changeableplaceadd[11] = (uintptr_t)&changeableplaceaim_no_recoil;
serial - stringadd[12] = (uintptr_t)&serial - stringsmooth; changeableplaceadd[12] = (uintptr_t)&changeableplacesmooth;
serial - stringadd[13] = (uintptr_t)&serial - stringmax_fov; changeableplaceadd[13] = (uintptr_t)&changeableplacemax_fov;
serial - stringadd[14] = (uintptr_t)&serial - stringbone; changeableplaceadd[14] = (uintptr_t)&changeableplacebone;
serial - stringadd[15] = (uintptr_t)&serial - stringthirdperson; changeableplaceadd[15] = (uintptr_t)&changeableplacethirdperson;
serial - stringadd[16] = (uintptr_t)&serial - stringspectators; changeableplaceadd[16] = (uintptr_t)&changeableplacespectators;
serial - stringadd[17] = (uintptr_t)&serial - stringallied_spectators; changeableplaceadd[17] = (uintptr_t)&changeableplaceallied_spectators;
serial - stringadd[18] = (uintptr_t)&serial - stringchargerifle; changeableplaceadd[18] = (uintptr_t)&changeableplacechargerifle;
serial - stringadd[19] = (uintptr_t)&serial - stringshooting; changeableplaceadd[19] = (uintptr_t)&changeableplaceshooting;
serial - stringadd[20] = (uintptr_t)&serial - stringfreecam; changeableplaceadd[20] = (uintptr_t)&changeableplacefreecam;
serial - stringadd[21] = (uintptr_t)&serial - stringlockall_mode; changeableplaceadd[21] = (uintptr_t)&changeableplacelockall_mode;
serial - stringadd[22] = (uintptr_t)&serial - stringfiring_range; changeableplaceadd[22] = (uintptr_t)&changeableplacefiring_range;
printf(XorStr("offset: 0x%I64x\n"), (uint64_t)&serial - stringadd[0] - (uint64_t)GetModuleHandle(NULL)); printf(XorStr("offset: 0x%I64x\n"), (uint64_t)&changeableplaceadd[0] - (uint64_t)GetModuleHandle(NULL));
Overlay ov1serial - string = Overlay(); Overlay ov1changeableplace = Overlay();
ov1serial - string.Startserial - string(); ov1changeableplace.Startchangeableplace();
printf(XorStr("Waiting for host/apex...\n")); printf(XorStr("Waiting for host/apex...\n"));
while (serial - stringcheck == 0xABCD) while (changeableplacecheck == 0xABCD)
{ {
if (IsKeyDown(VK_F4)) if (IsKeyDown(VK_F4))
{ {
serial - stringactive = false; changeableplaceactive = false;
break; break;
} }
std::this_thread::sleep_for(std::chrono::milliseconds(1)); std::this_thread::sleep_for(std::chrono::milliseconds(1));
} }
if (serial - stringactive) if (changeableplaceactive)
{ {
serial - stringready = true; changeableplaceready = true;
printf(XorStr("Successful\n")); printf(XorStr("Successful\n"));
} }
while (serial - stringactive) while (changeableplaceactive)
{ {
if (IsKeyDown(VK_F4)) if (IsKeyDown(VK_F4))
{ {
serial - stringactive = false; changeableplaceactive = false;
} }
std::this_thread::sleep_for(std::chrono::milliseconds(1)); std::this_thread::sleep_for(std::chrono::milliseconds(1));
if (IsKeyDown(serial - stringaim_key)) if (IsKeyDown(changeableplaceaim_key))
serial - stringaiming = true; changeableplaceaiming = true;
else else
serial - stringaiming = false; changeableplaceaiming = false;
if (serial - stringaim > 0) { if (changeableplaceaim > 0) {
if (IsKeyDown(serial - stringaim_key2)) { if (IsKeyDown(changeableplaceaim_key2)) {
serial - stringaim = 1; changeableplaceaim = 1;
} }
else { else {
serial - stringaim = 2; changeableplaceaim = 2;
} }
} }
} }
serial - stringready = false; changeableplaceready = false;
ov1serial - string.Clearserial - string(); ov1changeableplace.Clearchangeableplace();
if (!serial - stringuse_nvidia) if (!changeableplaceuse_nvidia)
system(XorStr("taskkill /F /T /IM ov.exe")); //custom overlay processname system(XorStr("taskkill /F /T /IM ov.exe")); //custom overlay processname
return 0; return 0;
} }

@ -1,72 +1,72 @@
#include "overlay.h" #include "overlay.h"
extern int serial - stringaim; extern int changeableplaceaim;
extern bool serial - stringesp; extern bool changeableplaceesp;
extern bool serial - stringaim_no_recoil; extern bool changeableplaceaim_no_recoil;
extern bool serial - stringready; extern bool changeableplaceready;
extern bool serial - stringuse_nvidia; extern bool changeableplaceuse_nvidia;
extern float serial - stringmax_dist; extern float changeableplacemax_dist;
extern float serial - stringseer_dist; extern float changeableplaceseer_dist;
extern float serial - stringsmooth; extern float changeableplacesmooth;
extern float serial - stringmax_fov; extern float changeableplacemax_fov;
extern float serial - stringuid_dist; extern float changeableplacexp_dist;
extern float serial - stringscale; extern float changeableplacescale;
extern int serial - stringbone; extern int changeableplacebone;
extern bool serial - stringthirdperson; extern bool changeableplacethirdperson;
extern float serial - stringname_dist; extern float changeableplacename_dist;
extern int serial - stringspectators; extern int changeableplacespectators;
extern int serial - stringallied_spectators; extern int changeableplaceallied_spectators;
extern bool serial - stringchargerifle; extern bool changeableplacechargerifle;
extern bool serial - stringfreecam; extern bool changeableplacefreecam;
extern bool serial - stringlockall_mode; extern bool changeableplacelockall_mode;
extern bool serial - stringdisplay_spec; extern bool changeableplacedisplay_spec;
extern bool serial - stringfiring_range; extern bool changeableplacefiring_range;
extern int serial - stringindex; extern int changeableplaceindex;
int serial - stringwidth; int changeableplacewidth;
int serial - stringheight; int changeableplaceheight;
bool serial - stringk_leftclick = false; bool changeableplacek_leftclick = false;
bool serial - stringk_ins = false; bool changeableplacek_ins = false;
bool serial - stringshow_menu = false; bool changeableplaceshow_menu = false;
serial - stringvisuals serial - stringv; changeableplacevisuals changeableplacev;
extern bool IsKeyDown(int vk); extern bool IsKeyDown(int vk);
LONG serial - stringnv_default = WS_POPUP | WS_CLIPSIBLINGS; LONG changeableplacenv_default = WS_POPUP | WS_CLIPSIBLINGS;
LONG serial - stringnv_default_in_game = serial - stringnv_default | WS_DISABLED; LONG changeableplacenv_default_in_game = changeableplacenv_default | WS_DISABLED;
LONG serial - stringnv_edit = serial - stringnv_default_in_game | WS_VISIBLE; LONG changeableplacenv_edit = changeableplacenv_default_in_game | WS_VISIBLE;
LONG serial - stringnv_ex_default = WS_EX_TOOLWINDOW; LONG changeableplacenv_ex_default = WS_EX_TOOLWINDOW;
LONG serial - stringnv_ex_edit = serial - stringnv_ex_default | WS_EX_LAYERED | WS_EX_TRANSPARENT; LONG changeableplacenv_ex_edit = changeableplacenv_ex_default | WS_EX_LAYERED | WS_EX_TRANSPARENT;
LONG serial - stringnv_ex_edit_menu = serial - stringnv_ex_default | WS_EX_TRANSPARENT; LONG changeableplacenv_ex_edit_menu = changeableplacenv_ex_default | WS_EX_TRANSPARENT;
static DWORD WINAPI StaticMessageStart(void* serial - stringParam) static DWORD WINAPI StaticMessageStart(void* changeableplaceParam)
{ {
Overlay* serial - stringov = (Overlay*)serial - stringParam; Overlay* changeableplaceov = (Overlay*)changeableplaceParam;
serial - stringov->Createserial - stringOverlay(); changeableplaceov->CreatechangeableplaceOverlay();
return 0; return 0;
} }
BOOL CALLBACK EnumWindowsCallback(HWND serial - stringhwnd, LPARAM lParam) BOOL CALLBACK EnumWindowsCallback(HWND changeableplacehwnd, LPARAM lParam)
{ {
wchar_t classserial - stringName[255] = L""; wchar_t classchangeableplaceName[255] = L"";
GetClassName(serial - stringhwnd, classserial - stringName, 255); GetClassName(changeableplacehwnd, classchangeableplaceName, 255);
if (serial - stringuse_nvidia) if (changeableplaceuse_nvidia)
{ {
if (wcscmp(XorStrW(L"CEF-OSC-WIDGET"), classserial - stringName) == 0) //Nvidia overlay if (wcscmp(XorStrW(L"CEF-OSC-WIDGET"), classchangeableplaceName) == 0) //Nvidia overlay
{ {
HWND* w = (HWND*)lParam; HWND* w = (HWND*)lParam;
if (GetWindowLong(serial - stringhwnd, GWL_STYLE) != serial - stringnv_default && GetWindowLong(serial - stringhwnd, GWL_STYLE) != serial - stringnv_default_in_game) if (GetWindowLong(changeableplacehwnd, GWL_STYLE) != changeableplacenv_default && GetWindowLong(changeableplacehwnd, GWL_STYLE) != changeableplacenv_default_in_game)
return TRUE; return TRUE;
*w = serial - stringhwnd; *w = changeableplacehwnd;
return TRUE; return TRUE;
} }
} }
else else
{ {
if (wcscmp(XorStrW(L"serial-stringoverlay"), classserial - stringName) == 0) //Custom overlay if (wcscmp(XorStrW(L"changeableplaceoverlay"), classchangeableplaceName) == 0) //Custom overlay
{ {
HWND* w = (HWND*)lParam; HWND* w = (HWND*)lParam;
*w = serial - stringhwnd; *w = changeableplacehwnd;
return TRUE; return TRUE;
} }
} }
@ -85,34 +85,30 @@ void CleanupDeviceD3D();
void CreateRenderTarget(); void CreateRenderTarget();
void CleanupRenderTarget(); void CleanupRenderTarget();
void Overlay::Renderserial - stringMenu() void Overlay::RenderchangeableplaceMenu()
{ {
static bool serial - stringaim_enable = false; static bool changeableplaceaim_enable = false;
static bool serial - stringvis_check = false; static bool changeableplacevis_check = false;
static bool serial - stringspec_disable = false; static bool changeableplacespec_disable = false;
static bool serial - stringall_spec_disable = false; static bool changeableplaceall_spec_disable = false;
if (serial - stringaim > 0) if (changeableplaceaim > 0)
{ {
serial - stringaim_enable = true; changeableplaceaim_enable = true;
if (serial - stringaim > 1) if (changeableplaceaim > 1)
{ {
serial - stringvis_check = true; changeableplacevis_check = true;
} }
else else
{ {
serial - stringvis_check = false; changeableplacevis_check = false;
} }
} }
else else
{ {
serial - stringaim_enable = false; changeableplaceaim_enable = false;
serial - stringvis_check = false; changeableplacevis_check = false;
} }
//ImGui::Begin("#FOVC", nullptr, ImGuiWindowFlags_NoMove | ImGuiInputTextFlags_ReadOnly | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoScrollbar);
//auto draw = ImGui::GetBackgroundDrawList();
//draw->AddCircle(ImVec2(1920 / 2, 1080 / 2), serial-stringmax_fov * serial-stringscale, IM_COL32(255, 0, 0, 255), 100, 0.0f);
//ImGui::End();
ImGui::SetNextWindowPos(ImVec2(0, 0)); ImGui::SetNextWindowPos(ImVec2(0, 0));
ImGui::SetNextWindowSize(ImVec2(490, 275)); ImGui::SetNextWindowSize(ImVec2(490, 275));
ImGui::Begin(XorStr("##title"), (bool*)true, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoScrollbar); ImGui::Begin(XorStr("##title"), (bool*)true, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoScrollbar);
@ -121,82 +117,82 @@ void Overlay::Renderserial - stringMenu()
{ {
if (ImGui::BeginTabItem(XorStr(u8"MainMenu"))) if (ImGui::BeginTabItem(XorStr(u8"MainMenu")))
{ {
ImGui::Checkbox(XorStr(u8"ESP"), &serial - stringesp); ImGui::Checkbox(XorStr(u8"ESP"), &changeableplaceesp);
ImGui::Checkbox(XorStr(u8"Aimbot"), &serial - stringaim_enable); ImGui::Checkbox(XorStr(u8"Aimbot"), &changeableplaceaim_enable);
if (serial - stringaim_enable) if (changeableplaceaim_enable)
{ {
ImGui::SameLine(); ImGui::SameLine();
ImGui::Checkbox(XorStr(u8"Visible check"), &serial - stringvis_check); ImGui::Checkbox(XorStr(u8"Visible check"), &changeableplacevis_check);
ImGui::SameLine(); ImGui::SameLine();
ImGui::Checkbox(XorStr(u8"No recoil"), &serial - stringaim_no_recoil); ImGui::Checkbox(XorStr(u8"No recoil"), &changeableplaceaim_no_recoil);
if (serial - stringvis_check) if (changeableplacevis_check)
{ {
serial - stringaim = 2; changeableplaceaim = 2;
} }
else else
{ {
serial - stringaim = 1; changeableplaceaim = 1;
} }
} }
else else
{ {
serial - stringaim = 0; changeableplaceaim = 0;
} }
ImGui::Checkbox(XorStr(u8"freecamera"), &serial - stringfreecam); ImGui::Checkbox(XorStr(u8"freecamera"), &changeableplacefreecam);
ImGui::Checkbox(XorStr(u8"Lock on teammates"), &serial - stringlockall_mode); ImGui::Checkbox(XorStr(u8"Lock on teammates"), &changeableplacelockall_mode);
ImGui::Checkbox(XorStr(u8"firing_range mode"), &serial - stringfiring_range);//serial-stringfiring_range ImGui::Checkbox(XorStr(u8"firing_range mode"), &changeableplacefiring_range);//changeableplacefiring_range
//ImGui::InputInt(XorStr("index"), &serial-stringindex);//serial-stringindex //ImGui::InputInt(XorStr("index"), &changeableplaceindex);//changeableplaceindex
ImGui::EndTabItem(); ImGui::EndTabItem();
} }
if (ImGui::BeginTabItem(XorStr(u8"Aimbot"))) if (ImGui::BeginTabItem(XorStr(u8"Aimbot")))
{ {
ImGui::Text(XorStr(u8"Max distence:")); ImGui::Text(XorStr(u8"Max distence:"));
ImGui::SliderFloat(XorStr("##1"), &serial - stringmax_dist, 100.0f * 40, 800.0f * 40, "%.2f"); ImGui::SliderFloat(XorStr("##1"), &changeableplacemax_dist, 100.0f * 40, 800.0f * 40, "%.2f");
ImGui::SameLine(); ImGui::SameLine();
ImGui::Text(u8"(%d M)", (int)(serial - stringmax_dist / 40)); ImGui::Text(u8"(%d M)", (int)(changeableplacemax_dist / 40));
ImGui::Text(u8"real dist :%d M", (int)(serial - stringmax_dist / 40)); ImGui::Text(u8"real dist :%d M", (int)(changeableplacemax_dist / 40));
ImGui::Text(XorStr(u8"Smooth")); ImGui::Text(XorStr(u8"Smooth"));
ImGui::SliderFloat(XorStr("##2"), &serial - stringsmooth, 76.0f, 100.0f, "%.2f"); ImGui::SliderFloat(XorStr("##2"), &changeableplacesmooth, 76.0f, 100.0f, "%.2f");
ImGui::Text(XorStr(u8"FOV:")); ImGui::Text(XorStr(u8"FOV:"));
ImGui::SliderFloat(XorStr("##3"), &serial - stringmax_fov, 5.0f, 250.0f, "%.2f"); ImGui::SliderFloat(XorStr("##3"), &changeableplacemax_fov, 5.0f, 250.0f, "%.2f");
ImGui::Text(XorStr(u8"Bone:")); ImGui::Text(XorStr(u8"Bone:"));
ImGui::SliderInt(XorStr("##4"), &serial - stringbone, 0, 3); ImGui::SliderInt(XorStr("##4"), &changeableplacebone, 0, 3);
//ImGui::Text(XorStr(u8"FOV Draw scale:")); //ImGui::Text(XorStr(u8"FOV Draw scale:"));
//ImGui::SliderFloat(XorStr("##5"), &serial-stringscale, 0.0f, 140.0f, "%.2f"); //ImGui::SliderFloat(XorStr("##5"), &changeableplacescale, 0.0f, 140.0f, "%.2f");
ImGui::EndTabItem(); ImGui::EndTabItem();
} }
if (ImGui::BeginTabItem(XorStr(u8"ESPHACK"))) if (ImGui::BeginTabItem(XorStr(u8"ESPHACK")))
{ {
ImGui::Text(XorStr(u8"ESP")); ImGui::Text(XorStr(u8"ESP"));
//ImGui::Checkbox //ImGui::Checkbox
ImGui::Checkbox(XorStr(u8"BOX"), &serial - stringv.serial - stringbox); ImGui::Checkbox(XorStr(u8"BOX"), &changeableplacev.changeableplacebox);
ImGui::SameLine(0, 70.0f); ImGui::SameLine(0, 70.0f);
ImGui::Checkbox(XorStr(u8"Name"), &serial - stringv.serial - stringname); ImGui::Checkbox(XorStr(u8"Name"), &changeableplacev.changeableplacename);
ImGui::Checkbox(XorStr(u8"uid"), &serial - stringv.serial - stringrenderrank); ImGui::Checkbox(XorStr(u8"xp level"), &changeableplacev.changeableplacerenderxp);
ImGui::Checkbox(XorStr(u8"line"), &serial - stringv.serial - stringline); ImGui::Checkbox(XorStr(u8"line"), &changeableplacev.changeableplaceline);
ImGui::Checkbox(XorStr(u8"dist + teamID"), &serial - stringv.serial - stringdistance); ImGui::Checkbox(XorStr(u8"dist + teamID"), &changeableplacev.changeableplacedistance);
ImGui::Checkbox(XorStr(u8"seer esp"), &serial - stringv.serial - stringhealthbar); ImGui::Checkbox(XorStr(u8"seer esp"), &changeableplacev.changeableplacehealthbar);
ImGui::Text(XorStr(u8"seer esp distence:")); ImGui::Text(XorStr(u8"seer esp distence:"));
ImGui::SliderFloat(XorStr("##1"), &serial - stringseer_dist, 100.0f * 40, 800.0f * 40, "%.2f"); ImGui::SliderFloat(XorStr("##1"), &changeableplaceseer_dist, 100.0f * 40, 800.0f * 40, "%.2f");
ImGui::SameLine(); ImGui::SameLine();
ImGui::Text(u8"(%d M)", (int)(serial - stringseer_dist / 40)); ImGui::Text(u8"(%d M)", (int)(changeableplaceseer_dist / 40));
ImGui::Text(XorStr(u8"uid esp distence:")); ImGui::Text(XorStr(u8"XP level display distence:"));
ImGui::SliderFloat(XorStr("##2"), &serial - stringuid_dist, 100.0f * 40, 800.0f * 40, "%.2f"); ImGui::SliderFloat(XorStr("##2"), &changeableplacexp_dist, 100.0f * 40, 800.0f * 40, "%.2f");
ImGui::SameLine(); ImGui::SameLine();
ImGui::Text(u8"(%d M)", (int)(serial - stringuid_dist / 40)); ImGui::Text(u8"(%d M)", (int)(changeableplacexp_dist / 40));
ImGui::Text(XorStr(u8"name esp distence:")); ImGui::Text(XorStr(u8"name esp distence:"));
ImGui::SliderFloat(XorStr("##3"), &serial - stringname_dist, 100.0f * 40, 800.0f * 40, "%.2f"); ImGui::SliderFloat(XorStr("##3"), &changeableplacename_dist, 100.0f * 40, 800.0f * 40, "%.2f");
ImGui::SameLine(); ImGui::SameLine();
ImGui::Text(u8"(%d M)", (int)(serial - stringname_dist / 40)); ImGui::Text(u8"(%d M)", (int)(changeableplacename_dist / 40));
ImGui::EndTabItem(); ImGui::EndTabItem();
} }
ImGui::EndTabBar(); ImGui::EndTabBar();
@ -204,44 +200,44 @@ void Overlay::Renderserial - stringMenu()
ImGui::End(); ImGui::End();
} }
void Overlay::Renderserial - stringInfo() void Overlay::RenderchangeableplaceInfo()
{ {
//ImGui::Begin("#FOVC'", nullptr, ImGuiWindowFlags_NoMove | ImGuiInputTextFlags_ReadOnly | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoScrollbar); //ImGui::Begin("#FOVC'", nullptr, ImGuiWindowFlags_NoMove | ImGuiInputTextFlags_ReadOnly | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoScrollbar);
//auto draw = ImGui::GetBackgroundDrawList(); //auto draw = ImGui::GetBackgroundDrawList();
//draw ->AddCircle(ImVec2(1920 / 2, 1080 / 2), serial-stringmax_fov * serial-stringscale ,IM_COL32(255, 0, 0, 255), 100, 0.0f); //draw ->AddCircle(ImVec2(1920 / 2, 1080 / 2), changeableplacemax_fov * changeableplacescale ,IM_COL32(255, 0, 0, 255), 100, 0.0f);
//ImGui::End(); //ImGui::End();
ImGui::SetNextWindowPos(ImVec2(0, 0)); ImGui::SetNextWindowPos(ImVec2(0, 0));
ImGui::SetNextWindowSize(ImVec2(210, 25)); ImGui::SetNextWindowSize(ImVec2(210, 25));
ImGui::Begin(XorStr("##info"), (bool*)true, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoScrollbar); ImGui::Begin(XorStr("##info"), (bool*)true, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoScrollbar);
ImGui::TextColored(RED, u8"Enemies <EFBFBD><EFBFBD> %d", serial - stringspectators); ImGui::TextColored(RED, u8"Enemies %d", changeableplacespectators);
ImGui::SameLine(); ImGui::SameLine();
ImGui::Text(" / "); ImGui::Text(" / ");
ImGui::SameLine(); ImGui::SameLine();
ImGui::TextColored(GREEN, u8"Team <EFBFBD><EFBFBD> %d", serial - stringallied_spectators); ImGui::TextColored(GREEN, u8"Team %d", changeableplaceallied_spectators);
ImGui::End(); ImGui::End();
} }
void Overlay::Clickserial - stringThrough(bool serial - stringv) void Overlay::ClickchangeableplaceThrough(bool changeableplacev)
{ {
if (serial - stringv) if (changeableplacev)
{ {
serial - stringnv_edit = serial - stringnv_default_in_game | WS_VISIBLE; changeableplacenv_edit = changeableplacenv_default_in_game | WS_VISIBLE;
if (GetWindowLong(overlayserial - stringHWND, GWL_EXSTYLE) != serial - stringnv_ex_edit) if (GetWindowLong(overlaychangeableplaceHWND, GWL_EXSTYLE) != changeableplacenv_ex_edit)
SetWindowLong(overlayserial - stringHWND, GWL_EXSTYLE, serial - stringnv_ex_edit); SetWindowLong(overlaychangeableplaceHWND, GWL_EXSTYLE, changeableplacenv_ex_edit);
} }
else else
{ {
serial - stringnv_edit = serial - stringnv_default | WS_VISIBLE; changeableplacenv_edit = changeableplacenv_default | WS_VISIBLE;
if (GetWindowLong(overlayserial - stringHWND, GWL_EXSTYLE) != serial - stringnv_ex_edit_menu) if (GetWindowLong(overlaychangeableplaceHWND, GWL_EXSTYLE) != changeableplacenv_ex_edit_menu)
SetWindowLong(overlayserial - stringHWND, GWL_EXSTYLE, serial - stringnv_ex_edit_menu); SetWindowLong(overlaychangeableplaceHWND, GWL_EXSTYLE, changeableplacenv_ex_edit_menu);
} }
} }
DWORD Overlay::Createserial - stringOverlay() DWORD Overlay::CreatechangeableplaceOverlay()
{ {
EnumWindows(EnumWindowsCallback, (LPARAM)&overlayserial - stringHWND); EnumWindows(EnumWindowsCallback, (LPARAM)&overlaychangeableplaceHWND);
Sleep(300); Sleep(300);
if (overlayserial - stringHWND == 0) if (overlaychangeableplaceHWND == 0)
{ {
printf(XorStr("Can't find the overlay\n")); printf(XorStr("Can't find the overlay\n"));
Sleep(1000); Sleep(1000);
@ -249,21 +245,21 @@ DWORD Overlay::Createserial - stringOverlay()
} }
HDC hDC = ::GetWindowDC(NULL); HDC hDC = ::GetWindowDC(NULL);
serial - stringwidth = ::GetDeviceCaps(hDC, HORZRES); changeableplacewidth = ::GetDeviceCaps(hDC, HORZRES);
serial - stringheight = ::GetDeviceCaps(hDC, VERTRES); changeableplaceheight = ::GetDeviceCaps(hDC, VERTRES);
serial - stringrunning = true; changeableplacerunning = true;
// Initialize Direct3D // Initialize Direct3D
if (!CreateDeviceD3D(overlayserial - stringHWND)) if (!CreateDeviceD3D(overlaychangeableplaceHWND))
{ {
CleanupDeviceD3D(); CleanupDeviceD3D();
return 1; return 1;
} }
// Show the window // Show the window
::ShowWindow(overlayserial - stringHWND, SW_SHOWDEFAULT); ::ShowWindow(overlaychangeableplaceHWND, SW_SHOWDEFAULT);
::UpdateWindow(overlayserial - stringHWND); ::UpdateWindow(overlaychangeableplaceHWND);
// Setup Dear ImGui context // Setup Dear ImGui context
IMGUI_CHECKVERSION(); IMGUI_CHECKVERSION();
@ -278,7 +274,7 @@ DWORD Overlay::Createserial - stringOverlay()
ImGui::GetStyle().WindowMinSize = ImVec2(1, 1); ImGui::GetStyle().WindowMinSize = ImVec2(1, 1);
// Setup Platform/Renderer bindings // Setup Platform/Renderer bindings
ImGui_ImplWin32_Init(overlayserial - stringHWND); ImGui_ImplWin32_Init(overlaychangeableplaceHWND);
ImGui_ImplDX11_Init(g_pd3dDevice, g_pd3dDeviceContext); ImGui_ImplDX11_Init(g_pd3dDevice, g_pd3dDeviceContext);
ImVec4 clear_color = ImVec4(0.0f, 0.0f, 0.0f, 0.00f); ImVec4 clear_color = ImVec4(0.0f, 0.0f, 0.0f, 0.00f);
@ -286,14 +282,14 @@ DWORD Overlay::Createserial - stringOverlay()
// Main loop // Main loop
MSG msg; MSG msg;
ZeroMemory(&msg, sizeof(msg)); ZeroMemory(&msg, sizeof(msg));
Clickserial - stringThrough(true); ClickchangeableplaceThrough(true);
while (serial - stringrunning) while (changeableplacerunning)
{ {
HWND wnd = GetWindow(GetForegroundWindow(), GW_HWNDPREV); HWND wnd = GetWindow(GetForegroundWindow(), GW_HWNDPREV);
if (wnd != overlayserial - stringHWND) if (wnd != overlaychangeableplaceHWND)
{ {
SetWindowPos(overlayserial - stringHWND, wnd, 0, 0, 0, 0, SWP_ASYNCWINDOWPOS | SWP_NOMOVE | SWP_NOSIZE); SetWindowPos(overlaychangeableplaceHWND, wnd, 0, 0, 0, 0, SWP_ASYNCWINDOWPOS | SWP_NOMOVE | SWP_NOSIZE);
::UpdateWindow(overlayserial - stringHWND); ::UpdateWindow(overlaychangeableplaceHWND);
} }
if (::PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE)) if (::PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE))
@ -308,35 +304,35 @@ DWORD Overlay::Createserial - stringOverlay()
ImGui_ImplWin32_NewFrame(); ImGui_ImplWin32_NewFrame();
ImGui::NewFrame(); ImGui::NewFrame();
if (IsKeyDown(VK_LBUTTON) && !serial - stringk_leftclick) if (IsKeyDown(VK_LBUTTON) && !changeableplacek_leftclick)
{ {
io.MouseDown[0] = true; io.MouseDown[0] = true;
serial - stringk_leftclick = true; changeableplacek_leftclick = true;
} }
else if (!IsKeyDown(VK_LBUTTON) && serial - stringk_leftclick) else if (!IsKeyDown(VK_LBUTTON) && changeableplacek_leftclick)
{ {
io.MouseDown[0] = false; io.MouseDown[0] = false;
serial - stringk_leftclick = false; changeableplacek_leftclick = false;
} }
if (IsKeyDown(VK_INSERT) && !serial - stringk_ins && serial - stringready) if (IsKeyDown(VK_INSERT) && !changeableplacek_ins && changeableplaceready)
{ {
serial - stringshow_menu = !serial - stringshow_menu; changeableplaceshow_menu = !changeableplaceshow_menu;
Clickserial - stringThrough(!serial - stringshow_menu); ClickchangeableplaceThrough(!changeableplaceshow_menu);
serial - stringk_ins = true; changeableplacek_ins = true;
} }
else if (!IsKeyDown(VK_INSERT) && serial - stringk_ins) else if (!IsKeyDown(VK_INSERT) && changeableplacek_ins)
{ {
serial - stringk_ins = false; changeableplacek_ins = false;
} }
if (serial - stringshow_menu) { if (changeableplaceshow_menu) {
Renderserial - stringMenu(); RenderchangeableplaceMenu();
} }
else { else {
Renderserial - stringInfo(); RenderchangeableplaceInfo();
} }
Renderserial - stringEsp(); RenderchangeableplaceEsp();
// Rendering // Rendering
ImGui::EndFrame(); ImGui::EndFrame();
@ -350,33 +346,33 @@ DWORD Overlay::Createserial - stringOverlay()
std::this_thread::sleep_for(std::chrono::milliseconds(1)); std::this_thread::sleep_for(std::chrono::milliseconds(1));
} }
Clickserial - stringThrough(true); ClickchangeableplaceThrough(true);
CleanupDeviceD3D(); CleanupDeviceD3D();
::DestroyWindow(overlayserial - stringHWND); ::DestroyWindow(overlaychangeableplaceHWND);
return 0; return 0;
} }
void Overlay::Startserial - string() void Overlay::Startchangeableplace()
{ {
DWORD ThreadID; DWORD ThreadID;
CreateThread(NULL, 0, StaticMessageStart, (void*)this, 0, &ThreadID); CreateThread(NULL, 0, StaticMessageStart, (void*)this, 0, &ThreadID);
} }
void Overlay::Clearserial - string() void Overlay::Clearchangeableplace()
{ {
serial - stringrunning = 0; changeableplacerunning = 0;
Sleep(50); Sleep(50);
} }
int Overlay::getserial - stringWidth() int Overlay::getchangeableplaceWidth()
{ {
return serial - stringwidth; return changeableplacewidth;
} }
int Overlay::getserial - stringHeight() int Overlay::getchangeableplaceHeight()
{ {
return serial - stringheight; return changeableplaceheight;
} }
// Helper functions // Helper functions
@ -435,37 +431,37 @@ void CleanupDeviceD3D()
if (g_pd3dDevice) { g_pd3dDevice->Release(); g_pd3dDevice = NULL; } if (g_pd3dDevice) { g_pd3dDevice->Release(); g_pd3dDevice = NULL; }
} }
void Overlay::Drawserial - stringLine(ImVec2 a, ImVec2 b, ImColor color, float width) void Overlay::DrawchangeableplaceLine(ImVec2 a, ImVec2 b, ImColor color, float width)
{ {
ImGui::GetWindowDrawList()->AddLine(a, b, color, width); ImGui::GetWindowDrawList()->AddLine(a, b, color, width);
} }
void Overlay::Drawserial - stringBox(ImColor color, float x, float y, float w, float h) void Overlay::DrawchangeableplaceBox(ImColor color, float x, float y, float w, float h)
{ {
Drawserial - stringLine(ImVec2(x, y), ImVec2(x + w, y), color, 1.0f); DrawchangeableplaceLine(ImVec2(x, y), ImVec2(x + w, y), color, 1.0f);
Drawserial - stringLine(ImVec2(x, y), ImVec2(x, y + h), color, 1.0f); DrawchangeableplaceLine(ImVec2(x, y), ImVec2(x, y + h), color, 1.0f);
Drawserial - stringLine(ImVec2(x + w, y), ImVec2(x + w, y + h), color, 1.0f); DrawchangeableplaceLine(ImVec2(x + w, y), ImVec2(x + w, y + h), color, 1.0f);
Drawserial - stringLine(ImVec2(x, y + h), ImVec2(x + w, y + h), color, 1.0f); DrawchangeableplaceLine(ImVec2(x, y + h), ImVec2(x + w, y + h), color, 1.0f);
} }
void Overlay::serial - stringText(ImVec2 pos, ImColor color, const char* text_begin, const char* text_end, float wrap_width, const ImVec4 * cpu_fine_clip_rect) void Overlay::changeableplaceText(ImVec2 pos, ImColor color, const char* text_begin, const char* text_end, float wrap_width, const ImVec4 * cpu_fine_clip_rect)
{ {
ImGui::GetWindowDrawList()->AddText(ImGui::GetFont(), 14, pos, color, text_begin, text_end, wrap_width, cpu_fine_clip_rect); ImGui::GetWindowDrawList()->AddText(ImGui::GetFont(), 14, pos, color, text_begin, text_end, wrap_width, cpu_fine_clip_rect);
} }
void Overlay::Stringserial - string(ImVec2 pos, ImColor color, const char* text) void Overlay::Stringchangeableplace(ImVec2 pos, ImColor color, const char* text)
{ {
serial - stringText(pos, color, text, text + strlen(text), 200, 0); changeableplaceText(pos, color, text, text + strlen(text), 200, 0);
} }
void Overlay::Rectserial - stringFilled(float x0, float y0, float x1, float y1, ImColor color, float rounding, int rounding_corners_flags) void Overlay::RectchangeableplaceFilled(float x0, float y0, float x1, float y1, ImColor color, float rounding, int rounding_corners_flags)
{ {
ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(x0, y0), ImVec2(x1, y1), color, rounding, rounding_corners_flags); ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(x0, y0), ImVec2(x1, y1), color, rounding, rounding_corners_flags);
} }
void Overlay::Progressserial - stringBar(float x, float y, float w, float h, int value, int v_max, ImColor barColor) void Overlay::ProgresschangeableplaceBar(float x, float y, float w, float h, int value, int v_max, ImColor barColor)
{ {
Rectserial - stringFilled(x, y, x + w, y + ((h / float(v_max)) * (float)value), barColor, 0.0f, 0); RectchangeableplaceFilled(x, y, x + w, y + ((h / float(v_max)) * (float)value), barColor, 0.0f, 0);
} }
@ -482,36 +478,36 @@ void DrawHexagonFilled(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, con
ImGui::GetWindowDrawList()->AddHexagonFilled(p1, p2, p3, p4, p5, p6, col); ImGui::GetWindowDrawList()->AddHexagonFilled(p1, p2, p3, p4, p5, p6, col);
} }
void Overlay::Drawserial - stringHealth(float serial - stringx, float serial - stringy, int serial - stringshield, int serial - stringmax_shield, int serial - stringarmorType, int serial - stringhealth) { void Overlay::DrawchangeableplaceHealth(float changeableplacex, float changeableplacey, int changeableplaceshield, int changeableplacemax_shield, int changeableplacearmorType, int changeableplacehealth) {
int serial - stringbg_offset = 3; int changeableplacebg_offset = 3;
int serial - stringbar_width = 158; int changeableplacebar_width = 105; //158
// 4steps...2*3=6 // 4steps...2*3=6
// 38*4=152 152+6 = 158 // 38*4=152 152+6 = 158
// 5steps...2*4=8 // 5steps...2*4=8
// 30*5=150 150+8 = 158 // 30*5=150 150+8 = 158
float serial - stringmax_health = 100.0f; float changeableplacemax_health = 100.0f;//100
float serial - stringshield_step = 25.0f; float changeableplaceshield_step = 25.0f; //25
int serial - stringshield_25 = 30; int changeableplaceshield_25 = 14; //30
int serial - stringsteps = 5; int changeableplacesteps = 5;
ImVec2 bg1(serial - stringx - serial - stringbar_width / 2 - serial - stringbg_offset, serial - stringy); ImVec2 bg1(changeableplacex - changeableplacebar_width / 2 - changeableplacebg_offset, changeableplacey);
ImVec2 bg2(bg1.x - 10, bg1.y - 16); ImVec2 bg2(bg1.x - 10, bg1.y - 16);
ImVec2 bg3(bg2.x + 5, bg2.y - 7); ImVec2 bg3(bg2.x + 5, bg2.y - 7);
ImVec2 bg4(bg3.x + serial - stringbar_width + serial - stringbg_offset, bg3.y); ImVec2 bg4(bg3.x + changeableplacebar_width + changeableplacebg_offset, bg3.y);
ImVec2 bg5(bg4.x + 11, bg4.y + 18); ImVec2 bg5(bg4.x + 11, bg4.y + 18);
ImVec2 bg6(serial - stringx + serial - stringbar_width / 2 + serial - stringbg_offset, serial - stringy); ImVec2 bg6(changeableplacex + changeableplacebar_width / 2 + changeableplacebg_offset, changeableplacey);
DrawHexagonFilled(bg1, bg2, bg3, bg4, bg5, bg6, ImColor(0, 0, 0, 120)); DrawHexagonFilled(bg1, bg2, bg3, bg4, bg5, bg6, ImColor(0, 0, 0, 120));
ImVec2 h1(bg1.x + 3, bg1.y - 4); ImVec2 h1(bg1.x + 3, bg1.y - 4);
ImVec2 h2(h1.x - 5, h1.y - 8); ImVec2 h2(h1.x - 5, h1.y - 8);
ImVec2 h3(h2.x + (float)serial - stringhealth / serial - stringmax_health * serial - stringbar_width, h2.y); ImVec2 h3(h2.x + (float)changeableplacehealth / changeableplacemax_health * changeableplacebar_width, h2.y);
ImVec2 h4(h1.x + (float)serial - stringhealth / serial - stringmax_health * serial - stringbar_width, h1.y); ImVec2 h4(h1.x + (float)changeableplacehealth / changeableplacemax_health * changeableplacebar_width, h1.y);
ImVec2 h3m(h2.x + serial - stringbar_width, h2.y); ImVec2 h3m(h2.x + changeableplacebar_width, h2.y);
ImVec2 h4m(h1.x + serial - stringbar_width, h1.y); ImVec2 h4m(h1.x + changeableplacebar_width, h1.y);
DrawQuadFilled(h1, h2, h3m, h4m, ImColor(10, 10, 30, 60)); DrawQuadFilled(h1, h2, h3m, h4m, ImColor(10, 10, 30, 60));
DrawQuadFilled(h1, h2, h3, h4, WHITE); DrawQuadFilled(h1, h2, h3, h4, WHITE);
@ -521,23 +517,23 @@ void Overlay::Drawserial - stringHealth(float serial - stringx, float serial - s
ImColor shieldCol; ImColor shieldCol;
ImColor shieldColDark; //not used, but the real seer q has shadow inside ImColor shieldColDark; //not used, but the real seer q has shadow inside
if (serial - stringmax_shield == 50) { //white if (changeableplacemax_shield == 50) { //white
shieldCol = ImColor(247, 247, 247); shieldCol = ImColor(247, 247, 247);
shieldColDark = ImColor(164, 164, 164); shieldColDark = ImColor(164, 164, 164);
} }
else if (serial - stringmax_shield == 75) { //blue else if (changeableplacemax_shield == 75) { //blue
shieldCol = ImColor(39, 178, 255); shieldCol = ImColor(39, 178, 255);
shieldColDark = ImColor(27, 120, 210); shieldColDark = ImColor(27, 120, 210);
} }
else if (serial - stringmax_shield == 100) { //purple else if (changeableplacemax_shield == 100) { //purple
shieldCol = ImColor(206, 59, 255); shieldCol = ImColor(206, 59, 255);
shieldColDark = ImColor(136, 36, 220); shieldColDark = ImColor(136, 36, 220);
} }
else if (serial - stringmax_shield == 100) { //gold else if (changeableplacemax_shield == 100) { //gold
shieldCol = ImColor(255, 255, 79); shieldCol = ImColor(255, 255, 79);
shieldColDark = ImColor(218, 175, 49); shieldColDark = ImColor(218, 175, 49);
} }
else if (serial - stringmax_shield == 125) { //red else if (changeableplacemax_shield == 125) { //red
shieldCol = ImColor(219, 2, 2); shieldCol = ImColor(219, 2, 2);
shieldColDark = ImColor(219, 2, 2); shieldColDark = ImColor(219, 2, 2);
} }
@ -545,7 +541,7 @@ void Overlay::Drawserial - stringHealth(float serial - stringx, float serial - s
shieldCol = ImColor(247, 247, 247); shieldCol = ImColor(247, 247, 247);
shieldColDark = ImColor(164, 164, 164); shieldColDark = ImColor(164, 164, 164);
} }
int shield_tmp = serial - stringshield; int shield_tmp = changeableplaceshield;
int shield1 = 0; int shield1 = 0;
int shield2 = 0; int shield2 = 0;
int shield3 = 0; int shield3 = 0;
@ -582,185 +578,185 @@ void Overlay::Drawserial - stringHealth(float serial - stringx, float serial - s
} }
ImVec2 s1(h2.x - 1, h2.y - 2); ImVec2 s1(h2.x - 1, h2.y - 2);
ImVec2 s2(s1.x - 3, s1.y - 5); ImVec2 s2(s1.x - 3, s1.y - 5);
ImVec2 s3(s2.x + shield1 / serial - stringshield_step * serial - stringshield_25, s2.y); ImVec2 s3(s2.x + shield1 / changeableplaceshield_step * changeableplaceshield_25, s2.y);
ImVec2 s4(s1.x + shield1 / serial - stringshield_step * serial - stringshield_25, s1.y); ImVec2 s4(s1.x + shield1 / changeableplaceshield_step * changeableplaceshield_25, s1.y);
ImVec2 s3m(s2.x + serial - stringshield_25, s2.y); ImVec2 s3m(s2.x + changeableplaceshield_25, s2.y);
ImVec2 s4m(s1.x + serial - stringshield_25, s1.y); ImVec2 s4m(s1.x + changeableplaceshield_25, s1.y);
ImVec2 ss1(s4m.x + 2, s1.y); ImVec2 ss1(s4m.x + 2, s1.y);
ImVec2 ss2(s3m.x + 2, s2.y); ImVec2 ss2(s3m.x + 2, s2.y);
ImVec2 ss3(ss2.x + shield2 / serial - stringshield_step * serial - stringshield_25, s2.y); ImVec2 ss3(ss2.x + shield2 / changeableplaceshield_step * changeableplaceshield_25, s2.y);
ImVec2 ss4(ss1.x + shield2 / serial - stringshield_step * serial - stringshield_25, s1.y); ImVec2 ss4(ss1.x + shield2 / changeableplaceshield_step * changeableplaceshield_25, s1.y);
ImVec2 ss3m(ss2.x + serial - stringshield_25, s2.y); ImVec2 ss3m(ss2.x + changeableplaceshield_25, s2.y);
ImVec2 ss4m(ss1.x + serial - stringshield_25, s1.y); ImVec2 ss4m(ss1.x + changeableplaceshield_25, s1.y);
ImVec2 sss1(ss4m.x + 2, s1.y); ImVec2 sss1(ss4m.x + 2, s1.y);
ImVec2 sss2(ss3m.x + 2, s2.y); ImVec2 sss2(ss3m.x + 2, s2.y);
ImVec2 sss3(sss2.x + shield3 / serial - stringshield_step * serial - stringshield_25, s2.y); ImVec2 sss3(sss2.x + shield3 / changeableplaceshield_step * changeableplaceshield_25, s2.y);
ImVec2 sss4(sss1.x + shield3 / serial - stringshield_step * serial - stringshield_25, s1.y); ImVec2 sss4(sss1.x + shield3 / changeableplaceshield_step * changeableplaceshield_25, s1.y);
ImVec2 sss3m(sss2.x + serial - stringshield_25, s2.y); ImVec2 sss3m(sss2.x + changeableplaceshield_25, s2.y);
ImVec2 sss4m(sss1.x + serial - stringshield_25, s1.y); ImVec2 sss4m(sss1.x + changeableplaceshield_25, s1.y);
ImVec2 ssss1(sss4m.x + 2, s1.y); ImVec2 ssss1(sss4m.x + 2, s1.y);
ImVec2 ssss2(sss3m.x + 2, s2.y); ImVec2 ssss2(sss3m.x + 2, s2.y);
ImVec2 ssss3(ssss2.x + shield4 / serial - stringshield_step * serial - stringshield_25, s2.y); ImVec2 ssss3(ssss2.x + shield4 / changeableplaceshield_step * changeableplaceshield_25, s2.y);
ImVec2 ssss4(ssss1.x + shield4 / serial - stringshield_step * serial - stringshield_25, s1.y); ImVec2 ssss4(ssss1.x + shield4 / changeableplaceshield_step * changeableplaceshield_25, s1.y);
ImVec2 ssss3m(ssss2.x + serial - stringshield_25, s2.y); ImVec2 ssss3m(ssss2.x + changeableplaceshield_25, s2.y);
ImVec2 ssss4m(ssss1.x + serial - stringshield_25, s1.y); ImVec2 ssss4m(ssss1.x + changeableplaceshield_25, s1.y);
ImVec2 sssss1(ssss4m.x + 2, s1.y); ImVec2 sssss1(ssss4m.x + 2, s1.y);
ImVec2 sssss2(ssss3m.x + 2, s2.y); ImVec2 sssss2(ssss3m.x + 2, s2.y);
ImVec2 sssss3(sssss2.x + shield5 / serial - stringshield_step * serial - stringshield_25, s2.y); ImVec2 sssss3(sssss2.x + shield5 / changeableplaceshield_step * changeableplaceshield_25, s2.y);
ImVec2 sssss4(sssss1.x + shield5 / serial - stringshield_step * serial - stringshield_25, s1.y); ImVec2 sssss4(sssss1.x + shield5 / changeableplaceshield_step * changeableplaceshield_25, s1.y);
ImVec2 sssss3m(sssss2.x + serial - stringshield_25, s2.y); ImVec2 sssss3m(sssss2.x + changeableplaceshield_25, s2.y);
ImVec2 sssss4m(sssss1.x + serial - stringshield_25, s1.y); ImVec2 sssss4m(sssss1.x + changeableplaceshield_25, s1.y);
if (serial - stringmax_shield == 50) { if (changeableplacemax_shield == 50) {
if (serial - stringshield <= 25) { if (changeableplaceshield <= 25) {
if (serial - stringshield < 25) { if (changeableplaceshield < 25) {
DrawQuadFilled(s1, s2, s3m, s4m, shieldCracked); DrawQuadFilled(s1, s2, s3m, s4m, shieldCracked);
DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked); DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked);
} }
if (serial - stringshield != 0) if (changeableplaceshield != 0)
DrawQuadFilled(s1, s2, s3, s4, shieldCol); DrawQuadFilled(s1, s2, s3, s4, shieldCol);
} }
else if (serial - stringshield <= 50) { else if (changeableplaceshield <= 50) {
DrawQuadFilled(s1, s2, s3, s4, shieldCol); DrawQuadFilled(s1, s2, s3, s4, shieldCol);
if (serial - stringshield != 50) { if (changeableplaceshield != 50) {
DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked); DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked);
} }
if (serial - stringshield != 0) if (changeableplaceshield != 0)
DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol); DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
} }
} }
else if (serial - stringmax_shield == 75) { else if (changeableplacemax_shield == 75) {
if (serial - stringshield <= 25) { if (changeableplaceshield <= 25) {
if (serial - stringshield < 25) { if (changeableplaceshield < 25) {
DrawQuadFilled(s1, s2, s3m, s4m, shieldCracked); DrawQuadFilled(s1, s2, s3m, s4m, shieldCracked);
DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked); DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked);
DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked); DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
} }
if (serial - stringshield != 0) if (changeableplaceshield != 0)
DrawQuadFilled(s1, s2, s3, s4, shieldCol); DrawQuadFilled(s1, s2, s3, s4, shieldCol);
} }
else if (serial - stringshield <= 50) { else if (changeableplaceshield <= 50) {
DrawQuadFilled(s1, s2, s3, s4, shieldCol); DrawQuadFilled(s1, s2, s3, s4, shieldCol);
if (serial - stringshield < 50) { if (changeableplaceshield < 50) {
DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked); DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked);
DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked); DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
} }
if (serial - stringshield != 0) if (changeableplaceshield != 0)
DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol); DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
} }
else if (serial - stringshield <= 75) { else if (changeableplaceshield <= 75) {
DrawQuadFilled(s1, s2, s3, s4, shieldCol); DrawQuadFilled(s1, s2, s3, s4, shieldCol);
DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol); DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
if (serial - stringshield < 75) { if (changeableplaceshield < 75) {
DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked); DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
} }
if (serial - stringshield != 0) if (changeableplaceshield != 0)
DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol); DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol);
} }
} }
else if (serial - stringmax_shield == 100) { else if (changeableplacemax_shield == 100) {
if (serial - stringshield <= 25) { if (changeableplaceshield <= 25) {
if (serial - stringshield < 25) { if (changeableplaceshield < 25) {
DrawQuadFilled(s1, s2, s3m, s4m, shieldCracked); DrawQuadFilled(s1, s2, s3m, s4m, shieldCracked);
DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked); DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked);
DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked); DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked); DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked);
} }
if (serial - stringshield != 0) if (changeableplaceshield != 0)
DrawQuadFilled(s1, s2, s3, s4, shieldCol); DrawQuadFilled(s1, s2, s3, s4, shieldCol);
} }
else if (serial - stringshield <= 50) { else if (changeableplaceshield <= 50) {
DrawQuadFilled(s1, s2, s3, s4, shieldCol); DrawQuadFilled(s1, s2, s3, s4, shieldCol);
if (serial - stringshield < 50) { if (changeableplaceshield < 50) {
DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked); DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked);
DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked); DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked); DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked);
} }
if (serial - stringshield != 0) if (changeableplaceshield != 0)
DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol); DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
} }
else if (serial - stringshield <= 75) { else if (changeableplaceshield <= 75) {
DrawQuadFilled(s1, s2, s3, s4, shieldCol); DrawQuadFilled(s1, s2, s3, s4, shieldCol);
DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol); DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
if (serial - stringshield < 75) { if (changeableplaceshield < 75) {
DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked); DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked); DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked);
} }
if (serial - stringshield != 0) if (changeableplaceshield != 0)
DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol); DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol);
} }
else if (serial - stringshield <= 100) { else if (changeableplaceshield <= 100) {
DrawQuadFilled(s1, s2, s3, s4, shieldCol); DrawQuadFilled(s1, s2, s3, s4, shieldCol);
DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol); DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol); DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol);
if (serial - stringshield < 100) { if (changeableplaceshield < 100) {
DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked); DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked);
} }
if (serial - stringshield != 0) if (changeableplaceshield != 0)
DrawQuadFilled(ssss1, ssss2, ssss3, ssss4, shieldCol); DrawQuadFilled(ssss1, ssss2, ssss3, ssss4, shieldCol);
} }
} }
else if (serial - stringmax_shield == 125) { else if (changeableplacemax_shield == 125) {
if (serial - stringshield <= 25) { if (changeableplaceshield <= 25) {
if (serial - stringshield < 25) { if (changeableplaceshield < 25) {
DrawQuadFilled(s1, s2, s3m, s4m, shieldCracked); DrawQuadFilled(s1, s2, s3m, s4m, shieldCracked);
DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked); DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked);
DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked); DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked); DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked);
DrawQuadFilled(sssss1, sssss2, sssss3m, sssss4m, shieldCracked); DrawQuadFilled(sssss1, sssss2, sssss3m, sssss4m, shieldCracked);
} }
if (serial - stringshield != 0) if (changeableplaceshield != 0)
DrawQuadFilled(s1, s2, s3, s4, shieldCol); DrawQuadFilled(s1, s2, s3, s4, shieldCol);
} }
else if (serial - stringshield <= 50) { else if (changeableplaceshield <= 50) {
DrawQuadFilled(s1, s2, s3, s4, shieldCol); DrawQuadFilled(s1, s2, s3, s4, shieldCol);
if (serial - stringshield < 50) { if (changeableplaceshield < 50) {
DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked); DrawQuadFilled(ss1, ss2, ss3m, ss4m, shieldCracked);
DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked); DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked); DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked);
DrawQuadFilled(sssss1, sssss2, sssss3m, sssss4m, shieldCracked); DrawQuadFilled(sssss1, sssss2, sssss3m, sssss4m, shieldCracked);
} }
if (serial - stringshield != 0) if (changeableplaceshield != 0)
DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol); DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
} }
else if (serial - stringshield <= 75) { else if (changeableplaceshield <= 75) {
DrawQuadFilled(s1, s2, s3, s4, shieldCol); DrawQuadFilled(s1, s2, s3, s4, shieldCol);
DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol); DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
if (serial - stringshield < 75) { if (changeableplaceshield < 75) {
DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked); DrawQuadFilled(sss1, sss2, sss3m, sss4m, shieldCracked);
DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked); DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked);
DrawQuadFilled(sssss1, sssss2, sssss3m, sssss4m, shieldCracked); DrawQuadFilled(sssss1, sssss2, sssss3m, sssss4m, shieldCracked);
} }
if (serial - stringshield != 0) if (changeableplaceshield != 0)
DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol); DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol);
} }
else if (serial - stringshield <= 100) { else if (changeableplaceshield <= 100) {
DrawQuadFilled(s1, s2, s3, s4, shieldCol); DrawQuadFilled(s1, s2, s3, s4, shieldCol);
DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol); DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol); DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol);
if (serial - stringshield < 100) { if (changeableplaceshield < 100) {
DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked); DrawQuadFilled(ssss1, ssss2, ssss3m, ssss4m, shieldCracked);
DrawQuadFilled(sssss1, sssss2, sssss3m, sssss4m, shieldCracked); DrawQuadFilled(sssss1, sssss2, sssss3m, sssss4m, shieldCracked);
} }
if (serial - stringshield != 0) if (changeableplaceshield != 0)
DrawQuadFilled(ssss1, ssss2, ssss3, ssss4, shieldCol); DrawQuadFilled(ssss1, ssss2, ssss3, ssss4, shieldCol);
} }
else if (serial - stringshield <= 125) { else if (changeableplaceshield <= 125) {
DrawQuadFilled(s1, s2, s3, s4, shieldCol); DrawQuadFilled(s1, s2, s3, s4, shieldCol);
DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol); DrawQuadFilled(ss1, ss2, ss3, ss4, shieldCol);
DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol); DrawQuadFilled(sss1, sss2, sss3, sss4, shieldCol);
DrawQuadFilled(ssss1, ssss2, ssss3, ssss4, shieldCol); DrawQuadFilled(ssss1, ssss2, ssss3, ssss4, shieldCol);
if (serial - stringshield < 125) { if (changeableplaceshield < 125) {
DrawQuadFilled(sssss1, sssss2, sssss3m, sssss4m, shieldCracked); DrawQuadFilled(sssss1, sssss2, sssss3m, sssss4m, shieldCracked);
} }
if (serial - stringshield != 0) if (changeableplaceshield != 0)
DrawQuadFilled(sssss1, sssss2, sssss3, sssss4, shieldCol); DrawQuadFilled(sssss1, sssss2, sssss3, sssss4, shieldCol);
} }
} }

@ -24,39 +24,39 @@
#define WHITE ImColor(255, 255, 255) #define WHITE ImColor(255, 255, 255)
#define PURPLE ImColor(255, 0 , 255) #define PURPLE ImColor(255, 0 , 255)
typedef struct serial - stringvisuals typedef struct changeableplacevisuals
{ {
bool serial - stringbox = true; bool changeableplacebox = true;
bool serial - stringline = true; bool changeableplaceline = true;
bool serial - stringdistance = true; bool changeableplacedistance = true;
bool serial - stringhealthbar = true; bool changeableplacehealthbar = true;
bool serial - stringshieldbar = true; bool changeableplaceshieldbar = true;
bool serial - stringname = true; bool changeableplacename = true;
bool serial - stringrenderrank = true; bool changeableplacerenderxp = true;
}serial - stringvisuals; }changeableplacevisuals;
class Overlay class Overlay
{ {
public: public:
void Startserial - string(); void Startchangeableplace();
DWORD Createserial - stringOverlay(); DWORD CreatechangeableplaceOverlay();
void Clearserial - string(); void Clearchangeableplace();
int getserial - stringWidth(); int getchangeableplaceWidth();
int getserial - stringHeight(); int getchangeableplaceHeight();
void Renderserial - stringInfo(); void RenderchangeableplaceInfo();
void Renderserial - stringMenu(); void RenderchangeableplaceMenu();
void Renderserial - stringEsp(); void RenderchangeableplaceEsp();
void Clickserial - stringThrough(bool v); void ClickchangeableplaceThrough(bool v);
void Drawserial - stringLine(ImVec2 a, ImVec2 b, ImColor color, float width); void DrawchangeableplaceLine(ImVec2 a, ImVec2 b, ImColor color, float width);
void Drawserial - stringBox(ImColor color, float x, float y, float w, float h); void DrawchangeableplaceBox(ImColor color, float x, float y, float w, float h);
void serial - stringText(ImVec2 pos, ImColor color, const char* text_begin, const char* text_end, float wrap_width, const ImVec4 * cpu_fine_clip_rect); void changeableplaceText(ImVec2 pos, ImColor color, const char* text_begin, const char* text_end, float wrap_width, const ImVec4 * cpu_fine_clip_rect);
void Rectserial - stringFilled(float x0, float y0, float x1, float y1, ImColor color, float rounding, int rounding_corners_flags); void RectchangeableplaceFilled(float x0, float y0, float x1, float y1, ImColor color, float rounding, int rounding_corners_flags);
void Progressserial - stringBar(float x, float y, float w, float h, int value, int v_max, ImColor barColor); void ProgresschangeableplaceBar(float x, float y, float w, float h, int value, int v_max, ImColor barColor);
void Stringserial - string(ImVec2 pos, ImColor color, const char* text); void Stringchangeableplace(ImVec2 pos, ImColor color, const char* text);
//Seer //Seer
void Drawserial - stringHealth(float serial - stringx, float serial - stringy, int serial - stringshield, int serial - stringmax_shield, int serial - stringarmorType, int serial - stringhealth); void DrawchangeableplaceHealth(float changeableplacex, float changeableplacey, int changeableplaceshield, int changeableplacemax_shield, int changeableplacearmorType, int changeableplacehealth);
private: private:
bool serial - stringrunning; bool changeableplacerunning;
HWND overlayserial - stringHWND; HWND overlaychangeableplaceHWND;
}; };

@ -5,12 +5,12 @@
#define WDA_EXCLUDEFROMCAPTURE 0x00000011 #define WDA_EXCLUDEFROMCAPTURE 0x00000011
const MARGINS margins = { -1 ,-1, -1, -1 }; const MARGINS margins = { -1 ,-1, -1, -1 };
const wchar_t g_szClassName[] = L"serial-stringoverlay"; const wchar_t g_szClassName[] = L"changeableplaceoverlay";
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{ {
WNDCLASSEX wc; WNDCLASSEX wc;
HWND serial - stringhwnd; HWND changeableplacehwnd;
MSG Msg; MSG Msg;
wc.cbSize = sizeof(WNDCLASSEX); wc.cbSize = sizeof(WNDCLASSEX);
@ -28,7 +28,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
RegisterClassEx(&wc); RegisterClassEx(&wc);
serial - stringhwnd = CreateWindowEx( changeableplacehwnd = CreateWindowEx(
WS_EX_LAYERED | WS_EX_TRANSPARENT, WS_EX_LAYERED | WS_EX_TRANSPARENT,
g_szClassName, g_szClassName,
g_szClassName, g_szClassName,
@ -36,9 +36,9 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
0, 0, 1920, 1080, 0, 0, 1920, 1080,
NULL, NULL, hInstance, NULL); NULL, NULL, hInstance, NULL);
SetLayeredWindowAttributes(serial - stringhwnd, RGB(0, 0, 0), 175, LWA_ALPHA); SetLayeredWindowAttributes(changeableplacehwnd, RGB(0, 0, 0), 175, LWA_ALPHA);
SetWindowDisplayAffinity(serial - stringhwnd, WDA_EXCLUDEFROMCAPTURE); SetWindowDisplayAffinity(changeableplacehwnd, WDA_EXCLUDEFROMCAPTURE);
DwmExtendFrameIntoClientArea(serial - stringhwnd, &margins); DwmExtendFrameIntoClientArea(changeableplacehwnd, &margins);
while (GetMessage(&Msg, NULL, 0, 0) > 0) while (GetMessage(&Msg, NULL, 0, 0) > 0)
{ {

Loading…
Cancel
Save