Что нового

[Автоматизация] Промблема в нажатии или скрипт попросту делает паузу.

Статус
Закрыто для дальнейших ответов.

Alex Loony

Новичок
Сообщения
6
Репутация
0
Написал простенького бота для онлайн игры.
Бот выделяет моба и бьёт его что меня очень порадовало, работает на ура..
Тут у меня возник вопрос.
Смотрим функцию:

1. Моб выделяеться. (Клавиша TAB)
2. Атака моба. (Цыфра 1)
3. На 3-ем действии хочу зделать баф чара. (Цыфра 2)

На 3-ем действии у меня ничего не получаеться.

Вот сам скрипт:

;;; Пауза, выключения бота.
Global $Paused
HotKeySet("{ESC}", "TogglePause")
HotKeySet("{F1}", "Terminate")

Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('Бот остановлен!',0,0)
WEnd
ToolTip("")
EndFunc

Func Terminate()
Exit 0
EndFunc

;;; Основа бота.
$VAR=0
$HWND1=_PROCESSGETWINDOW("1234.exe") ;;;Название процесса игры.

WHILE 1
CONTROLSEND($HWND1,"","","{TAB}") ;;; Клавиша выделения моба.
$RANDOM=RANDOM(-100,100,0)
SLEEP(200+$RANDOM)
CONTROLSEND($HWND1,"","","{1}") ;;; Атака выделенного моба.
$RANDOM=RANDOM(-100,100,0)
SLEEP(1000+$RANDOM)


SEND("{2}") Тут у меня что то не сходиться. Что не могу понять.
SLEEP(5000)
WEND

FUNC _PROCESSGETWINDOW($IPID,$IRET=1)
LOCAL $AWINLIST=WINLIST()
LOCAL $ARET[2]
IF ISSTRING($IPID)THEN
$IPID=PROCESSEXISTS($IPID)
ENDIF
FOR $I=1 TO UBOUND($AWINLIST)-1
IF WINGETPROCESS($AWINLIST[$I][1])=$IPID THEN
$ARET[0]=$AWINLIST[$I][0]
$ARET[1]=$AWINLIST[$I][1]
IF $IRET=0 THEN
RETURN $ARET[0]
ENDIF
IF $IRET=1 THEN
RETURN $ARET[1]
ENDIF
RETURN $ARET
ENDIF
NEXT
RETURN SETERROR(1,0,$ARET)
ENDFUNC
FUNC PAUSEFUNC()
IF $VAR=0 THEN
$VAR=1
PAUSEFUNC2()
ELSE
$VAR=2
ENDIF
ENDFUNC
FUNC PAUSEFUNC2()
WHILE 1
IF $VAR=2 THEN
$VAR=0
EXITLOOP
ENDIF
SLEEP(500)
WEND
ENDFUNC

Как я понимаю функция Sleep останавливает скрипт. 3 раза перечитал русский хелп и ничего не нашёл.
Жду вашей помощи..
 

greshnik77

Новичок
Сообщения
27
Репутация
0
Re: [Автоматизация] Бот, решение промблемы.

Пример на OnEvent Mode (подробнее в справке)

Код:
while 1
_baff_hp(); тут проверяем хп и бафы
_select_target(); выдиляем цель
sleep(10)
wend

Func _baff_hp()
....
хиляемся, бафаем
...
EndFunc

Func _select_target()
....
выделяем цель,атакуем
...
EndFunc
 

greshnik77

Новичок
Сообщения
27
Репутация
0
Re: [Автоматизация] Бот, решение промблемы.

Я вам набрасал код, объясню подробней.

Это основной цикл:
Код:
while 1
_baff_hp(); тут проверяем хп и бафы, после проверки переходим к _select_target()
_select_target(); выделяем цель, атакуем(во время атаки скорее всего необходимо мониторить хп противника, как значение хп будет равно нулю переходим к _baff_hp() и т.д. до бесконечности
sleep(10)
wend


Тут должн быть, список команд, для хила и бафа:

Код:
Func _baff_hp()

тут пишем свой код для хила,бафа

EndFunc


Тут будет цикл боя:

Код:
Func _select_target()

тут пишем свой код цикла боя

EndFunc
 

Belfigor

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

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


Как правильно называть темы

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

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








Предупреждение За нарушение правил форума (пункт В.11):
Любые отрывки AutoIt кода необходимо заключать в тег [autoit]
autoit.gif
(подробнее), а обычный код соответственно в тег [code]
code.gif
(подробнее). Также большие выдержки текста помещайте под тег [spoiler]
spoiler.gif
(подробнее), там где это поддерживается естественно. Как в случае с названием темы, также короткое и эргономичное сообщение привлекает больше внимания, и шансы на получение конкретного ответа увеличиваются.


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







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

Рекомендую перечитать правила, раз 15 хотя бы.

И да, если вы хотите чтобы ваш текст был жирненьким и выделялся на фоне остальных, общайтесь пожалуйста сами с собой в Microsoft Word.
 

greshnik77

Новичок
Сообщения
27
Репутация
0
Может так:
Код:
CONTROLSEND($HWND1,"","","{2}") Тут  у меня что то не сходиться. Что не могу понять.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,600
Репутация
940
То что код программы был закрыт под спойлер не значит что его не надо оформлять так как сказано в правилах.

+ Указывайте название игры для которой пишете бота в названии темы.

{TopicNameWarn}
{CodeWarn}
 
Автор
A

Alex Loony

Новичок
Сообщения
6
Репутация
0
Мне надо что бы клавиша 2 нажималась через определённое время. ( 300 секунд)
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,600
Репутация
940
Через часов 12 приду с работы, если тред стартер не применит к своей теме требуемые исправления, она будет закрыта.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,600
Репутация
940
Ввиду полного отказа автора темы осознать правила форума, тема закрывается.
 
Статус
Закрыто для дальнейших ответов.
Верх