Что нового

[Автоматизация]Бесконечный цикл работает, но потом останавливается без ошибки.

jufas222

Знающий
Сообщения
93
Репутация
5
AutoIt v3

Код:
HotKeySet("{F1}", "_Pause") ;Пауза
HotKeySet("{F2}", "_NotPause") ;Продолжить
Global $Paused
Func _Pause()
    $Paused = True
    While $Paused
        Sleep(100)
    WEnd
EndFunc
Func _NotPause()
    $Paused = False
EndFunc

While 1
    $aWinList = WinList('Counter-Strike')
    $pid = WinGetProcess("Counter-Strike")
    For $i = 1 To $aWinList[0][0] Step +1
        If WinGetProcess($aWinList[$i][1]) = $Pid Then
            Sleep (1000)
            ControlSend($aWinList[$i][1], '', '', '{Space}')
            Sleep (1000)
            ControlSend($aWinList[$i][1], '', '', '{5}')
            Sleep (1000)
            ControlSend($aWinList[$i][1], '', '', '{5}')
            Sleep (1000)
            ControlSend($aWinList[$i][1], '', '', '{1}')
            Sleep(1000)
            ControlSend($aWinList[$i][1], '', '', '{9}')
            Sleep (1000)
            ControlSend($aWinList[$i][1], '', '', "{0 down}")
            Sleep(1000)
            ControlSend($aWinList[$i][1], '', '', "{0 up}")
            ExitLoop
        EndIf
     Next
 WEnd



Это скрипт для игры Counter-Strike, сервера с War3Mod, скрипт покупает опыт в игре и идет вперед, выберет команду и расу, при смене карты. Дело в том что на сервере когда игрок стоит более чем 2 минуты без каких либо действий, то его сервер "кикает" для этого и нужно чтобы игрок шел вперед.
У меня возникла проблема, скрипт работает со свернутым окном, но когда окно свернуто и через какое то время я захожу в игру вижу надпись что меня "кикнул" сервер за простой (AFK). В чём может быть проблема? Ведь когда я нахожусь в игре все работает нормально.
P.S. Кикает именно сервер, а не администратор, и я не нажимаю на паузу скрипта
 

Ganibal95

GreenBytes
Сообщения
877
Репутация
240
Re: [Автоматизация] Без действие скрипта.

OffTopic:

да сколько можно одно и тоже создавать?



Добавлено:
Сообщение автоматически объединено:

jufas222 [?]
У меня возникла проблема, скрипт работает со свернутым окном, но когда окно свернуто и через какое то время я захожу в игру вижу надпись что меня "кикнул" сервер за простой (AFK). В чём может быть проблема?
Ты вообще уверен то что он передает? По пробуй в чате(что бы окно было свернуто!) написать скриптом.
 
Автор
J

jufas222

Знающий
Сообщения
93
Репутация
5
Re: [Автоматизация] Без действие скрипта.

Ganibal95 [?]
По пробуй в чате(что бы окно было свернуто!)


Вот это не понял...

Я уверен что скрипт работает и передает действия в игру, так как я написал выше, что скрипт выбирает команду в игре, покупает опыт, выбирает расу. Я проверял его работу разными способами, например: при входе на сервер нужно выбрать команду, я заходил на сервер, но не выбирал команду, а запускал скрипт, через несколько секунд я заходил в игру и видел что персонаж выбрал команду и расу.


Добавлено:
Сообщение автоматически объединено:

Код:
While 1
$aWinList = WinList('Counter-Strike')
$pid = WinGetProcess("Counter-Strike")
For $i = 1 To $aWinList[0][0] Step +1
    If WinGetProcess($aWinList[$i][1]) = $Pid Then
        Sleep (2000)
		ControlSend($aWinList[$i][1], '', '', '{Space}')
        Sleep (2000)
	    ControlSend($aWinList[$i][1], '', '', '{5}')
        Sleep (2000)
		ControlSend($aWinList[$i][1], '', '', '{5}')
	    Sleep (2000)
		ControlSend($aWinList[$i][1], '', '', '{1}')
		Sleep(1000)   
        ControlSend($aWinList[$i][1], '', '', '{9}')
		Sleep (1000)
		ControlSend($aWinList[$i][1], '', '', '{0}')
		ControlSend($aWinList[$i][1], '', '', '{0}')
		ControlSend($aWinList[$i][1], '', '', '{0}')
		ControlSend($aWinList[$i][1], '', '', '{0}')
		ControlSend($aWinList[$i][1], '', '', '{0}')
		ControlSend($aWinList[$i][1], '', '', '{0}')
		ControlSend($aWinList[$i][1], '', '', '{0}')
		ControlSend($aWinList[$i][1], '', '', '{0}')
		ExitLoop
    EndIf  
 Next
 WEnd


Я изменил скрипт как он был, до того как я узнал, что можно сделать паузу и зажать нужную мне клавишу, вместо того что бы ее прописывать много раз. Бот простоял часа 3-4 но потом все же я увидел что его "кикнуло", в то время как выше указанный скрипт стоял 1-2, а потом вылетал с сервера.
Скажите мне, у меня ведь скрипт стоит на бесконечный повтор действий скрипта?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: [Автоматизация] Без действие скрипта.

Предупреждение За нарушение правил форума (пункт Б.5):
Имя темы должно нести смысловую нагрузку (отражать суть вопроса/проблемы)
Правильно сформулированное название темы привлекает больше внимания, и шансы получить конкретный ответ увеличиваются.


Данные правила могут пополняться локальными правилами раздела.
Как правильно называть темы

"[Автоматизация] Без действие скрипта." - это неприемлемое название темы, переименуйте тему иначе она будет закрыта, а вам возможно будет выдан бан на несколько дней.

С уважением, ваш Модератор.
 

nowost

Знающий
Сообщения
178
Репутация
17
Re: [Автоматизация] Скрипт останавливается.

попробуй паузу передалть
Код:
HotKeySet ("{pause}",   "_script_togglePause")
Global $stSettings[1] = [False]

Func _script_togglePause ()
    $stSettings[0] = Not ($stSettings[0])
    If $stSettings[0] Then ToolTip (". . . pause . . .", @DesktopWidth/2, 100)
    While $stSettings[0]
        Sleep (100)
    WEnd
    ToolTip ("")
EndFunc

и судя по всему в твоем коде Exitloop срабатывает, цикл завершается а по новой не запускается.
 
Автор
J

jufas222

Знающий
Сообщения
93
Репутация
5
Re: [Автоматизация] Скрипт останавливается.

Ваш скрипт у меня не работает.
Если нет выхода, тогда я оставляю как есть, без паузы.
Всем спасибо.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [Автоматизация] Скрипт останавливается.

jufas222
Заголовок не стал лучше.
 
Автор
J

jufas222

Знающий
Сообщения
93
Репутация
5
Re: [Автоматизация] Скрипт останавливается.

CreatoR [?]
Заголовок не стал лучше.

Извините, но для данной темы я не могу придумать иного названия, ведь скрипт действительно перестает работать, функционировать...
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [Автоматизация] Скрипт останавливается.

jufas222 [?]
для данной темы я не могу придумать иного названия, ведь скрипт действительно перестает работать
И сколько таких тем будет, вы не задумывались?

Прочитайте внимательно то что указано в предупреждении, включая темы по ссылкам, это пригодится на будущее.
 
Автор
J

jufas222

Знающий
Сообщения
93
Репутация
5
Надеюсь это название подойдет к вашим требованиям.
 

running-frag

why me?
Сообщения
441
Репутация
60
Код:
HotKeySet ("{pause}",   "_script_togglePause")
Global $stSettings[1] = [False]

Func _script_togglePause ()
    $stSettings[0] = Not ($stSettings[0])
    If $stSettings[0] Then ToolTip (". . . pause . . .", @DesktopWidth/2, 100)
    While $stSettings[0]
        Sleep (100)
    WEnd
    ToolTip ("")
EndFunc


Вы даже не хотите разбираться. Этот код правильный.

ps: я его нашёл в своё время на форуме и до сих пор использую, и работает он правильно что бы вы не придумывали себе
 
Автор
J

jufas222

Знающий
Сообщения
93
Репутация
5
Я вас не в чем не обвиняю, и не пытаюсь не чего придумать.
Мои знания в AutoIt не на столько сильны что бы я мог сам доработать код.
Я буду вам благодарен, если вы со своими знаниями замените мой скрипт "паузы" на вашу паузу.


Добавлено:
Сообщение автоматически объединено:

Код:
TraySetToolTip('Кач - человек')
MsgBox(0,"Описание","F1 - Pause"&@CRLF&"F2 - NotPause")

HotKeySet("{F1}", "_Pause")
HotKeySet("{F2}", "_NotPause")
Global $Paused
Func _Pause()
    $Paused = True
    While $Paused
        Sleep(100)
    WEnd
EndFunc
Func _NotPause()
    $Paused = False
EndFunc


While 1
$aWinList = WinList('Counter-Strike')
$pid = WinGetProcess("Counter-Strike")
For $i = 1 To $aWinList[0][0] Step +1
    If WinGetProcess($aWinList[$i][1]) = $Pid Then
        Sleep (1000)
		ControlSend($aWinList[$i][1], '', '', '{Space}')
		Sleep (1000)
		ControlSend($aWinList[$i][1], '', '', '{0 down}')
		sleep (500)
		ControlSend($aWinList[$i][1], '', '', '{0 up}')
		Sleep (1000)
		ControlSend($aWinList[$i][1], '', '', '{5}')
        Sleep (1000)
		ControlSend($aWinList[$i][1], '', '', '{5}')
	    Sleep (1000)
		ControlSend($aWinList[$i][1], '', '', '{0 down}')
		Sleep(500)
		ControlSend($aWinList[$i][1], '', '', '{0 up}')
		Sleep (1000)
		ControlSend($aWinList[$i][1], '', '', '{2}')
		Sleep (1000)
		ControlSend($aWinList[$i][1], '', '', '{0 down}')
		Sleep (500)
		ControlSend($aWinList[$i][1], '', '', '{0 up}')
		Sleep (1000)
        ControlSend($aWinList[$i][1], '', '', '{9}')
		Sleep (1000)
		ControlSend($aWinList[$i][1], '', '', '{F5 down}')
		Sleep (Random(100,200))
		ControlSend($aWinList[$i][1], '', '', '{F5 up}')
		Sleep (500)
		ControlSend($aWinList[$i][1], '', '', '{8}')
		ExitLoop
    EndIf
 Next
 WEnd
 

running-frag

why me?
Сообщения
441
Репутация
60
Код:
HotKeySet("{F1}", "_Pause")
HotKeySet("{F2}", "_NotPause")
Global $Paused
Func _Pause()
    $Paused = True
    While $Paused
        Sleep(100)
    WEnd
EndFunc
Func _NotPause()
    $Paused = False
EndFunc

сменить на
Код:
HotKeySet ("{pause}",   "_script_togglePause")
Global $stSettings[1] = [False]

Func _script_togglePause ()
    $stSettings[0] = Not ($stSettings[0])
    If $stSettings[0] Then ToolTip (". . . pause . . .", @DesktopWidth/2, 100)
    While $stSettings[0]
        Sleep (100)
    WEnd
    ToolTip ("")
EndFunc


ps: вы очевидно не хотите разбираться в этом, имхо
 
Автор
J

jufas222

Знающий
Сообщения
93
Репутация
5
Вы не правы, естественно я удалил старый код и заменил на ваш, но у меня не чего не вышло.
Вчера ночью в другой теме мне дали ссылку на расширения баз аутоит, и уже сегодня ваш код работает.
Спасибо буду пробовать с вашим кодом.
 
Верх