Что нового

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

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

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 596
Репутация
938
Re: [Автоматизация] Бот, решение промблемы.

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


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

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

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








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


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







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

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

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

greshnik77

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

Belfigor

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

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

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

Alex Loony

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

Belfigor

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

Belfigor

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