ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   grid coords? очередной даунизм где я brainfart-нул (https://forum.antichat.xyz/showthread.php?t=1526564)

copypaste_scripter 07.12.2024 20:59

крч сразу к делу

Python:





Код:

import
time
from
pynput
.
mouse
import
Button
,
Controller
from
pynput
.
keyboard
import
Key
,
Listener

mouse
=
Controller
(
)
from
myvars
import
*
meow
=
[
[
1750
,
50
,
1
]
]
woof
=
[
#[x coord, y coord, var]
[
100
,
500
,
apple
]
# в файлу откуда берется этот apple указан что он равен 4
]
def
on_press
(
key
)
:
try
:
if
key
==
Key
.
f4
:
for
kitties
in
meow
:
mouse
.
position
=
(
kitties
[
0
]
,
kitties
[
1
]
)
time
.
sleep
(
0.2
)
mouse
.
click
(
Button
.
left
,
kitties
[
2
]
)
time
.
sleep
(
0.2
)
elif
key
==
Key
.
f5
:
for
puppies
in
woof
:
mouse
.
position
=
(
puppies
[
0
]
,
puppies
[
1
]
)
time
.
sleep
(
0.2
)
mouse
.
click
(
Button
.
left
,
puppies
[
2
]
)
time
.
sleep
(
0.2
)
except
AttributeError
:
return
False
with
Listener
(
on_press
=
on_press
)
as
listener
:
listener
.
join
(
)



вот короче как я могу сделать чтобы при проходе по таблицу "woof" при значении "apple" 4 кликнул по этому "домофону" на "Е". (там учтен что числа идут от 0, а не с 1)

типо расстояние между кнопками домофона 150 пикселей. я понял что надо

XcoordA + apple*150

YcoordA + apple*150

но из за неровной расположении кнопок чет не получается + мои мозг и iq не хватает на такое (НАДО БЫЛО МАТЕМАТИКУ УЧИТЬ ЛУЧШЕ) или выпить анти-склерозные таблетки

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

а про эту тему я не знал как гуглить/спросить у чат жопате

https://forum.antichat.xyz/attachmen...908aa245ee.png

жду ваших слов

copypaste_scripter 08.12.2024 00:44

хочу услышать хотя бы направлению или название функции/решения, чтобы выучить или гуглить дальше

Ну погоди! 08.12.2024 00:58

Не сильно понял твоих мыслей, закинув промт в ChatGPT, получил следующее:

Код:





Код:

import time
from pynput.mouse import Button, Controller
from pynput.keyboard import Key, Listener

mouse = Controller()

# Базовые координаты (начало домофона)
XcoordA = 100  # Базовый X
YcoordA = 500  # Базовый Y

# Расстояния между кнопками
x_offset = 150  # Горизонтальное расстояние
y_offset = 150  # Вертикальное расстояние

# Таблица с данными
woof = [
    # [x coord, y coord, var]
    [XcoordA, YcoordA, 4]  # `4` здесь — значение apple
]

def on_press(key):
    try:
        if key == Key.f4:
            # Логика для "meow" остаётся
            for kitties in meow:
                mouse.position = (kitties[0], kitties[1])
                time.sleep(0.2)
                mouse.click(Button.left, kitties[2])
                time.sleep(0.2)

        elif key == Key.f5:
            for puppies in woof:
                # Берём координаты из таблицы
                base_x, base_y, apple = puppies

                # Рассчитываем новые координаты
                new_x = base_x + apple * x_offset
                new_y = base_y + apple * y_offset

                # Кликаем
                mouse.position = (new_x, new_y)
                time.sleep(0.2)
                mouse.click(Button.left, 1)  # 1 клик
                time.sleep(0.2)

    except AttributeError:
        return False

with Listener(on_press=on_press) as listener:
    listener.join()



Распиши подробнее, что надо

copypaste_scripter 09.12.2024 13:02

Цитата:

Сообщение от Ну погоди!

Распиши подробнее, что надо

этот домофон в игре. надо сделать так, что если значение переменной 0 то нажимался А, если 1 то Б и т.д.

0Z0SK0 09.12.2024 21:49

https://pypi.org/project/easyocr/

copypaste_scripter 09.12.2024 21:51

Цитата:

Сообщение от 0Z0SK0

https://pypi.org/project/easyocr/

пасиб но такое не поможет. надо именно клик по координатам

0Z0SK0 09.12.2024 21:52

Цитата:

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

пасиб но такое не поможет. надо именно клик по координатам

Так сделай распознавание текста по экрану, и кликай по координатам

Python:





Код:

import
easyocr
import
cv2
import
numpy
as
np
import
pyautogui

reader
=
easyocr
.
Reader
(
[
'en'
]
)
while
True
:
screenshot
=
pyautogui
.
screenshot
(
)
screenshot
=
cv2
.
cvtColor
(
np
.
array
(
screenshot
)
,
cv2
.
COLOR_RGB2BGR
)
results
=
reader
.
readtext
(
screenshot
)
for
(
bbox
,
text
,
prob
)
in
results
:
text
=
text
.
strip
(
)
.
upper
(
)
if
text
==
"A"
:
print
(
0
)
elif
text
==
"B"
:
print
(
1
)


copypaste_scripter 09.12.2024 21:55

Цитата:

Сообщение от 0Z0SK0

Так сделай распознавание текста по экрану, и кликай по координатам

дело в том, что там не текст, там картинки
https://forum.antichat.xyz/attachmen...0c9a7e4e1d.png

0Z0SK0 09.12.2024 21:56

Цитата:

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

дело в том, что там не текст, там картинки

Скинь скриншот хотя бы что там вообще

Цитата:

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

дело в том, что там не текст, там картинки

Python:





Код:

import
cv2
import
numpy
as
np
import
pyautogui

pattern_image
=
cv2
.
imread
(
'pattern.png'
)
# путь к картинке кнопки
while
True
:
screenshot
=
pyautogui
.
screenshot
(
)
screenshot
=
cv2
.
cvtColor
(
np
.
array
(
screenshot
)
,
cv2
.
COLOR_RGB2BGR
)
result
=
cv2
.
matchTemplate
(
screenshot
,
pattern_image
,
cv2
.
TM_CCOEFF_NORMED
)
if
np
.
any
(
result
>=
0.8
)
:
print
(
"founded"
)


copypaste_scripter 09.12.2024 22:01

Цитата:

Сообщение от 0Z0SK0

Скинь скриншот хотя бы что там вообще

Python:





Код:

import
cv2
import
numpy
as
np
import
pyautogui
import
time

pattern_image
=
cv2
.
imread
(
'pattern.png'
)
# путь к картинке кнопки
while
True
:
screenshot
=
pyautogui
.
screenshot
(
)
screenshot
=
cv2
.
cvtColor
(
np
.
array
(
screenshot
)
,
cv2
.
COLOR_RGB2BGR
)
result
=
cv2
.
matchTemplate
(
screenshot
,
pattern_image
,
cv2
.
TM_CCOEFF_NORMED
)
if
np
.
any
(
result
>=
0.8
)
:
print
(
"founded"
)



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


Время: 06:50