Home of Gamehacking - Archiv
VB Trainer - Druckversion

+- Home of Gamehacking - Archiv (http://archiv-homeofgamehacking.de)
+-- Forum: Coding (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=15)
+--- Forum: Visual Basic 6, VB.NET (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=19)
+--- Thema: VB Trainer (/showthread.php?tid=969)

Seiten: 1 2 3


VB Trainer - Struppi - 10.04.2012

Hallo Liebe Community,

Ich möchte mir eine Trainer bauen für BlackOps (Zombie mode) mit VB..
Dazu muss ich noch sagen, das ich ein Anfänger bin in solchen sachen^^
Sowas wie Ammo / Leben / Geld + Teleport laden/Speichern habe ich hinbekommen, das funktioniert auch alles soweit.

Meine Frage ist nun, kann man auch für den Teleporter verschiedene koordinaten speichern (Also die X,Y,Z ...)
Sagen wir mal so ein beispiel: Taste; 1 = Teleporten zum Stromkasten
Ich meine das so das man nicht erst hinrennen muss und dann diese position speichern um diese später laden kann, also direkt ein hotkey mit der postition oder auch eine andere.......
Geht sowas? Wenn ja wie? hab nicht soviel ahnung von dem^^

Ich habe mir auch schon einige TUTs hier angeguckt, hat mir aber nicht weiter geholfen. Dann wäre noch eine frage, wie macht man eine Tastenbelegung mit an/aus funktion? Eine Option auf eine Taste belegen das weiß ich wie das geht, aber an/aus nicht^^
Ich hoffe habe mich nicht zu umständlich ausgedrückt. Happy



Mfg.


RE: VB Trainer - DNA - 10.04.2012

Willkommen bei HoG Wink
hab's mal in den richtigen Bereich verschoben Wink

Dein Vorhaben ist ohne Probleme möglich.
Zuerst mal zum AN/AUS ...

Erstell dir eine Variable z.B.

[code=VB]Dim InfAmmo as Int32 'oder Boolean[/code]

Bei deiner Tastenabfrage machst du dann einfach folgendes
[code=VB]
If GetAsyncKeyState(VK_NUMPAD0) Then
If InfAmmo = 0 then
'Hier kommt der Code rein, der den Cheat AKTIVIERT
InfAmmo = 1
ElseIf InfAmmo = 1 then
'Hier kommt der Code rein, der den Cheat DEAKTIVIERT
InfAmmo = 0
End If
End If
[/code]

Um deine andere Frage mit den festen, im Trainer hinterlegten Positionen
richtig beantworten zu können, müsste ich wissen, ob du mein Trainermodul
verwendest?!


RE: VB Trainer - Struppi - 10.04.2012

Ja ich verwende deinen Trainermodul.


RE: VB Trainer - DNA - 10.04.2012

Ok,

dann erstellst du dir neue Teleporter ... z.B. so

[code=VB]
Dim Stromkasten As New Teleporter
Dim Holztreppe As New Teleporter[/code]

Nun musst du die Koordinaten 1mal auslesen, die du im
Trainer hinterlegen möchtest.
Das machst du vom Grundsatz her genau so, als ob du die Koordinate speicherst,
jedoch lässt du die die gespeichert Koordinaten anzeigen.

[code=VB]
Stromkasten = Read_Koord(addi, &HOFFSET, 0) 'Solltest du ja kennen
msgbox ("X = " & Stromkasten.XKoord & Chr(13) & "Y = " & Stromkasten.YKoord & _
Chr(13) & "Z = " & Stromkasten.ZKoord)
[/code]
Die drei Werte, die dann in der MsgBox stehen, musst du dir notieren und zwar
bei jeder Position, die du im Trainer hinterlegen möchtest.
Wenn du das gemacht hast, kannst du die Werte in die Variablen schreiben,
z.B. bei Form_Load

[code=VB]
Stromkasten.XKoord = 'Hier kommt der notierte X-Wert rein
Stromkasten.YKoord = 'Hier kommt der notierte Y-Wert rein
Stromkasten.ZKoord = 'Hier kommt der notierte Z-Wert rein[/code]
Das machst du dann wieder für jede Position (natürlich in unterschiedliche Variablen Wink )

Wenn du das gemacht hast, kannst du direkt die Write_Koord funktion aufrufen

[code=VB]
Write_Koord(addi, &HOFFSET, Stromkasten, 0) 'Solltest du ja kennen[/code]

Wenn ich nichts vergessen habe, dann war's das schon Wink



RE: VB Trainer - Struppi - 10.04.2012

Ohje das hört sich ja kompliziert an.^^
Mal schaun ob ich das hinbekomme :blush:
Danke für deine Hilfe.


RE: VB Trainer - Struppi - 10.04.2012

Das untere will mir grad nicht so in den Kopf^^
Der Teleporter zum speichern und laden sieht bei mir so aus

[code=VB]
Dim Telepointer As Int32
Dim XKoord As Single
Dim YKoord As Single
Dim ZKoord As Single





Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If GetAsyncKeyState(VK_Numpad0) Then
GetProcessId(ProcName)

Dim caveaddr = &H764C91
Dim origaddr = &H764C91
RemoveProtection(ProcName, caveaddr, 1)
Dim cavebytes() As Byte = {&H90}
Dim origbytes() As Byte = {&H24, &HF3}
autopatcher(caveaddr, cavebytes)
autopatcher(origaddr, origbytes)

Telepointer = Read_Long(&H400348)
XKoord = Read_Long(Telepointer + &H1C08B64)
YKoord = Read_Long(Telepointer + &H1C08B68)
ZKoord = Read_Long(Telepointer + &H1C08B6C)

System.Threading.Thread.Sleep(500)
ElseIf GetAsyncKeyState(VK_Numpad1) Then
GetProcessId(ProcName)

If XKoord <> 0 Then
Write_Long(Telepointer + &H1C08B64, XKoord)
Write_Long(Telepointer + &H1C08B68, YKoord)
Write_Long(Telepointer + &H1C08B6C, ZKoord)
System.Threading.Thread.Sleep(500)

End If
End If
End Sub[/code]


RE: VB Trainer - DNA - 10.04.2012

In meinem aktuellen Trainermodul habe ich eine Funktion eingebaut und
durch diese Funktion kann man Koordinaten mit nur einer Zeile
lesen bzw. schreiben (+ evtl. CI), z.B. so

[code=VB]
Stromkasten = Read_Koord(addi, &HOFFSET, 0) 'lesen

Write_Koord(addi, &HOFFSET, Stromkasten, 0) 'schreiben
[/code]

In deinem Fall würde dass dann ungefähr so aussehen:
[code=VB]
Dim Telepointer as Int32
Dim Stromkasten as New Teleporter

If GetAsyncKeyState(VK_Numpad0) Then
GetProcessId(ProcName)
Telepointer = Read_Long(&H400348)
Stromkasten = Read_Koord(Telepointer + &H1C08B64, 0, 1)
System.Threading.Thread.Sleep(500)
ElseIf GetAsyncKeyState(VK_Numpad1) Then
GetProcessId(ProcName)

If NOT Stromkasten.XKoord = 0 Then
Telepointer = Read_Long(&H400348)
Write_Koord(Telepointer + &H1C08B64, 0, Stromkasten, 1)
System.Threading.Thread.Sleep(500)
End If
End If[/code]
Das sollte zum lesen/schreiben eigentlich reichen

Um die Koordinaten für die einzelnen Positionen zu bekommen, müsstest du
folgenden Code benutzen:

[code=VB]
Dim Telepointer as Int32
Dim Stromkasten as New Teleporter

If GetAsyncKeyState(VK_Numpad0) Then
GetProcessId(ProcName)
Telepointer = Read_Long(&H400348)
Stromkasten = Read_Koord(Telepointer + &H1C08B64, 0, 1)
msgbox ("X = " & Stromkasten.XKoord & Chr(13) & "Y = " & Stromkasten.YKoord & _
Chr(13) & "Z = " & Stromkasten.ZKoord)
System.Threading.Thread.Sleep(500)
ElseIf GetAsyncKeyState(VK_Numpad1) Then
GetProcessId(ProcName)

If NOT Stromkasten.XKoord = 0 Then
Telepointer = Read_Long(&H400348)
Write_Koord(Telepointer + &H1C08B64, 0, Stromkasten, 1)
System.Threading.Thread.Sleep(500)
End If
End If[/code]

Jetzt wird dir jedes mal, wenn du den lesen Hotkey drückst, deine aktuellen X, Y und Z Koordinaten
angezeigt.
Diese notierst du dir und machst dann weiter, so wie ich es oben schon beschrieben habe.

Wenn du noch fragen hast, frag ruhig Wink


RE: VB Trainer - Struppi - 10.04.2012

Danke nochmals Wink
Wenn ich fragen habe, werde ich die auch stellen^^
Ehm, das Trainermodul was bei dem einen TUT Video bei war ist ja das richtige ?


RE: VB Trainer - DNA - 10.04.2012

Jein ... das ist das alte ^^
Nimm das hier
Trainermodul 2.1
Basiert auf meinem, Hatschi hat dort nur kleine Änderungen vorgenommen.


RE: VB Trainer - Struppi - 11.04.2012

So nun soweit so gut^^
Ich habs hingekriegt, das die Koordinaten ausgelesen werden.
Ich habe es ein wenig umgebaut, weil es bei mir jetzt nicht anders ging!
Aber es funktioniert irgendwie, wie oben beschrieben habe ich die Daten notiert und eingefügt. Im Spiel portet er auch dahin wo er hin soll^^
Aber bei mir sieht der Code nun so aus^^


[code=VB]Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
GetProcessId(ProcName)

If GetAsyncKeyState(VK_Numpad3) Then

Stromkasten = Read_Koord(Telepointer, &H1C08B64, 0)
MsgBox("X = " & Stromkasten.XKoord & Chr(13) & "Y = " & Stromkasten.YKoord & _
Chr(13) & "Z = " & Stromkasten.ZKoord)

ElseIf GetAsyncKeyState(VK_Numpad4) Then
GetProcessId(ProcName)

If Not Stromkasten.XKoord = 0 Then
Write_Long(Telepointer + &H1C08B64, Stromkasten.XKoord)
Write_Long(Telepointer + &H1C08B68, Stromkasten.YKoord)
Write_Long(Telepointer + &H1C08B6C, Stromkasten.ZKoord)
System.Threading.Thread.Sleep(500)
End If
End If[/code]