|
You last visited: Today at 04:08
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.
08/29/2010, 17:10
|
#136
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by Thamnophis
Hallo,
danke fuer deine Antwort.
Ich habe einfach mal start gedruckt und geguckt was passiert...
Und siehe da, die msg box gibt was aus.
Leider zu viel fuer meinen Bildschrim^^
Also zack inne Textdatei gespeichert und das kommt raus:
Code:
HTTP/1.1 200 OK
Date: Sun, 29 Aug 2010 12:05:18 GMT
Server: Apache
Set-Cookie: PHPSESSID=035eb0f48f51340cde117a554a48bf07; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Content-Length: 5331
Keep-Alive: timeout=30, max=100
Connection: Keep-Alive
Content-Type: text/html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>XXX</title><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15" />
<meta name="title" content="XXX" />
<meta name="keywords" content="blablabla" />
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" type="text/css" href="header.css" /><link rel="stylesheet" type="text/css" href="nonie.css" />
<link rel="SHORTCUT ICON" HREF="/favicon.ico" />
</head>
<body>
<script type="text/javascript">
function checkAll(field,allcheck){
for (i = 1; i < field.length; i++)
field[i].checked = allcheck ;
}
var currenttime = 'August 29, 2010 14:05:19'
var months=new Array("January","February","March","April","May","June","July","August","September","October","November","December")
var serverdate=new Date(currenttime)
function padlength(what){
var output=(what.toString().length==1)? "0"+what : what
return output
}
function displaytime(){
serverdate.setSeconds(serverdate.getSeconds()+1)
var datestring=months[serverdate.getMonth()]+" "+padlength(serverdate.getDate())+", "+serverdate.getFullYear()
var timestring=padlength(serverdate.getHours())+":"+padlength(serverdate.getMinutes())+":"+padlength(serverdate.getSeconds())
document.getElementById("servertime").innerHTML=timestring
}
window.onload=function(){
displaytime()
setInterval("displaytime()", 1000)
}
</script>
<script type="text/javascript">
function taskcounter(divid,prestring,counter,recursive){
if (!recursive){
StartTime = new Date();
}
var rzeit=document.getElementById(divid);
counter2=counter;
ActualTime=new Date();
counter2 = Math.round(counter-ActualTime.getTime()/1000+StartTime.getTime()/1000);
s=counter2;
m=0;h=0;
if(s<0){
rzeit.innerHTML=prestring+"fertig"
window.top.document.title = "XXX";
window.location.href="/login.php?cat=&id="
}
else {
if(s>59){
m=Math.floor(s/60);
s=s-m*60
}
if(m>59){
h=Math.floor(m/60);
m=m-h*60
}
if(s<10){
s="0"+s
}
if(m<10){
m="0"+m
}
rzeit.innerHTML=prestring+h+":"+m+":"+s+"";
window.top.document.title = h+":"+m+":"+s+" XXX"
}
window.setTimeout("taskcounter(\""+divid+"\",\""+prestring+"\","+counter+",true);",1000);
}
</script>
<div id="fix">
<div id="header">
<div id="status">
<form method="post" action="login.php">
<table>
<tr>
<td align="right">
Username:
</td>
<td>
<input maxlength="30" size="15" type="text" name="username" />
</td>
<td>
</td>
</tr>
<tr>
<td align="right">
Passwort:
</td>
<td>
<input maxlength="32" size="15" type="password" name="password" />
</td>
<td>
</td>
</tr>
<tr>
<tr>
<td align="right">
AutoLogin:
</td>
<td>
<input type=checkbox name=autologin class=normal />
<input type="submit" name="loginbutton" value="Login" /><input type=hidden name=loginaction value=login>
<br />
<br />
</td>
</tr>
</table>
</form><a class="forgotpw" href="forgotpw.php" style="color:#EEEEEE">Passwort vergessen?</a>
<br>
</div>
<div id="menu" >
<div id="mainmenu">
<ul>
<li><a href="index.php">Startseite</a></li>
<li><a href="register.php">Registrieren</a></li>
</ul>
</div>
</div>
<div id="main"><center><h3>Login</h3></center><p><center><form action=/login.php method=post>
<table class=maintable width=400><tr class=form1><td>Username:</td><td> <input type=text name=username value="" class=normal size=40><br><tr class=form2><td></td><td class=error>User existiert nicht</td></tr>
<tr class=form2><td>Passwort:<td> <input type=password name=password class=normal size=40><br></tr><tr class=form1><td>Autologin<td> <input type=checkbox name=autologin class=normal ><br></tr></table><input type=hidden name=loginaction value=login><p><center><input type=submit class=normal value=Einloggen></form></center>
</div>
<div id="footer">
<table width = 940px><tr><td>
<div style="text-align:left;padding-left:30px">
Skript wurde ausgeführt in 67 ms</div></td><td>
<div style="text-align:right;padding-right:60px"><a href="playeronline.php" style="color:#606060">298 Spieler online</a> | Serverzeit: <span id='servertime' ></span></div>
</td></tr></table>
<br><br><br><center>
</center><br><br>
<br><br>
<br><br>
<!---<center>Copyright © Martin Spüler 2009</center>--->
<br><br><br><br>
</div></div>
</body>
</html>
Ich glaube das ist nicht das was kommen sollte...
Das am Ende des Postteils mit 'loginbutton=Login&loginaction=login' stimmt so ja?
Und leider hab ich das mit der TCPRequest noch nicht verstanden^^
Das heist ich soll die variabeln aendern oder nicht?
Also bei mir dann so?:
PHP Code:
Func TCPRequest($sIp, $sHost,$msg=0, $sSeite = "/login.php", $sPost = '???', $sCookies = 'GetCookies', $sReferer = 'http://XXX.de/', $iMaxTime = 10000)
Das wuerde fuer mich jedoch keinen Sinn machen, weil diese Werte sich ja permanent aendern!?
Bzw. muss ich an den drei Funktionen ueberhaupt etwas machen?
Edit: Im Quellcode seh ich auch nichts, was darauf hinweist, dass ich eingeloggt bin...
Alles was da beschrieben wird kommt glaube zur Startseite.
Ganz unten sieht man, das ein script ausgefuehrt wird, jedoch seh ich kein resultat, ob geklappt hat
oder nicht^^
Danke Gruß Thamnophis
|
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.
|
|
|
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:
Code:
http://XXX.de/internet.php
POST /internet.php HTTP/1.1
Host: XXX.de
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://XXX.de/internet.php?cat=3
Cookie: PHPSESSID=9fc6421d5426fad005aea199b5e24872
Content-Type: application/x-www-form-urlencoded
Content-Length: 17
cat=3&takejob=301
HTTP/1.1 200 OK
Date: Sun, 29 Aug 2010 15:57:15 GMT
Server: Apache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 2937
Keep-Alive: timeout=30, max=100
Connection: Keep-Alive
Content-Type: text/html
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:
Code:
http://XXX.de/internet.php
GET /internet.php HTTP/1.1
Host: XXX.de
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://XXX.de/login.php
Cookie: PHPSESSID=9fc6421d5426fad005aea199b5e24872
HTTP/1.1 200 OK
Date: Sun, 29 Aug 2010 15:55:26 GMT
Server: Apache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Length: 3281
Keep-Alive: timeout=30, max=100
Connection: Keep-Alive
Content-Type: text/html
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
|
|
|
08/29/2010, 21:45
|
#138
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by Thamnophis
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:
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)
|
|
|
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?:

POST /login.php HTTP/1.1
Host: XXX.de
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: 
Cookie: PHPSESSID=9fc6421d5426fad005aea199b5e24872
Content-Type: application/x-www-form-urlencoded
Content-Length: 83
username=YYY&password=ZZZ&autologin=on&loginbutton =Login&loginaction=login
Und mein Quelltext:
PHP Code:
#include<String.au3>
$name=InputBox("Accountname","Gib deinen Accountnamen ein") $passwort=InputBox("Passwort","Gib dein Passwort ein")
TCPStartup() $ip = TCPNameToIP("www.XXX.de") TCPShutdown()
$post='username='&$name&'password='&$passwort&'autologin=on&loginbutton=Login&loginaction=login' $source=TCPRequest($ip,"XXX.de",0, "/login.php",$post, 'http://XXX.de/') $cookies=GetCookies($source) FileWrite("source.txt",$source)
Ist bei der TXPRequest am Ende beim Host wirklich nur '*' nicht "*"?
Ich hoffe du findest was...
Gruß Thamnophis
|
|
|
08/30/2010, 19:23
|
#140
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by Thamnophis
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?:

POST /login.php HTTP/1.1
Host: XXX.de
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: 
Cookie: PHPSESSID=9fc6421d5426fad005aea199b5e24872
Content-Type: application/x-www-form-urlencoded
Content-Length: 83
username=YYY&password=ZZZ&autologin=on&loginbutton =Login&loginaction=login
Und mein Quelltext:
PHP Code:
#include<String.au3>
$name=InputBox("Accountname","Gib deinen Accountnamen ein")
$passwort=InputBox("Passwort","Gib dein Passwort ein")
TCPStartup()
$ip = TCPNameToIP("www.XXX.de")
TCPShutdown()
$post='username='&$name&'password='&$passwort&'autologin=on&loginbutton=Login&loginaction=login'
$source=TCPRequest($ip,"XXX.de",0, "/login.php",$post, 'http://XXX.de/')
$cookies=GetCookies($source)
FileWrite("source.txt",$source)
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'
|
|
|
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:
PHP Code:
<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)
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
|
|
|
08/31/2010, 19:22
|
#142
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by Thamnophis
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:
PHP Code:
<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)
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
|
|
|
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
|
|
|
09/01/2010, 11:31
|
#144
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by Thamnophis
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:
|
|
|
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
|
|
|
09/01/2010, 12:58
|
#146
|
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
|
|
|
09/05/2010, 03:19
|
#147
|
elite*gold: 0
Join Date: Sep 2010
Posts: 520
Received Thanks: 86
|
Gutes Tutorial^^
Bringt nen Einsteiger auf jeden Fall weiter.
|
|
|
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 ^^
|
|
|
09/24/2010, 13:35
|
#149
|
elite*gold: 0
Join Date: Sep 2010
Posts: 3
Received Thanks: 0
|
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?
|
|
|
09/24/2010, 19:34
|
#150
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
|
Quote:
Originally Posted by jam2010
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.
|
|
|
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.
|
|