Hallo Leute.
Ich Wollte Mir Eine Health Anzeige In Meine Form Bringen Und diese In Prograssbar 1 = Value Zeigen
So Nun Mein Problem.
Achja das Game : Dofus 2
Nun Weis Ich Nicht Genaus , Was Der Prozessname ist ^^^
Hier Mein Code :
Hoffe Ihr Könnt Mir Helfen Danke ^^
Ich Wollte Mir Eine Health Anzeige In Meine Form Bringen Und diese In Prograssbar 1 = Value Zeigen
So Nun Mein Problem.
Achja das Game : Dofus 2
Nun Weis Ich Nicht Genaus , Was Der Prozessname ist ^^^
Hier Mein Code :
Code:
Imports System.Runtime.InteropServices
Imports System.Text
Public Class Loader
<DllImport("kernel32.dll")> Private Shared Function ReadProcessMemory(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, ByVal lpBuffer As Byte(), ByVal nSize As UIntPtr, ByRef lpNumberOfBytesWritten As UInteger) As Boolean
End Function
<DllImport("kernel32.dll")> Private Shared Function OpenProcess(ByVal dwDesiredAccess As UInt32, ByVal bInheritHandle As [Boolean], ByVal dwProcessId As UInt32) As IntPtr
End Function
Private Sub timer_tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'Silkroad Online Prozess / In deinem Fall dann der Prozessname von Runes of Magic (RoM glaub ich)
Dim DofusMode_Processes As Process() = Process.GetProcessesByName("DofusMode.exe")
If DofusMode_Processes.Length > 0 Then
Dim DofusMode As Process = DofusMode_Processes(0)
Dim readHandle As IntPtr = OpenProcess(&H10, False, CUInt(DofusMode.Id))
Dim bytes As Byte() = New Byte(23) {}
Dim rw As Integer = 0
'Bei &HA9EE44 musst du deinen Pointer Eintragen. In VB musste vorne &H machen und dann was in CheatEngine rauskam z.B.: CheatEngine Wert wäre 00C83BEDD dann wäre es in VB: &HC83BEDD.
'current HP
ReadProcessMemory(readHandle, DirectCast(&HF1A70DC, Integer), bytes, DirectCast(24, Integer), rw)
Dim currHP As Integer = BitConverter.ToInt32(bytes, 0)
'Bei &H3BC deinen CheatEngine Wert für deine momentanen HP
'maximal HP
ReadProcessMemory(readHandle, DirectCast(&HF1A70E0, Integer), bytes, DirectCast(24, Integer), rw)
Dim maxHP As Integer = BitConverter.ToInt32(bytes, 0)
'Bei &H3B4 deinen CheatEngine Wert für deine maximalen HP
'current MP
ReadProcessMemory(readHandle, DirectCast(&H3B0, Integer), bytes, DirectCast(24, Integer), rw)
Dim currMP As Integer = BitConverter.ToInt32(bytes, 0)
'Bei &H3B0 deinen CheatEngine Wert für deine momentanen MP
'maximal MP
ReadProcessMemory(readHandle, DirectCast(&H3B8, Integer), bytes, DirectCast(24, Integer), rw)
Dim maxMP As Integer = BitConverter.ToInt32(bytes, 0)
'Bei &H3B8 deinen CheatEngine Wert für deine maximalen HP
'Level
ReadProcessMemory(readHandle, DirectCast(&HF1A70E8, Integer), bytes, DirectCast(24, Integer), rw)
Dim level As Byte = bytes(0)
'Bei &H7C8 deinen CheatEngine Wert für die Levelangabe
'Ausgabe
HPLabel.Text = "HP: " & currHP & "/" & maxHP 'Wird z.B. so dann angezeigt = HP: 5032/10000
MPLabel.Text = "MP: " & currMP & "/" & maxMP
LevelLabel.Text = "Level: " & level
'HP/MP kannste auch in eine Progressbar einfügen, damit es wie im Spiel aussieht:
'Für HP z.B.:
If currHP <= maxHP And currHP >= 0 Then
ProgressBar1.Maximum = maxHP 'Der maximale Wert der Progressbar sind dann deine maximalen HP
ProgressBar1.Value = currHP 'Der Wert der Progressbar ist dann so viel, wie deine momentanen HP
End If
End If
End Sub
Private Sub Loader_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Timer1.Start()
End Sub
End Class