ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   Цикл while (https://forum.antichat.xyz/showthread.php?t=1400301)

KhanWarden 31.08.2021 12:28

Вот начал изучать пайтон. Написал первый скрипт, который автоматически будет принимать игру в доте. Сделал поиск по картинке на экране в pyautogui, но загвоздка в том, что он отключается через секунду. То есть как включается скрипт в течение секунды если не найдется на экране картинка как на скриншоте, то отключается. Как создать бесконечный цикл, чтобы он работал всегда и не выключался даже после принятия игры?

Python:





Код:

import
pyautogui

screen
=
'C:/Users/Khan/Desktop/start.png'
# Местоположение скриншота
start
=
pyautogui
.
locateOnScreen
(
screen
,
confidence
=
0.9
)
pyautogui
.
click
(
start
)


pomidorq 02.09.2021 22:58

Попробуй так:

Python:





Код:

import
pyautogui
import
time

screen
=
'C:/Users/Khan/Desktop/start.png'
def
check_game
(
screen
)
:
try
:
start
=
pyautogui
.
locateOnScreen
(
screen
,
confidence
=
0.9
)
except
:
pass
else
:
pyautogui
.
click
(
start
)
while
True
:
check_game
(
screen
)
time
.
sleep
(
0.5
)



Скорее всего закрывается потому, что при отсутствии изображении на экране происходит ошибка ImageNotFoundException (информация из документации pyautogui), а при возникновении ошибок скрипт автоматически прекратит работу. Чтобы не прекращал существуют блоки try-except-else, которые при возникновении ошибок могут их игнорировать, либо принимать какие то действия, в твоём случае ошибка будет игнорироваться зарезервированным словом pass, которое просто ничего не делает.

Конкретно не советую использовать python скрипты в играх, во первых они работают не корректно, через раз, во вторых бесконечный цикл нагружает ПК. Для доты купи какой нибудь октарин, либо скачай бесплатный овервульф, там есть автопринятие игры.

Если будешь в будущем "искать" изображения на экране - используй OpenCV.

Удачи.

Rei 02.09.2021 23:40

Цитата:

Сообщение от devilgoat

Если будешь в будущем "искать" изображения на экране - используй OpenCV.
Удачи.

пайавтогуй и так использует opencv 😉

pomidorq 02.09.2021 23:57

Цитата:

Сообщение от Rei

пайавтогуй и так использует opencv 😉

А зачем усложнять работу скрипту, вызывая одну библиотеку которая использует другую, и предназначена не только для работы с изображениями?

Rei 03.09.2021 00:27

Цитата:

Сообщение от devilgoat

А зачем усложнять работу скрипту, вызывая одну библиотеку которая использует другую, и предназначена не только для работы с изображениями?

ну тк он с pyatogui не только ищет изображение, а еще и кликает. т.е. зачем городить левую дрочь, если можно той же либой устроить все одной строчкой?

такой вариант плох только тем, что он по всему экрану ищет и производительность будет желать лучшего

pomidorq 03.09.2021 01:15

Цитата:

Сообщение от Rei

ну тк он с pyatogui не только ищет изображение, а еще и кликает. т.е. зачем городить левую дрочь, если можно той же либой устроить все одной строчкой?

такой вариант плох только тем, что он по всему экрану ищет и производительность будет желать лучшего

Окей, насчёт клика я не прав. Но во всяком случае только для поиска изображений на экране, я считаю нужно юзать сразу opencv.


Время: 06:11