Solved ESP Problem with WorldToScreen function Fleep

Hexui Undetected CSGO Cheats Sinkicheat PUBG Cheat
Status
Not open for further replies.

MrKerras

Newbie
Full Member
Feb 7, 2014
15
162
0
Hi, I have a problem with the function WorldToScreen:
C++:
typedef struct
{
	float flMatrix [4][4];
}WorldToScreenMatrix_t;

bool WorldToScreen(float * from, float * to)
{
	float w = 0.0f;

	to[0] = MyPlayer.WorldToScreenMatrix.flMatrix[0][0] * from[0] + MyPlayer.WorldToScreenMatrix.flMatrix[0][1] * from[1] + MyPlayer.WorldToScreenMatrix.flMatrix[0][2] * from[2] + MyPlayer.WorldToScreenMatrix.flMatrix[0][3];
	to[1] = MyPlayer.WorldToScreenMatrix.flMatrix[1][0] * from[0] + MyPlayer.WorldToScreenMatrix.flMatrix[1][1] * from[1] + MyPlayer.WorldToScreenMatrix.flMatrix[1][2] * from[2] + MyPlayer.WorldToScreenMatrix.flMatrix[1][3];
	w = MyPlayer.WorldToScreenMatrix.flMatrix[3][0] * from[0] + MyPlayer.WorldToScreenMatrix.flMatrix[3][1] * from[1] + MyPlayer.WorldToScreenMatrix.flMatrix[3][2] * from[2] + MyPlayer.WorldToScreenMatrix.flMatrix[3][3];
Because I do not know what comprises a multidimensional array of float.
Could someone write me what each float?
C++:
flMatrix[0][0] = ?
flMatrix[0][1] = ?
flMatrix[0][2] = ?
flMatrix[0][3] = ?

flMatrix[1][0] = ?
flMatrix[1][1] = ?
flMatrix[1][2] = ?
flMatrix[1][3] = ?

flMatrix[3][0] = ?
flMatrix[3][1] = ?
flMatrix[3][2] = ?
flMatrix[3][3] = ?
I have the data:
Player(X,Y,Z)
Enemy(X,Y,Z)
AngleRotation(X,Y,Z): (X= min -89.00, max 89.00), (Y= min -179.96, max 179.96), (Z= 0.0)
Screen(W,H)

Maybe you know how to use OllyDbg to find the functions where the data is located,
because I would be able to do not only ESP Hack for CS: S and CS: GO,
but also to other games, and do not always fit the data will be.

If you've been somewhere about where it is already Poise, please link, unfortunately I have not found.

Thank you and I hope for your help.
 

Rake

Cesspool Admin
Administrator
Jan 21, 2014
12,105
78,998
2,374
I would now add features aimbot, and as you wrote already done, but as the opponent is standing sideways or squats it's not going to work.

I need to know all three cords of X, Y, Z.
You need to use the bone matrix if you want this to work.

Use this world to screen:
https://guidedhacking.com/threads/world2screen-direct3d-and-opengl-worldtoscreen-functions.8044/

Bones:
https://guidedhacking.com/threads/csgo-simple-esp.12760/
https://guidedhacking.com/threads/csgo-bone-ids.12049/
 

rN'

Jr.Hacker
Meme Tier VIP
Jan 19, 2014
340
5,268
41
Could someone write me what each float?
No because they are going to change all the Time.

C++:
WorldToScreenMatrix_t pMatrix;
pMatrix = Memory::Read< WorltToScreenMatrix_t >( Memory::g_pModule->GetModule( "client" ) + OFFSET_VIEWMATRIX );
 
Last edited:

MrKerras

Newbie
Full Member
Feb 7, 2014
15
162
0
I know I do not mean values​​, only one, position, rotation, etc. ?

I'll tell in simple.
Data obtained from "WorldToScreenMatrix" are not correct, the point is that it does not fit, so I want to know is what type of data
or flMatrix [0] [0] is the Enemy Position X or Y or Z, or X or Y PlayerPos or Z, or X or Y Angle
What contain the data, what they mean.
 
Last edited:

MrKerras

Newbie
Full Member
Feb 7, 2014
15
162
0
Or give me the address for WorldToScreenMatrix in Counter-Strike Global Offensive, then see for yourself what that answer, as to what fits.
 

MrKerras

Newbie
Full Member
Feb 7, 2014
15
162
0
client.dll+0xA37B84 ?

Because in "engine.dll+0xA37B84" are all zeros.

I checked on client.dll and running but it is not yet ok
when I'm dating at the bottom or in the middle of it works, but when I look at the sky that surround your opponent falls down.
 
Last edited:

MrKerras

Newbie
Full Member
Feb 7, 2014
15
162
0
Sorry to refresh this topic, but needs help.
I do not work for me properly function:
C++:
bool WorldToScreen(float * from, float * to, TWorldToScreenMatrix WorldToScreenMatrix, RECT m_Rect)
{
	float w = 0.0f;

	to[0] = WorldToScreenMatrix.flMatrix[0][0] * from[0] + WorldToScreenMatrix.flMatrix[0][1] * from[1] + WorldToScreenMatrix.flMatrix[0][2] * from[2] + WorldToScreenMatrix.flMatrix[0][3];
	to[1] = WorldToScreenMatrix.flMatrix[1][0] * from[0] + WorldToScreenMatrix.flMatrix[1][1] * from[1] + WorldToScreenMatrix.flMatrix[1][2] * from[2] + WorldToScreenMatrix.flMatrix[1][3];
	w = WorldToScreenMatrix.flMatrix[3][0] * from[0] + WorldToScreenMatrix.flMatrix[3][1] * from[1] + WorldToScreenMatrix.flMatrix[3][2] * from[2] + WorldToScreenMatrix.flMatrix[3][3];


	if(w < 0.01f)
		return false;

	float invw = 1.0f / w;
	to[0] *= invw;
	to[1] *= invw;

	int width = (int)(m_Rect.right - m_Rect.left);
	int height = (int)(m_Rect.bottom - m_Rect.top);

	float x = width/2;
	float y = height/2;

	x += 0.5 * to[0] * width + 0.5;
	y -= 0.5 * to[1] * height + 0.5;

	to[0] = x;
	to[1] = y;

	return true;
}
In the pictures below is presented the problem of underreporting of the "Y" when you look up.

csgo_hack_image_1.jpg
csgo_hack_image_2.jpg

I'm sorry too for my english, but I'm counting on your help.
 

Nether

The Angel Of Verdun
Meme Tier VIP
Dank Tier Donator
Dec 11, 2013
293
3,738
16
Sorry to refresh this topic, but needs help.
I do not work for me properly function:
C++:
bool WorldToScreen(float * from, float * to, TWorldToScreenMatrix WorldToScreenMatrix, RECT m_Rect)
{
	float w = 0.0f;

	to[0] = WorldToScreenMatrix.flMatrix[0][0] * from[0] + WorldToScreenMatrix.flMatrix[0][1] * from[1] + WorldToScreenMatrix.flMatrix[0][2] * from[2] + WorldToScreenMatrix.flMatrix[0][3];
	to[1] = WorldToScreenMatrix.flMatrix[1][0] * from[0] + WorldToScreenMatrix.flMatrix[1][1] * from[1] + WorldToScreenMatrix.flMatrix[1][2] * from[2] + WorldToScreenMatrix.flMatrix[1][3];
	w = WorldToScreenMatrix.flMatrix[3][0] * from[0] + WorldToScreenMatrix.flMatrix[3][1] * from[1] + WorldToScreenMatrix.flMatrix[3][2] * from[2] + WorldToScreenMatrix.flMatrix[3][3];


	if(w < 0.01f)
		return false;

	float invw = 1.0f / w;
	to[0] *= invw;
	to[1] *= invw;

	int width = (int)(m_Rect.right - m_Rect.left);
	int height = (int)(m_Rect.bottom - m_Rect.top);

	float x = width/2;
	float y = height/2;

	x += 0.5 * to[0] * width + 0.5;
	y -= 0.5 * to[1] * height + 0.5;

	to[0] = x;
	to[1] = y;

	return true;
}
In the pictures below is presented the problem of underreporting of the "Y" when you look up.

View attachment 2624
View attachment 2625

I'm sorry too for my english, but I'm counting on your help.
that is how the equation works, it would take a lot more maths and coding to have it as perfect as you want as you are still modifying the view matrix, same as when you look down a scope.

FYI, its also just a 3x4 matrix not 4x4
 

MrKerras

Newbie
Full Member
Feb 7, 2014
15
162
0
Thank you, need to check yet, can I find a solution.
Check me if the address is correct and whether the data fit ViewMatrix.

Here is a screen of CheatEngine for ViewMatrix address.
PlayerMatrixBaseOff.jpg
 

MrKerras

Newbie
Full Member
Feb 7, 2014
15
162
0
He was back and update Things have changed almost everything, including ViewMatrix.
I found 500 static addresses when looking like Fleep.
I do not know which one is the right address, you can write to me like you are searching for him?
 

MrKerras

Newbie
Full Member
Feb 7, 2014
15
162
0
I know, I just ViewMatrix is before heading player.
Thank you for your help.
Still have not found a solution to the problem of underreporting position Y.
If anyone found a solution to let it write here, I find that if I write here too the solution of the problem
 

rN'

Jr.Hacker
Meme Tier VIP
Jan 19, 2014
340
5,268
41
  1. add the address manual in CheatEngine and look at the Value.
  2. Go to Counter-Strike: Global Offensive back and type in console setang 90 90
  3. Go back to CheatEngine and look for the Value
  4. Go back to Counter-Strike: Global Offensive and type in console setang 40 40
  5. ...

Now you know the different values from different angle positions.
  1. Go to Counter-Strike: Global Offensive and type in console setang 90 90
  2. Go to CheatEngine and search for XXXXXX as float rounded extreme
  3. Go back to Counter-Strike: Global Offensive and type in console setang 40 40
  4. Go back to CheatEngine and search for XXXXXX next
  5. Repeat this until you have less ~6 static addresses
  6. Now look for the right one in client.dll
  7. profit
 

MrKerras

Newbie
Full Member
Feb 7, 2014
15
162
0
Thank you, you are my mentor :D
I remain 23 addresses static and you can not lose more that were 6

To the right just yet with this function to cope was to have great :/

This is my first cheat ESP, so I'm still green in these matters :)

Maybe you know how easy to find as there are players in the game?
 
Last edited:

rN'

Jr.Hacker
Meme Tier VIP
Jan 19, 2014
340
5,268
41
Thank you, you are my mentor :D
I remain 23 addresses static and you can not lose more that were 6

To the right just yet with this function to cope was to have great :/

This is my first cheat ESP, so I'm still green in these matters :)

Maybe you know how easy to find as there are players in the game?
Very easy.
C++:
for( int i = 0; i < CGlobalVars()->maxClients; i++ )
{
     DWORD dwEntity;
     ReadProcessMemory( hProcess, reinterpret_cast< LPCVOID >( ( dwClient + OFFSET_ENTITYLIST + i * 0x10 ) - 0x10 ), &dwEntity, 4, 0 );
}
 

MrKerras

Newbie
Full Member
Feb 7, 2014
15
162
0
Sorry, I wrote wrong, I meant to check if the player exists because bowls showed me the border and in the middle there was no one: D
Neither Health or if he was alive did not help, because as a player came out of the game these values ​​did not change.
Now, instead, I found something like a timer with offset 0x38 of the player.
When a player comes out this value stops changing.

It is a pity that this function calculates 2D from 3D positions does not work well.
Because I'd like to write another such light Aimbot and using the ESP.
And just to make the program read from the process that VAC is not stuck.
Injest does not want to.
 
Last edited:

MrKerras

Newbie
Full Member
Feb 7, 2014
15
162
0
I found the acting functions WorldToScreen
C++:
bool WorldToScreen(float * from, float * to, TWorldToScreenMatrix WorldToScreenMatrix, int ScreenWidth, int ScreenHeight)
{
    float w = WorldToScreenMatrix.flMatrix[3][0] * from[0] + WorldToScreenMatrix.flMatrix[3][1] * from[1] + WorldToScreenMatrix.flMatrix[3][2] * from[2] + WorldToScreenMatrix.flMatrix[3][3];
    to[2] = 0;
    if (w > 0.01)
    {
        float inverseWidth = 1 / w;
        to[0] = (ScreenWidth / 2) + (0.5 * ((WorldToScreenMatrix.flMatrix[0][0] * from[0] + WorldToScreenMatrix.flMatrix[0][1] * from[1] + WorldToScreenMatrix.flMatrix[0][2] * from[2] + WorldToScreenMatrix.flMatrix[0][3]) * inverseWidth) * ScreenWidth + 0.5);
        to[1]= (ScreenHeight / 2) - (0.5 * ((WorldToScreenMatrix.flMatrix[1][0] * from[0] + WorldToScreenMatrix.flMatrix[1][1] * from[1] + WorldToScreenMatrix.flMatrix[1][2] * from[2] + WorldToScreenMatrix.flMatrix[1][3]) * inverseWidth) * ScreenHeight + 0.5);
        return true;
    }
    return false;
}
Anyone know where is the position of the head of opponents?
 
Last edited:

TastyHorror

Coder
Dank Tier Donator
Nobleman
Oct 11, 2012
179
2,268
8
Use the bone matrix to get the "head" of a player...or just go a kind of guess once you get the x,y of enemy coords? dont..be..lazy.
 
Status
Not open for further replies.
Attention! Before you post:

Read the How to Ask Questions Guide
99% of questions are answered in the Beginner's Guide, do it before asking a question.

No Hack Requests. Post in the correct section.  Search the forum first. Read the rules.

How to make a good post:

  • Fill out the form correctly
  • Tell us the game name & coding language
  • Post everything we need to know to help you
  • Ask specific questions, be descriptive
  • Post errors, line numbers & screenshots
  • Post code snippets using code tags
  • If it's a large project, zip it up and attach it

If you do not comply, your post may be deleted.  We want to help, please make a good post and we will do our best to help you.

Similar threads

Community Mods