|
You last visited: Today at 15:52
Advertisement
[autoIT] Need Help (Anfaenger)
Discussion on [autoIT] Need Help (Anfaenger) within the AutoIt forum part of the Coders Den category.
11/23/2009, 15:02
|
#1
|
elite*gold: 0
Join Date: Jun 2008
Posts: 99
Received Thanks: 19
|
[autoIT] Need Help (Anfaenger)
Hi, ich bin seit kurzem am coden mit autoIT und habe da auch schon ein Projekt, dass ich teils auch schon fertig habe.
Das Projekt ist ein Tool für Warcraft3 bzw. DotA Spieler, die über Garena spielen.
Es beinhaltet bis jetzt:
-automatisches Starten und Login von Garena
-Ansage des Modes, wenn ein Spieler das Game joint (als Host)
-Eingabe des Modes nach Spielstart (als Host)
Und hier ist der neue Code:
Quote:
;Script von Philipp Keil
;;HostHelper v0.8
;;;Garena autostart funktioniert nicht
#include <String.au3>
#include <file.au3>
#include <misc.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
HotKeySet ("{F5}", "StartCountdown")
HotKeySet ("{F6}", "StopCountdown")
HotKeySet ("{F7}", "Mode")
HotKeySet ("{F8}", "End")
$file = "daten.txt"
If FileReadLine ($file,1) = "" then
$name = Inputbox ("HostHelper","Dein Login Nick?")
$Pass = InputBoX ("HostHelper","dein Passwort?","","*")
$Pfad = InputBoX ("HostHelper","Pfad zur Garena.exe","C:\Programme\Garena")
$crypt_name =_StringEncrypt(1,$name,"946699")
$crypt_pass =_StringEncrypt(1,$Pass,"946699")
FileWrite ($file, "")
_FileWriteToLine ($file, 1, $crypt_name, 1)
_FileWriteToLine ($file, 2, $crypt_pass, 1)
_FileWriteToLine ($file, 3, $Pfad, 1)
EndIf
$crypt_name2 = FileReadLine ($file, 1)
$crypt_pass2 = FileReadLine ($file, 2)
$name2 =_StringEncrypt(0,$crypt_name2,"946699")
$pass2 =_StringEncrypt(0,$crypt_pass2,"946699")
$Pfad = FileReadLine ($file, 3)
#Region ### START Koda GUI section ### Form=c:\dokumente und einstellungen\philipp keil\desktop\hosthelper\hosthelpergui.kxf
$Form1_1 = GUICreate("HostHelper", 493, 413, 488, 177)
$HostHelperv0_9 = GUICtrlCreateLabel("HostHelperv0.9", 71, 16, 342, 60)
GUICtrlSetFont(-1, 30, 400, 0, "Arial Black")
GUICtrlSetColor(-1, 0x008080)
$Group1 = GUICtrlCreateGroup("Garena", 136, 144, 177, 233)
$Nick = GUICtrlCreateInput($name2, 152, 192, 121, 21)
$Nick_Name = GUICtrlCreateLabel("Nick Name", 152, 168, 69, 19)
GUICtrlSetFont(-1, 8, 800, 0, "Arial Black")
$Passwort = GUICtrlCreateLabel("Passwort", 152, 224, 60, 19)
GUICtrlSetFont(-1, 8, 800, 0, "Arial Black")
$Passwort1 = GUICtrlCreateInput("*******************", 152, 248, 121, 21)
$Pfad_zur_garena_exe = GUICtrlCreateLabel("Pfad zur garena.exe", 160, 296, 121, 19)
GUICtrlSetFont(-1, 8, 800, 0, "Arial Black")
$Pfad = GUICtrlCreateInput($pfad, 152, 320, 121, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Start Tools", 56, 152, 75, 225, $WS_GROUP)
$Hotkeys = GUICtrlCreateLabel("Hotkeys:", 312, 152, 57, 19)
GUICtrlSetFont(-1, 8, 800, 0, "Arial Black")
$F5 = GUICtrlCreateLabel("Start Game = F5", 314, 176, 101, 19)
GUICtrlSetFont(-1, 8, 800, 0, "Arial Black")
$F7 = GUICtrlCreateLabel("Modeingabe = F7", 314, 200, 103, 19)
GUICtrlSetFont(-1, 8, 800, 0, "Arial Black")
$F8 = GUICtrlCreateLabel(" Beenden = F8", 311, 224, 88, 19)
GUICtrlSetFont(-1, 8, 800, 0, "Arial Black")
$Modusangabe = GUICtrlCreateGroup("Modusangabe", 336, 280, 137, 97)
$mod1 = GUICtrlCreateInput("", 344, 336, 121, 21)
GUICtrlCreateLabel("Modus des Spiels?", 344, 312, 115, 19)
GUICtrlSetFont(-1, 8, 800, 0, "Arial Black")
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Button1
if $mod1 = "1" then $mod1 = "APSO"
if $mod1 = "2" then $mod1 = "SDSO"
while 1
sleep (100)
WEnd
Func StartCountdown()
send ("MODE IS ")
send ("{enter}")
send ("-" & $mod1)
send ("{enter}")
sleep (5000)
send ("10")
send ("{enter}")
sleep (1000)
send ("9")
send ("{enter}")
sleep (1000)
send ("8")
send ("{enter}")
sleep (1000)
send ("7")
send ("{enter}")
sleep (1000)
send ("6")
send ("{enter}")
MouseMove (1110, 839)
MouseClick ( "left")
sleep (3800)
send ("{enter}")
EndFunc
Func StopCountdown()
while 1
sleep (100)
WEnd
EndFunc
while 1
sleep (100)
WEnd
Func Mode()
send ("{enter}")
send ("-" & $mod1)
send ("{enter}")
EndFunc
Func End()
Exit
EndFunc
Exit
EndSwitch
WEnd
|
Jetzt habe ich aber ein paar Probleme:
1. GelöstWenn ich ihm sage er soll Garena starten, dann macht er einfach garnichts.
Quote:
run ("garena.exe",$pfad2)
send ($name2)
send ("{TAB}")
send ($pass2)
send ("{enter}")
|
Die Variable ist in diesem Fall : C:\Programme\Garena
2.Gelöst Ich frage mich, ob autoIT erkennen kann, dass das Laden der Map abgeschlossen ist.
Ich hab mir gedacht solbald die Farbe eines bestimmten Pixels sich ändert, soll er den Mod eingeben, aber ich weiß nicht wie ich es schreiben soll. Viell. mit einer IF-Abfrage?
3. Kann autoIT erkennen, dass Spieler ins Spiel eingetreten sind und dann automatisch den Mode in den Chat schreiben?
4. GelöstWie ich es schreiben soll, dass wenn der User in der MessageBoX "Ja" gedrückt hat, er erst mit etwas anderem weiter machen soll?
So dachte ich es mir :
Quote:
msgBoX (4, "HostHelper", "Garena starten?")
If msgBoX = 8 then
run ("garena.exe",$pfad2)
send ($name2)
send ("{TAB}")
send ($pass2)
send ("{enter}")
EndFunc
|
Ich hoffe mir kann schnell jemand helfen, denn ich hab grad langeweile und brauch was zum denken.
MfG WaYnE
|
|
|
11/23/2009, 15:44
|
#2
|
elite*gold: 87
Join Date: Jul 2009
Posts: 2,998
Received Thanks: 1,640
|
1)
Er findet die Exe nicht. Pack die garana.exe mal in den Ordner mit dem Script.
2)
3) Versteh ich nicht. :/
|
|
|
11/23/2009, 15:45
|
#3
|
elite*gold: 42
Join Date: Jun 2008
Posts: 5,426
Received Thanks: 1,888
|
Das ist nicht die autoit section. Und setz deinen 'code' gefälligst in code-tags.
|
|
|
11/23/2009, 17:31
|
#4
|
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,876
|
Quote:
Originally Posted by Crrrespo
1)
Er findet die Exe nicht. Pack die garana.exe mal in den Ordner mit dem Script.
2)
3) Versteh ich nicht. :/
|
1) Benutz statt Run(...) lieber ShellExecute(...)
2)
3) Klar gibt es möglichkeiten das zu verwirklichen ...
Z.B. mit Pixelsearch (auf deinem Nivaeu wird das aber nix und erst recht nix mit Memories , also schmink dir das erstmal ab )
Btw Ich hab auch Garena
|
|
|
11/23/2009, 20:59
|
#5
|
elite*gold: 26
Join Date: Nov 2007
Posts: 32,810
Received Thanks: 12,143
|
Quote:
Originally Posted by oOWaYnEOo
3. Kann autoIT erkennen, dass Spieler ins Spiel eingetreten sind und dann automatisch den Mode in den Chat schreiben?
|
Code:
While 1 ; damit es nach dem ersten mal nicht aufhört
Do ;Tu folgendes:
$Suche = pixelgetcolor (***, yyy) ;Sucht die Pixelfarbe am Punkt ***, yyy raus
sleep (150) ; "Schläft" 150 millisekunden, da sonst zu CPU-lastig
until $suche = 0x0000 (dein Farbwert) ;(tu folgendes:) bis deine suche den Farbwert 0x0000 hat
WEnd ; wegen While 1 nötig
€dit: den Code hab ich mir grad mal aus nem anderen Thread geklaut weil der Tab noch offen war
Damit solltest dir den "Checker" ob die Map geladen ist basteln können
|
|
|
11/23/2009, 22:18
|
#6
|
elite*gold: 0
Join Date: Jun 2008
Posts: 99
Received Thanks: 19
|
Ok, schon mal ein großes Dankeschön an alle, die mir geantwortet haben.
@Shadow992: Es funktioniert jez mit "shellexecute"
Quote:
If $answer = 6 then
shellexecute ("garena.exe", "", "C:\Programme\Garena")
winwaitActive ("Login")
sleep (300)
send ($name2)
send ("{TAB}")
send ($pass2)
send ("{enter}")
EndIf
|
@Kazaaa: Muss er jedesmal neu den Punkt suchen?
Man könnte es doch auch so schreiben:
Quote:
$Suche = pixelgetcolor (***, yyy)
Do
sleep (100)
until $suche = 0x0000
WEnd
|
oder?
Egal, trotzdem dankeschön an alle die mir geholfen haben.
|
|
|
11/24/2009, 12:24
|
#7
|
elite*gold: 9
Join Date: Apr 2009
Posts: 10,163
Received Thanks: 3,805
|
Quote:
Originally Posted by oOWaYnEOo
@Kazaaa: Muss er jedesmal neu den Punkt suchen?
Man könnte es doch auch so schreiben:
oder?
Egal, trotzdem dankeschön an alle die mir geholfen haben.
|
Nein, da es sonst nur einmal nach dem Pixel sucht und dann gleich in der Schleife hängt, wenn er den Pixel beim ersten mal nicht gefunden hat. Danach geht dann garnichts mehr, das heißt, dann kommt er nicht mehr aus der Do Until Schleife raus.
(Funktion Do Until ist eine Art Schleife, die ausgeführt wird, bis eine Bedingung erfüllt ist -> Wenn sie nie erfüllt wird, dann kein Ende)
|
|
|
11/24/2009, 13:12
|
#8
|
elite*gold: 0
Join Date: Jun 2008
Posts: 99
Received Thanks: 19
|
So schlecht bin ich auch net, dass ich net weiß was eine Do until-Schleife ist.
Hab hier noch ne neue Frage, kann man Passwörter auch anders verschlüsseln als mit
"_StringEncrypt"?
Weil ich hab es jez so gemacht:
Quote:
If FileReadLine ($file,1) = "" then
$name = Inputbox ("HostHelper","Dein Login Nick?")
$Pass = InputBoX ("HostHelper","dein Passwort?","","*")
$crypt_name =_StringEncrypt(1,$name,"946699")
$crypt_pass =_StringEncrypt(1,$Pass,"946699")
FileWrite ($file, "")
_FileWriteToLine ($file, 1, $crypt_name, 1)
_FileWriteToLine ($file, 2, $crypt_pass, 1)
EndIf
|
Und wie kann ich die Farbe mit dem Windowinfo sehen, wenn ich das Spiel offen habe?
Es gibt leider keinen Fenstermodus.....
|
|
|
11/24/2009, 13:17
|
#9
|
elite*gold: 26
Join Date: Nov 2007
Posts: 32,810
Received Thanks: 12,143
|
Quote:
Originally Posted by oOWaYnEOo
Und wie kann ich die Farbe mit dem Windowinfo sehen, wenn ich das Spiel offen habe?
Es gibt leider keinen Fenstermodus.....
|
Strg+Alt+F sollte den Punkt den du mit der Maus angewählt hast freezen damit du ihn dann ausm WindowInfo auslesen kannst
|
|
|
11/26/2009, 20:56
|
#10
|
elite*gold: 0
Join Date: Jun 2008
Posts: 99
Received Thanks: 19
|
Hi, so ich hab ne neue Frage, wenn man eine GUI macht und schreibt:
Quote:
$mod1 = GUICtrlCreateInput("Apso", 344, 336, 121, 21)
|
dann ist $mod1 nicht das in den Input eingetragene.
Wollte fragen, wie man es hinbekommt, dass $mod1 immer das ist, was eingetragen wird.
|
|
|
11/26/2009, 23:55
|
#11
|
elite*gold: 87
Join Date: Jul 2009
Posts: 2,998
Received Thanks: 1,640
|
PHP Code:
$HELMK = GUICtrlCreateInput("Beliebiger Text", 184, 280, 33, 21)
send(GUICtrlRead($HELMK))
Bei mir wird "Beliebiger Text" gesendet. (ich hoffe das war es was du meinst )
|
|
|
11/27/2009, 16:01
|
#12
|
elite*gold: 0
Join Date: Jun 2008
Posts: 99
Received Thanks: 19
|
Nicht ganz, also wenn man eine GUI hat und in der GUI was einträgt in die inputbox, dann auf den Startbutton geht und, dass dann später das was in input
stand gesendet wird.
Bei mir sendet er dann nur das was am Anfang drin stand. Also das Voreingestellte (in meinem Fall "Apso")
|
|
|
11/28/2009, 22:51
|
#13
|
elite*gold: 0
Join Date: Jun 2008
Posts: 99
Received Thanks: 19
|
K, das Problem ist gelöst.
Jez muss ich nur rausfinden, wie das Tool erkennt, dass Spieler ins Spiel gejoint sind.
Also Pixelgetcolor funktioniert nicht, da sich nichts ändert außer dass der Name da steht.
Gibt es noch andere Möglichkeiten?
|
|
|
|
Similar Threads
|
AutoIt anfaenger
08/02/2010 - AutoIt - 7 Replies
huhu zusammen,
ich versuche mich gerade ein wenig in AutoIt einzuarbeiten und probiere erstmal die fuer mich noetigen grundlagen aus, hab aber eigentlich schon das problem mir ueberhaupt was anzeigen zu lassen ;)
#include <memory.au3>
#RequireAdmin
$Adresse = 0x106507E8;
$OffSet = 0x108F40;
$Open = _memoryopen(WinGetProcess("LastChaos"))
|
fuer anfaenger ohne prem
06/23/2010 - WarRock - 10 Replies
wenn ihr als anfaenger nich grad gekillt oder gekikt werden wollt, solltet ihr das tun:
klassen und waffen
kauft euch die de_eagle fuer 30 tage. zoggt mit medic, denn diese klasse ist fuer anfaenger am besten geignet, denn als n00b verliert man schnell hp.
nah und fernkampf
wenn ihr einen feind seht, er aber euch noch nicht gesehen hat, versucht ihm eine geziehlte kugel in den kopf zu jagen. hat er euch jedoch auch gesehen rollt euch entweder hinter ihn oder eine wand, kiste etc....
|
Hilfe fuer einen anfaenger
07/03/2008 - World of Warcraft - 3 Replies
Hi....ich bin ein Neuling in WOW habe vorher 3 jahre lineage gespielt und wollte mal was neues......also habe ich mir das game besorgt und warte jetzt nurnoch auf meinen glider key....dann soll es losgehen...und da kommt dann meine problem ich kenne mich in dem game null aus und weiss ich nicht wie der hase mit dem glider leuft deswegen hoffe ich hier jemanden zu finden der mir ein wenig mit rat zur seite steht.....ich hoffe einen spieler zu finden der ein herz von neulinge hat.....meine email...
|
autoIt-Anfaenger
01/09/2007 - General Coding - 4 Replies
Ich spiel seit ein paar Tagen mit autoIt herum, mache kleine Fortschritte und es macht mir Spass. Nur benutze ich das Programm noch sehr primitiv. :D
Zb.:
MSN starten, bisschen warten, Accountdaten eingeben und mit 'offline anzeigen' einloggen. Nur ich benutze um auf das Programma auf die richtigen Sachen klicken zu lassen, immer so oft {Tab}, bis es am richtigen Ort ist und dann {Enter} da ich sonst absolut keine Ahnung habe wie ich sonst das Programm dazu bringe, das zu tun was ich will....
|
All times are GMT +1. The time now is 15:52.
|
|