lawpapa Posted October 31, 2005 Share Posted October 31, 2005 Error msg sais there is no matching while tag with wend statement, however there is i wonder weather u saw something like this or not : if i replace while with for There is the same error message with for: there is no matching for with statement next expandcollapse popup$myvar1 = 0 $myvar2 = 0 $myvar3 = 0 $myvar4 = 0 $b = 1 winminimazeall () While ( 1 = 1 ) Sleep (4000) select case $b = 1 MouseClick( "left", 125, 752 ) Sleep(4000) if $myvar1 = 0 then Func1 () Func2 () RunWait( , "", @SW_HIDE ) Func3 () else Func4 () endif case $b = 2 MouseClick( "left", 292, 752 ) Sleep(4000) if $myvar2 = 0 then Func1 () Func2 () RunWait( , "", @SW_HIDE ) Func3 () else Func4 () endif case $b = 3 MouseClick( "left", 468, 752 ) Sleep(4000) if $myvar3 = 0 then Func1 () Func2 () RunWait( , "", @SW_HIDE ) Func3 () else Func4 () endif case $b = 4 MouseClick( "left", 625, 752 ) Sleep(4000) if $myvar4 = 0 then Func1 () Func2 () RunWait( , "", @SW_HIDE ) Func3 () else Func4 () endif endselect If $b = 4 then $b = 1 else $b = $b + 1 wend HEEEELP meeee ggrgrrgrgr :D:D:S:s:S:S Link to comment Share on other sites More sharing options...
lawpapa Posted October 31, 2005 Author Share Posted October 31, 2005 oops and theese are the functions: Func 2 () if $localvar = 1 then Func 2b () EndIf Return EndFunc Func 2b () select case $b = 1 $myvar1 = 1 case $b = 2 $myvar2 = 1 case $b = 3 $myvar3 = 1 case $b = 4 $myvar4 = 1 endselect Return EndFunc Link to comment Share on other sites More sharing options...
HardCopy Posted October 31, 2005 Share Posted October 31, 2005 (edited) Error msg sais there is no matching while tag with wend statement, however there is i wonder weather u saw something like this or not :if i replace while with for There is the same error message with for: there is no matching for with statement next HEEEELP meeee ggrgrrgrgr :D:D:S:s:S:S changeWhile ( 1 = 1 )towhile 1Your runwaits look wrong too. Missing filenamesHardCopy Edited October 31, 2005 by HardCopy Contributions: UDF _DateYearFirstChildren are like Farts, you can just about stand your own.Why am I not a Vegetarian?...Well...my ancestors didn't fight & evolve to the Top of the food chain for me to survive on Salad Link to comment Share on other sites More sharing options...
lawpapa Posted October 31, 2005 Author Share Posted October 31, 2005 changeWhile ( 1 = 1 )towhile 1Your runwaits look wrong too. Missing filenamesHardCopyTy for reply my runwaits is ok in my original script i wrote filename and all the thingsAnyway i tried to change to While (1) there is the same error message There is no matching while to wend statement Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted October 31, 2005 Moderators Share Posted October 31, 2005 (edited) Wow, that code is kind of all over the place... I don't know where to start.. Ok.. 1. Where is the function your calling when you start your script winminimazeall () ? 2. While (1 = 1) like HardCopy said Should be.. While 1 ;script here Wend 3. your function calls: Func2() Then your Func2 should look like this: Func Func2() ;script here EndFunc 4. RunWait( , "", @SW_HIDE) If your calling to an executable where is it? Example from help: RunWait ( "filename" [, "workingdir" [, flag]] ) = RunWait("Notepad.exe", "C:\WINDOWS", @SW_MAXIMIZE) 5. Return , what result are you trying to return? Example, if I'm trying to return the result from $ABCD, it would be Return $ABCD, not just Return. Try looking at these examples from what I've pointed out as definate problem areas, and then look at what they are supposed to do, and how they are supposed to be coded in the help file. Hope this helps... Good Luck Edit: Yes Just an Edit Edited October 31, 2005 by ronsrules Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
lawpapa Posted October 31, 2005 Author Share Posted October 31, 2005 I did not ment to bother u with my full script I just made a model of it. The problem of no matching while is resolved.. it was becuz of one single missing endif tag.... Here is the full version of my script: expandcollapse popupGlobal $x, $y, $GameCount $namivan1 = 0 $namivan2 = 0 $namivan3 = 0 $namivan4 = 0 $b = 1 $GameCreateDelay = 0 $Name = 0 $Pass = 0 $GameCount = 1 $SettingsFile = @SCRIPTDIR & '\Settings.ini' ;$SoundFile = @SCRIPTDIR & '\tada.wav' $GameCreateDelay = IniRead ( $SettingsFile, 'Settings', 'GameCreateDelay', "ERROR" ) $DCloneIP1 = IniRead ( $SettingsFile, 'Settings', 'DCloneIP1', 999 ) & ":4000" $DCloneIP2 = IniRead ( $SettingsFile, 'Settings', 'DCloneIP2', 999 ) & ":4000" $DCloneIP3 = IniRead ( $SettingsFile, 'Settings', 'DCloneIP3', 999 ) & ":4000" $DCloneIP4 = IniRead ( $SettingsFile, 'Settings', 'DCloneIP4', 999 ) & ":4000" $DCloneIP5 = IniRead ( $SettingsFile, 'Settings', 'DCloneIP5', 999 ) & ":4000" $ServerIp = '213.248.106.' winminimazeall () While 1 Sleep (4000) select case $b = 1 MouseClick( "left", 125, 752 ) Sleep(4000) if $namivan1 = 0 then Exitgame () CreateGame () RunWait( @ComSpec & " /c " & 'netstat -n>c:\ip.txt' , "", @SW_HIDE ) CompareIP () else Antiidle () endif case $b = 2 MouseClick( "left", 292, 752 ) Sleep(4000) if $namivan2 = 0 then Exitgame () CreateGame () RunWait( @ComSpec & " /c " & 'netstat -n>c:\ip.txt' , "", @SW_HIDE ) CompareIP () else Antiidle () endif case $b = 3 MouseClick( "left", 468, 752 ) Sleep(4000) if $namivan3 = 0 then Exitgame () CreateGame () RunWait( @ComSpec & " /c " & 'netstat -n>c:\ip.txt' , "", @SW_HIDE ) CompareIP () else Antiidle () endif case $b = 4 MouseClick( "left", 625, 752 ) Sleep(4000) if $namivan4 = 0 then Exitgame () CreateGame () RunWait( @ComSpec & " /c " & 'netstat -n>c:\ip.txt' , "", @SW_HIDE ) CompareIP () else Antiidle () endif endselect If $b = 4 then $b = 1 else $b = $b + 1 EndIf wend ; =========== Subroutines =============== Func CreateGame () ; WinActivate ( 'Diablo II' ) ; WinWaitActive ( 'Diablo II' ) MouseClick( "left", 601, 482 ) Sleep ( 1500 ) $Name = Random ( 100000, 900000 ) $Pass = Random ( 100000, 900000 ) Send ( $Name & '{TAB}' ) Sleep ( 250 ) Send ( $Pass & '{ENTER}' ) Sleep ( $GameCreateDelay + 250 ) EndFunc Return Func CompareIP () Local $IPStart $A = 1 $hit = 0 for $i = 1 to 20 $CheckIP = FileReadLine ( 'C:\ip.txt', $A ) ;Only check if server IP is part of the current line and it's port 4000 $IPStart = StringInStr ( $CheckIP, $ServerIP ) $PortStart = StringInStr ( $CheckIP, ":4000" ) If ( $IPStart >0 ) and ( $PortStart>0 ) then SplashTextOn ( 'lawHunter 2.2', "Current try: " & $GameCount &@CRLF & "Current IP: " &StringMid ( $CheckIp, $IPStart, $PortStart-$IPStart ), 200, 100,824,0 ) ;WinActivate ( 'Diablo II' ) if StringInStr ( $CheckIP, $ServerIP & $DCloneIP1 ) > 0 then $hit = 1 if StringInStr ( $CheckIP, $ServerIP & $DCloneIP2 ) > 0 then $hit = 1 if StringInStr ( $CheckIP, $ServerIP & $DCloneIP3 ) > 0 then $hit = 1 if StringInStr ( $CheckIP, $ServerIP & $DCloneIP4 ) > 0 then $hit = 1 if StringInStr ( $CheckIP, $ServerIP & $DCloneIP5 ) > 0 then $hit = 1 EndIf $A = $A + 1 next if $hit = 1 then CloneFound () EndIf $GameCount = $GameCount + 1 Return EndFunc Func ExitGame () ; WinActivate ( 'Diablo II', ',' ) Sleep ( 250 ) Send ( '{ESC}' ) Sleep ( 250 ) Send ( '{UP}' ) Sleep ( 250 ) Send ( '{ENTER}' ) Sleep ( 5000 ) Return EndFunc Func CloneFound () select case $b = 1 $namivan1 = 1 case $b = 2 $namivan2 = 1 case $b = 3 $namivan3 = 1 case $b = 4 $namivan4 = 1 endselect ; filedelete ( 'c:\ip.txt' ) ; SoundPlay ( $SoundFile ) ; While WinActive ( 'Diablo II' ) Return EndFunc Func Antiidle () Send ( '{ENTER}' ) Send ( "bla" ) Send ( '{ENTER}' ) Sleep ($GameCreateDelay) Return EndFunc Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted October 31, 2005 Moderators Share Posted October 31, 2005 Actually, you didn't take my advice, your script is a mess... everything I said that was wrong with it was. You're not missing and 'EndIf', your returns were not returning anything, you have function calls with no functions. Please find the SciTE Editor by searching the forum for JdEB, look in his signature and you'll see the link for download. Your life will be much easier in the future... BTW, I don't play the game Diablo, but never new you had to use netstat to play it? I doubt seriously this works like you want it to, but I cleaned it up so there were no errors. expandcollapse popupGlobal $x, $y, $GameCount Dim $Name, $Pass $namivan1 = 0 $namivan2 = 0 $namivan3 = 0 $namivan4 = 0 $b = 1 $GameCreateDelay = 0 $Name = 0 $Pass = 0 $GameCount = 1 $SettingsFile = @ScriptDir & '\Settings.ini' ;$SoundFile = @SCRIPTDIR & '\tada.wav' $GameCreateDelay = IniRead($SettingsFile, 'Settings', 'GameCreateDelay', "ERROR") $DCloneIP1 = IniRead($SettingsFile, 'Settings', 'DCloneIP1', 999) & ":4000" $DCloneIP2 = IniRead($SettingsFile, 'Settings', 'DCloneIP2', 999) & ":4000" $DCloneIP3 = IniRead($SettingsFile, 'Settings', 'DCloneIP3', 999) & ":4000" $DCloneIP4 = IniRead($SettingsFile, 'Settings', 'DCloneIP4', 999) & ":4000" $DCloneIP5 = IniRead($SettingsFile, 'Settings', 'DCloneIP5', 999) & ":4000" $ServerIp = '213.248.106.' ;winminimazeall () While 1 Sleep(4000) Select Case $b = 1 MouseClick( "left", 125, 752) Sleep(4000) If $namivan1 = 0 Then ExitGame() CreateGame() RunWait(@ComSpec & " /c " & 'netstat -n>c:\ip.txt', "", @SW_HIDE) CompareIP() Else Antiidle() EndIf Case $b = 2 MouseClick( "left", 292, 752) Sleep(4000) If $namivan2 = 0 Then ExitGame() CreateGame() RunWait(@ComSpec & " /c " & 'netstat -n>c:\ip.txt', "", @SW_HIDE) CompareIP() Else Antiidle() EndIf Case $b = 3 MouseClick( "left", 468, 752) Sleep(4000) If $namivan3 = 0 Then ExitGame() CreateGame() RunWait(@ComSpec & " /c " & 'netstat -n>c:\ip.txt', "", @SW_HIDE) CompareIP() Else Antiidle() EndIf Case $b = 4 MouseClick( "left", 625, 752) Sleep(4000) If $namivan4 = 0 Then ExitGame() CreateGame() RunWait(@ComSpec & " /c " & 'netstat -n>c:\ip.txt', "", @SW_HIDE) CompareIP() Else Antiidle() EndIf EndSelect If $b = 4 Then $b = 1 Else $b = $b + 1 EndIf WEnd ; =========== Subroutines =============== Func CreateGame() ; WinActivate ( 'Diablo II' ) ; WinWaitActive ( 'Diablo II' ) MouseClick( "left", 601, 482) Sleep(1500) $Name = Random(100000, 900000) $Pass = Random(100000, 900000) Send($Name & '{TAB}') Sleep(250) Send($Pass & '{ENTER}') Sleep($GameCreateDelay + 250) EndFunc ;==>CreateGame Func CompareIP() Local $IPStart $A = 1 $hit = 0 For $i = 1 To 20 $CheckIP = FileReadLine('C:\ip.txt', $A) ;Only check if server IP is part of the current line and it's port 4000 $IPStart = StringInStr($CheckIP, $ServerIp) $PortStart = StringInStr($CheckIP, ":4000") If ($IPStart > 0) and ($PortStart > 0) Then SplashTextOn('lawHunter 2.2', "Current try: " & $GameCount & @CRLF & "Current IP: " & StringMid($CheckIP, $IPStart, $PortStart - $IPStart), 200, 100, 824, 0) ;WinActivate ( 'Diablo II' ) If StringInStr($CheckIP, $ServerIp & $DCloneIP1) > 0 Then $hit = 1 If StringInStr($CheckIP, $ServerIp & $DCloneIP2) > 0 Then $hit = 1 If StringInStr($CheckIP, $ServerIp & $DCloneIP3) > 0 Then $hit = 1 If StringInStr($CheckIP, $ServerIp & $DCloneIP4) > 0 Then $hit = 1 If StringInStr($CheckIP, $ServerIp & $DCloneIP5) > 0 Then $hit = 1 EndIf $A = $A + 1 Next If $hit = 1 Then CloneFound() EndIf $GameCount = $GameCount + 1 Return $GameCount EndFunc ;==>CompareIP Func ExitGame() ; WinActivate ( 'Diablo II', ',' ) Sleep(250) Send('{ESC}') Sleep(250) Send('{UP}') Sleep(250) Send('{ENTER}') Sleep(5000) EndFunc ;==>ExitGame Func CloneFound() Select Case $b = 1 $namivan1 = 1 Case $b = 2 $namivan2 = 1 Case $b = 3 $namivan3 = 1 Case $b = 4 $namivan4 = 1 EndSelect ; filedelete ( 'c:\ip.txt' ) ; SoundPlay ( $SoundFile ) ; While WinActive ( 'Diablo II' ) EndFunc ;==>CloneFound Func Antiidle() Send('{ENTER}') Send("bla") Send('{ENTER}') Sleep($GameCreateDelay) EndFunc ;==>Antiidle Good Luck to you, and be sure to read the Help file on the 'Commands' you're using and the proper ways to use them. Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
Nuffilein805 Posted October 31, 2005 Share Posted October 31, 2005 lol, the return are awesome maybe you shouldn't just copy from the helpfile and think about whatever you wanna do btw: just sending "bla" for idling around will make you quite suspicious for blizzard, you will get banned in no time my little chatmy little encryption toolmy little hidermy unsafe clickbot Link to comment Share on other sites More sharing options...
lawpapa Posted October 31, 2005 Author Share Posted October 31, 2005 (edited) Ty so much for everybody especially for Ron This is high time to see how it works in practice however i cant use functions properly i think this is quite nice achievement in 2 days of programing autoit- Edited October 31, 2005 by lawpapa Link to comment Share on other sites More sharing options...
Moderators SmOke_N Posted October 31, 2005 Moderators Share Posted October 31, 2005 I sense a language barrier too, so Kudos to you for 2 days. [playful sarcasm] But 'nothing is an achievement, until it's achieved' [/playful sarcasm] Common sense plays a role in the basics of understanding AutoIt... If you're lacking in that, do us all a favor, and step away from the computer. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now