Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Roland

Pages: [1]
1
Общие вопросы / Re: Зажатие шифта
« on: May 27, 2019, 10:13:27 PM »
присоединюсь к теме:
1) нажатие типа Alt+C работает, например ввиде
Code: [Select]
KEYDOWN(#ALT)
Waitms(500)
KEYDOWN(#Q)
Waitms(500)
KEYUP(#Q)
Waitms(500)
KEYUP(#ALT)
2) а ЗАжатие не работает. Пробовал POSTMESSAGE и нажатие с паузами типа
Code: [Select]
KEYDOWN(#Q)
Waitms(50)
KEYDOWN(#Q)
Waitms(50)
KEYUP(#Q)
хотя в другом кликере такой способ прекрасно работает. Но та программа хороша на стиль записать и воспроизвести.
а здесь уже можно нормальный алгоритм сделать, но не выходит :(

2
Ты так и не сказал используешь привязку или нет.
Зажатия не работают в привязке.
Если это какой нибудь эмулятор андроида, то и другие проблемы могут лезть от туда.

нет, привязки не использую пока. Это десктопная игра. Но в ней есть возможность оконного режима с разрешением полного экрана (1920*1080). Может в этом причина что зажатие не работает?

про цвета: может это особенности рендера такие... я взяли другие координаты (36 строку и 446 цвет) и по ней PXL не отрабатывает, а PXLCOUNT вполне точно работает. Про COLORMODE я понял на будущее.

еще вопрос: после GETSCREEN я сколько угодно раз могу обращаться к этому снимку для обработки разных участков?
GETSCREEN по координатам работает существенно быстрее полного?

3
в-общем PXLCOUNT работает, все спасибо
но почему PXL не пошел - непонятно )

------------------------

спрошу тут - а как зажать клавишу на несколько секунд?
Code: [Select]
keyDown(#Q)
waitms(4000)
  keyUp(#Q)

не пашет

4
Вот только цвета 10751 на них НЕТ!

смотрел цвет в кликере курсором.
если такого цвета нет - то скрин должен сработать сразу же. Правильно? Но такого не происходит.

5
скриншот в формате .jpg ничего не даёт, а вот пара несжатых скриншотов в разных состояниях полоски, сильно поможет пониманию возникших у вас проблем.

в том и дело что независимо от условия - скрин полоски примерно одинаков, залил бмп
https://yadi.sk/i/t7t-T0wTI93Ibg
https://yadi.sk/i/HPwcDU-EKyiygA

6
Контролировать уровень полоски лучше всего с помощью подсчета пикселов определенного цвета

$count = PXLCOUNT(10,10, 100,100, 255)
LOGWRITE ($count) // смотрим в логе количество пикселов
IF($count < 100)
  // действие если уровень ниже заданного
END_IF


Чтобы выронить цвет полоски применяем цветокоррекцию 7 уровень

GETSCREEN
COLORMODE(7)

попробую, спасибо

7
полоска хп примерно такая
https://yadi.sk/i/sxD9WlvGgAmepw

Quote
Привязка, масштаб win не 100%. При этом можно брать координаты не в том месте.

записанные координаты в SCREENSHOTEX совпадают с фактическими.
Масштаб нормальный

8
чтобы поставить условие PXL я навожу курсор на точку полоски в игре и записываю x,y,clr.
скрин только вечером смогу (

9
Quote
Возможно, что разница в 117 пикселей в вашем случае и есть  - примерно один уровень ХП.

SCREENSHOTEX(100, 35, 280, 45, "Мой скриншот_", 1)
здесь как раз вся полоска хп - 100->280
я условно ставил проверку пикселя в интервале 150...267 и срабатывание все равно в одном и том же месте

Quote
Наиболее вероятно, что цвет всегда не равен 10751 - в результате вы всегда сразу получаете скрин текущего состояния полоски, независимо от контрольной точки.

я это предполагал.
запускаю скрипт, иду тестить на мобах. Хп постепенно проседает и скрин чекается ВСЕГДА в одном и том же месте. То есть как-то работает все-таки.

10
Добрый день, простой код:
Code: [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   If (PXL(267, 36) ! 10751)   
      SCREENSHOTEX(100, 35, 280, 45, "Мой скриншот_", 1)
$check = 1
         WAITMS(50)
    ELSE
         WAITMS(50)
   END_IF
END_CYC

по сути чекается полоска хп. Когда хп падает до определенного уровня - делаю скрин всей полоски.
Проблема в том что я ставлю контрольную точку в начале (вместо x=267 - х=150) или в конце - скрин делается примерно на одном и том же уровне хп. Не могу понять где проблема :(

Pages: [1]