Что нового

Ошибка в цикле While

volkov1

Новичок
Сообщения
17
Репутация
0
Уважаемые гуру, помогите разобраться в чем проблема. Есть такой код, часть кликера, но при запуске выдает ошибку: "Wend" statement will not matching "While" statement.
Код:
Run("notepad.exe")
$T1=TimerInit()
$T2=TimerInit()
$T3=TimerInit()

Func count1()
        Send("{A}")
        $T1=TimerInit()
    EndFunc
    
    Func count2()
        Send("{B}")
        $T2=TimerInit()
    EndFunc
    
    Func count3()
        Send("{C}")
        $T3=TimerInit()
    EndFunc
    
While 1
    
    If TimerDiff($T1)>5000 Then 
        count1()
    If TimerDiff($T2)>10000 Then 
        count2()
    If TimerDiff($T3)>15000 Then 
        count3()
    EndIf

WEnd

до того как перенес функцию. count() на следующую строку выдавал ошибку команды If...EndIf
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Код:
While 1
   
    If TimerDiff($T1)>5000 Then
        count1()
    endif ;ОБЯЗАТЕЛЬНО
    If TimerDiff($T2)>10000 Then
        count2()
    endif ;ОБЯЗАТЕЛЬНО
    If TimerDiff($T3)>15000 Then
        count3()
    endif ;ОБЯЗАТЕЛЬНО

WEnd
 
Автор
V

volkov1

Новичок
Сообщения
17
Репутация
0
спасибо за совет по If...EndIf, учту :smile: странно, что из-за этого цикл ошибку выдает...ну да ладно, буду иметь ввиду.

UPD. а почему тогда работает этот цикл? это кусок кода из GUI
Код:
While 1
    $nMsg = GUIGetMsg()
    
        If $nMsg = $GUI_EVENT_CLOSE Or $nMsg = $bExit Or $nMsg = $exit Then ExitLoop
        If $nMsg = $about Then MsgBox(0, "About", "Requiem clicker 0.0.1. Developed by Andrew aka 'kapellaN'")    
        If $nMsg = $help Then MsgBox(0, "Помощь", "Выберете длительность бафа (или скорость отката каста) и горячую клавишу этого заклинания," & @CRLF & "после этого нажмите 'Click!T' или 'Старт'.")
        If $nMsg = $bStart Or $nMsg = $start Then MsgBox(0, "Ой!", "Не работает пока :)")
WEnd
Exit
GUIDelete()
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
volkov1
Так будет работать:
Код:
;...
While 1
    If TimerDiff($T1)>5000 Then count1()
    If TimerDiff($T2)>10000 Then count2()
    If TimerDiff($T3)>15000 Then count3()
WEnd
;...
 
Автор
V

volkov1

Новичок
Сообщения
17
Репутация
0
т.е. нужно либо каждый оператор If закрывать EndIf, либо вообще не использовать EndIf. правильно я понимаю?
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Или использовать
Код:
if then
One
Two
Three
endif

или
Код:
if then OneStatement
код выполняющийся после условия независимо от него
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Автор
V

volkov1

Новичок
Сообщения
17
Репутация
0
не ругайтесь, уважаемый Garrett, справку читаю, но она на англицком и немного трудна для понимания :-[ а вот поискать на русском пока руки не доходят...
 
Верх