Тема: Как создать несколько бесконечных циклов с возможностью переключения?
Как создать несколько бесконечных циклов (ротаций скилов в игре) в одном скрипте, с возможностью переключения между циклами, полного отключения и повторного включения?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Серый форум → Общение → AutoHotKey — Games → Как создать несколько бесконечных циклов с возможностью переключения?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как создать несколько бесконечных циклов (ротаций скилов в игре) в одном скрипте, с возможностью переключения между циклами, полного отключения и повторного включения?
Что ты хочешь конкретно сделать?
Цикл одновременно будет один.
1::
Goto, Script
Return
2:: ;При нажатии на клавишу 2 - меняет значение
If Not bValue
{
bValue := Not bValue
}
else
{
bValue := Not bValue
}
Return
Script:
[color=blue]While(1)[/color]
[color=purple]{[/color]
If bValue
{
msgbox, 1
}
else
{
msgbox, 2
}
[color=purple]}[/color]
Такое?
Таким способом можно сделать только 2 цикла, а мне надо минимум 3. И совсем непонятно, как в этом примере цикл прерывается.
В общем, мне надо в скрипте минимум 3 бесконечных цикла (крутиться должен только один),с возможностью, по нажатию клавиши прервать один и включить другой, в произвольном порядке, или остановить все, с возможностью повторного включения.
Global iValue := 0 ;устанавливает значение на первый цикл
1::
Goto, Script
Return
2:: ;При нажатии на клавишу 2 - меняет значение
If iValue = 0
{
iValue := 1
}
else if iValue = 1
{
iValue := 2
}
else if iValue = 2
{
iValue := 0
}
Return
Script:
If iValue = 0
{
msgbox, 1
}
else if iValue = 1
{
msgbox, 2
}
else if iValue = 2
{
msgbox, 3
}
Так я и не утверждал, что специалист по программированию.
Код примерно такой
Global key
+1::
{
key := 1
goto, script
}
return
+2::
{
key := 2
goto, script
}
return
+3::
{
key := 3
goto, script
}
return
script:
{
While key = 1
{
send, %key%, 4
sleep 500
}
While key = 2
{
send, %key% 5
sleep 500
}
While key = 3
{
send, %key% 6
sleep 500
}
}
return
И включаются циклы, и переключаются, но только один раз. А почему так, я не знаю.
4 отключает циклы.
1::
Repeat := 1
GoTo, Work
2::
Repeat := 2
GoTo, Work
3::
Repeat := 3
GoTo, Work
4::Repeat := 0
Work:
If Work
Return
Work := 1
SetTimer, Loop, -1
Return
Loop:
While Repeat || (Work := 0)
{
If Repeat = 1
{
MsgBox, , , Proc 1, 0.2
}
Else If Repeat = 2
{
MsgBox, , , Proc 2, 0.2
}
Else If Repeat = 3
{
MsgBox, , , Proc 3, 0.2
}
}
Return
Или на таймере:
Loop:
If Repeat = 1
{
MsgBox, , , Proc 1, 0.2
}
Else If Repeat = 2
{
MsgBox, , , Proc 2, 0.2
}
Else If Repeat = 3
{
MsgBox, , , Proc 3, 0.2
}
SetTimer, Loop, % !Repeat ? -10 : -1
Return
1:: Repeat := 1
2:: Repeat := 2
3:: Repeat := 3
4:: Repeat := 0
Большое спасибо, именно то, что нужно.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться