Quote:
Originally Posted by HoLdY.
Hi Leute, das Login Script geht irgendwie nicht könnte mir jemand den Fehler sagen? Manchmal geht es aber ca 85% der Zeit erhalte ich einen Bugsplat nachdem oder wärend der Bot das Pw+Namen eingibt.
Hier das Script
#include-once
#AutoIt3Wrapper_UseX64=n
#include <File.au3>
#Include "ImageSearch.au3"
Local $x=0, $y=0, $i=0
Func _LoginLOL($Loginname, $LoginPW, $LolNexus = "", $LOLPath= "C:\Riot Games\League of Legends\lol.launcher.admin.exe")
;; ImageSearch
$Launch = "Include\Pic\launch.png"
$ok = "Include\Pic\ok.png"
$play = "Include\Pic\play.png"
$bug = "Include\Pic\bug.png"
;~ ;;Alle LoL instanzen schließen und neustarten
LoLNameToolTip("Login", $Loginname)
ProcessClose("Lolclient.exe")
ProcessClose("LoLlauncher.exe")
ProcessClose("rads_user_kernel.exe")
ProcessWaitClose("Lolclient.exe")
ProcessWaitClose("LoLlauncher.exe")
ProcessWaitClose("rads_user_kernel.exe")
Local $Clipboard = Clipget()
Clipput($LoginPW)
$StartLOL = Run($LOLPath, "", @SW_MAXIMIZE)
;; Patcher Play Button launch
LoLNameToolTip("Waiting for Patcher", $Loginname)
While 1
$SearchLaunch = _ImageSearch($Launch,1,$x,$y,0)
if $SearchLaunch = 1 then
MouseClick("left", $x, $y, 3)
ExitLoop
EndIf
Sleep(500)
WEnd
;; Login
LoLNameToolTip("Waiting for Loginscreen", $Loginname)
While 1
$SearchLaunch = _ImageSearch($Launch,1,$x,$y,0)
if $SearchLaunch = 1 then
MouseClick("left", $x, $y, 3)
ExitLoop
EndIf
$Loginfeld = PixelSearch( 0, 0, @DesktopWidth, @DesktopHeight, 0xC8933C )
IF IsArray($Loginfeld) = True Then
$Loginfeldberechned = $Loginfeld[1] + 176
MouseClick("left", $Loginfeld[0], $Loginfeldberechned)
exitloop
EndIf
Sleep(500)
WEnd
LoLNameToolTip("Login", $Loginname)
Send("{BS 30}{DEL 30}" &$Loginname & "{TAB}" & $LoginPW & "{Enter}")
;; Chatrescrict?
LoLNameToolTip("Chatrestrict?", $Loginname)
While 1
$bug = _ImageSearch($bug,1,$x,$y,0)
if $bug = 1 then
MouseClick("left", $x, $y, 3)
EndIf
$SearchAccept = _ImageSearch($ok,1,$x,$y,0)
if $SearchAccept = 1 then
MouseClick("left", $x, $y, 3)
ExitLoop
EndIf
$SearchPlay = _Imagesearch($play, 1,$x,$y,0)
if $SearchPlay = 1 Then
exitloop
EndIf
Sleep(500)
WEnd
If $LolNexus <> "" Then
ShellExecute("http://www.lolnexus.com/EUW/search?name=" & $LolNexus & "®ion=EUW")
EndIf
Clipput($Clipboard)
Endfunc
Func LoLNameToolTip($Status, $Loginname)
ToolTip($Status & " | "& $Loginname, 0, 0)
EndFunc
Wer mir hilft hat was gut bei mir :S
Danke im Vorraus
Ps://Die Zwischenspeicher funktion habe ich nur drinne damit ich falls das Script nicht Ordnungsgemäß startet mich manuell einloggen kann und kein pw eingeben muss :S
|
Da gibts gleich mehrere Baustellen^^
Erstmal hast du da was komisches geschrieben am Anfang der Datei.
Sofern du dein Script nicht als Ressource/Include verwendest, soll/muss da auch kein #include-once hin.
Quote:
|
Originally Posted by Au3 help
#include-once:
Specifies that the current file may only be included once
|
Außerdem solltest du dich für eine einheitliche Schreibweise bei den Includes entscheiden. D.h. keine Unterschiede in der Groß- und Kleinschreibung oder im Syntax.
Beispiel: Anstelle von
PHP Code:
#include-once
#AutoIt3Wrapper_UseX64=n
#include <File.au3>
#Include "ImageSearch.au3"
Schreibst du besser:
PHP Code:
#AutoIt3Wrapper_UseX64=n
#include <File.au3>
#include <ImageSearch.au3>
Danach definierst du 3 Variablen, nämlich 'x', 'y' und 'i' mit dem Schlüsselwort Local. Das macht, wie du es verwendest, keinen Sinn.
Das Schlüsselwort Local "kapselt" die Variablen nach außen hin ab, d.h. wenn du mit Local einige Variablen
innerhalb einer Funktion definierst, sind sie nur für diese Funktion gültig bzw. zugänglich. Außerhalb der Funktion kann der Wert der Variablen nicht abgerufen werden.
So kann es doch bei dir gar nicht laufen?
Stell am Besten mal das komplette Script rein, dann kann man dir auch besser helfen.
Edit³: Falls das schon das komplette Script ist (und es wegen Autoit Errors nicht läuft) rate ich dir, nochmal einen Blick in ein Autoit Grundlagen Tutorial (z.B. das von Remus oder Shadow) zu werfen.
Achso: Pack den Autoit Code bitte in php-BBCode-Tags hier im Forum (so wie ich bei den Beispielen), ist zwar eigentlich nicht die korrekte Sprache, dann lässt er sich aber besser lesen ;)^^
Edit: Sieht man ja ziemlich schlecht bei den Beispielen^^
Ich meine eher sowas:
PHP Code:
#include-once
#AutoIt3Wrapper_UseX64=n
#include <File.au3>
#Include "ImageSearch.au3"
Local $x=0, $y=0, $i=0
Func _LoginLOL($Loginname, $LoginPW, $LolNexus = "", $LOLPath= "C:\Riot Games\League of Legends\lol.launcher.admin.exe")
;; ImageSearch
$Launch = "Include\Pic\launch.png"
$ok = "Include\Pic\ok.png"
$play = "Include\Pic\play.png"
$bug = "Include\Pic\bug.png"
;~ ;;Alle LoL instanzen schließen und neustarten
LoLNameToolTip("Login", $Loginname)
ProcessClose("Lolclient.exe")
ProcessClose("LoLlauncher.exe")
ProcessClose("rads_user_kernel.exe")
ProcessWaitClose("Lolclient.exe")
ProcessWaitClose("LoLlauncher.exe")
ProcessWaitClose("rads_user_kernel.exe")
Local $Clipboard = Clipget()
Clipput($LoginPW)
$StartLOL = Run($LOLPath, "", @SW_MAXIMIZE)
;; Patcher Play Button launch
LoLNameToolTip("Waiting for Patcher", $Loginname)
While 1
$SearchLaunch = _ImageSearch($Launch,1,$x,$y,0)
if $SearchLaunch = 1 then
MouseClick("left", $x, $y, 3)
ExitLoop
EndIf
Sleep(500)
WEnd
;; Login
LoLNameToolTip("Waiting for Loginscreen", $Loginname)
While 1
$SearchLaunch = _ImageSearch($Launch,1,$x,$y,0)
if $SearchLaunch = 1 then
MouseClick("left", $x, $y, 3)
ExitLoop
EndIf
$Loginfeld = PixelSearch( 0, 0, @DesktopWidth, @DesktopHeight, 0xC8933C )
IF IsArray($Loginfeld) = True Then
$Loginfeldberechned = $Loginfeld[1] + 176
MouseClick("left", $Loginfeld[0], $Loginfeldberechned)
exitloop
EndIf
Sleep(500)
WEnd
LoLNameToolTip("Login", $Loginname)
Send("{BS 30}{DEL 30}" &$Loginname & "{TAB}" & $LoginPW & "{Enter}")
;; Chatrescrict?
LoLNameToolTip("Chatrestrict?", $Loginname)
While 1
$bug = _ImageSearch($bug,1,$x,$y,0)
if $bug = 1 then
MouseClick("left", $x, $y, 3)
EndIf
$SearchAccept = _ImageSearch($ok,1,$x,$y,0)
if $SearchAccept = 1 then
MouseClick("left", $x, $y, 3)
ExitLoop
EndIf
$SearchPlay = _Imagesearch($play, 1,$x,$y,0)
if $SearchPlay = 1 Then
exitloop
EndIf
Sleep(500)
WEnd
If $LolNexus <> "" Then
ShellExecute("http://www.lolnexus.com/EUW/search?name=" & $LolNexus & "®ion=EUW")
EndIf
Clipput($Clipboard)
Endfunc
Func LoLNameToolTip($Status, $Loginname)
ToolTip($Status & " | "& $Loginname, 0, 0)
EndFunc
Edit²: Was meinst du genau mit "Bugsplat"?
Einen Fehler von:
1. LoL-Client?
2. LoL-Game?
3. Autoit?