viewMatrix
This commit is contained in:
@@ -28,11 +28,15 @@ namespace GmodCheatx64s
|
|||||||
const int viewangleX = 0x5D5370; //yaw rechts links
|
const int viewangleX = 0x5D5370; //yaw rechts links
|
||||||
const int viewangleY = 0x5D536C; //pitch oben unten
|
const int viewangleY = 0x5D536C; //pitch oben unten
|
||||||
|
|
||||||
|
const int viewMatrixP = 0x72FDA0;
|
||||||
|
const int viewMatrixOffset = 0x460;
|
||||||
const int hp = 0xC8;
|
const int hp = 0xC8;
|
||||||
const int x = 0x308;
|
const int x = 0x308;
|
||||||
const int y = 0x30C;
|
const int y = 0x30C;
|
||||||
const int z = 0x310;
|
const int z = 0x310;
|
||||||
|
|
||||||
|
//IntPtr testViewMatrix = (IntPtr.Zero);
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
public static void Main(string[] args)
|
public static void Main(string[] args)
|
||||||
@@ -55,20 +59,89 @@ namespace GmodCheatx64s
|
|||||||
//Console.Write(swed.ReadFloat(enginebase, viewangleX));
|
//Console.Write(swed.ReadFloat(enginebase, viewangleX));
|
||||||
//Console.Write(swed.ReadFloat(enginebase, viewangleY));
|
//Console.Write(swed.ReadFloat(enginebase, viewangleY));
|
||||||
//Console.Write("\n");
|
//Console.Write("\n");
|
||||||
if (GetAsyncKeyState(0x56) < 0)
|
if(renderer.enableAimbot)
|
||||||
{
|
{
|
||||||
//var EntityObj = swed.ReadPointer(moduleBase, entitybase + 0x20);
|
if (GetAsyncKeyState(0x56) < 0)
|
||||||
//Console.WriteLine(swed.ReadFloat(EntityObj, 0x308));
|
|
||||||
|
|
||||||
updatelocal();
|
|
||||||
updateEntities();
|
|
||||||
entityList = entityList.OrderBy(o => o.mag).ToList();
|
|
||||||
if (entityList.Count > 0)
|
|
||||||
{
|
{
|
||||||
//Console.WriteLine(entityList[0].health);
|
//var EntityObj = swed.ReadPointer(moduleBase, entitybase + 0x20);
|
||||||
aim(entityList[0]);
|
//Console.WriteLine(swed.ReadFloat(EntityObj, 0x308));
|
||||||
|
|
||||||
|
updatelocal();
|
||||||
|
updateEntities();
|
||||||
|
entityList = entityList.OrderBy(o => o.mag).ToList();
|
||||||
|
if (entityList.Count > 0)
|
||||||
|
{
|
||||||
|
//Console.WriteLine(entityList[0].health);
|
||||||
|
aim(entityList[0]);
|
||||||
|
}
|
||||||
|
Thread.Sleep(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Viewmatrix ReadMatrix()
|
||||||
|
{
|
||||||
|
var viewMatrix = new Viewmatrix();
|
||||||
|
var matrixPointer = swed.ReadPointer(enginebase, viewMatrixP);
|
||||||
|
|
||||||
|
var matrix = swed.ReadMatrix(matrixPointer + viewMatrixP);
|
||||||
|
|
||||||
|
viewMatrix.m11 = matrix[0];
|
||||||
|
viewMatrix.m12 = matrix[1];
|
||||||
|
viewMatrix.m13 = matrix[2];
|
||||||
|
viewMatrix.m14 = matrix[3];
|
||||||
|
|
||||||
|
viewMatrix.m21 = matrix[4];
|
||||||
|
viewMatrix.m22 = matrix[5];
|
||||||
|
viewMatrix.m23 = matrix[6];
|
||||||
|
viewMatrix.m24 = matrix[7];
|
||||||
|
|
||||||
|
viewMatrix.m31 = matrix[8];
|
||||||
|
viewMatrix.m32 = matrix[9];
|
||||||
|
viewMatrix.m33 = matrix[10];
|
||||||
|
viewMatrix.m34 = matrix[11];
|
||||||
|
|
||||||
|
viewMatrix.m41 = matrix[12];
|
||||||
|
viewMatrix.m42 = matrix[13];
|
||||||
|
viewMatrix.m43 = matrix[14];
|
||||||
|
viewMatrix.m44 = matrix[15];
|
||||||
|
|
||||||
|
|
||||||
|
return viewMatrix;
|
||||||
|
}
|
||||||
|
|
||||||
|
Vector2 WorldToScreen(Viewmatrix matrix, Vector3 pos, int width, int height)
|
||||||
|
{
|
||||||
|
var screenCoordinates = new Vector2();
|
||||||
|
|
||||||
|
//calculater screenW
|
||||||
|
|
||||||
|
float screenW = (matrix.m41 * pos.X) + (matrix.m42 * pos.Y) + (matrix.m43 * pos.Z) + matrix.m44;
|
||||||
|
|
||||||
|
if(screenW > 0.001f)
|
||||||
|
{
|
||||||
|
//calculatr screen x and y
|
||||||
|
|
||||||
|
float screenX = (matrix.m11 * pos.X) + (matrix.m12 * pos.Y) + (matrix.m13 * pos.Z) + matrix.m14;
|
||||||
|
|
||||||
|
float screenY = (matrix.m21 * pos.X) + (matrix.m22 * pos.Y) + (matrix.m23 * pos.Z) + matrix.m24;
|
||||||
|
|
||||||
|
// calculatr camera center
|
||||||
|
float camX = width / 2;
|
||||||
|
float camY = height / 2;
|
||||||
|
|
||||||
|
//perform perspective division and transformation
|
||||||
|
float X = camX + (camX * screenX / screenW);
|
||||||
|
float Y = camY + (camY * screenY / screenW);
|
||||||
|
|
||||||
|
screenCoordinates.X = X;
|
||||||
|
screenCoordinates.Y = Y;
|
||||||
|
return screenCoordinates;
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return new Vector2(-99, -99);
|
||||||
}
|
}
|
||||||
Thread.Sleep(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void updatelocal()
|
void updatelocal()
|
||||||
@@ -128,8 +201,8 @@ namespace GmodCheatx64s
|
|||||||
|
|
||||||
void aim(entity entity)
|
void aim(entity entity)
|
||||||
{
|
{
|
||||||
//Console.WriteLine("New");
|
Console.WriteLine("New");
|
||||||
//Console.WriteLine(entity.health);
|
Console.WriteLine(entity.health);
|
||||||
|
|
||||||
float deltaX = entity.x - player.x;
|
float deltaX = entity.x - player.x;
|
||||||
float deltaY = entity.y - player.y;
|
float deltaY = entity.y - player.y;
|
||||||
@@ -142,7 +215,8 @@ namespace GmodCheatx64s
|
|||||||
float Y = -(float)(Math.Atan2(deltaZ, dist) * 180 / Math.PI);
|
float Y = -(float)(Math.Atan2(deltaZ, dist) * 180 / Math.PI);
|
||||||
|
|
||||||
var buffer = swed.ReadPointer(moduleBase, localPlayer);
|
var buffer = swed.ReadPointer(moduleBase, localPlayer);
|
||||||
|
Console.WriteLine(dist);
|
||||||
|
|
||||||
swed.WriteFloat(enginebase, viewangleX, X);
|
swed.WriteFloat(enginebase, viewangleX, X);
|
||||||
swed.WriteFloat(enginebase, viewangleY, Y);
|
swed.WriteFloat(enginebase, viewangleY, Y);
|
||||||
}
|
}
|
||||||
|
|||||||
17
GmodCheatx64/Viewmatrix.cs
Normal file
17
GmodCheatx64/Viewmatrix.cs
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace GmodCheatx64
|
||||||
|
{
|
||||||
|
public class Viewmatrix
|
||||||
|
{
|
||||||
|
|
||||||
|
public float m11, m12, m13, m14;
|
||||||
|
public float m21, m22, m23, m24;
|
||||||
|
public float m31, m32, m33, m34;
|
||||||
|
public float m41, m42, m43, m44;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Numerics;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Swed64;
|
using Swed64;
|
||||||
@@ -12,5 +13,7 @@ namespace GmodCheatx64
|
|||||||
public int health;
|
public int health;
|
||||||
public float x, y, z;
|
public float x, y, z;
|
||||||
public float mag;
|
public float mag;
|
||||||
|
public Vector2 originScreenPosition { get; set; }
|
||||||
|
public Vector2 absScreenPosition { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
using ClickableTransparentOverlay;
|
using ClickableTransparentOverlay;
|
||||||
using GmodCheatx64s;
|
using GmodCheatx64s;
|
||||||
using ImGuiNET;
|
using ImGuiNET;
|
||||||
|
using Swed64;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@@ -19,34 +20,61 @@ namespace GmodCheatx64
|
|||||||
string input2 = "";
|
string input2 = "";
|
||||||
|
|
||||||
bool enableOverlay = false;
|
bool enableOverlay = false;
|
||||||
|
|
||||||
|
bool enableEsp = true;
|
||||||
|
bool enableEspLine = true;
|
||||||
|
bool enableEspBox = true;
|
||||||
|
public bool enableAimbot = false;
|
||||||
public bool enableHealthCheck = false;
|
public bool enableHealthCheck = false;
|
||||||
Vector2 screenSize = new Vector2(2560, 1440);
|
Vector2 screenSize = new Vector2(2560, 1440);
|
||||||
Vector2 drawPosition = new Vector2(150, 150);
|
Vector2 drawPosition = new Vector2(150, 150);
|
||||||
|
Vector2 drawMax = new Vector2(550, 550);
|
||||||
|
|
||||||
|
Vector2 LineOrigin = new Vector2(1920 / 2, 1080);
|
||||||
|
Vector2 windowCenter = new Vector2(1920/2 , 1080/2);
|
||||||
|
Vector4 enemyColor = new Vector4(1,0,0,1);
|
||||||
protected override void Render()
|
protected override void Render()
|
||||||
{
|
{
|
||||||
DrawMenu();
|
DrawMenu();
|
||||||
DrawOverlay();
|
DrawOverlay();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void DrawMenu()
|
void DrawMenu()
|
||||||
{
|
{
|
||||||
ImGui.Begin("Gmod x64 Made by Finn");
|
ImGui.Begin("Gmod x64 Made by Finn");
|
||||||
ImGui.Checkbox("Draw Overlay", ref enableOverlay);
|
|
||||||
ImGui.BeginChild("Aimbot");
|
|
||||||
ImGui.Checkbox("CheckIfEntityHealth 0", ref enableHealthCheck);
|
|
||||||
ImGui.EndChild();
|
|
||||||
ImGui.End();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
if(ImGui.BeginTabBar("Tabs"))
|
||||||
|
{
|
||||||
|
if(ImGui.BeginTabItem("General"))
|
||||||
|
{
|
||||||
|
ImGui.Checkbox("ESP", ref enableEsp);
|
||||||
|
ImGui.Checkbox("Aimbot", ref enableAimbot);
|
||||||
|
ImGui.Checkbox("Draw Overlay", ref enableOverlay);
|
||||||
|
ImGui.Checkbox("CheckIfEntityHealth 0", ref enableHealthCheck);
|
||||||
|
ImGui.EndTabItem();
|
||||||
|
}
|
||||||
|
if(ImGui.BeginTabItem("ESP"))
|
||||||
|
{
|
||||||
|
ImGui.Checkbox("ESP Line", ref enableEspLine);
|
||||||
|
ImGui.Checkbox("ESP Box", ref enableEspBox);
|
||||||
|
|
||||||
|
ImGui.ColorPicker4("Enemy Color", ref enemyColor);
|
||||||
|
ImGui.EndTabItem();
|
||||||
|
}
|
||||||
|
ImGui.EndTabBar();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
void DrawOverlay()
|
void DrawOverlay()
|
||||||
{
|
{
|
||||||
if (enableOverlay)
|
if (enableOverlay)
|
||||||
{
|
{
|
||||||
ImGui.SetNextWindowSize(screenSize);
|
ImGui.SetNextWindowSize(screenSize);
|
||||||
ImGui.SetNextWindowPos(new Vector2(0, 0));
|
ImGui.SetNextWindowPos(new Vector2(0, 0));
|
||||||
ImGui.Begin("Overlayxx", ImGuiWindowFlags.NoDecoration
|
ImGui.Begin("Overlay", ImGuiWindowFlags.NoDecoration
|
||||||
| ImGuiWindowFlags.NoBackground
|
| ImGuiWindowFlags.NoBackground
|
||||||
| ImGuiWindowFlags.NoBringToFrontOnFocus
|
| ImGuiWindowFlags.NoBringToFrontOnFocus
|
||||||
| ImGuiWindowFlags.NoMove
|
| ImGuiWindowFlags.NoMove
|
||||||
@@ -58,7 +86,8 @@ namespace GmodCheatx64
|
|||||||
|
|
||||||
ImDrawListPtr drawList = ImGui.GetWindowDrawList();
|
ImDrawListPtr drawList = ImGui.GetWindowDrawList();
|
||||||
|
|
||||||
drawList.AddCircle(drawPosition, 50,ImGui.ColorConvertFloat4ToU32(new Vector4(1,0,0,1))); //Red
|
//drawList.AddCircle(drawPosition, 50,ImGui.ColorConvertFloat4ToU32(new Vector4(1,0,0,1))); //Red
|
||||||
|
drawList.AddRect(drawPosition, drawMax ,ImGui.ColorConvertFloat4ToU32(new Vector4(1, 0, 0, 1)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user