|
You last visited: Today at 08:00
Advertisement
Ausnahme für eine While
Discussion on Ausnahme für eine While within the AutoIt forum part of the Coders Den category.
12/29/2011, 16:30
|
#1
|
elite*gold: 0
Join Date: Nov 2010
Posts: 45
Received Thanks: 5
|
Ausnahme für eine While
PHP Code:
$x = 0 $y = 0 $color = 0 $newColor = 0 $status = "off" While If $status = "on" Then If _getCurrentColor($x, $y) <> $color Then Send("6") Sleep (3000) EndIf EndIf WEnd Func _getDefault() $coord = MouseGetPos() $x = $coord[0] $y = $coord[1] $color = Hex(PixelGetColor( $coord[0], $coord[1]), 3) $status = "on" EndFunc Func _getCurrentColor($xDef, $yDef) $newColor = Hex(PixelGetColor( $xDef, $yDef), 3) Return ($newColor) EndFunc
Das soll letzendlich ein Bot werden, der automatisch einen Pot einwerfen soll:
Das wurde alles zwar schon super verfasst von TheForsaken allerdings sendet er durchgehend eine Taste (bei mir die Zahl "6")
Allerdings möchte ich, das er nur "6" drückt, wenn die farbe im Makierten bereich nicht mehr die Ursprungsfarbe ist.
Sobald die Ursprungsfarbe wieder erreicht ist, soll das drücken der "6"-taste aufhören.
Ps: Ich hoffe ich konnte mich klar und deutlich ausdrücken .
|
|
|
12/29/2011, 17:50
|
#2
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
|
Code:
If _getCurrentColor($x, $y) <> $color Then
Send("6")
Sleep (3000)
EndIf
Hast du doch schon drin o.O
Und für einen status bitte boolean und nicht string.
|
|
|
12/29/2011, 21:45
|
#3
|
elite*gold: 0
Join Date: Nov 2010
Posts: 45
Received Thanks: 5
|
Quote:
Originally Posted by MoepMeep
Code:
If _getCurrentColor($x, $y) <> $color Then
Send("6")
Sleep (3000)
EndIf
Hast du doch schon drin o.O
Und für einen status bitte boolean und nicht string.
|
Wie meinst das mit boolean & status?
Ja hab ich zwar drinne, aber sobald meine Hp. in diesem falle.
einmal ganz unten sind, drückt er durchgehend alle 3sek. die 6.
er soll aber, sobald die Hp wieder voll ist, damit aufhören, nur das tut er noch nicht wirklich
|
|
|
12/29/2011, 22:31
|
#4
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
|
Quote:
Originally Posted by Project_X
Wie meinst das mit boolean & status?
Ja hab ich zwar drinne, aber sobald meine Hp. in diesem falle.
einmal ganz unten sind, drückt er durchgehend alle 3sek. die 6.
er soll aber, sobald die Hp wieder voll ist, damit aufhören, nur das tut er noch nicht wirklich
|
$status = "on"
|
|
|
12/30/2011, 02:46
|
#5
|
elite*gold: 0
Join Date: Nov 2010
Posts: 45
Received Thanks: 5
|
Quote:
Originally Posted by MoepMeep
$status = "on"
|
achso, aber es kann doch nicht daran liegen, oder?
|
|
|
12/30/2011, 02:59
|
#6
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
|
Sehr unwahrscheinlich.
Das ganze sieht logisch gesehen richtig aus. Was mich allerdings wundert ist, dass du _getDefault() nicht aufrufst. Auch der Teil, welcher in keiner Funktion steht wundert mich. Oder ist das normal bei dieser grottenschlechten AutoIt syntax? Seriously, <> statt !=? o.O
Was ich dir aber generell raten würde, geh von diesem Pixeldreck weg, lies lieber den Speicher aus.
Deine globale Variable newColor kannst du dir übrigens sparen
Code:
Func _getCurrentColor($xDef, $yDef)
Return (Hex(PixelGetColor( $xDef, $yDef), 3)
EndFunc
Dies geht zumindest in jeder normalen Sprache
|
|
|
01/01/2012, 22:24
|
#7
|
elite*gold: 0
Join Date: Nov 2010
Posts: 45
Received Thanks: 5
|
Quote:
Originally Posted by MoepMeep
Sehr unwahrscheinlich.
Das ganze sieht logisch gesehen richtig aus. Was mich allerdings wundert ist, dass du _getDefault() nicht aufrufst. Auch der Teil, welcher in keiner Funktion steht wundert mich. Oder ist das normal bei dieser grottenschlechten AutoIt syntax? Seriously, <> statt !=? o.O
Was ich dir aber generell raten würde, geh von diesem Pixeldreck weg, lies lieber den Speicher aus.
Deine globale Variable newColor kannst du dir übrigens sparen
Code:
Func _getCurrentColor($xDef, $yDef)
Return (Hex(PixelGetColor( $xDef, $yDef), 3)
EndFunc
Dies geht zumindest in jeder normalen Sprache
|
Ah ok danke, Ja ich weiß zwar, wie ich meinen speicher auslese,
aber weiß dann allerdings nicht, wie ich das ganze in AutoIt Anwenden soll..
Ich meine, wenn ich dann z.B. Die HP ausgelesen habe,
also Pointer usw. Wir schreibe ich dann, dass "Wenn" Hp unter "..." dann Send ("6")
|
|
|
01/01/2012, 23:25
|
#8
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,254
|
Quote:
Originally Posted by Project_X
Ah ok danke, Ja ich weiß zwar, wie ich meinen speicher auslese,
aber weiß dann allerdings nicht, wie ich das ganze in AutoIt Anwenden soll..
Ich meine, wenn ich dann z.B. Die HP ausgelesen habe,
also Pointer usw. Wir schreibe ich dann, dass "Wenn" Hp unter "..." dann Send ("6")
|
Ist eig. einfach..
Erst brauchst du z. B. die NomadMemory.au3 (google oder Forensuche)
Dann baust du dein Script z. B. so auf:
PHP Code:
#RequireAdmin #include <Nomadmemory.au3> $Open = _MemoryOpen(ProcessExists("lala.exe")) If @error Then MsgBox(4096, "Fehler", "Das richtige Fenster konnte nicht gefunden werden") $Pointer = 0x106507E8 Global $PointerOffset[4] = [0, 0x23, 0x34, 0x11] ;die 0 am anfang muss immer hin $PointerRead = _MemoryPointerRead($Pointer, $Open, $PointerOffset) If $PointerRead[1] == 6 Then Send("6") EndIf
Hier mal ein kleiner miniBot, den ich vor langer Zeit mal gemacht hatte:
PHP Code:
#RequireAdmin #include <Nomadmemory.au3> HotKeySet("{ESC}", "_exit") HotKeySet("{F4}", "_start") WinWaitActive("[CLASS:Nksp]") $Open = _MemoryOpen(ProcessExists("Nksp.exe")) If @error Then MsgBox(4096, "Fehler", "Das richtige Fenster konnte nicht gefunden werden") Global $play = True Global $start = False $LebenPointer = 0x106507E8 Global $LebenOffset[2] = [0, 0x109308] $ManaPointer = 0x106507E8 Global $ManaOffset[2] = [0, 0x109310] $ZielPointer = 0x106507E8 Global $ZielOffset[2] = [0, 0x108F08] While $play $pLeben = _MemoryPointerRead($LebenPointer, $Open, $LebenOffset) $pMana = _MemoryPointerRead($ManaPointer, $Open, $ManaOffset) $pZiel = _MemoryPointerRead($ZielPointer, $Open, $ZielOffset) If $start Then If $pLeben[1] <= 350 Then ControlSend("[CLASS:Nksp]", "", "ViewPort Window1", "3") EndIf If $pMana[1] <= 250 Then ControlSend("[CLASS:Nksp]", "", "ViewPort Window1", "9") EndIf ControlSend("[CLASS:Nksp]", "", "ViewPort Window1", "{4 DOWN}") If $pZiel[1] = "1" Then ControlSend("[CLASS:Nksp]", "", "ViewPort Window1", "{4 UP}") ControlSend("[CLASS:Nksp]", "", "ViewPort Window1", "1") Else ControlSend("[CLASS:Nksp]", "", "ViewPort Window1", "{TAB}") EndIf Sleep(300) EndIf WEnd Func _start() $start = Not $start EndFunc Func _exit() $play = False EndFunc
|
|
|
01/02/2012, 00:02
|
#9
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
diese pointer funktion, welche ihr alle so gerne nutzt, ist absolut ineffizient.
da liest hier 3 mal die selbe adresse aus, und führst daraufhin eine weitere ReadProcessMemory funktion aus. und das ganze auchnoch in einer schleife.
es würde viel mehr sinn machen, den pointer einmalig auszulesen, und daraufhin die offsets in einer schleife auszulesen.
für den unwarscheinlichen fall, das der pointer sich während der laufzeit ändert, kann dieser immernoch über einzelne abfragen, der offset werte, in diesen seltenen fällen geupdated werden.
|
|
|
01/03/2012, 21:32
|
#10
|
elite*gold: 0
Join Date: Nov 2010
Posts: 45
Received Thanks: 5
|
Quote:
Originally Posted by omer36
Ist eig. einfach..
Erst brauchst du z. B. die NomadMemory.au3 (google oder Forensuche)
Dann baust du dein Script z. B. so auf:
PHP Code:
#RequireAdmin #include <Nomadmemory.au3> $Open = _MemoryOpen(ProcessExists("lala.exe")) If @error Then MsgBox(4096, "Fehler", "Das richtige Fenster konnte nicht gefunden werden") $Pointer = 0x106507E8 Global $PointerOffset[4] = [0, 0x23, 0x34, 0x11] ;die 0 am anfang muss immer hin $PointerRead = _MemoryPointerRead($Pointer, $Open, $PointerOffset) If $PointerRead[1] == 6 Then Send("6") EndIf
Hier mal ein kleiner miniBot, den ich vor langer Zeit mal gemacht hatte:
PHP Code:
#RequireAdmin #include <Nomadmemory.au3> HotKeySet("{ESC}", "_exit") HotKeySet("{F4}", "_start") WinWaitActive("[CLASS:Nksp]") $Open = _MemoryOpen(ProcessExists("Nksp.exe")) If @error Then MsgBox(4096, "Fehler", "Das richtige Fenster konnte nicht gefunden werden") Global $play = True Global $start = False $LebenPointer = 0x106507E8 Global $LebenOffset[2] = [0, 0x109308] $ManaPointer = 0x106507E8 Global $ManaOffset[2] = [0, 0x109310] $ZielPointer = 0x106507E8 Global $ZielOffset[2] = [0, 0x108F08] While $play $pLeben = _MemoryPointerRead($LebenPointer, $Open, $LebenOffset) $pMana = _MemoryPointerRead($ManaPointer, $Open, $ManaOffset) $pZiel = _MemoryPointerRead($ZielPointer, $Open, $ZielOffset) If $start Then If $pLeben[1] <= 350 Then ControlSend("[CLASS:Nksp]", "", "ViewPort Window1", "3") EndIf If $pMana[1] <= 250 Then ControlSend("[CLASS:Nksp]", "", "ViewPort Window1", "9") EndIf ControlSend("[CLASS:Nksp]", "", "ViewPort Window1", "{4 DOWN}") If $pZiel[1] = "1" Then ControlSend("[CLASS:Nksp]", "", "ViewPort Window1", "{4 UP}") ControlSend("[CLASS:Nksp]", "", "ViewPort Window1", "1") Else ControlSend("[CLASS:Nksp]", "", "ViewPort Window1", "{TAB}") EndIf Sleep(300) EndIf WEnd Func _start() $start = Not $start EndFunc Func _exit() $play = False EndFunc
|
An deinem Mini-bot erkennt man, das ich das selbe ziel habe wie du
Nksp = Lastchaos, was?
Also das mit dem ganzen bypass kram & xtrap umgehen ist eigentlich total einfach.
Allerdings tue ich mich sehr schwer bei While's in AutoIt
bzw mit der syntax von Autoit
|
|
|
01/03/2012, 21:36
|
#11
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
|
Quote:
Originally Posted by Project_X
An deinem Mini-bot erkennt man, das ich das selbe ziel habe wie du
Nksp = Lastchaos, was?
Also das mit dem ganzen bypass kram & xtrap umgehen ist eigentlich total einfach.
Allerdings tue ich mich sehr schwer bei While's in AutoIt
bzw mit der syntax von Autoit
|
Wenn dir die miserable AutoIt syntax nicht zusagt, wechsel einfach zu einer Vernünftigen Sprache
|
|
|
01/03/2012, 21:56
|
#12
|
elite*gold: 0
Join Date: Nov 2010
Posts: 45
Received Thanks: 5
|
Quote:
Originally Posted by MoepMeep
Wenn dir die miserable AutoIt syntax nicht zusagt, wechsel einfach zu einer Vernünftigen Sprache
|
& was würdest du empfehlen?
hatte mich mal an c++ probiert aber da bekomme nichts auf die reihe.
hab mir dafür auch mal ein buch gekauft, allerdings wurde das alles dort komisch erklärt & somit konnte ich damit auch nicht viel anfangen
|
|
|
01/03/2012, 22:00
|
#13
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by MoepMeep
Wenn dir die miserable AutoIt syntax nicht zusagt, wechsel einfach zu einer Vernünftigen Sprache
|
wer autoit nutzt, dem sollte auch klar sein das man hiermit weder systemnahe, noch objektorientiert programmieren kann. es ist halt eine scriptsprache, welche auf einem extrem hohen abstraktionsgrad fungiert.
gekennzeichnet ist autoit durch die relativ intelligente automatische erkennung und konvertierung von typen. für einige ein segen, für andere sicherlich lästig, ist autoit hiermit auf jeden fall für einfache programme, wie bots bzw. automatisierungstools allgemein sehr gut geeignet.
nur aufgrund der eigenen meinung zur syntax einer sprache, von dieser abzuraten finde ich dann doch sehr unprofessionell :P
|
|
|
01/03/2012, 22:06
|
#14
|
elite*gold: 0
Join Date: Nov 2010
Posts: 45
Received Thanks: 5
|
Quote:
Originally Posted by lolkop
wer autoit nutzt, dem sollte auch klar sein das man hiermit weder systemnahe, noch objektorientiert programmieren kann. es ist halt eine scriptsprache, welche auf einem extrem hohen abstraktionsgrad fungiert.
gekennzeichnet ist autoit durch die relativ intelligente automatische erkennung und konvertierung von typen. für einige ein segen, für andere sicherlich lästig, ist autoit hiermit auf jeden fall für einfache programme, wie bots bzw. automatisierungstools allgemein sehr gut geeignet.
nur aufgrund der eigenen meinung zur syntax einer sprache, von dieser abzuraten finde ich dann doch sehr unprofessionell :P
|
Nun ja ich finde AutoIt ja auch nicht schlecht, allerdings blicke ich manchmal nicht durch
Ich hab mir den Bot mal von Omer36 angeguckt, fande den jetzt garnicht mal so schlecht, finde ihn für einen Anfänger wie mich ziemlich übersichtlich gestalltet, trotzdem bin ich verwirrt das er mir in die fehler meldung gibt:
_MemoryPointerRead() : Undefined function
Verstehe jetzt dort nicht ganz den fehler.
|
|
|
01/03/2012, 22:18
|
#15
|
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
|
Quote:
Originally Posted by Project_X
Nun ja ich finde AutoIt ja auch nicht schlecht, allerdings blicke ich manchmal nicht durch
Ich hab mir den Bot mal von Omer36 angeguckt, fande den jetzt garnicht mal so schlecht, finde ihn für einen Anfänger wie mich ziemlich übersichtlich gestalltet, trotzdem bin ich verwirrt das er mir in die fehler meldung gibt:
_MemoryPointerRead() : Undefined function
Verstehe jetzt dort nicht ganz den fehler.
|
das soll jetzt keine beleidigung sein, aber deine probleme haben nichts mit der sprache, oder der syntax der sprache zu tun.
wie ich das sehe, fehlen dir einfach grundkenntnisse was logik, mathematik und auch englisch angeht :P
wenn du programmieren lernen willst, musst du unbedingt verstehen, wie man seine ideen als automaten ausdrücken kann. egal für welche sprache du dich entscheidest, wenn du derartige logische grundkenntnisse nicht drauf hast, wirst du nicht in der lage sein vernünftige programme zu schreiben.
davon abgesehen arbeiten fast alle sprachen auf der "closed world assumption". alles was nicht bekannt ist kann nicht bearbeitet werden.
so kam es auch zu dem von dir erwähnten fehler. "Undefined function" = nicht definierte funktion.
|
|
|
|
|
Similar Threads
|
Kaspersky in ausnahme hinzufügen klappt nicht.
03/27/2013 - Technical Support - 15 Replies
Hallo epvp..
wenn ich eine Exe zu den ausnahmen hinzugefügt habe.
Und ich auf sie draufklicke dann wird sie wieder als Virus erkannt, und gelöscht.
Aber sie ist doch bei den ausnahmen dabei warum wird sie dann gelöscht.
Kann mir da jemand der sich mit Kaspersky auskennt, vieleicht helfen?
|
Gozu´s LoL Service Ausnahme !!Free!!
10/29/2011 - Trading - 2 Replies
Grüße Community , natürlich beschweren sich jetzt ein paar aber der Thread hier ist echt gerade ein Aufruf weil mein anderer zu weit unten ist : Ich vergebe für meinen Thread noch einen Free-Ref einfach eine Pn an mich schreiben und ich werde diesen ausfüllen wird aber auch der Letzte sein!
Lg
|
LoL-Service Ausnahme
10/29/2011 - League of Legends Trading - 2 Replies
Grüße Community , natürlich beschweren sich jetzt ein paar aber der Thread hier ist echt gerade ein Aufruf weil mein anderer zu weit unten ist : Ich vergebe für meinen Thread noch einen Free-Ref einfach eine Pn an mich schreiben und ich werde diesen ausfüllen wird aber auch der Letzte sein!
Lg
|
[AUSNAHME] WOHER BEKOMME ICH IMMMER DIE AKTUELLSTEN ADDYS FÜR HACKS?!
02/01/2011 - WarRock Hacks, Bots, Cheats & Exploits - 11 Replies
PLS HELFT MIR JA MAN DARF KEINE FRAGEN STELLEN ABA HAT KEINER EIN HERZ HIER? KENNT NIEMAND EINE SEITE FÜR ADDYS PLS!!!!!:(
|
Virus ausnahme
03/13/2010 - Technical Support - 5 Replies
wisst ihr wie man ausnahmen bei avira antivir einschaltet? es erkennt per x immer als virus und muss immer wieder ok usw drücken.Wie schalte ich das aus?
|
All times are GMT +2. The time now is 08:00.
|
|