Что нового

Объединение нескольких скриптов в один

LazyShd

Новичок
Сообщения
2
Репутация
0
Всем доброго времени суток.
Недавно начал пользоваться AutoIt, обладая нулевыми познаниями в скриптинге, после проб и ошибок, смог сделать несколько скриптов, которые выполняют необходимые мне задачи.
Сами скрипты имеют вид:
Код:
Global $Paused
HotKeySet("j", "TogglePause")

While 1
$Poxel = PixelSearch(1425, 807, 1425, 807, 0xDC822F)
If IsArray ($Poxel) = True Then
   $Paxel = PixelSearch(222, 71, 222, 71, 0x00C200)
   If IsArray ($Paxel) = False Then
	  Send ("x")
   EndIf
EndIf

$Pyxel = PixelSearch(171, 80, 171, 80, 0x9D9B00)
If IsArray ($Pyxel) = False Then
   Send ("2")
EndIf

$Ppxel = PixelSearch(207, 94, 207, 94, 0xCE0A09)
If IsArray ($Ppxel) = True Then
   $Pzxel = PixelSearch(1326, 803, 1326, 803, 0x9A9794)
   If IsArray ($Pzxel) = False Then
	  Send ("r")
   EndIf
EndIf
$Pgxel = PixelSearch(207, 94, 207, 94, 0xCE0A09)
If IsArray ($Pgxel) = True Then
   $Pxxel = PixelSearch(191, 80, 191, 80, 0xAFAC00)
   If IsArray ($Pxxel) = True Then
	  Send ("e")
   EndIf
EndIf

$Pyxel = PixelSearch(1367, 807, 1367, 807, 0x942317)
If IsArray ($Pyxel) = False Then
   Send ("f")
EndIf
$Pyxel = PixelSearch(207, 94, 207, 94, 0xCE0A09)
If IsArray ($Pyxel) = False Then
   Send ("q")
EndIf
Sleep(150)
WEnd

Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused = SCRIPT IS NOT RUNNING = you wont get another message if you dont unpause it"',0,0)
    WEnd
    ToolTip("")
EndFunc

Для каждой ситуации у меня сделан подобный скрипт, однако пользоваться ими не совсем удобно, ибо при изменении ситуации мне приходится закрывать один скрипт и запускать другой.
Очень хочу объединить все мои скрипты в один большой скрипт и назначить для каждой отдельной ситуации свою горячую кнопку, но никак не могу разобраться как именно это сделать.
 

hedji

Продвинутый
Сообщения
409
Репутация
94
Код из каждого скрипта засунуть в один большой в виде отдельных функций, назначить функциям горячие клавиши.
Аналогично Func TogglePause() из Вашего примера.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
LazyShd [?]
объединить все мои скрипты в один большой скрипт
Проще сделать ещё один скрипт, который будет управлять другими скриптами
Код:
#pragma compile(AutoItExecuteAllowed, True)

HotKeySet("^q", "RunScript")
HotKeySet("^w", "RunScrupt")
HotKeySet("^e", "RunScropt")

Func RunScript()
  Run(@AutoItExe & " /AutoIt3ExecuteScript MyScript.au3")
EndFunc

Func RunScrupt()
  Run(@AutoItExe & " /AutoIt3ExecuteScript MyScrupt.au3")
EndFunc

Func RunScropt()
  Run(@AutoItExe & " /AutoIt3ExecuteScript MyScropt.au3")
EndFunc

While Sleep(111)
WEnd
 
Автор
L

LazyShd

Новичок
Сообщения
2
Репутация
0
Большое спасибо за ответы, отдельными функциями не смог сделать, не хватает пока знаний самого языка, использовав предложение InnI смог добиться желаемого.
 
Верх