Compare angles triggerbot

Posts 31–37 of 37 · Page 3 of 3
Quote Originally Posted by samlarenskoog View Post
I tried with adding a clamp in normalize function. But nothing changed.
I said it multiple times already to not do that, why do it again?

Your normalize function is still doing nothing else than normalizing the local vector. As i said, change it to void Normalize(Vector& vec).
Quote Originally Posted by WasserEsser View Post
I said it multiple times already to not do that, why do it again?

Your normalize function is still doing nothing else than normalizing the local vector. As i said, change it to void Normalize(Vector& vec).
Yeah I know. I changed it and tried. After that I answered: Got it working but this only made it worse. Now it does not shoot at enemies, except delayed shots, shooting no where and unpredictable :/
I have no idea where the problem lies. As I said before aswell, I tried adding a clamp to the normalize function. And it did not change anything.
Quote Originally Posted by samlarenskoog View Post
Yeah I know. I changed it and tried. After that I answered: Got it working but this only made it worse. Now it does not shoot at enemies, except delayed shots, shooting no where and unpredictable :/
I have no idea where the problem lies. As I said before aswell, I tried adding a clamp to the normalize function. And it did not change anything.
Of course it didn't change anything, and it's wrong. I'm not saying that you shouldn't add clamping into a normalize functions 3 times just so you do it again.

If the code above is your current code, do what i said. Change void Normalize(Vector vec) to void Normalize(Vector& vec), because the code you posted above is wrong. If it's not your current code, post your new code becaus the code above is not the code you have.
Quote Originally Posted by WasserEsser View Post
Of course it didn't change anything, and it's wrong. I'm not saying that you shouldn't add clamping into a normalize functions 3 times just so you do it again.

If the code above is your current code, do what i said. Change void Normalize(Vector vec) to void Normalize(Vector& vec), because the code you posted above is wrong. If it's not your current code, post your new code becaus the code above is not the code you have.
Thanks for trying to help me This is my current code (I can make a video of the result if it helps you to see what the problem is):
Code:
#include <iostream>
#include <Windows.h>
#include <TlHelp32.h>
#include <random>
#include <ctime>
#include <string>

using namespace std;

void click();


const DWORD DwEntityList = 0x4A4CCC4;
const DWORD DwEnginePointer = 0x5B92A4;
const DWORD DwLocalPlayer = 0xA31504;

const DWORD DwCrosshairId = 0x0000AA44;
const DWORD DwViewAngle = 0x00004D0C;
const DWORD DwVecViewOrigin = 0x104;
const DWORD DwVecOrigin = 0x134;
const DWORD DwVecPunch = 0x00003018;
const DWORD DwTeamNumber = 0xF0;
const DWORD DwShotsFired = 0xA2B0;
const DWORD DwFlags = 0x100;
const DWORD DwBoneMatrix = 0x00002698;
const DWORD DwEntitySize = 0x10;
const DWORD DwHealth = 0xFC;
const DWORD DwLifeState = 0x25B;
const DWORD DwVecVelocity = 0x110;
const DWORD vecViewOffset = 0x104;
const DWORD DwIndex = 0x00000064;
const DWORD DwSpottedByMask = 0x0000097C;
const DWORD DwSpotted = 0x00000939;
const DWORD DwAttack = 0x02E8CCD0;

int targetBone = 6;
void click();



typedef struct Vector_
{
	float x;
	float y;
	float z;
}Vector;

struct
{
	template <class type>
	type Read(HANDLE hProc, DWORD address)
	{
		type val;
		ReadProcessMemory(hProc, (LPCVOID)(address), &val, sizeof(val), NULL);
		return val;
	}

	template <class type>
	void Write(HANDLE hProc, DWORD address, type val)
	{
		WriteProcessMemory(hProc, (LPVOID)(address), &val, sizeof(val), NULL);
	}
}Mem;

DWORD getDll(DWORD pId, char* NAME)
{
	DWORD Dll = 0x0;
	MODULEENTRY32 moduleEntry;
	moduleEntry.dwSize = sizeof(MODULEENTRY32);
	HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, pId);
	do
	{
		if (!strcmp(moduleEntry.szModule, NAME))
		{
			Dll = (DWORD)moduleEntry.modBaseAddr;
			break;
		}
	} while (Module32Next(hSnap, &moduleEntry));
	CloseHandle(hSnap);
	return Dll;
}

struct
{
	DWORD getEntityBase(HANDLE hProc, DWORD clientDll, int playerNumber)
	{
		return Mem.Read<DWORD>(hProc, (clientDll + DwEntityList + (DwEntitySize * (playerNumber - 1))));
	}

	Vector getHeadPos(HANDLE hProc, DWORD clientDll, int playerNumber)
	{
		DWORD entityBase = getEntityBase(hProc, clientDll, playerNumber);
		if (entityBase)
		{
			DWORD boneMatrix = Mem.Read<DWORD>(hProc, (entityBase + DwBoneMatrix));
			if (boneMatrix)
			{
				Vector bonePosition{};
				bonePosition.x = Mem.Read<float>(hProc, (boneMatrix + 0x30 * targetBone + 0x0C));
				bonePosition.y = Mem.Read<float>(hProc, (boneMatrix + 0x30 * targetBone + 0x1C));
				bonePosition.z = Mem.Read<float>(hProc, (boneMatrix + 0x30 * targetBone + 0x2C));
				return bonePosition;
			}
		}
	}

	int getTeam(HANDLE hProc, DWORD clientDll, int playerNumber)
	{
		DWORD entityBase = getEntityBase(hProc, clientDll, playerNumber);
		if (entityBase)
		{
			return Mem.Read<int>(hProc, (entityBase + DwTeamNumber));
		}
	}

	int getHealth(HANDLE hProc, DWORD clientDll, int playerNumber)
	{
		DWORD entityBase = getEntityBase(hProc, clientDll, playerNumber);
		if (entityBase)
		{
			return Mem.Read<int>(hProc, (entityBase + DwHealth));
		}
	}

}Entity;

struct
{
	DWORD getLocalPlayer(HANDLE hProc, DWORD clientDll)
	{
		return Mem.Read<DWORD>(hProc, (clientDll + DwLocalPlayer));
	}

	Vector getViewAngle(HANDLE hProc, DWORD engineDll)
	{
		DWORD anglePointer = Mem.Read<DWORD>(hProc, (engineDll + DwEnginePointer));
		if (anglePointer)
		{
			Vector angles{};
			angles = Mem.Read<Vector>(hProc, (anglePointer + DwViewAngle));
			return angles;
		}
	}

	int getTeam(HANDLE hProc, DWORD clientDll)
	{
		DWORD localPlayer = getLocalPlayer(hProc, clientDll);
		if (localPlayer)
		{
			return Mem.Read<int>(hProc, (localPlayer + DwTeamNumber));
		}
	}

	Vector getPosition(HANDLE hProc, DWORD clientDll)
	{
		DWORD playerBase = getLocalPlayer(hProc, clientDll);
		if (playerBase)
		{
			return Mem.Read<Vector>(hProc, (playerBase + DwVecOrigin));
		}
	}

	Vector getEyePosition(HANDLE hProc, DWORD clientDll)
	{
		DWORD playerBase = getLocalPlayer(hProc, clientDll);
		if (playerBase)
		{
			return Mem.Read<Vector>(hProc, (playerBase + vecViewOffset));
		}
	}


}Player;

void Normalize(Vector& vec)
{
	if (vec.y > 180.f)
		vec.y -= 360.f;
	else if (vec.y < -180.f)
		vec.y += 360.f;
	if (vec.x > 89.f)
		vec.x = 89.f;
	else if (vec.y < -89.f)
		vec.x = -89.f;

	vec.z = 0.f;
}

Vector CalcAngle(Vector& src, Vector& dst, HANDLE hProc, DWORD clientDll)
{
	Vector vAngle;
	Vector delta;
	delta.x = (src.x - dst.x);
	delta.y = (src.y - dst.y);
	delta.z = (src.z - dst.z);
	Normalize(delta);
	double hyp = sqrt(delta.x*delta.x + delta.y*delta.y);

	vAngle.x = (float)(atan2f(delta.z, hyp) * 57.295779513082f);
	vAngle.y = (float)(atanf(delta.y / delta.x) * 57.295779513082f);
	vAngle.z = 0.0f;
	Normalize(vAngle);

	if (delta.x >= 0.0)
		vAngle.y += 180.0f;

	Normalize(vAngle);

	return vAngle;
}

// -179 till -89 på x-axeln(pitch)
int main()
{
	DWORD pId;

	HWND hwnd = FindWindow(NULL, "Counter-Strike: Global Offensive");
	GetWindowThreadProcessId(hwnd, &pId);
	HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, NULL, pId);
	DWORD clientDll = getDll(pId, "client.dll");
	DWORD engineDll = getDll(pId, "engine.dll");

	while (true)
	{
		Vector localPosition{};
		localPosition.x = Player.getPosition(hProc, clientDll).x + Player.getEyePosition(hProc, clientDll).x;
		localPosition.y = Player.getPosition(hProc, clientDll).y + Player.getEyePosition(hProc, clientDll).y;
		localPosition.z = Player.getPosition(hProc, clientDll).z + Player.getEyePosition(hProc, clientDll).z;
		Vector viewAngle = Player.getViewAngle(hProc, engineDll);
		cout << viewAngle.y << endl;
		for (int i = 0; i < 64; ++i)
		{
			Vector headBone = Entity.getHeadPos(hProc, clientDll, i);
			Vector vAngle = CalcAngle(localPosition, headBone, hProc, clientDll);
			Vector vAnglePlus{};
			Vector vAngleMinus{};
			vAnglePlus.y = vAngle.y + 1.0f;
			vAnglePlus.x = 0.0f;
			vAnglePlus.z = 0.0f;
			vAngleMinus.y = vAngle.y - 1.0f;
			vAngleMinus.x = 0.0f;
			vAngleMinus.z = 0.0f;
			Normalize(vAnglePlus);
			Normalize(vAngleMinus);
			
			
			
			if (viewAngle.y <= vAnglePlus.y && viewAngle.y >= vAngleMinus.y && GetAsyncKeyState(0x05) && Entity.getHealth(hProc, clientDll, i) > 0 && Entity.getTeam(hProc, clientDll, i) != Player.getTeam(hProc, clientDll)) // I dont care about the elevation.
			{
				click();
			}




		}
		Sleep(1); system("cls");
	}
	return 0;
}

	void click()
	{
		mouse_event(MOUSEEVENTF_LEFTDOWN, NULL, NULL, NULL, NULL);
		Sleep(5);
		mouse_event(MOUSEEVENTF_LEFTUP, NULL, NULL, NULL, NULL);
		Sleep(10);
	}
Bump. As for now, the triggerbot does not do anything between -179 to -89 on the x-axis(yaw).
Quote Originally Posted by samlarenskoog View Post
Bump. As for now, the triggerbot does not do anything between -179 to -89 on the x-axis(pitch).
Pitch is up and down. Your angles can't even go from -89 to -179, that would be behind you.
1 week has passed and no further replies have been made by the OP. Assuming solved.

/Closed.
Posts 31–37 of 37 · Page 3 of 3
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us