protected override AimMethodResult OnGetAimPoint(CSGOImplementation csgo, Target target, AimBone bone, Vector2 screenMid, float radius) { Vector2 least = Vector2.Zero; int index = -1; float leastDist = float.MaxValue; try { for (int i = 0; i < csgo.Players.Length; i++) { if (!PlayerValid(csgo.LocalPlayer, csgo.Players[i], target)) continue; if (csgo.GetValue<YesNo>("aimSpottedOnly") == YesNo.Yes && !csgo.Players[i].SeenBy(csgo.LocalPlayer)) continue; Vector2 head = AimAt(csgo, bone, csgo.Players[i]); if (csgo.GetValue<OnOff>("aimbotRagemode") == OnOff.Off) if (!Geometry.PointInCircle(head, screenMid, radius)) continue; float dist = (float)Math.Abs((head - screenMid).Length()); //Debug.WriteLine("Dist {0}: {1}", csgo.Players[i].Name, Math.Round(dist, 4)); if (dist < leastDist) { least = head; leastDist = dist; index = csgo.Players[i].Index; } } } catch { } return new AimMethodResult(index, least); }
protected override AimMethodResult OnGetAimPoint(CSGOImplementation csgo, Target target, AimBone bone, Vector2 screenM, float radius) { Vector2 least = Vector2.Zero; Player playerTmp = null; float leastDist = float.MaxValue; try { foreach (Player player in csgo.Players) { if (!PlayerValid(csgo.LocalPlayer, player, target)) continue; if (csgo.GetValue<YesNo>("aimSpottedOnly") == YesNo.Yes && !player.SeenBy(csgo.LocalPlayer)) continue; float multiplicator = this.GetFloatMultiplicator(); Vector2 head = AimAt(csgo, bone, player); if (!Geometry.PointInCircle(head, screenM, radius)) continue; float playerDist = Geometry.GetDistanceToPoint(player.Vector3, csgo.LocalPlayer.Vector3); if (playerDist < leastDist) { least = head; leastDist = playerDist; playerTmp = player; } } } catch { } return new AimMethodResult(playerTmp != null ? playerTmp.Index : 0, least); }
protected override void OnDraw(SharpDX.Direct2D1.WindowRenderTarget device) { if (once) { System.Drawing.Bitmap bmp = (System.Drawing.Bitmap)Resources.ResourceManager.GetObject("ranks"); try { this.ranksBmp = SDXBitmapFromSysBitmap(device, bmp); once = false; } catch { } } csgo = (CSGOImplementation)Program.GameImplementation; Player currentPlayer = csgo.GetCurrentPlayer(); if (csgo.SignOnState < SignOnState.SIGNONSTATE_PRESPAWN || csgo.SignOnState > SignOnState.SIGNONSTATE_FULL) { return; } if (csgo.Players == null) { return; } if (csgo.Players.Length == 0) { return; } if (currentPlayer == null) { return; } if (csgo.GetValue <YesNo>("espEnabled") == YesNo.No) { return; } try { DrawWorld(device, csgo); } catch { } try { foreach (Player player in csgo.Players) { DrawPlayer(device, currentPlayer, player); } foreach (Entity entity in csgo.Entities) { DrawEntity(device, currentPlayer, entity); } for (int i = csgo.Damages.Count - 1; i >= 0; i--) { DrawDamage(device, currentPlayer, csgo.Damages[i]); } } catch { } //DrawPunchAngles(device, csgo); }
protected override AimMethodResult OnGetAimPoint(CSGOImplementation csgo, Target target, AimBone bone, Vector2 screenMid, float radius) { Vector2 least = Vector2.Zero; int index = -1; float leastDist = float.MaxValue; try { for (int i = 0; i < csgo.Players.Length; i++) { if (!PlayerValid(csgo.LocalPlayer, csgo.Players[i], target)) { continue; } if (csgo.GetValue <YesNo>("aimSpottedOnly") == YesNo.Yes && !csgo.Players[i].SeenBy(csgo.LocalPlayer)) { continue; } Vector2 head = AimAt(csgo, bone, csgo.Players[i]); if (csgo.GetValue <OnOff>("aimbotRagemode") == OnOff.Off) { if (!Geometry.PointInCircle(head, screenMid, radius)) { continue; } } float dist = (float)Math.Abs((head - screenMid).Length()); //Debug.WriteLine("Dist {0}: {1}", csgo.Players[i].Name, Math.Round(dist, 4)); if (dist < leastDist) { least = head; leastDist = dist; index = csgo.Players[i].Index; } } } catch { } return(new AimMethodResult(index, least)); }
public override void OnUpdaterTick() { if (Program.GameImplementation == null) return; if (Program.GameController == null) return; if (!Program.GameController.IsGameRunning) return; csgo = (CSGOImplementation)Program.GameImplementation; CSGOGameController controller = (CSGOGameController)Program.GameController; if (csgo == null) return; if (csgo.SignOnState != SignOnState.SIGNONSTATE_FULL) return; if (csgo.Players == null) return; if (csgo.LocalPlayer == null) return; if (csgo.LocalPlayer.Health <= 0) return; DoOtherStuff(); if (csgo.GetValue<YesNo>("rcsEnabled") == YesNo.No) return; float force = csgo.GetValue<float>("rcsForce"); if (lastPunch == csgo.LocalPlayer.PunchVector) return; if (csgo.LocalPlayer.PunchVector == Vector3.Zero) return; currentPunch = csgo.LocalPlayer.PunchVector - lastPunch; if (IsActive && currentPunch != Vector3.Zero) { Vector3 newViewAngles = csgo.ViewAngles - currentPunch * force; newViewAngles = Geometry.ClampAngle(newViewAngles); newViewAngles.Z = 0f; controller.MemoryUpdater.WriteViewAngles(newViewAngles); } lastPunch = csgo.LocalPlayer.PunchVector; }
private void DoOtherStuff() { //No flash if (csgo.GetValue <YesNo>("miscNoFlash") == YesNo.Yes) { if (csgo.FlashMaxAlpha > 0) { WinAPI.WriteMemory(Program.GameController.Process.Handle, (int)csgo.LocalPlayer.Address + GameOffsets.CL_LOCAL_FLASH_MAX_ALPHA, zeroFloat, zeroFloat.Length); } if (csgo.FlashMaxDuration > 0) { WinAPI.WriteMemory(Program.GameController.Process.Handle, (int)csgo.LocalPlayer.Address + GameOffsets.CL_LOCAL_FLASH_MAX_DURATION, zeroFloat, zeroFloat.Length); } } }
protected override AimMethodResult OnGetAimPoint(CSGOImplementation csgo, Target target, AimBone bone, Vector2 screenM, float radius) { Vector2 least = Vector2.Zero; Player playerTmp = null; float leastDist = float.MaxValue; try { foreach (Player player in csgo.Players) { if (!PlayerValid(csgo.LocalPlayer, player, target)) { continue; } if (csgo.GetValue <YesNo>("aimSpottedOnly") == YesNo.Yes && !player.SeenBy(csgo.LocalPlayer)) { continue; } float multiplicator = this.GetFloatMultiplicator(); Vector2 head = AimAt(csgo, bone, player); if (!Geometry.PointInCircle(head, screenM, radius)) { continue; } float playerDist = Geometry.GetDistanceToPoint(player.Vector3, csgo.LocalPlayer.Vector3); if (playerDist < leastDist) { least = head; leastDist = playerDist; playerTmp = player; } } } catch { } return(new AimMethodResult(playerTmp != null ? playerTmp.Index : 0, least)); }
private void DrawWorld(WindowRenderTarget device, CSGOImplementation csgo) { if (csgo.CurrentMap == null) return; if (csgo.GetValue<YesNo>("wireframeEnabled") == YesNo.No) return; BSP map = csgo.CurrentMap; Color color = new Color((int)csgo.GetValue<float>("wireframeColorR"), (int)csgo.GetValue<float>("wireframeColorG"), (int)csgo.GetValue<float>("wireframeColorB"), (int)csgo.GetValue<float>("wireframeColorA")); float distanceMeters = csgo.GetValue<float>("wireframeDistance"); float scale = 1f; bool drawOnlyMe = (csgo.GetValue<YesNo>("wireframeDrawAroundMe") == YesNo.Yes); Target drawTarget = csgo.GetValue<Target>("wireframeDrawTarget"); for (int f = 0; f < map.OriginalFaces.Length; f++) { Face face = map.OriginalFaces[f]; if (map.TextureInfo.Length > face.texinfo) { if ((map.TextureInfo[face.texinfo] & SurfFlag.SURF_NODRAW) == SurfFlag.SURF_NODRAW) continue; } for (int e = 0; e < face.numEdges; e++) { float dist = 1f; int surfedge = map.Surfedges[face.firstEdge + e]; ushort[] edge = map.Edges[Math.Abs(surfedge)]; Vector3 line3d1, line3d2; if (surfedge > 0) { line3d1 = map.Vertices[edge[0]]; line3d2 = map.Vertices[edge[1]]; } else { line3d1 = map.Vertices[edge[1]]; line3d2 = map.Vertices[edge[0]]; } bool valid = false; dist = Geometry.GetDistanceToPoint(line3d1, csgo.LocalPlayer.Vector3) * UNIT_TO_METERS; //valid = true; //if (dist > distanceMeters) // break; if (!drawOnlyMe) { foreach (Player player in csgo.Players) { if (player == null) continue; if (!player.IsValid()) continue; if (drawTarget != Target.Everyone) { if (drawTarget == Target.Allies && (player.InTeam != csgo.LocalPlayer.InTeam)) continue; if (drawTarget == Target.Enemies && (player.InTeam == csgo.LocalPlayer.InTeam)) continue; } float tmpDist = Geometry.GetDistanceToPoint(line3d1, player.Vector3) * UNIT_TO_METERS; if ( tmpDist < distanceMeters/* || Geometry.GetDistanceToPoint(line3d2, player.Vector3) * UNIT_TO_METERS < distanceMeters*/ ) { valid = true; if (tmpDist < dist) dist = tmpDist; } } if (!valid) { break; } } else { if (dist > distanceMeters) { break; } } Vector2[] line = Geometry.WorldToScreen(csgo.ViewMatrix, csgo.ScreenSize, line3d1, line3d2); if (line[0] == Vector2.Zero || line[1] == Vector2.Zero) continue; Color col = color; if (csgo.GetValue<OnOff>("wireframeFading") == OnOff.On) { scale = 1f - 1f / distanceMeters * dist; col = color; col.A = (byte)(((float)col.A) * scale); } DrawLine(device, col, line[0].X, line[0].Y, line[1].X, line[1].Y, 1f); } } }
public override void OnUpdaterTick() { if (Program.GameImplementation == null) { return; } if (Program.GameController == null) { return; } if (!Program.GameController.IsGameRunning) { return; } csgo = (CSGOImplementation)Program.GameImplementation; CSGOGameController controller = (CSGOGameController)Program.GameController; if (csgo == null) { return; } if (csgo.SignOnState != SignOnState.SIGNONSTATE_FULL) { return; } if (csgo.Players == null) { return; } if (csgo.LocalPlayer == null) { return; } if (csgo.LocalPlayer.Health <= 0) { return; } DoOtherStuff(); if (csgo.GetValue <YesNo>("rcsEnabled") == YesNo.No) { return; } float force = csgo.GetValue <float>("rcsForce"); if (lastPunch == csgo.LocalPlayer.PunchVector) { return; } if (csgo.LocalPlayer.PunchVector == Vector3.Zero) { return; } currentPunch = csgo.LocalPlayer.PunchVector - lastPunch; if (IsActive && currentPunch != Vector3.Zero) { Vector3 newViewAngles = csgo.ViewAngles - currentPunch * force; newViewAngles = Geometry.ClampAngle(newViewAngles); newViewAngles.Z = 0f; controller.MemoryUpdater.WriteViewAngles(newViewAngles); } lastPunch = csgo.LocalPlayer.PunchVector; }
public override void OnUpdaterTick() { if (Program.GameImplementation == null) return; if (Program.GameController == null) return; if (!Program.GameController.IsGameRunning) return; csgo = (CSGOImplementation)Program.GameImplementation; if (csgo == null) return; if (csgo.SignOnState != SignOnState.SIGNONSTATE_FULL) return; if (csgo.Players == null) return; if (csgo.GetValue<YesNo>("triggerbotEnabled") == YesNo.No) return; if (csgo.LocalPlayer == null) return; if (csgo.LocalPlayer.Health <= 0) return; if (csgo.WeaponClip1 == 0) return; if (csgo.IsReloading) return; if (csgo.IsShooting) return; if ((csgo.TargetPlayer == null && csgo.TargetIndex <= 64)) { targetSeen = false; return; } if (Program.GameImplementation.GetValue<YesNo>("spectatorDisableTrigger") == YesNo.Yes && csgo.FirstPersonSpectator) return; if (Program.GameImplementation.GetValue<YesNo>("triggerbotSnipersOnly") == YesNo.Yes && csgo.WeaponType != WeaponType.Sniper) return; Target target = csgo.GetValue<Target>("triggerbotTarget"); if (csgo.TargetIndex > 0 && csgo.TargetIndex <= 64 && csgo.TargetPlayer != null) { if (target == Target.Allies && csgo.TargetPlayer.InTeam != csgo.LocalPlayer.InTeam) return; if (target == Target.Enemies && csgo.TargetPlayer.InTeam == csgo.LocalPlayer.InTeam) return; } else { int idx = csgo.TargetIndex - 1 - csgo.Players.Length; if (idx < 0 || idx >= csgo.Entities.Length) return; if (csgo.Entities[idx] == null) return; if (csgo.Entities[idx].ClassID != Data.Enums.ClassID.CSPlayer && csgo.Entities[idx].ClassID != Data.Enums.ClassID.Chicken) return; } if (!targetSeen) { lastSeen = DateTime.Now.Ticks; targetSeen = true; } if (csgo.GetValue<float>("triggerbotSpeedThreshold") < csgo.GetPlayerKMH()) return; TimeSpan spanSeen = new TimeSpan(DateTime.Now.Ticks - lastSeen); if ( targetSeen && spanSeen.TotalMilliseconds >= csgo.GetValue<float>("triggerbotDelay") && (csgo.WeaponType == WeaponType.Sniper || 100f / 9f * csgo.LocalPlayer.PunchVector.Length() < csgo.GetValue<float>("triggerbotRecoilThreshold")) ) { if (csgo.WeaponType != WeaponType.Grenade && csgo.WeaponType != WeaponType.Melee && csgo.WeaponType != WeaponType.Special) { lastShot = DateTime.Now.Ticks; Shoot(); } else if (csgo.WeaponType == WeaponType.Melee) { if (csgo.Players != null && csgo.TargetPlayer != null) { float yaw1 = csgo.LocalPlayer.Yaw, yaw2 = csgo.TargetPlayer.Yaw; //while (yaw1 < 0f) // yaw1 += 360f; //while (yaw2 < 0f) // yaw2 += 360f; if (csgo.LocalPlayer.DistanceToOtherEntityInMetres(csgo.TargetPlayer) <= 1) RightKnife(); } } } }
private void DrawPlayer(WindowRenderTarget device, Player currentPlayer, Player player) { if (player == null) { return; } if (player.Index == currentPlayer.Index) { return; } if (!player.IsValid()) { return; } if (csgo.GetValue <Target>("espDrawTarget") == Target.Enemies && player.InTeam == currentPlayer.InTeam) { return; } if (csgo.GetValue <Target>("espDrawTarget") == Target.Allies && player.InTeam != currentPlayer.InTeam) { return; } player.CheckYaw(); Vector2 point = Geometry.WorldToScreen(csgo.ViewMatrix, csgo.ScreenSize, (player.Vector3)); if (point == Vector2.Zero) { return; } float distance = Geometry.GetDistanceToPoint(currentPlayer.Vector3, player.Vector3); float height = 36000f / distance; float width = 18100f / distance; Color colorPlayer = player.InTeam == Team.Terrorists ? (player.SeenBy(currentPlayer) ? colorTSpotted : colorT) : (player.SeenBy(currentPlayer) ? colorCTSpotted : colorCT); float distanceMeter = currentPlayer.DistanceToOtherEntityInMetres(player); float head = 3200f / distance; float boxBorder = 6400f / distance; bool highlighted = csgo.Highlighted[player.Index - 1]; //Paint bones List <Vector3> allBones = new List <Vector3>(); allBones.AddRange(player.Skeleton.Legs); allBones.AddRange(player.Skeleton.Spine); allBones.Add(player.Skeleton.HeadEnd); Vector2[] all = Geometry.WorldToScreen(csgo.ViewMatrix, csgo.ScreenSize, allBones.ToArray()); foreach (Vector2 vec in all) { if (vec == Vector2.Zero) { return; } } Vector2[] arms = Geometry.WorldToScreen(csgo.ViewMatrix, csgo.ScreenSize, player.Skeleton.Arms); Vector2[] legs = Geometry.WorldToScreen(csgo.ViewMatrix, csgo.ScreenSize, player.Skeleton.Legs); Vector2[] spine = Geometry.WorldToScreen(csgo.ViewMatrix, csgo.ScreenSize, player.Skeleton.Spine); allBones.Clear(); allBones = null; float rectX = GetSmallestX(all) + 5, rectW = GetBiggestX(all) + 5, rectY = GetSmallestY(all) + 5, rectH = GetBiggestY(all) + 5; //rectW -= rectX; rectH -= rectY; rectW = rectH * 0.3f; rectX = point.X - rectW / 2f; #region glow if (csgo.GetValue <YesNo>("espGlowEnabled") == YesNo.Yes) { if (csgo.GlowObjects != null) { CSGOGameController controller = (CSGOGameController)Program.GameController; int idx = controller.MemoryUpdater.GetGlowObjectByAddress((int)player.Address); if (idx != -1) { GlowObjectDefinition def = csgo.GlowObjects[idx]; def.a = (float)(colorPlayer.A / 255f); def.r = (float)(colorPlayer.R / 255f); def.g = (float)(colorPlayer.G / 255f); def.b = (float)(colorPlayer.B / 255f); def.m_bRenderWhenOccluded = true; def.m_bRenderWhenUnoccluded = true; def.m_bFullBloom = false; if (csgo.GetValue <YesNo>("espGlowFadingEnabled") == YesNo.Yes) { float dist = currentPlayer.DistanceToOtherEntityInMetres(player); float range = csgo.GetValue <float>("espGlowFadingDistance"); if (dist <= range) { def.a = 1f - 1f / range * dist; controller.MemoryUpdater.WriteGlowObject(def, idx); } } else { controller.MemoryUpdater.WriteGlowObject(def, idx); } } } } #endregion #region skeleton if (csgo.GetValue <OnOff>("espDrawSkeleton") == OnOff.On) { if (distanceMeter < 20) { DrawBones(device, colorPlayer, arms, 1.5f, player.InTeam ); } DrawBones(device, colorPlayer, legs, 1.5f, player.InTeam ); DrawBones(device, colorPlayer, spine, 1.5f, player.InTeam ); } if (player.Skeleton.AllBones != null) { for (int i = 0; i < player.Skeleton.AllBones.Length; i++) { Vector2 boneHead = Geometry.WorldToScreen(csgo.ViewMatrix, csgo.ScreenSize, player.Skeleton.AllBones[i]); DrawText(device, foreColor, backColor, boneHead.X, boneHead.Y, 100f, 20f, 1f, 1f, i.ToString(), FactoryManager.GetFont("largeSegoe")); } } #endregion #region lines if (csgo.GetValue <OnOff>("espDrawLines") == OnOff.On) { Color color = colorPlayer; if (!player.IsSpotted) { color *= 0.5f; } else { color *= (0.75f + 0.25f * GetColorMultiplier()); } FillPolygon(device, color, new Vector2(csgo.ScreenSize.Width / 2f, csgo.ScreenSize.Height), new Vector2(point.X - width / 2f, point.Y), new Vector2(point.X + width / 2f, point.Y)); } #endregion #region box //Draw box if (csgo.GetValue <OnOff>("espDrawBox") == OnOff.On) { this.DrawRectangle(device, colorPlayer, rectX, rectY, rectW, rectH, 1f); } #endregion #region circle if (csgo.GetValue <OnOff>("espDrawCircle") == OnOff.On) { Vector3[] circPoints = Geometry.Create3DFlatCircle( player.Vector3, 32f + (player.IsSpotted ? 16f * GetColorMultiplier() : 0f), 32); Vector2[] scrCircPoints = Geometry.WorldToScreen(csgo.ViewMatrix, csgo.ScreenSize, circPoints); DrawLines(device, colorPlayer, 15f / distanceMeter, scrCircPoints); } #endregion #region distance if (csgo.GetValue <OnOff>("espDrawDistance") == OnOff.On) { string distString = Math.Round(distanceMeter, 0).ToString() + "m"; RectangleF distSize = Control.MeasureString(this.Font, distString); //Draw text DrawText(device, foreColor, backColor, rectX + rectW / 2f - distSize.Width / 2f, rectY + rectH, 100f, 20f, 1f, 1f, distString, FactoryManager.GetFont("smallSegoe")); } #endregion #region highlight if (highlighted) { float size = (float)Math.Max(rectW + boxBorder, rectH + boxBorder) * 2f; Color color = (colorPlayer) * (0.5f + 0.5f * GetColorMultiplier()); FillEllipse( device, color * 0.5f, rectX + rectW / 2f, rectY + rectH / 2f, size, size, true); DrawEllipse(device, color, //* (DateTime.Now.Millisecond % 1000f / 1000f), rectX + rectW / 2f, rectY + rectH / 2f, size, size, true, 1.5f); } #endregion #region name if (csgo.GetValue <OnOff>("espDrawName") == OnOff.On) { ////Name //DrawText(device, // foreColor, // backColor, // rectX + rectW, // rectY - boxBorder, // 100f, // 20f, // 1f, // 1f, // (player.IsDormant ? "[DORMANT] " : "") + player.Name, // FactoryManager.GetFont("smallSegoe")); ////Info //string weaponInfo = "-"; //if (player.WeaponIndex >= 0 && player.WeaponIndex < csgo.Entities.Length) //{ // if (csgo.Entities[player.WeaponIndex] != null) // weaponInfo = csgo.Entities[player.WeaponIndex].Name; //} //string data = String.Format( //"Weapon: {0}", // /*player.Health, player.Armor,*/ weaponInfo); //if (csgo.GetValue<OnOff>("espDrawDetails") == OnOff.On) // data = String.Format("{0}\n" + // "Balance: ${1}\n" + // "Kills: {2}\n" + // "Assists: {3}\n" + // "Deaths: {4}\n" + // "Score: {5}", // data, player.Money, player.Kills, player.Assists, player.Deaths, player.Score); //DrawText(device, // foreColor, // backColor, // rectX + rectW, // rectY - boxBorder + 16f, // 100f, // 20f, // 1f, // 1f, // data, // FactoryManager.GetFont("tinySegoe")); string weaponInfo = "-"; if (player.WeaponIndex >= 0 && player.WeaponIndex < csgo.Entities.Length) { if (csgo.Entities[player.WeaponIndex] != null) { weaponInfo = csgo.Entities[player.WeaponIndex].Name; } } string str = string.Format("{0}\n[{1}]", player.Name, weaponInfo); RectangleF size = Control.MeasureString(this.Font, str); //Name DrawText(device, foreColor, backColor, rectX + rectW / 2f - size.Width / 2f, rectY - 40, 100f, 20f, 2f, 2f, str, FactoryManager.GetFont("smallSegoe")); } #endregion #region health if (csgo.GetValue <OnOff>("espDrawHealth") == OnOff.On) { ////HP //FillRectangle(device, // lifeBarBackground, // rectX, // rectY - lifeBarHeight * 3f, // width, //rectW, // lifeBarHeight /*10f*/); //FillRectangle(device, // lifeBarForeground, // rectX, // rectY - lifeBarHeight * 3f, // /*rectW*/ width / 100f * player.Health, // lifeBarHeight /*10f*/); //DrawText(device, // lifeBarForeground, // backColor, // rectX + width, // rectY - lifeBarHeight * 3f - 2f, // 100f, // 20f, // 1f, // 1f, // player.Health.ToString(), // FactoryManager.GetFont("miniSegoe")); ////Armor //FillRectangle(device, // lifeBarBackground, // rectX, // rectY - lifeBarHeight * 2f, // width, //rectW, // lifeBarHeight /*10f*/); //FillRectangle(device, // viewColorOutline, // rectX, // rectY - lifeBarHeight * 2f, // /*rectW*/ width / 100f * player.Armor, // lifeBarHeight /*10f*/); //DrawText(device, // viewColorOutline, // backColor, // rectX + width, // rectY - lifeBarHeight * 2f - 2f, // 100f, // 20f, // 1f, // 1f, // player.Armor.ToString(), // FactoryManager.GetFont("miniSegoe")); //HP FillRectangle(device, lifeBarBackground, rectX - lifeBarWidth, rectY, lifeBarWidth, //rectW, rectH /*10f*/); FillRectangle(device, lifeBarForeground, rectX - lifeBarWidth, rectY, lifeBarWidth, rectH / 100f * player.Health /*10f*/); DrawText(device, lifeBarForeground, backColor, rectX - lifeBarWidth, rectY + rectH, 100f, 20f, 1f, 1f, player.Health.ToString(), FactoryManager.GetFont("miniSegoe")); //Armor FillRectangle(device, lifeBarBackground, rectX + rectW, rectY, lifeBarWidth, //rectW, rectH /*10f*/); FillRectangle(device, viewColorOutline, rectX + rectW, rectY, lifeBarWidth, rectH / 100f * player.Armor /*10f*/); DrawText(device, viewColorOutline, backColor, rectX + rectW, rectY + rectH, 100f, 20f, 1f, 1f, player.Armor.ToString(), FactoryManager.GetFont("miniSegoe")); } #endregion #region rank if (player.Rank > 0) { //Scaling float boxWidth = rectW, boxHeight = rectW * aspect; /* * Args: * 1 actual bitmap * 2 destination-rectangle * 3 opacity * 4 interpolation mode * 5 source-rectangle - easy access using rank as index */ if (ranksBmp != null) { device.DrawBitmap( ranksBmp, new RectangleF(point.X - boxWidth / 2f, point.Y + 20f, boxWidth, boxHeight), 0.7f, BitmapInterpolationMode.Linear, new RectangleF(0f, 80f * (player.Rank - 1), 200f, 80f)); if (boxWidth > 50f) { DrawText(device, foreColor, point.X - boxWidth / 2f, point.Y + 20f + boxHeight + 4f, 200f, 100f, string.Format("MM-wins: {0}", player.Wins.ToString()), this.Font); } } } #endregion }
private void DrawWorld(WindowRenderTarget device, CSGOImplementation csgo) { if (csgo.CurrentMap == null) { return; } if (csgo.GetValue <YesNo>("wireframeEnabled") == YesNo.No) { return; } BSP map = csgo.CurrentMap; Color color = new Color((int)csgo.GetValue <float>("wireframeColorR"), (int)csgo.GetValue <float>("wireframeColorG"), (int)csgo.GetValue <float>("wireframeColorB"), (int)csgo.GetValue <float>("wireframeColorA")); float distanceMeters = csgo.GetValue <float>("wireframeDistance"); float scale = 1f; bool drawOnlyMe = (csgo.GetValue <YesNo>("wireframeDrawAroundMe") == YesNo.Yes); Target drawTarget = csgo.GetValue <Target>("wireframeDrawTarget"); for (int f = 0; f < map.OriginalFaces.Length; f++) { Face face = map.OriginalFaces[f]; if (map.TextureInfo.Length > face.texinfo) { if ((map.TextureInfo[face.texinfo] & SurfFlag.SURF_NODRAW) == SurfFlag.SURF_NODRAW) { continue; } } for (int e = 0; e < face.numEdges; e++) { float dist = 1f; int surfedge = map.Surfedges[face.firstEdge + e]; ushort[] edge = map.Edges[Math.Abs(surfedge)]; Vector3 line3d1, line3d2; if (surfedge > 0) { line3d1 = map.Vertices[edge[0]]; line3d2 = map.Vertices[edge[1]]; } else { line3d1 = map.Vertices[edge[1]]; line3d2 = map.Vertices[edge[0]]; } bool valid = false; dist = Geometry.GetDistanceToPoint(line3d1, csgo.LocalPlayer.Vector3) * UNIT_TO_METERS; //valid = true; //if (dist > distanceMeters) // break; if (!drawOnlyMe) { foreach (Player player in csgo.Players) { if (player == null) { continue; } if (!player.IsValid()) { continue; } if (drawTarget != Target.Everyone) { if (drawTarget == Target.Allies && (player.InTeam != csgo.LocalPlayer.InTeam)) { continue; } if (drawTarget == Target.Enemies && (player.InTeam == csgo.LocalPlayer.InTeam)) { continue; } } float tmpDist = Geometry.GetDistanceToPoint(line3d1, player.Vector3) * UNIT_TO_METERS; if ( tmpDist < distanceMeters/* || * Geometry.GetDistanceToPoint(line3d2, player.Vector3) * UNIT_TO_METERS < distanceMeters*/ ) { valid = true; if (tmpDist < dist) { dist = tmpDist; } } } if (!valid) { break; } } else { if (dist > distanceMeters) { break; } } Vector2[] line = Geometry.WorldToScreen(csgo.ViewMatrix, csgo.ScreenSize, line3d1, line3d2); if (line[0] == Vector2.Zero || line[1] == Vector2.Zero) { continue; } Color col = color; if (csgo.GetValue <OnOff>("wireframeFading") == OnOff.On) { scale = 1f - 1f / distanceMeters * dist; col = color; col.A = (byte)(((float)col.A) * scale); } DrawLine(device, col, line[0].X, line[0].Y, line[1].X, line[1].Y, 1f); } } }
public override void OnUpdaterTick() { if (Program.GameImplementation == null) { return; } if (Program.GameController == null) { return; } if (!Program.GameController.IsGameRunning) { return; } if (!Program.GameController.IsInGame) { return; } CSGOImplementation csgo = ((CSGOImplementation)Program.GameImplementation); IntPtr handle = Program.GameImplementation.GameController.Process.Handle; //Get addresses if (!updatedOffsets) { FindOffsets(); } entityListAddress = dllClientAddress + GameOffsets.CL_ENTITY_LIST; localAddress = WinAPI.ReadInt32(handle, dllClientAddress + GameOffsets.CL_LOCAL_BASE_ENTITY); radarAddress = WinAPI.ReadInt32(handle, dllClientAddress + GameOffsets.CL_RADAR_BASE); radarAddress = WinAPI.ReadInt32(handle, radarAddress + GameOffsets.CL_RADAR_OFFSET); //B658BEC scoreBoardAddress = WinAPI.ReadInt32(handle, dllClientAddress + GameOffsets.CL_SCRBRD_BASE); enginePointer = WinAPI.ReadInt32(handle, dllEngineAddress + GameOffsets.EN_ENGINE_POINTER); csgo.SignOnState = (SignOnState)WinAPI.ReadInt32(handle, enginePointer + GameOffsets.EN_SIGNONSTATE); if (csgo.SignOnState < SignOnState.SIGNONSTATE_PRESPAWN || csgo.SignOnState > SignOnState.SIGNONSTATE_FULL) { return; } //General csgo.ScreenSize = new SharpDX.Size2(Program.GameController.WindowArea.Width, Program.GameController.WindowArea.Height); int targetIndex = WinAPI.ReadInt32(handle, localAddress + GameOffsets.CL_LOCAL_CROSSHAIR_TARGET); Matrix4x4 viewMatrix = Matrix4x4.ReadMatrix(handle, dllClientAddress + GameOffsets.CL_LOCAL_VIEWMATRIX); bool c4Planted = false; //Refresh players if (Environment.TickCount - newPlayers >= 1000) { newPlayers = Environment.TickCount; csgo.Players = null; csgo.Entities = null; } //Read scrbrd-data byte[] scrbrdData = WinAPI.ReadMemory(handle, scoreBoardAddress, 0x1C38); if (csgo.ScrBrdArmor == null) { csgo.ScrBrdArmor = new int[MAX_PLAYERS]; } if (csgo.ScrBrdAssists == null) { csgo.ScrBrdAssists = new int[MAX_PLAYERS]; } if (csgo.ScrBrdDeaths == null) { csgo.ScrBrdDeaths = new int[MAX_PLAYERS]; } if (csgo.ScrBrdHealth == null) { csgo.ScrBrdHealth = new int[MAX_PLAYERS]; } if (csgo.ScrBrdKills == null) { csgo.ScrBrdKills = new int[MAX_PLAYERS]; } if (csgo.ScrBrdScore == null) { csgo.ScrBrdScore = new int[MAX_PLAYERS]; } if (csgo.ScrBrdRanks == null) { csgo.ScrBrdRanks = new int[MAX_PLAYERS]; } if (csgo.ScrBrdWins == null) { csgo.ScrBrdWins = new int[MAX_PLAYERS]; } for (int i = 0; i < MAX_PLAYERS; i++) { csgo.ScrBrdArmor[i] = BitConverter.ToInt32(scrbrdData, GameOffsets.CL_SCRBRD_ARMOR + 4 * i); csgo.ScrBrdAssists[i] = BitConverter.ToInt32(scrbrdData, GameOffsets.CL_SCRBRD_ASSISTS + 4 * i); csgo.ScrBrdDeaths[i] = BitConverter.ToInt32(scrbrdData, GameOffsets.CL_SCRBRD_DEATHS + 4 * i); csgo.ScrBrdHealth[i] = BitConverter.ToInt32(scrbrdData, GameOffsets.CL_SCRBRD_HEALTH + 4 * i); csgo.ScrBrdKills[i] = BitConverter.ToInt32(scrbrdData, GameOffsets.CL_SCRBRD_KILLS + 4 * i); csgo.ScrBrdScore[i] = BitConverter.ToInt32(scrbrdData, GameOffsets.CL_SCRBRD_SCORE + 4 * i); csgo.ScrBrdRanks[i] = BitConverter.ToInt32(scrbrdData, GameOffsets.CL_SCRBRD_RANKING + 4 * i); csgo.ScrBrdWins[i] = BitConverter.ToInt32(scrbrdData, GameOffsets.CL_SCRBRD_WINS + 4 * i); } //Read players & entities if (csgo.Players == null) { csgo.Players = new Player[MAX_PLAYERS]; } if (csgo.Entities == null) { csgo.Entities = new Entity[MAX_ENTITIES - MAX_PLAYERS]; } int maxIndex = 2048;// = WinAPI.ReadInt32(handle, entityListAddress + 0x4); //maxIndex -= entityListAddress; //maxIndex /= GameOffsets.CL_ENTITY_SIZE; byte[] entityList = WinAPI.ReadMemory(handle, entityListAddress, maxIndex * GameOffsets.CL_ENTITY_SIZE); for (int i = 0; i < maxIndex; i++) { try { int address = BitConverter.ToInt32(entityList, GameOffsets.CL_ENTITY_SIZE * i); if (address != 0) { if (i < 64) { if (csgo.Players[i] == null) { csgo.Players[i] = new Player(address, radarAddress + GameOffsets.CL_RADAR_SIZE * i, i + 1); } else { csgo.Players[i].Update(address, radarAddress + GameOffsets.CL_RADAR_SIZE * i, i + 1); } } else { if (csgo.Entities[i - csgo.Players.Length] == null) { csgo.Entities[i - csgo.Players.Length] = new Entity(address, radarAddress, i); } else { csgo.Entities[i - csgo.Players.Length].Update(address, radarAddress, i); } //if (!entityClasses.ContainsKey(csgo.Entities[i - csgo.Players.Length].ClassIDInt)) // entityClasses.Add(csgo.Entities[i - csgo.Players.Length].ClassIDInt, csgo.Entities[i - csgo.Players.Length].Name); if (!csgo.Entities[i - csgo.Players.Length].IsValid()) { csgo.Entities[i - csgo.Players.Length] = null; } else if (csgo.Entities[i - csgo.Players.Length].ClassID == ClassID.PlantedC4) { c4Planted = true; } } } } catch { } } //Get weaponID long weaponHandle = WinAPI.ReadInt32(handle, localAddress + GameOffsets.CL_LOCAL_ACTIVE_WEAPON); long weaponIDFirst = weaponHandle & 0xFFF; long weaponBase = WinAPI.ReadInt32(handle, entityListAddress + ((weaponIDFirst - 1) * 0x10)); int weaponID = WinAPI.ReadInt32(handle, weaponBase + GameOffsets.CL_LOCAL_WEAPON_ID); float accuracyPenality = WinAPI.ReadFloat(handle, weaponBase + GameOffsets.CL_LOCAL_WEAPON_ACCURACYPENALITY); //int weaponShotsFired = WinAPI.ReadInt32(handle, localPlayer + GameOffsets.CL_LOCAL_WEAPON_SHOTS_FIRED); //Debug.WriteLine(accuracyPenality); ZoomLevel zoom = (ZoomLevel)WinAPI.ReadMemory(handle, weaponBase + GameOffsets.CL_LOCAL_WEAPON_ZOOM, 1)[0]; bool isReloading = WinAPI.ReadMemory(handle, weaponBase + GameOffsets.CL_LOCAL_WEAPON_RELOAD, 1)[0] == 1; //Get clips long clip1 = WinAPI.ReadInt32(handle, dllClientAddress + GameOffsets.CL_RADAR_BASE); long clip2 = WinAPI.ReadInt32(handle, clip1 + GameOffsets.CL_WEAPON_OFFSET); int weaponClip1 = WinAPI.ReadInt32(handle, clip2 + GameOffsets.CL_WEAPON_AMMO_PRIM); int weaponClip2 = WinAPI.ReadInt32(handle, clip2 + GameOffsets.CL_WEAPON_AMMO_SEC); //Angles csgo.ViewAngles = ReadAngle(handle, enginePointer + GameOffsets.EN_VIEWANGLE_X); csgo.ViewOffset = ReadAngle(handle, localAddress + GameOffsets.CL_LOCAL_VIEWOFFSET); //overwrite data csgo.LocalPlayer = FindLocalPlayer(csgo.Players, localAddress); if (targetIndex > 0 && targetIndex <= 64) { csgo.TargetPlayer = csgo.Players[targetIndex - 1]; } else { csgo.TargetPlayer = null; } csgo.TargetIndex = targetIndex; if (csgo.C4Planted != c4Planted) { csgo.C4Planted = c4Planted; csgo.C4PlantTime = Environment.TickCount; } csgo.AccuracyPenality = accuracyPenality; csgo.C4Timer = WinAPI.ReadFloat(handle, dllClientAddress + GameOffsets.CL_NETVAR_MPC4TIMER); csgo.ServerMap = WinAPI.ReadString(handle, dllClientAddress + GameOffsets.CL_SRV_BASE + GameOffsets.CL_SRV_MAP, 32, Encoding.ASCII); csgo.ServerIP = WinAPI.ReadString(handle, dllClientAddress + GameOffsets.CL_SRV_BASE + GameOffsets.CL_SRV_IP, 32, Encoding.ASCII); csgo.ServerName = WinAPI.ReadString(handle, dllClientAddress + GameOffsets.CL_SRV_BASE + GameOffsets.CL_SRV_Name, 32, Encoding.ASCII); csgo.IsReloading = isReloading; csgo.IsShooting = WinAPI.ReadMemory(handle, dllClientAddress + GameOffsets.CL_LOCAL_BUTTONS_ATTACK, 1)[0] == 5; csgo.ViewMatrix = viewMatrix; csgo.WeaponClip1 = weaponClip1; csgo.WeaponClip2 = weaponClip2; csgo.WeaponFireRate = WeaponHandler.Instance.GetWeaponFireRate(weaponID); csgo.WeaponName = WeaponHandler.Instance.GetWeaponName(weaponID); csgo.WeaponType = WeaponHandler.Instance.GetWeaponType(weaponID); csgo.FlashMaxAlpha = WinAPI.ReadFloat(handle, localAddress + GameOffsets.CL_LOCAL_FLASH_MAX_ALPHA); csgo.FlashMaxDuration = WinAPI.ReadFloat(handle, localAddress + GameOffsets.CL_LOCAL_FLASH_MAX_DURATION); //csgo.WeaponShotsFired = weaponShotsFired; csgo.ZoomLevel = zoom; csgo.FirstPersonSpectator = false; csgo.Spectators.Clear(); if (csgo.LocalPlayer != null) { foreach (Player player in csgo.Players) { if (player == null) { continue; } if (player.SpectatorTarget == csgo.LocalPlayer.Index) { csgo.Spectators.Add(player); if (player.SpectatorView == Data.Enums.SpectatorView.Ego) { csgo.FirstPersonSpectator = true; } } } } if (csgo.LocalPlayer == null) { return; } if (csgo.GetValue <YesNo>("miscBunnyHopEnabled") == YesNo.Yes) { if (WinAPI.GetKeyDown(System.Windows.Forms.Keys.Space)) { int addrJmp = dllClientAddress + GameOffsets.CL_LOCAL_BUTTONS_JUMP; //Test stuff if (csgo.LocalPlayer.State == PlayerState.Jump)// && WinAPI.GetKeyDown(System.Windows.Forms.Keys.Up)) { byte[] buffer = BitConverter.GetBytes(4); WinAPI.WriteMemory(handle, addrJmp, buffer, buffer.Length); } else if (csgo.LocalPlayer.State == PlayerState.Stand) { byte[] buffer2 = BitConverter.GetBytes(5); WinAPI.WriteMemory(handle, addrJmp, buffer2, buffer2.Length); } } } if (csgo.GetValue <YesNo>("miscAutoPistolEnabled") == YesNo.Yes) { if (WinAPI.GetKeyDown(System.Windows.Forms.Keys.LButton) && csgo.WeaponType == WeaponType.Pistol) { IntPtr bytesWritten = IntPtr.Zero; int addrJmp = dllClientAddress + GameOffsets.CL_LOCAL_BUTTONS_ATTACK; int val = WinAPI.ReadInt32(handle, addrJmp); if (val == 0) { WinAPI.WriteMemory(handle, addrJmp, BitConverter.GetBytes(1), 4); } else { WinAPI.WriteMemory(handle, addrJmp, BitConverter.GetBytes(0), 4); } } } //Glow-stuff int glowAddr = WinAPI.ReadInt32(handle, dllClientAddress + GameOffsets.CL_GLOWMANAGER); int objectCount = WinAPI.ReadInt32(handle, dllClientAddress + GameOffsets.CL_GLOWMANAGER + 4); GlowObjectDefinition[] glowObjects = new GlowObjectDefinition[objectCount]; byte[] glowObjectData = WinAPI.ReadMemory(handle, glowAddr, GlowObjectDefinition.GetSize() * objectCount); for (int i = 0; i < glowObjects.Length; i++) { byte[] subData = new byte[GlowObjectDefinition.GetSize()]; Array.Copy(glowObjectData, GlowObjectDefinition.GetSize() * i, subData, 0, GlowObjectDefinition.GetSize()); glowObjects[i] = WinAPI.GetStructure <GlowObjectDefinition>(subData); } csgo.GlowObjects = glowObjects; tick++; }
protected override void OnDraw(SharpDX.Direct2D1.WindowRenderTarget device) { csgo = (CSGOImplementation)Program.GameImplementation; //Draw background FillRectangle(device, CSGOTheme.BackColor, X, Y, Width, Height); if (csgo.SignOnState < SignOnState.SIGNONSTATE_NEW || csgo.SignOnState > SignOnState.SIGNONSTATE_FULL) { DrawText(device, this.Theme.ForeColor * (0.75f + 0.25f * GetColorMultiplier()), this.X + this.Width / 2f - 50f, this.Y + this.Height / 2f + 8f, 200, 20, "Not connected", this.Font); return; } Player currentPlayer = csgo.GetCurrentPlayer(); if (csgo.Players == null) return; //Check validity if (csgo.Players == null) return; if (csgo.Players.Length == 0) return; if (currentPlayer == null) return; if (csgo.GetValue<YesNo>("radarEnabled") == YesNo.No) return; resolution = csgo.GetValue<float>("radarZoom"); Vector2 screenMid = new Vector2(X + Width / 2f, Y + Height / 2f); float scale = 2f / resolution; #region SoundESP if (csgo.GetValue<YesNo>("soundEspEnabled") == YesNo.Yes) { //float maxSpan = csgo.GetValue<float>("soundEspInterval"); float maxRange = csgo.GetValue<float>("soundEspRange"); maxRange /= 0.01905f; if ((maxRange * scale * 2f) <= this.Width) DrawEllipse(device, CSGOTheme.Line, screenMid.X, screenMid.Y, maxRange * scale * 2f, maxRange * scale * 2f, true, 1f); SoundESP sEsp = ((CSGOGameController)Program.GameController).SoundESP; if (((maxRange * scale * 2f) / 100f * sEsp.LastPercent) <= this.Width) DrawEllipse(device, CSGOTheme.Line, screenMid.X, screenMid.Y, (maxRange * scale * 2f) / 100f * sEsp.LastPercent, (maxRange * scale * 2f) / 100f * sEsp.LastPercent, true, 1f); } #endregion //Draw other players try { foreach (Player player in csgo.Players) { if (player != null) DrawPlayer(device, currentPlayer, player, screenMid, scale); } } catch { } //foreach (Entity entity in csgo.Entities) //{ // DrawEntity(device, currentPlayer, entity, screenMid, scale); //} //Draw "view" DrawText(device, CSGOTheme.ForeColor, X + 4, Y + 4, 100, 20, "Zoom: x" + Math.Round(1 / resolution, 2), FactoryManager.GetFont("smallSegoe")); FillPolygon(device, CSGOTheme.ViewColor, screenMid.X, screenMid.Y, screenMid.X - viewX * scale, screenMid.Y - viewY * scale, screenMid.X + viewX * scale, screenMid.Y - viewY * scale); DrawPolygon(device, CSGOTheme.ViewColorOutline, screenMid.X, screenMid.Y, screenMid.X - viewX * scale, screenMid.Y - viewY * scale, screenMid.X + viewX * scale, screenMid.Y - viewY * scale); //Draw player FillEllipse(device, currentPlayer.InTeam == Team.CounterTerrorists ? CSGOTheme.TeamCT : CSGOTheme.TeamT, screenMid.X, screenMid.Y, dotSize * scale, dotSize * scale, true); }
protected override void OnDraw(SharpDX.Direct2D1.WindowRenderTarget device) { if (once) { System.Drawing.Bitmap bmp = (System.Drawing.Bitmap)Resources.ResourceManager.GetObject("ranks"); try { this.ranksBmp = SDXBitmapFromSysBitmap(device, bmp); once = false; } catch { } } csgo = (CSGOImplementation)Program.GameImplementation; Player currentPlayer = csgo.GetCurrentPlayer(); if (csgo.SignOnState < SignOnState.SIGNONSTATE_PRESPAWN || csgo.SignOnState > SignOnState.SIGNONSTATE_FULL) return; if (csgo.Players == null) return; if (csgo.Players.Length == 0) return; if (currentPlayer == null) return; if (csgo.GetValue<YesNo>("espEnabled") == YesNo.No) return; try { DrawWorld(device, csgo); } catch { } try { foreach (Player player in csgo.Players) DrawPlayer(device, currentPlayer, player); foreach (Entity entity in csgo.Entities) DrawEntity(device, currentPlayer, entity); for (int i = csgo.Damages.Count - 1; i >= 0; i--) DrawDamage(device, currentPlayer, csgo.Damages[i]); } catch { } //DrawPunchAngles(device, csgo); }
private void DrawPlayer(SharpDX.Direct2D1.WindowRenderTarget device, Player currentPlayer, Player player, Vector2 screenMid, float scale) { if (player == null) { return; } if (!player.IsValid()) { return; } if (player.Index == currentPlayer.Index) { return; } if (csgo.GetValue <Target>("radarDrawTarget") == Target.Enemies && player.InTeam == currentPlayer.InTeam) { return; } if (csgo.GetValue <Target>("radarDrawTarget") == Target.Allies && player.InTeam != currentPlayer.InTeam) { return; } Vector2 point = player.Vector2; point.X = (currentPlayer.X - player.X) * scale * -1; point.Y = (currentPlayer.Y - player.Y) * scale; bool highlighted = csgo.Highlighted[player.Index - 1]; if (point.Length() > this.Width / 2f) { point.Normalize(); point *= this.Width / 2f; } point += screenMid; point = Geometry.RotatePoint(point, screenMid, currentPlayer.Yaw - 90); //If player is in range if (csgo.GetValue <OnOff>("radarDrawLines") == OnOff.On) { DrawLine(device, CSGOTheme.Line, point.X, point.Y, screenMid.X, screenMid.Y, 1f); } FillEllipse(device, player.InTeam == Team.CounterTerrorists ? CSGOTheme.TeamCT : CSGOTheme.TeamT, point.X + dotSize / 2f, point.Y + dotSize / 2f, dotSize, dotSize, true); if (highlighted) { DrawEllipse(device, (player.InTeam == Team.Terrorists ? CSGOTheme.TeamT : CSGOTheme.TeamCT) * (DateTime.Now.Millisecond % 1000f / 1000f), point.X + (dotSize / 2f * scale), point.Y + (dotSize / 2f * scale), dotSize * scale * 4f, dotSize * scale * 4f, true); } }
protected override void OnDraw(SharpDX.Direct2D1.WindowRenderTarget device) { csgo = (CSGOImplementation)Program.GameImplementation; //Draw background FillRectangle(device, CSGOTheme.BackColor, X, Y, Width, Height); if (csgo.SignOnState < SignOnState.SIGNONSTATE_NEW || csgo.SignOnState > SignOnState.SIGNONSTATE_FULL) { DrawText(device, this.Theme.ForeColor * (0.75f + 0.25f * GetColorMultiplier()), this.X + this.Width / 2f - 50f, this.Y + this.Height / 2f + 8f, 200, 20, "Not connected", this.Font); return; } Player currentPlayer = csgo.GetCurrentPlayer(); if (csgo.Players == null) { return; } //Check validity if (csgo.Players == null) { return; } if (csgo.Players.Length == 0) { return; } if (currentPlayer == null) { return; } if (csgo.GetValue <YesNo>("radarEnabled") == YesNo.No) { return; } resolution = csgo.GetValue <float>("radarZoom"); Vector2 screenMid = new Vector2(X + Width / 2f, Y + Height / 2f); float scale = 2f / resolution; #region SoundESP if (csgo.GetValue <YesNo>("soundEspEnabled") == YesNo.Yes) { //float maxSpan = csgo.GetValue<float>("soundEspInterval"); float maxRange = csgo.GetValue <float>("soundEspRange"); maxRange /= 0.01905f; if ((maxRange * scale * 2f) <= this.Width) { DrawEllipse(device, CSGOTheme.Line, screenMid.X, screenMid.Y, maxRange * scale * 2f, maxRange * scale * 2f, true, 1f); } SoundESP sEsp = ((CSGOGameController)Program.GameController).SoundESP; if (((maxRange * scale * 2f) / 100f * sEsp.LastPercent) <= this.Width) { DrawEllipse(device, CSGOTheme.Line, screenMid.X, screenMid.Y, (maxRange * scale * 2f) / 100f * sEsp.LastPercent, (maxRange * scale * 2f) / 100f * sEsp.LastPercent, true, 1f); } } #endregion //Draw other players try { foreach (Player player in csgo.Players) { if (player != null) { DrawPlayer(device, currentPlayer, player, screenMid, scale); } } } catch { } //foreach (Entity entity in csgo.Entities) //{ // DrawEntity(device, currentPlayer, entity, screenMid, scale); //} //Draw "view" DrawText(device, CSGOTheme.ForeColor, X + 4, Y + 4, 100, 20, "Zoom: x" + Math.Round(1 / resolution, 2), FactoryManager.GetFont("smallSegoe")); FillPolygon(device, CSGOTheme.ViewColor, screenMid.X, screenMid.Y, screenMid.X - viewX * scale, screenMid.Y - viewY * scale, screenMid.X + viewX * scale, screenMid.Y - viewY * scale); DrawPolygon(device, CSGOTheme.ViewColorOutline, screenMid.X, screenMid.Y, screenMid.X - viewX * scale, screenMid.Y - viewY * scale, screenMid.X + viewX * scale, screenMid.Y - viewY * scale); //Draw player FillEllipse(device, currentPlayer.InTeam == Team.CounterTerrorists ? CSGOTheme.TeamCT : CSGOTheme.TeamT, screenMid.X, screenMid.Y, dotSize * scale, dotSize * scale, true); }
public override void OnUpdaterTick() { if (Program.GameImplementation == null) { return; } if (Program.GameController == null) { return; } if (!Program.GameController.IsGameRunning) { return; } csgo = (CSGOImplementation)Program.GameImplementation; CSGOGameController csgoController = (CSGOGameController)Program.GameController; if (csgo.SignOnState != SignOnState.SIGNONSTATE_FULL) { return; } if (csgoController.MemoryUpdater.Tick == lastTick) { return; } lastTick = csgoController.MemoryUpdater.Tick; if (csgo.LocalPlayer == null) { return; } if (csgo.LocalPlayer.Health <= 0) { return; } if ((csgo.WeaponType == WeaponType.Grenade || csgo.WeaponType == WeaponType.Melee || csgo.WeaponType == WeaponType.Special)) { return; } if (csgo.WeaponClip1 <= 0) { return; } if (csgo.IsReloading) { return; } bool rcsCompensateOn = csgo.GetValue <OnOff>("aimbotCompensateRecoil") == OnOff.On; CSGOGameController controller = (CSGOGameController)Program.GameController; Vector3 rcsCompensation = Vector3.Zero; controller.RecoilControl.IsActive = lastTarget == null; if (csgo.GetValue <YesNo>("aimbotEnabled") == YesNo.No) { return; } if (csgo.GetValue <YesNo>("spectatorDisableAim") == YesNo.Yes && csgo.FirstPersonSpectator) { return; } //Aimkey not down //-> Reset target if (!Program.GameController.InputUpdater.KeyIsDown(Program.GameImplementation.GetValue <Keys>("aimbotKey"))) { lastTarget = null; lastAimBone = (AimBone)(((int)lastAimBone + 1) % 9); return; } //Aimkey down but dead target //-> Release key to reset target if (lastTarget != null) { if (!lastTarget.IsValid()) { if (csgo.GetValue <YesNo>("aimAllowAimJump") == YesNo.No) { return; } } } Vector2 screenM = new Vector2(csgo.ScreenSize.Width / 2f, csgo.ScreenSize.Height / 2f); AimBone bone = csgo.GetValue <AimBone>("aimbotBone"); if (bone != lastAimBone) { lastAimBone = bone; if (IsRandomAimBone(lastAimBone)) { randomAimBone = GetRandomBone(bone); } ; } if (IsRandomAimBone(bone)) { bone = randomAimBone; } //Aimkey down but no target //-> Get new target if (lastTarget == null || (lastTarget != null && !lastTarget.IsValid()) || csgo.GetValue <YesNo>("aimAllowAimJump") == YesNo.Yes) { Target target = csgo.GetValue <Target>("aimbotTarget"); AimMethod method = csgo.GetValue <AimMethod>("aimbotMethod"); float radius = csgo.GetValue <float>("aimbotRadius"); if (csgo.GetValue <OnOff>("aimbotRagemode") == OnOff.On) { currentImplementation = rageMode; } else { switch (method) { case AimMethod.LowestHP: currentImplementation = lowestHP; break; case AimMethod.NearestToCrosshair: currentImplementation = nearestToCrosshair; break; case AimMethod.NearestToPlayer: currentImplementation = nearestToPlayer; break; } } lastTarget = currentImplementation.GetAimTarget(csgo, target, bone, screenM, radius); } //No target found? //-> Break. if (lastTarget == null || (lastTarget != null && !lastTarget.IsValid())) { return; } //Vector2 aimPos = currentImplementation.AimAt(csgo, bone, csgo.GetPlayerByIndex(lastTarget.PlayerIndex)); //if (aimPos != lastPoint && aimPos != Vector2.Zero) //{ if (csgo.ViewAngles == Vector3.Zero) { return; } Vector3 viewAngles = csgo.ViewAngles; viewAngles = Geometry.CalcAngle(csgo.LocalPlayer.Vector3 + csgo.ViewOffset, csgo.Players[lastTarget.PlayerIndex - 1].Skeleton.GetBone(bone)); if (rcsCompensateOn) { viewAngles = viewAngles - csgo.LocalPlayer.PunchVector * 2; } if (csgo.GetValue <OnOff>("aimbotSmooth") == OnOff.On) { Vector3 smoothed = viewAngles - csgo.ViewAngles; smoothed *= csgo.GetValue <float>("aimbotSpeed") / 100f; if (Math.Abs(smoothed.Y) < 45) { viewAngles = csgo.ViewAngles + smoothed; } } viewAngles.Z = 0f; viewAngles = Geometry.ClampAngle(viewAngles); ((CSGOGameController)Program.GameController).MemoryUpdater.WriteViewAngles(viewAngles); //} }
public override void OnUpdaterTick() { if (Program.GameImplementation == null) { return; } if (Program.GameController == null) { return; } if (!Program.GameController.IsGameRunning) { return; } csgo = (CSGOImplementation)Program.GameImplementation; if (csgo == null) { return; } if (csgo.SignOnState != SignOnState.SIGNONSTATE_FULL) { return; } if (csgo.Players == null) { return; } if (csgo.GetValue <YesNo>("triggerbotEnabled") == YesNo.No) { return; } if (csgo.LocalPlayer == null) { return; } if (csgo.LocalPlayer.Health <= 0) { return; } if (csgo.WeaponClip1 == 0) { return; } if (csgo.IsReloading) { return; } if (csgo.IsShooting) { return; } if ((csgo.TargetPlayer == null && csgo.TargetIndex <= 64)) { targetSeen = false; return; } if (Program.GameImplementation.GetValue <YesNo>("spectatorDisableTrigger") == YesNo.Yes && csgo.FirstPersonSpectator) { return; } if (Program.GameImplementation.GetValue <YesNo>("triggerbotSnipersOnly") == YesNo.Yes && csgo.WeaponType != WeaponType.Sniper) { return; } Target target = csgo.GetValue <Target>("triggerbotTarget"); if (csgo.TargetIndex > 0 && csgo.TargetIndex <= 64 && csgo.TargetPlayer != null) { if (target == Target.Allies && csgo.TargetPlayer.InTeam != csgo.LocalPlayer.InTeam) { return; } if (target == Target.Enemies && csgo.TargetPlayer.InTeam == csgo.LocalPlayer.InTeam) { return; } } else { int idx = csgo.TargetIndex - 1 - csgo.Players.Length; if (idx < 0 || idx >= csgo.Entities.Length) { return; } if (csgo.Entities[idx] == null) { return; } if (csgo.Entities[idx].ClassID != Data.Enums.ClassID.CSPlayer && csgo.Entities[idx].ClassID != Data.Enums.ClassID.Chicken) { return; } } if (!targetSeen) { lastSeen = DateTime.Now.Ticks; targetSeen = true; } if (csgo.GetValue <float>("triggerbotSpeedThreshold") < csgo.GetPlayerKMH()) { return; } TimeSpan spanSeen = new TimeSpan(DateTime.Now.Ticks - lastSeen); if ( targetSeen && spanSeen.TotalMilliseconds >= csgo.GetValue <float>("triggerbotDelay") && (csgo.WeaponType == WeaponType.Sniper || 100f / 9f * csgo.LocalPlayer.PunchVector.Length() < csgo.GetValue <float>("triggerbotRecoilThreshold")) ) { if (csgo.WeaponType != WeaponType.Grenade && csgo.WeaponType != WeaponType.Melee && csgo.WeaponType != WeaponType.Special) { lastShot = DateTime.Now.Ticks; Shoot(); } else if (csgo.WeaponType == WeaponType.Melee) { if (csgo.Players != null && csgo.TargetPlayer != null) { float yaw1 = csgo.LocalPlayer.Yaw, yaw2 = csgo.TargetPlayer.Yaw; //while (yaw1 < 0f) // yaw1 += 360f; //while (yaw2 < 0f) // yaw2 += 360f; if (csgo.LocalPlayer.DistanceToOtherEntityInMetres(csgo.TargetPlayer) <= 1) { RightKnife(); } } } } }
public override void OnUpdaterTick() { CSGOImplementation csgo = (CSGOImplementation)Program.GameImplementation; Player localPlayer; if (csgo == null) { return; } localPlayer = csgo.LocalPlayer; if (csgo.LocalPlayer == null) { return; } if (csgo.Players == null) { return; } if (csgo.GetValue <YesNo>("soundEspEnabled") != YesNo.Yes) { return; } float maxSpan = csgo.GetValue <float>("soundEspInterval"); float maxRange = csgo.GetValue <float>("soundEspRange"); Program.SoundManager.SetVolume(csgo.GetValue <float>("soundEspVolume") / 100f); TimeSpan span = new TimeSpan(DateTime.Now.Ticks - lastBeep); if (span.TotalMilliseconds > maxSpan) { lastBeep = DateTime.Now.Ticks; return; } float minRange = maxRange / maxSpan * (float)span.TotalMilliseconds; LastPercent = 100f / maxSpan * (float)span.TotalMilliseconds; float leastDist = float.MaxValue; foreach (Player player in csgo.Players) { if (player == null) { continue; } if (player.Health == 0) { continue; } if (player.InTeam == localPlayer.InTeam) { continue; } float dist = localPlayer.DistanceToOtherEntityInMetres(player); if (dist <= minRange) { leastDist = dist; break; } } if (leastDist != float.MaxValue) { Program.SoundManager.Play((int)csgo.GetValue <float>("soundEspSound") - 1); Thread.Sleep(50); lastBeep = DateTime.Now.Ticks; } }
public override void OnUpdaterTick() { if (Program.GameImplementation == null) return; if (Program.GameController == null) return; if (!Program.GameController.IsGameRunning) return; csgo = (CSGOImplementation)Program.GameImplementation; CSGOGameController csgoController = (CSGOGameController)Program.GameController; if (csgo.SignOnState != SignOnState.SIGNONSTATE_FULL) return; if (csgoController.MemoryUpdater.Tick == lastTick) return; lastTick = csgoController.MemoryUpdater.Tick; if (csgo.LocalPlayer == null) return; if (csgo.LocalPlayer.Health <= 0) return; if ((csgo.WeaponType == WeaponType.Grenade || csgo.WeaponType == WeaponType.Melee || csgo.WeaponType == WeaponType.Special)) return; if (csgo.WeaponClip1 <= 0) return; if (csgo.IsReloading) return; bool rcsCompensateOn = csgo.GetValue<OnOff>("aimbotCompensateRecoil") == OnOff.On; CSGOGameController controller = (CSGOGameController)Program.GameController; Vector3 rcsCompensation = Vector3.Zero; controller.RecoilControl.IsActive = lastTarget == null; if (csgo.GetValue<YesNo>("aimbotEnabled") == YesNo.No) return; if (csgo.GetValue<YesNo>("spectatorDisableAim") == YesNo.Yes && csgo.FirstPersonSpectator) return; //Aimkey not down //-> Reset target if (!Program.GameController.InputUpdater.KeyIsDown(Program.GameImplementation.GetValue<Keys>("aimbotKey"))) { lastTarget = null; lastAimBone = (AimBone)(((int)lastAimBone + 1) % 9); return; } //Aimkey down but dead target //-> Release key to reset target if (lastTarget != null) if (!lastTarget.IsValid()) if (csgo.GetValue<YesNo>("aimAllowAimJump") == YesNo.No) return; Vector2 screenM = new Vector2(csgo.ScreenSize.Width / 2f, csgo.ScreenSize.Height / 2f); AimBone bone = csgo.GetValue<AimBone>("aimbotBone"); if (bone != lastAimBone) { lastAimBone = bone; if (IsRandomAimBone(lastAimBone)) { randomAimBone = GetRandomBone(bone); }; } if (IsRandomAimBone(bone)) bone = randomAimBone; //Aimkey down but no target //-> Get new target if (lastTarget == null || (lastTarget != null && !lastTarget.IsValid()) || csgo.GetValue<YesNo>("aimAllowAimJump") == YesNo.Yes) { Target target = csgo.GetValue<Target>("aimbotTarget"); AimMethod method = csgo.GetValue<AimMethod>("aimbotMethod"); float radius = csgo.GetValue<float>("aimbotRadius"); if (csgo.GetValue<OnOff>("aimbotRagemode") == OnOff.On) { currentImplementation = rageMode; } else { switch (method) { case AimMethod.LowestHP: currentImplementation = lowestHP; break; case AimMethod.NearestToCrosshair: currentImplementation = nearestToCrosshair; break; case AimMethod.NearestToPlayer: currentImplementation = nearestToPlayer; break; } } lastTarget = currentImplementation.GetAimTarget(csgo, target, bone, screenM, radius); } //No target found? //-> Break. if (lastTarget == null || (lastTarget != null && !lastTarget.IsValid())) return; //Vector2 aimPos = currentImplementation.AimAt(csgo, bone, csgo.GetPlayerByIndex(lastTarget.PlayerIndex)); //if (aimPos != lastPoint && aimPos != Vector2.Zero) //{ if (csgo.ViewAngles == Vector3.Zero) return; Vector3 viewAngles = csgo.ViewAngles; viewAngles = Geometry.CalcAngle(csgo.LocalPlayer.Vector3 + csgo.ViewOffset, csgo.Players[lastTarget.PlayerIndex - 1].Skeleton.GetBone(bone)); if (rcsCompensateOn) viewAngles = viewAngles - csgo.LocalPlayer.PunchVector * 2; if (csgo.GetValue<OnOff>("aimbotSmooth") == OnOff.On) { Vector3 smoothed = viewAngles - csgo.ViewAngles; smoothed *= csgo.GetValue<float>("aimbotSpeed") / 100f; if (Math.Abs(smoothed.Y) < 45) viewAngles = csgo.ViewAngles + smoothed; } viewAngles.Z = 0f; viewAngles = Geometry.ClampAngle(viewAngles); ((CSGOGameController)Program.GameController).MemoryUpdater.WriteViewAngles(viewAngles); //} }