Anmeldungsdatum: Aug 2007
Beiträge: 8643
Benutzer-Bewertung:
|
Kategorie: Counter-Strike: Source Entwickler: cskimmo
Beschreibung: External radar for css
VB Code: [ol]Public Class sfdgsdgfsdgfds Public Declare Function ReadProcessMemory Lib "KERNEL32" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Long, ByVal Size As Long, ByRef BytesWritten As Long) As Long Public Declare Function ReadFloatMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal Handle As Integer, ByVal Address As Integer, ByRef Value As Single, ByVal Size As Long, ByRef BytesWritten As Long) As Long Public Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer Structure localplayer_t Public address As Integer Public team As Integer Public position_1 As Single Public position_2 As Single Public viewangle_2 As Single End Structure Public LocalPlayer As localplayer_t Structure radarstruct_t Public address As Integer Public team As Integer Public position_1 As Single Public position_2 As Single Public hp As Integer End Structure Public RadarStruct(120) As radarstruct_t Structure radar_data_t Public valid As Boolean Public color As Brush Public position As Point End Structure Public RadarData(120) As radar_data_t Structure radar_t Public position As Point Public size As Point Public backcolor As Brush Public bordercolor As Brush Public maxdistance As Integer Public maxplayer As Integer Public opacity As Single Public showfriends As Boolean End Structure Dim Radar As radar_t Dim thread1 As System.Threading.Thread Dim thread2 As System.Threading.Thread Dim hprocess As Process() Dim ready As Boolean = False Dim client_base As Integer Dim engine_base As Integer Dim fac As Single = 0.5 Dim radtodeg As Single = 57.295779513082323 Dim my_id As Integer Dim localplayer_offset As Integer = &H55DB34 Dim my_id_offset As Integer = &H56B3E4 Dim my_position_offset As Integer = &H3D0380 Dim my_viewangle_offset As Integer = &H474A1C Dim radarstruct_offset As Integer = &H5A36A8 Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing End End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load hprocess = Process.GetProcessesByName("hl2") If hprocess.Length = 0 Then MsgBox("Start Counter-Strike Source before") End Else Control.CheckForIllegalCrossThreadCalls = False For i As Integer = 0 To 20 For Each [Module] As System.Diagnostics.ProcessModule In hprocess(0).Modules Try If [Module].ModuleName = "client.dll" Then client_base = [Module].BaseAddress End If If [Module].ModuleName = "engine.dll" Then engine_base = [Module].BaseAddress End If Catch ex As Exception End Try Next Threading.Thread.Sleep(1000) If client_base > 0 And engine_base > 0 Then Exit For End If If i = 20 Then End End If Next Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None Me.TopMost = True Me.BringToFront() Me.DoubleBuffered = True ' ||| Settings ||| Radar.backcolor = New SolidBrush(Color.FromArgb(50, 50, 50)) Radar.bordercolor = New SolidBrush(Color.FromArgb(65, 65, 65)) Radar.position = New Point(0, 0) 'Useless Radar.size = New Point(200, 200) Radar.maxdistance = 20 Radar.maxplayer = 64 Radar.opacity = 99 Radar.showfriends = True ' ||| Settings ||| Me.Size = New Point(Radar.size.X + 1, Radar.size.Y + 1) Me.Opacity = Radar.opacity / 100 thread1 = New System.Threading.Thread(AddressOf th1) thread1.Start() thread2 = New System.Threading.Thread(AddressOf th2) thread2.Start() ready = True End If End Sub Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint If ready Then e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.None e.Graphics.FillRectangle(Radar.backcolor, Radar.position.X, Radar.position.Y, Radar.size.X + 1, Radar.size.Y + 1) For i As Integer = 2 To Radar.size.X / 3 - 4 For j As Integer = 2 To Radar.size.X / 3 - 4 ' e.Graphics.FillRectangle(Brushes.Black, Radar.position.X + i * 3 + 2, Radar.position.Y + j * 3 + 2, 1, 1) Next Next e.Graphics.DrawRectangle(Pens.Black, Radar.position.X, Radar.position.Y, Radar.size.X, Radar.size.Y) e.Graphics.DrawRectangle(Pens.Black, Radar.position.X, Radar.position.Y, Radar.size.X, Radar.size.Y) e.Graphics.FillRectangle(Brushes.Black, Radar.position.X + Radar.size.X * fac, Radar.position.Y, 1, Radar.size.Y) e.Graphics.FillRectangle(Brushes.Black, Radar.position.X, Radar.position.Y + Radar.size.X * fac, Radar.size.Y, 1) e.Graphics.DrawRectangle(Pens.Black, Radar.position.X + Radar.size.X * fac - 2, Radar.position.Y + Radar.size.Y * fac - 2, 4, 4) e.Graphics.FillRectangle(Brushes.LightGray, Radar.position.X + Radar.size.X * fac - 1, Radar.position.Y + Radar.size.Y * fac - 1, 3, 3) For i As Integer = 0 To Radar.maxplayer - 1 If RadarData(i).valid Then e.Graphics.DrawRectangle(Pens.Black, Radar.position.X + Radar.size.X * fac + RadarData(i).position.X - 2, Radar.position.Y + Radar.size.Y * fac + RadarData(i).position.Y - 2, 4, 4) e.Graphics.FillRectangle(RadarData(i).color, Radar.position.X + Radar.size.X * fac + RadarData(i).position.X - 1, Radar.position.Y + Radar.size.Y * fac + RadarData(i).position.Y - 1, 3, 3) End If Next End If End Sub Function th1() Dim delta_x As Single Dim delta_y As Single Dim Dist As Single Dim yaw_id As Single Dim yaw_delta As Single Dim temp_id_x As Single Dim temp_id_y As Single While (1) ReadProcessMemory(hprocess(0).Handle, client_base + localplayer_offset, LocalPlayer.address, 4, 0) ReadProcessMemory(hprocess(0).Handle, LocalPlayer.address + &H98, LocalPlayer.team, 4, 0) ReadFloatMemory(hprocess(0).Handle, engine_base + my_position_offset, LocalPlayer.position_1, 8, 0) ReadFloatMemory(hprocess(0).Handle, engine_base + my_viewangle_offset + 4, LocalPlayer.viewangle_2, 4, 0) ReadProcessMemory(hprocess(0).Handle, engine_base + my_id_offset, my_id, 4, 0) ReadProcessMemory(hprocess(0).Handle, client_base + radarstruct_offset, RadarStruct(0).address, 4, 0) For i As Integer = 0 To Radar.maxplayer - 1 ReadProcessMemory(hprocess(0).Handle, RadarStruct(0).address + (i * &H140) + &H5C, RadarStruct(i).hp, 4, 0) ReadProcessMemory(hprocess(0).Handle, RadarStruct(0).address + (i * &H140) + &H58, RadarStruct(i).team, 4, 0) ReadFloatMemory(hprocess(0).Handle, RadarStruct(0).address + (i * &H140) + &H60, RadarStruct(i).position_1, 8, 0) If (LocalPlayer.team <> RadarStruct(i).team Or Radar.showfriends) And i <> my_id And RadarStruct(i).hp > 0 And Not (RadarStruct(i).position_1 = 0 And RadarStruct(i).position_2 = 0) Then If RadarStruct(i).position_1 = LocalPlayer.position_1 Then RadarStruct(i).position_1 += 0.0001 If RadarStruct(i).position_2 = LocalPlayer.position_2 Then RadarStruct(i).position_2 += 0.0001 delta_x = Math.Abs(RadarStruct(i).position_1 - LocalPlayer.position_1) delta_y = Math.Abs(RadarStruct(i).position_2 - LocalPlayer.position_2) Dist = ((delta_x ^ 2) + (delta_y ^ 2)) ^ 0.5 yaw_id = Math.Atan(delta_y / delta_x) * radtodeg If RadarStruct(i).position_1 < LocalPlayer.position_1 And RadarStruct(i).position_2 > LocalPlayer.position_2 Then yaw_id = 180 - yaw_id Else If RadarStruct(i).position_1 < LocalPlayer.position_1 And RadarStruct(i).position_2 < LocalPlayer.position_2 Then yaw_id = -180 + yaw_id Else If RadarStruct(i).position_1 > LocalPlayer.position_1 And RadarStruct(i).position_2 < LocalPlayer.position_2 Then yaw_id = yaw_id * -1 End If End If End If yaw_delta = LocalPlayer.viewangle_2 - yaw_id - 90 temp_id_x = (Math.Cos(yaw_delta / radtodeg) * Dist) / Radar.maxdistance temp_id_y = (Math.Sin(yaw_delta / radtodeg) * Dist) / Radar.maxdistance If temp_id_x > ((Radar.size.X - 20) / 2) - 1 Then temp_id_x = ((Radar.size.X - 20) / 2) - 1 Else If temp_id_x < -((Radar.size.X - 20) / 2) + 1 Then temp_id_x = -((Radar.size.X - 20) / 2) + 1 End If End If If temp_id_y > ((Radar.size.X - 20) / 2) - 1 Then temp_id_y = ((Radar.size.X - 20) / 2) - 1 Else If temp_id_y < -((Radar.size.X - 20) / 2) + 1 Then temp_id_y = -((Radar.size.X - 20) / 2) + 1 End If End If RadarData(i).valid = True RadarData(i).position = New Point(temp_id_x, temp_id_y) If RadarStruct(i).team = 2 Then RadarData(i).color = Brushes.Red Else RadarData(i).color = New SolidBrush(Color.FromArgb(0, 130, 255)) End If Else RadarData(i).valid = False End If Next Threading.Thread.Sleep(5) End While End Function Function th2() Dim temp_pos As Point Dim pressed As Boolean = False Dim locked As Boolean = False While (1) Me.TopMost = True If GetAsyncKeyState(1) Then If pressed = False Then pressed = True If MousePosition.X > Me.Location.X + Radar.position.X And MousePosition.X < Me.Location.X + Radar.position.X + Radar.size.X And MousePosition.Y > Me.Location.Y + Radar.position.Y And MousePosition.Y < Me.Location.Y + Radar.position.Y + Radar.size.Y Then If locked = False Then locked = True temp_pos = New Point(MousePosition.X - Me.Location.X, MousePosition.Y - Me.Location.Y) End If End If End If If locked = True Then Me.Location = New Point(MousePosition - temp_pos) End If Else locked = False pressed = False End If If GetAsyncKeyState(123) Then 'F12 End End If hprocess = Process.GetProcessesByName("hl2") If hprocess.Length = 0 Then End End If Me.Invalidate() Threading.Thread.Sleep(5) End While End FunctionEnd Class[/ol]
Screenshots:
Download: External css radar
|