Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 04:08

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

Advertisement



[AutoIt]Tutorial zu Browsergamebots (Packetbots und IEbots)

Discussion on [AutoIt]Tutorial zu Browsergamebots (Packetbots und IEbots) within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old 08/29/2010, 17:10   #136
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
1. Das Einloggen scheint nicht zu klappen, navigier erstmal "normal" (ohne Post) auf die Seite lass die Cookies auslesen und mach dann das Request mit Posts. Vielleicht enthält dein Nick auch Sonderzeichen, dann solltest du Change benutzen.

2. Wenn man sich die Funktionen mal genau anschaut, dann sieht man, dass jede Änderung dazu führt, dass die Funktion garnicht oder nicht mehr richtig funktioniert.
Außerdem solltest du allgemein nie etwas an den Standartwerten von Variablen für Funktionen machen, die Macher werden schon Gründe gehabt haben das so zu machen.
Shadow992 is offline  
Old 08/29/2010, 20:07   #137
 
elite*gold: 0
Join Date: Jul 2009
Posts: 16
Received Thanks: 0
WoW, es klappt!
Ich weiß warum das vorher nicht funktioniert hatte...
Hatte anstatt 'password='' pass='...
Egal, das mit den Variabeln ist jetzt soo logisch...
Hab mir die ganzen youtube TuTs von AMrK angeschaut.
Jetzt weiß ich wieso er was deklariert hat und nun gibt alles einen Sinn.
Ich steh nurnoch vor einem Problem:
Ich bekomme nen Button nicht "angeklickt".
Da hier irgendwas mit der $sSeite = "" nicht stimmt.
Hier der httpheader:

demnach muesste ich so die Funktion aufstellen:
PHP Code:
$source=TCPRequest($ip,"XXX.de",0'/internet.php',"",$cookies
Jedoch habe ich genau die Funktion schon einmal...
Naemlich fuer einen Link davor:

Das ist jetzt ein Link, das davor ein Button...Beides hat oben /internet.php.
Jedoch ist der Link ein GET und der Button ein Post.
Beim Button gibs nochn Cookie dazu, sowie das hier in Zeile 17 cat=3&takejob=301.
301 ist der Job, den ich haben will. Einer darunter ist 302, nur zur Info.
Also haette ich zweimal die gleiche funktion hintereinander...
Oder setzt ich dann fuer den Button einfach einen Referrer?
Hast du da vielleicht eine Idee?
Ka...



Vielen Dank fuer deine Hilfe!

Gruß Thamnophis
Thamnophis is offline  
Old 08/29/2010, 21:45   #138
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by Thamnophis View Post
Das ist jetzt ein Link, das davor ein Button...Beides hat oben /internet.php.
Jedoch ist der Link ein GET und der Button ein Post.
Beim Button gibs nochn Cookie dazu, sowie das hier in Zeile 17 cat=3&takejob=301.
Das ist kein Cookie, das ist das Post!
Du musst im Grunde immer wenn du "POST" siehst sofort daran denken:
PHP Code:
$post="..." 
Du musst also nur noch das Post hinzufügen und ins TCP-Request packen, dann sollte es funktionieren:
PHP Code:
$post="cat=3&takejob=301"
$source=TCPRequest($ip,"XXX.de",0'/internet.php',$post,$cookies
Shadow992 is offline  
Old 08/30/2010, 18:59   #139
 
elite*gold: 0
Join Date: Jul 2009
Posts: 16
Received Thanks: 0
Hi,
leider habe ich mich zu frueh gefreut...
Nach genauerem Hinschauen gibt mir der Quelltext am Ende doch nur die Nachricht, dass mein Benutzer nicht regestriert ist...
Am Pw oder am username kannst net liegen...Sind auch keine Sonderzeichen
enthalten.
Irgendwas stimmt am Quellcode noch nicht...
Kannst du hier nochma rueberschaun?:
Und mein Quelltext:

Ist bei der TXPRequest am Ende beim Host wirklich nur '*' nicht "*"?
Ich hoffe du findest was...

Gruß Thamnophis
Thamnophis is offline  
Old 08/30/2010, 19:23   #140
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by Thamnophis View Post
Hi,
leider habe ich mich zu frueh gefreut...
Nach genauerem Hinschauen gibt mir der Quelltext am Ende doch nur die Nachricht, dass mein Benutzer nicht regestriert ist...
Am Pw oder am username kannst net liegen...Sind auch keine Sonderzeichen
enthalten.
Irgendwas stimmt am Quellcode noch nicht...
Kannst du hier nochma rueberschaun?:
Und mein Quelltext:

Ist bei der TXPRequest am Ende beim Host wirklich nur '*' nicht "*"?
Ich hoffe du findest was...

Gruß Thamnophis
Na ist doch ganz easy.
PHP Code:
$post='username='&$name&'password='&$passwort&'autologin=on&loginbutton=Login&loginaction=login' 
Da fehlen die '&', so sollte es also gehen:
PHP Code:
$post='username='&$name&'&password='&$passwort&'&autologin=on&loginbutton=Login&loginaction=login' 
Shadow992 is offline  
Old 08/31/2010, 18:46   #141
 
elite*gold: 0
Join Date: Jul 2009
Posts: 16
Received Thanks: 0
Hi,
das war ein super Tipp!
Ich dachte das & vor der Variable trennt das schon ab...

In meinem Browsergame kann man nur ein Event ausfuehren, wenn das vorige schon abgelaufen ist...
Angenehmerweise wird diese countdownzeit direkt auf der Startseite angezeigt, egal welches Event ablaeft.
Ich moechte jetzt diese Zeit auslesen und dann in meine countdown funktion packen...
Damit startet der Bot erst, wenn diese Zeit abgelaufen ist.
Ich habe den HTML text in eine .ini geschrieben (inner txt dateit kommt nu murks raus).
Jetzt muss ich den Teil finden, wo die Zeit steht und diese auslesen.
Welche Funktion bietet sich da an?
Ich hatte mir Objget ausgedacht und stringbetween.
Leider gibt es ja nicht immer ein Event, was abzuwarten ist.
Das heist, ich kann nicht immer nach der Zeit suchen...

So stehts geschrieben, wenn eine Zeit vorhanden ist:

Und so, wenn keine Zeit da ist:

Ich muss jetzt also eine If funktion aufstellenn: z.b.
PHP Code:
if ObjGet("Pfad/.ini","headercountdown"then
$Stunde 
_Stringbetween($Source," ",":")
$Minute _stringbetween($Source,":",":")
$Sekunde _stringbetween($Source,":","</span>")
Else
sleep(10)
Endif

_countdown(($Stunde*120)+($Minute*60)+($Sekunde))

Bot startet... 
Aus $Source habe ich die .ini erstellt.

Was haeltst du davon?
Oder gibs da ne bessere moeglichkeit?

P.s Wie geben ich eingentlich einen Pfad von einer Datei/Bild an, wenn
alles in einem Ordner ist und der script die Bilder auch auf anderen PC's finden soll?

Vielen Dank nocheinmal!

Gruß Thamnophis
Thamnophis is offline  
Old 08/31/2010, 19:22   #142
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by Thamnophis View Post
Hi,
das war ein super Tipp!
Ich dachte das & vor der Variable trennt das schon ab...

In meinem Browsergame kann man nur ein Event ausfuehren, wenn das vorige schon abgelaufen ist...
Angenehmerweise wird diese countdownzeit direkt auf der Startseite angezeigt, egal welches Event ablaeft.
Ich moechte jetzt diese Zeit auslesen und dann in meine countdown funktion packen...
Damit startet der Bot erst, wenn diese Zeit abgelaufen ist.
Ich habe den HTML text in eine .ini geschrieben (inner txt dateit kommt nu murks raus).
Jetzt muss ich den Teil finden, wo die Zeit steht und diese auslesen.
Welche Funktion bietet sich da an?
Ich hatte mir Objget ausgedacht und stringbetween.
Leider gibt es ja nicht immer ein Event, was abzuwarten ist.
Das heist, ich kann nicht immer nach der Zeit suchen...

So stehts geschrieben, wenn eine Zeit vorhanden ist:

Und so, wenn keine Zeit da ist:

Ich muss jetzt also eine If funktion aufstellenn: z.b.
PHP Code:
if ObjGet("Pfad/.ini","headercountdown"then
$Stunde 
_Stringbetween($Source," ",":")
$Minute _stringbetween($Source,":",":")
$Sekunde _stringbetween($Source,":","</span>")
Else
sleep(10)
Endif

_countdown(($Stunde*120)+($Minute*60)+($Sekunde))

Bot startet... 
Aus $Source habe ich die .ini erstellt.

Was haeltst du davon?
Oder gibs da ne bessere moeglichkeit?

P.s Wie geben ich eingentlich einen Pfad von einer Datei/Bild an, wenn
alles in einem Ordner ist und der script die Bilder auch auf anderen PC's finden soll?

Vielen Dank nocheinmal!

Gruß Thamnophis
Machs doch einfach so:
PHP Code:
if StringinStr($source,"headercountdown")<>0 then
$Stunde 
_Stringbetween($Source," ",":")
$Minute _stringbetween($Source,":",":")
$Sekunde _stringbetween($Source,":","</span>")
Else
sleep(10)
Endif 
Shadow992 is offline  
Old 08/31/2010, 20:04   #143
 
elite*gold: 0
Join Date: Jul 2009
Posts: 16
Received Thanks: 0
Hi,
kannst du mir kurz erlaeutern was das macht?
StringinStr und dann <>0?
Wenn ich naemlich mein ergebnis in eine Ini schreibe, steht dort nix...
-->IniWrite("Stunde.ini","","",$Stunde)
Außerdem stimmt irgendwas mit der Addition und der Multiplikation im cooldown nicht. Auch das nimmt er nicht an:
_countDown($Stunde*120"+"$Minute*60"+"$Sekunde)
Immer diese Kleinigkeiten, die einem nicht auffallen.

Danke

Gruß Thamnophis
Thamnophis is offline  
Old 09/01/2010, 11:31   #144
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by Thamnophis View Post
Hi,
kannst du mir kurz erlaeutern was das macht?
StringinStr und dann <>0?
Wenn ich naemlich mein ergebnis in eine Ini schreibe, steht dort nix...
-->IniWrite("Stunde.ini","","",$Stunde)
Außerdem stimmt irgendwas mit der Addition und der Multiplikation im cooldown nicht. Auch das nimmt er nicht an:
_countDown($Stunde*120"+"$Minute*60"+"$Sekunde)
Immer diese Kleinigkeiten, die einem nicht auffallen.

Danke

Gruß Thamnophis
<>0 bedeutet, dass alles als Ergebniss rauskommen darf außer 0.
Es ist im Grunde das Gegenteil von =0 bzw. ==0 .
StringInStr(...) schaut ob ein String/Text in einem anderem String/Text
gefunden wurde, wenn ja ist das Ergebniss die Stelle an der der Text zum erstenmal gefunden wurde, wenn der Text nicht gefunden wurde, dann gibt StringInStr 0 zurück.

Nun zu Countdown:
PHP Code:
_countDown($Stunde*120"+"$Minute*60"+"$Sekunde
Ich weiß zwar nicht wie dein restlicher Code aussieht, aber du kannst es dir vereinfachen:
PHP Code:
$zeit=Execute($Stunde*120+$Minute*60+$Sekunde
Was mich überhaupt wundert ist, dass es keine Fehlermeldung gab.

Und zu guter letzt, solltest du nie IniWrite für größere Texte nehmen.
Alternativen wären ClipPut und FileWrite.

Btw. Du könntest auch einfach die Hilfe benutzen, um herrauszufinden was der Befehl macht:
Shadow992 is offline  
Thanks
1 User
Old 09/01/2010, 12:15   #145
 
elite*gold: 0
Join Date: Jul 2009
Posts: 16
Received Thanks: 0
Achso ist das,
ja das StringinStr() hatte ich mir dann auch gleich rausgesucht,
aber das <>0 ist interessant. Heißt also, wenn der Text im String enthalten ist, then... .
Den Quelltext aus $Source bekomme ich ja ueber den TCPReq.
Ist das ueberhaupt ein String? Kann ich in dieser Variable ueberhaupt mit StringinStr() arbeiten?
In der ini haette ja lediglich 18 stehen duerfen, da ich ja mit
Code:
$Stunde = _Stringbetween($Source," ",":")
aus der $Source im Abschnitt
PHP Code:
[spoiler]<div id="headercountdown"></div
                        <
script language=JavaScript
                                 
                            
taskcounter("headercountdown","<a href=# class=tooltip  style=color:#FFFFFF>Aktion:<span>bis 31.08.2010 18:17:37</span> </a> ",3576)  

[/
spoiler
zwichen dem Leerzeichen " " und dem ":" genau die 18 rausgefiltert hatte (theoretisch^^).
Leider hat er ja nichts gefunden...
Danach hatte ich zwischen //"headercountdown"// und //Aktion:// gesucht, auch da hat er mir nicht //a href=# class=tooltip style=color:#FFFFFF>// ausgegeben...
Irgendwo liegt bei mir noch ein Denkfehler?!
Sollte ich mich viellleicht mit StringinStr() soweit rantasten, dass er sogar Leerzeichen erkennt?

Danke fuer deine Antwort im Vorraus

Gruß Thamnophis
Thamnophis is offline  
Old 09/01/2010, 12:58   #146
 
lolkop's Avatar
 
elite*gold: 280
Join Date: May 2007
Posts: 2,818
Received Thanks: 3,483
wieso das ganze so umständlich angehen?
nicht nur das string operationen in autoit extrem ineffizient sind, auch das handling damit ist extrem bescheiden.

in diesem fall ist ganz klar regexp zu bevorzugugen.
so kannst du auf deutlich effizientere art und weise alles auf einmal auslesen.
weis nicht was genau du davon jetzt auslesen willst aber hier mal ein einfaches beispiel wie du die gesamten datumswerte einlesen könntest:
Code:
$date = StringRegExp($source, 'headercountdown(?s).*?<span>.*?(\d{2}).(\d{2}).(\d{4}) (\d{2}):(\d{2}):(\d{2})</span>', 1)
falls es einen headercountdown gibt, wird dir diese funktion das array $date mit:
Code:
$date[0] tag
$date[1] monat
$date[2] jahr
$date[3] stunde
$date[4] minute
$date[5] sekunde
ausgeben.

wenn headercountdown nicht existiert, wird diese funktion kein array ausgeben. dh bevor du das ergebnis abrufst checkst du einmal ob etwas gefunden wurde mit:
Code:
If IsArray($date) then
    ....
EndIf
lolkop is offline  
Old 09/05/2010, 03:19   #147
 
Kuchenfreak™'s Avatar
 
elite*gold: 0
Join Date: Sep 2010
Posts: 520
Received Thanks: 86
Gutes Tutorial^^
Bringt nen Einsteiger auf jeden Fall weiter.
Kuchenfreak™ is offline  
Old 09/06/2010, 13:42   #148
 
elite*gold: 0
Join Date: Sep 2010
Posts: 5
Received Thanks: 0
Ist zwar schwer zu verstehen aber sehr gut erklärt, hab jetzt schon mein eigenen bot fertiggestellt, danke ^^
QuarryBot is offline  
Old 09/24/2010, 13:35   #149
 
elite*gold: 0
Join Date: Sep 2010
Posts: 3
Received Thanks: 0
Question

Hallo zusammen,

vielen Dank erstmal für das tolle Tut !!!

Ich bin gerade bei Kapitel IV : Packetbots Punkt 8. Erstellen eines kleinen Packet Botes und habe einen Test-Acc. auf Uni78 bei OGame angelegt, nur klappt das Einloggen mit dem Packet-Bot leider nicht. Nachdem ich die LoginDaten eingebe, bekomme ich immer eine Fehlermeldung..
Dann habe ich gelesen, dass es nur auf Uni1 bis Uni40 gehen soll, also habe ich jetzt einen Acc. auf Uni1 angelegt und getestet, aber leider erfolglos, der Code ist identisch mit dem aus dem Tut.
Ich bekomme ständig diese Fehlermeldung und weis nicht so recht weiter, hab jetzt schon 3h rumprobiert, schaff es aber einfach nicht, kann mir bitte einer helfen?
jam2010 is offline  
Old 09/24/2010, 19:34   #150
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by jam2010 View Post
Hallo zusammen,

vielen Dank erstmal für das tolle Tut !!!

Ich bin gerade bei Kapitel IV : Packetbots Punkt 8. Erstellen eines kleinen Packet Botes und habe einen Test-Acc. auf Uni78 bei OGame angelegt, nur klappt das Einloggen mit dem Packet-Bot leider nicht. Nachdem ich die LoginDaten eingebe, bekomme ich immer eine Fehlermeldung..
Dann habe ich gelesen, dass es nur auf Uni1 bis Uni40 gehen soll, also habe ich jetzt einen Acc. auf Uni1 angelegt und getestet, aber leider erfolglos, der Code ist identisch mit dem aus dem Tut.
Ich bekomme ständig diese Fehlermeldung und weis nicht so recht weiter, hab jetzt schon 3h rumprobiert, schaff es aber einfach nicht, kann mir bitte einer helfen?
Bigpoint scheint da einiges geändert zu haben, überspringe einfach Punkt 8 und gehen zu Punkt 9.
Shadow992 is offline  
Reply


Similar Threads Similar Threads
Browsergamebots legal?
05/19/2010 - General Coding - 12 Replies
Hallo, ich habe hier im Forum schon öfters gesehen, wie mitglieder bots (für browsergames) gepostet haben und nach einiger zeit wurden deren themen gelöscht/geschlössen, weil sie angeblich urherberrechtsverletzung begangen haben. http://www.elitepvpers.com/forum/browsergames/5237 95-myfreefarm-bot.html Ich habe schon sehr viele google seiten durchwälzt und keine antwort auf meine fragen gefunden, deswegen stelle ich sie hier mit der hoffung eine antwort zu finden. "Ab wann ist ein...
AutoIt Tutorial
01/01/2008 - Dekaron - 2 Replies
Hey, smokedoo or someone out there who created bot and stuff like that, can you please post up a tutorial or vid on how to make at least the most simplest bot out there please. I know there are ppl like me that would just love to know. Thanks!



All times are GMT +2. The time now is 04:08.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

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