|
You last visited: Today at 10:54
Advertisement
AutoIT Pointersuche mit CE
Discussion on AutoIT Pointersuche mit CE within the AutoIt forum part of the Coders Den category.
10/29/2012, 13:38
|
#1
|
elite*gold: 0
Join Date: Jul 2010
Posts: 28
Received Thanks: 0
|
AutoIT Pointersuche mit CE
Hi
Ich bin auf der suche nach einem TUT das mir die Pointersuche für das MMORPG Grand Fantasia erklärt bzw. wenn möglich per Video zeigt.
Es gab mal von FeonDust ein video das aber leider gelöscht wurde.
Es geht darum die Hp und MP werte zu finden
und die
Monster Address
um sie dann in die .ini einzutragen
Könnt ihr mir in dieser Problematik helfen?
Mfg Hisamela
PS: Ich hoffe ich habe das richtige UnterForum erwischt
|
|
|
11/01/2012, 15:56
|
#2
|
elite*gold: 0
Join Date: Dec 2008
Posts: 371
Received Thanks: 115
|
such einfach auf youtube nach irgendeinem pointer video! da findeste schon was! es ist bei jedem spiel das gleiche mit der pointersuche.
|
|
|
11/01/2012, 16:58
|
#3
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Mit AutoIt hat es wenig zu tun.
Du kannst deine .ini auf zwei Arten aufbauen.
Code:
[Adresse]
HP = 0x1234ABCD
In diesem Fall kannst du den Wert einfach auslesen und verwenden:
Code:
$AdresseHP = IniRead("Adressen.ini", "Adresse", "HP", 0)
- Sollte das "0x" Präfix stören kannst du es auch weglassen.
Code:
[Adresse]
HP = 1234ABCD
Das setzt aber voraus, dass du im Script explizit angibst, dass der Wert in Hexadezimalzeichen vorliegt und "konvertiert" werden muss:
Code:
$AdresseHP = Dec(IniRead("Adressen.ini", "Adresse", "HP", 0))
|
|
|
11/01/2012, 23:36
|
#4
|
elite*gold: 0
Join Date: Jul 2010
Posts: 28
Received Thanks: 0
|
Ok
Ahm das Bot tool ist halt ein autoit dachte ich
Und die Werte die ich suche sind folgende
Pointer= =>0x009AC9C8 <=
MonsterAddress= =>0x009ACA4C <=
Wegen dem Youtube video hatte ich schon geschaut Blick aber leider wirklich nicht ganz durch
Etwas neu für mich
Aber vielen dank schonmal für die Antworten
Ps: soll ich mal den ganzen Text der .ini Posten ?!?
Vielleicht hilft es besser mich zu verstehen was ich will :-D
|
|
|
11/02/2012, 00:30
|
#5
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Bei den Pointer für Grand Fantasia möchte ich dir nicht helfen, ich habe keine Lust mir das Spiel zu downloaden und mich zu registrieren.
Ich nehme mal an, dass die .ini dazu dienen soll den Benutzern zu erlauben die Pointer selbst zu ändern bzw. aktualisieren.
Für mein Beispiel habe ich eine exemplarische .ini erstellt:
Code:
[Addresses]
BaseAddress = 0x1234ABCD
[Offsets]
CharStruct = 0xA00
CharCurHP = 0xB00
CharMaxHP = 0xB04
CharCurMP = 0xC00
CharMaxMP = 0xC04
Dein Script muss noch irgendwie mit Pointern umgehen können und ich nehme mal an, dass du dafür nicht unbedingt selbst Funktionen schreiben möchtest. In der "NomadMemory.au3" oder auch "Pointer.au3" findest du _MemoryPointer...() Funktionen.
Naja, ich habe keine Ahnung, was du überhaupt schon weißt. Ich bin gerade auch zu faul alles detailliert zu schreiben.
Ich habe deinen Aussagen einfach mal Folgendes entnommen, aber vielleicht bezweckst du mit der .ini ja auch was anderes.
Code:
#RequireAdmin
#include <NomadMemory.au3>
GUICreate("", 100, 50)
$lbl_CharHP = GUICtrlCreateLabel("HP: 0 / 0", 5, 5, 100, 17)
$lbl_CharMP = GUICtrlCreateLabel("MP: 0 / 0", 5, 30, 100, 17)
GUISetState()
Dim $Handle, $Value_CharHP, $Value_CharMP
#region Pointer
$IniFile = @ScriptDir & "\Pointer.ini"
$SectionAddresses = "Addresses"
$SectionOffsets = "Offsets"
$BaseAddress = IniRead($IniFile, $SectionAddresses, "BaseAddress", 0)
$Offset_PlayerStruct = IniRead($IniFile, $SectionOffsets, "PlayerStruct", 0)
Dim $Offsets_CharCurHP[3] = [0, $Offset_PlayerStruct, IniRead($IniFile, $SectionOffsets, "CharCurHP", 0)]
Dim $Offsets_CharMaxHP[3] = [0, $Offset_PlayerStruct, IniRead($IniFile, $SectionOffsets, "CharMaxHP", 0)]
Dim $Offsets_CharCurMP[3] = [0, $Offset_PlayerStruct, IniRead($IniFile, $SectionOffsets, "CharCurMP", 0)]
Dim $Offsets_CharMaxMP[3] = [0, $Offset_PlayerStruct, IniRead($IniFile, $SectionOffsets, "CharMaxMP", 0)]
#endregion
Do
$ProcessId = ProcessExists("GrandFantasia.exe")
If $ProcessId > 0 Then
If Not IsArray($Handle) Then
$Handle = _MemoryOpen($ProcessId)
;~ If @error Then MsgBox(48, "Fehler", "_MemoryOpen() Fehler: " & @error)
Else
$Data_CharCurHP = _MemoryPointerRead($BaseAddress, $Handle, $Offsets_CharCurHP)
$Data_CharMaxHP = _MemoryPointerRead($BaseAddress, $Handle, $Offsets_CharMaxHP)
$Data_CharCurMP = _MemoryPointerRead($BaseAddress, $Handle, $Offsets_CharCurMP)
$Data_CharMaxMP = _MemoryPointerRead($BaseAddress, $Handle, $Offsets_CharMaxMP)
If IsArray($Data_CharCurHP) And IsArray($Data_CharMaxHP) Then
If $Data_CharCurHP[1] <> $Value_CharHP Then
$Value_CharHP = $Data_CharCurHP[1]
GUICtrlSetData($lbl_CharHP, "HP: " & $Data_CharCurHP[1] & " / " & $Data_CharMaxHP[1])
EndIf
Else
;~ MsgBox(48, "Fehler", "Fehler beim Lesevorgang der HP")
EndIf
If IsArray($Data_CharCurMP) And IsArray($Data_CharMaxMP) Then
If $Data_CharCurMP[1] <> $Value_CharMP Then
$Value_CharMP = $Data_CharCurMP[1]
GUICtrlSetData($lbl_CharMP, "MP: " & $Data_CharCurMP[1] & " / " & $Data_CharMaxMP[1])
EndIf
Else
;~ MsgBox(48, "Fehler", "Fehler beim Lesevorgang der MP")
EndIf
EndIf
Else
If IsArray($Handle) Then Exit
EndIf
Sleep(10)
Until GUIGetMsg() == -3
Bei Fragen einfach im Thread schreiben.
|
|
|
11/02/2012, 00:39
|
#6
|
elite*gold: 0
Join Date: Jul 2010
Posts: 28
Received Thanks: 0
|
Kein Problem danke dir
Ich schreibe morgen mal auf was ich noch alles weiß beziehungsweise was ich noch aus dem Video Tutoriel von FeoDust weiß
Auch poste ich mal die .ini die dazu da ist um alle Einstellungen für den Bot zu schreiben
|
|
|
11/03/2012, 01:08
|
#7
|
elite*gold: 0
Join Date: Jul 2010
Posts: 28
Received Thanks: 0
|
Guten Morgen
ich glaube ich habe doch etwas mehr an wissen vermittelt als ich habe - leider neuland :-D
gut und hier mal was in der Config.ini drinne steht um den bot einzustellen
Code:
[Main]
StartMe=F3
StopMe=F4
Pointer=0x009AC9C8
MonsterAddress=0x009ACA4C
Counter=99999999
[Heal]
UseHeal=1
HealHP=50
HealMP=25
SitHP=25
HPpotion="0"
MPpotion="0"
HealDelay=150
[Attack]
Attack1="1"
Attack2="3"
Attack3=""
Attack4=""
Attack5=""
AttackDelay1=600
AttackDelay2=600
AttackDelay3=50
AttackDelay4=50
AttackDelay5=50
[Misc]
Loot="2"
LootAmount=1
LootDelay=
Sit="x"
Mount=""
EnableSit=1
SitDelay=10000
Und das steht in der Anleitung drinnen wie es eigentlich gehen sollte ...
Code:
For Pointer:
1. Scan your HP value 4byte
2. Narrow it down to get 2 addresses
3. Take the first address, add it to cheat table
4. Right click, "find out what accesses"
5. Double click on one address which has a "eax+4" or anything that has a +4
6. Click the hex checkbox next to the value textbox in CE's search
7. With the new popup at the middle it says "The probably pointer is" take that address and type it into CE's search and do a scan
8. Doubleclick the first address you get to add it to cheat table
9. Repeat #4-7 except in step 5, it will say +8.
10. You'll receive a green(static) address that begins with 009 after the second search, this is the address you put into the INI file under "Pointer="
For MonsterAddress:
1. Search 0 when a monster/NPC isn't clicked
2. Click a monster/NPC so their head appears at the top of your game
3. Search 1
4. Right click your screen to un-select the monster/NPC
5. Repeat #1-4 until you get your green address beginning with 009
aber alleine wenn ich auf Punkt 5 gehe bei der HP suche gibts nix da er ewig sucht
und bei der Monster Adress gibts nix mit 009
Kann es sein das das nur bei XP geht und nicht mit win 7
Ich hoffe ich habe mich trotz meiner leihen haften Bemühungen verständlich ausgedrückt ;-)
|
|
|
11/03/2012, 13:06
|
#8
|
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,149
|
Ich bin eigentlich davon ausgegangen, dass du noch nichts weißt. Insofern habe ich schon richtig getippt. Du solltest dich aber auf jeden Fall besser und verständlicher ausdrücken. Aus dem ersten Beitrag von dir geht nicht hervor, dass du die Einstellungen des Bots speichern möchtest.
Ich erstelle bei solchen Dingen selten Scripts anhand der Vorgaben und Wünschen. Deshalb ist der genaue Inhalt der .ini für mich auch eher irrelevant.
Je nachdem vorauf du Wert legst kann das Speichern und Laden kurz oder lang ausfallen. Gestaltest du es dynamisch fällt dein Code kürzer aus, büßt dafür beim coding allerdings an der Verständlichkeit.
Zum Speichern brauchst du im Prinzip nur zwei Funktionen: IniWrite() und GUICtrlRead().
Schau dir dafür am besten die Hilfe an, die ist bei AutoIt sehr umfangreich und hilfreich.
Zum Laden brauchst du schon drei Funktionen: IniRead(), GUICtrlSetData() und GUICtrlSetState().
Letzteres wird benötigt um den Status der Checkbox zu setzen. Mit GUICtrlSetData() setzt du die entsprechenden Werte wieder in die Eingabefelder. Es ist sehr simpel, mit der Hilfe solltest du da alleine zurecht kommen.
Mein Beispiel könnte dich evtl. etwas verwirren:
Code:
$IniFile = @ScriptDir & "\Settings.ini"
$IniSectionAttack = "Attack"
$IniSectionAttackCast = "AttackCast"
$IniSectionAttackCooldown = "AttackCooldown"
Dim $ckb_Attack[10], $Size = UBound($ckb_Attack)
Dim $inp_AttackCastT[$Size]
Dim $inp_AttackCoolDT[$Size]
GUICreate("", 280, $Size * 25 + 5)
For $i = 0 To $Size - 1
$Height = $i * 25 + 5
$ckb_Attack[$i] = GUICtrlCreateCheckbox("Attack " & $i + 1, 5, $Height, 65)
GUICtrlCreateLabel("Cast Time", 80, $Height + 4, 50)
$inp_AttackCastT[$i] = GUICtrlCreateInput("", 135, $i * 25 + 5, 35)
GUICtrlCreateLabel("Cooldown", 185, $Height + 4, 50)
$inp_AttackCoolDT[$i] = GUICtrlCreateInput("", 240, $i * 25 + 5, 35)
GUICtrlSetState($ckb_Attack[$i], IniRead($IniFile, $IniSectionAttack, $i + 1, 4))
GUICtrlSetData($inp_AttackCastT[$i], IniRead($IniFile, $IniSectionAttackCast, $i + 1, ""))
GUICtrlSetData($inp_AttackCoolDT[$i], IniRead($IniFile, $IniSectionAttackCooldown, $i + 1, ""))
$CheckState = GUICtrlRead($ckb_Attack[$i])
For $Control = $ckb_Attack[$i] + 1 To $inp_AttackCoolDT[$i]
_SetState($Control, $CheckState)
Next
Next
GUISetState()
Do
$Msg = GUIGetMsg()
For $i = 0 To $Size - 1
If $Msg == $ckb_Attack[$i] Then
$CheckState = GUICtrlRead($ckb_Attack[$i])
For $Control = $ckb_Attack[$i] + 1 To $inp_AttackCoolDT[$i]
_SetState($Control, $CheckState)
Next
EndIf
Next
Sleep(10)
Until $Msg == -3 ;$GUI_EVENT_CLOSE
_SaveSettings()
Func _SetState($Control, $CheckState)
If $CheckState == 1 Then ;$GUI_CHECKED
GUICtrlSetState($Control, 64) ;$GUI_ENABLE
Else;If $CheckState == 4 Then ;$GUI_UNCHECKED
GUICtrlSetState($Control, 128) ;$GUI_DISABLE
EndIf
EndFunc
Func _SaveSettings()
For $i = 0 To $Size - 1
$Key = $i + 1
IniWrite($IniFile, $IniSectionAttack, $Key, GUICtrlRead($ckb_Attack[$i]))
IniWrite($IniFile, $IniSectionAttackCast, $Key, GUICtrlRead($inp_AttackCastT[$i]))
IniWrite($IniFile, $IniSectionAttackCooldown, $Key, GUICtrlRead($inp_AttackCoolDT[$i]))
Next
EndFunc
Die Anleitung vergisst du am besten ganz schnell wieder. Die wird veraltet sein. Guck dir allgemeine Tutorials an und wende das Wissen dann auf das Spiel an. Das Betriebssystemversionen von Windows haben damit nichts zu tun, es liegt am Programm selbst, sprich das Spiel.
|
|
|
Similar Threads
|
MW3 Stürzt bei Pointersuche ab
05/09/2012 - Call of Duty - 0 Replies
Hey leute wollte mir nen eigenen hack erstellen für den Singelplayer von MW3 aber immer wenn ich nach pointern suche stürzt das spiel ab
ist kein hackrequest also ist es erlaubt das hier zu posten :p
|
{FRage}Pointersuche --> spiel absturz
10/15/2010 - General Coding - 4 Replies
hi,
also mein problem ist sobald ich mit pointer suche mit CE anfange stürtzt das spiel ab....
hat irgendwer ne lösung das es nicht abstürtzt?
|
Pointersuche
05/09/2009 - GW Bots - 14 Replies
Hallo!
Ich habe mich auf die Suche nach dem Pointer, bzw. den Pointern einer Speicheradresse gemacht. Es ist ja so, das ich schaue was auf die Adresse zugreift. So, z.B. steht da
004952e2 - 8b 4e 10 - mov ecx,
dann ist der Offset 10 und so weiter.
Manchmal steht da ja auch noch solche Sachen:
007eab99 - 8b 0c 88 - mov ecx,
Also nichts mit "+". Wie und ob kann ich damit weitermachen?
|
All times are GMT +1. The time now is 10:57.
|
|