Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 08:00

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Ausnahme für eine While

Discussion on Ausnahme für eine While within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #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 .
Project_X is offline  
Old 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.
MoepMeep is offline  
Old 12/29/2011, 21:45   #3
 
elite*gold: 0
Join Date: Nov 2010
Posts: 45
Received Thanks: 5
Quote:
Originally Posted by MoepMeep View Post
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
Project_X is offline  
Old 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 View Post
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"
MoepMeep is offline  
Old 12/30/2011, 02:46   #5
 
elite*gold: 0
Join Date: Nov 2010
Posts: 45
Received Thanks: 5
Quote:
Originally Posted by MoepMeep View Post
$status = "on"
achso, aber es kann doch nicht daran liegen, oder?
Project_X is offline  
Old 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
MoepMeep is offline  
Old 01/01/2012, 22:24   #7
 
elite*gold: 0
Join Date: Nov 2010
Posts: 45
Received Thanks: 5
Quote:
Originally Posted by MoepMeep View Post
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")

Project_X is offline  
Old 01/01/2012, 23:25   #8
 
omer36's Avatar
 
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,254
Quote:
Originally Posted by Project_X View Post
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] = [00x230x340x11]  ;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:
omer36 is offline  
Old 01/02/2012, 00:02   #9
 
lolkop's Avatar
 
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.
lolkop is offline  
Old 01/03/2012, 21:32   #10
 
elite*gold: 0
Join Date: Nov 2010
Posts: 45
Received Thanks: 5
Quote:
Originally Posted by omer36 View Post
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] = [00x230x340x11]  ;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:
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
Project_X is offline  
Old 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 View Post
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
MoepMeep is offline  
Old 01/03/2012, 21:56   #12
 
elite*gold: 0
Join Date: Nov 2010
Posts: 45
Received Thanks: 5
Quote:
Originally Posted by MoepMeep View Post
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
Project_X is offline  
Old 01/03/2012, 22:00   #13
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by MoepMeep View Post
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
lolkop is offline  
Old 01/03/2012, 22:06   #14
 
elite*gold: 0
Join Date: Nov 2010
Posts: 45
Received Thanks: 5
Quote:
Originally Posted by lolkop View Post
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.
Project_X is offline  
Old 01/03/2012, 22:18   #15
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
Quote:
Originally Posted by Project_X View Post
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.
lolkop is offline  
Reply

Tags
autoit, stoppen


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.