Автор Тема: Виртуальная привязка области  (Прочитано 615 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3211
  • Лечу куда хочу. cman 4.13.014x32, xp32
    • Просмотр профиля
Re: Виртуальная привязка области
« Ответ #15 : Сентябрь 07, 2018, 10:26:57 am »
На ноутах с высотой экрана 768 лучше использовать полноэкранный режим нажав F11
Скролить окно туда сюда на пару строк не вариант. Ну и в любом случае делать это не колесом, а стрелками на клавиатуре.
Для мозилы есть плагин плавного скрола "SmoothWhell".


KingDrakonov

  • Освоившийся
  • **
  • Сообщений: 39
    • Просмотр профиля
Re: Виртуальная привязка области
« Ответ #16 : Сентябрь 07, 2018, 11:29:03 am »
На ноутах с высотой экрана 768 лучше использовать полноэкранный режим нажав F11
Скролить окно туда сюда на пару строк не вариант. Ну и в любом случае делать это не колесом, а стрелками на клавиатуре.
Для мозилы есть плагин плавного скрола "SmoothWhell".
да плангина твоего на оф саите не вижу
есть программа для винды но она на все влияет
к стате особенно на ноуте мене нужно пустое место хоч этих 250-300пх удобней с левой стороны для мониторинга
если не надо не чего кроме игры, использую полный экранный режим игры использую. это уже другой скрипт

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3211
  • Лечу куда хочу. cman 4.13.014x32, xp32
    • Просмотр профиля
Re: Виртуальная привязка области
« Ответ #17 : Сентябрь 07, 2018, 12:18:04 pm »
да плангина твоего на оф саите не вижу
А там и нет
http://smoothwheel.mozdev.org/


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3250
  • Котэ
    • Просмотр профиля
Re: Виртуальная привязка области
« Ответ #18 : Сентябрь 07, 2018, 12:25:03 pm »
да плангина твоего на оф саите не вижу
А там и нет
http://smoothwheel.mozdev.org/

На какой версии ты сидишь? В мазилле давно уже есть встроенная плавная прокрутка. Сам использую 47 версию.

KingDrakonov

  • Освоившийся
  • **
  • Сообщений: 39
    • Просмотр профиля
Re: Виртуальная привязка области
« Ответ #19 : Сентябрь 07, 2018, 12:56:11 pm »
Справку не читал среди обычных выполнений плавной прокрутки не замечал а так 52.9 вроде последния версия которая поддерживает мои дополнения

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3211
  • Лечу куда хочу. cman 4.13.014x32, xp32
    • Просмотр профиля
Re: Виртуальная привязка области
« Ответ #20 : Сентябрь 07, 2018, 01:36:41 pm »
На какой версии ты сидишь? В мазилле давно уже есть встроенная плавная прокрутка. Сам использую 47 версию.
На последней. Всё дело в том, что дома я этим ничем не занимаюсь. А на работе только XP и под неё версия 52.9.0 максимум  :D.
Вот о ней и речь.


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3250
  • Котэ
    • Просмотр профиля
Re: Виртуальная привязка области
« Ответ #21 : Сентябрь 07, 2018, 02:13:58 pm »
У меня все плавно прокручивается

KingDrakonov

  • Освоившийся
  • **
  • Сообщений: 39
    • Просмотр профиля
Re: Виртуальная привязка области
« Ответ #22 : Сентябрь 07, 2018, 04:32:46 pm »
включена эта опция похоже по умолчанию. да винде рывки по хлеще но шаг примерно такой же. поэтому и не оброщал внимание

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3211
  • Лечу куда хочу. cman 4.13.014x32, xp32
    • Просмотр профиля
Re: Виртуальная привязка области
« Ответ #23 : Сентябрь 07, 2018, 04:34:02 pm »
Да, сорри. Это есть и включено. Выключил и вернулся на несколько лет назад. Оказывается уже было гладко.

На самом деле ставил SmoothWhell прочитав статью. Боролся не с той гладкостью который малый шаг перемещения и которая включается той галочкой в настройках, а гладкостью всей видимой страницы при прокручивании.
SmoothWhell делает прокрутку ещё глаже и если работает синхронизация vsync то нет и артефактов рассинхронизации частей страницы (строба).


KingDrakonov

  • Освоившийся
  • **
  • Сообщений: 39
    • Просмотр профиля
Re: Виртуальная привязка области
« Ответ #24 : Сентябрь 14, 2018, 04:42:56 pm »
Для начало вот правильно, может быть ошибка
+ Сказали бы вы мне какова Х**** ты пытаеся привязаться (Брать координаты итд) к самой игре тоесть флашплаеру. До меня дошло пока пытал тот код "работает то нет ..."

Если 10стр включена то 11-12стр выкл (убрать в комментарий)
Код: Clickermann
  1. $check = 0
  2. WHILE($check = 0)
  3.   GETSCREEN
  4.   LOGWRITE ("2")      //-
  5.   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "0_Firefox.bmp", -1, 100)  // ищем картинку приложения, только не FlashPlayerP [32-bit mode] Процесс
  6.      $check = 1
  7.      LOGWRITE ("игра обнаружена")
  8.      $hwnd = HGET($_return1,$_return2)  // определение номера окна
  9.      //HSET($hwnd,1)   //+      привязка 1, 0 отвезать
  10.      // WNDSETINFO($hwnd, 0, 0, 1037, 730) //установка окна  вписать нужные координаты и размер, минимальный размер окна
  11.      WNDSIZE ($hwnd, 1037, 851)    //+ Задает размер окна
  12.      //WNDPOS ($hwnd, 655, 0)   //+ Помещает окно на экране в указанные координаты   Правый угол комп + на половина полоса прокрутки
  13.      WNDPOS ($hwnd, 0, 0)   //+ Помещает окно на экране в указанные координаты
  14.      WNDGETINFO($hwnd, $var1, $var2, $var3, $var4) //+ определение существующих размеров и координат их можно и вписать в установку, тогда не придётся переписывать существующий скрипт
  15.      LOGWRITE ("hwnd ",$hwnd," стали координаты ",$var1,",", $var2," размер ", $var3,",", $var4)    //+
  16.      WNDBUMP ($hwnd)  //+Помещает окно на передний план
  17.      WAITMS(1000) // время на обновление
  18.      GETSCREEN
  19.      LOGWRITE ("3")
  20.      //      IF(PXL($X, $Y) = 1653112)   // Доделать проверка что вся область которая нужна видна //+ будете проверять лучше заместо ($X, $Y) пишите ( $var1+"координаторы Х", $var2+"координаторы Y") без ковычек
  21.      LOGWRITE ("игра установлена ")
  22.      WAITMS(100)
  23.   ELSE
  24.      LOGWRITE ("измените браузер или его панели")
  25.      //      END_IF
  26.   END_IF
  27. END_CYC
  28. //END_IF   // вроде должно быть выше  END_CYC

Вопросы (пака не дошло как сделать)
1) Как записать 12ст)  WNDPOS ($hwnd, 655, 0)  виде переменной чтобы вынести в начало. Цель, вк\выкл, и запись координат

2) нужен таймер аварийного завершения. предупреждаю есть прыжки и под программы.
Цель, переменная вначале, установка времени пусть будет 5мин. выполнения любого задания не больше 5мин, при превышения времени остановить скрипт, и неплохо бы было;
вконец добавить лог о общем выполнения.
когда аварийное завершение выдало сообщение и проиграл звук (думаю пойму как).

3) Объясните мне как выполнять искать итд при помощи контрольной суммы пикселей и цветов, с разными условиями, и хотя 1 пример как выносить переменную

КОНЕЦ  Для меня переменные и условия пока почти как темный лес

Может кому то пригодиться
Мая мука + настройка вчера муучился было 200+ строк, почти чистыми, осталось это
Ладно поехали


Постарался описать как можно подробней
Легко переделать на поиск картинок
Цель: надо было по купать с самого дорогого. высота одинаковая, расстояние между предметами и кнопками покупки одинаковые
Искомый пиксель находится на высоте "Y 540" самый дальний их тут 3 покупки "X 710".
Скрипт покупает самое дорогое расточение  X710 покупает 1е и отнимает 199 и покупает на X511 уже 2й предмет, 1й на  Х 312
Клик дублируется (копируется) только по высоте Х 650

Код: Clickermann
  1. // m_move   не з наеш что это удали просто  обе строчки
  2. m_move($var1+700-$U321+RND(-40,40),$var2+650+RND(-11,11))
  3. LCLICK($_xmouse,$_ymouse)   // если только это строчка будет кликнет где нашел
  4. //  и заспеши это
  5. LCLICK($var1+700-$U321+RND(-40,40),$var2+650+RND(-11,11))   // клик в у казаном месте с ран домом
  6.  
  7.  
  8. // куда угодно пишем выше выполнения а в самое начало чтобы удобно было изменить , цифры  это цвет пикселя
  9. // Или так пишите в Выполнении  IF_PIXEL_IN($var1+700-$U321,$var2+530, $var1+720-$U321,$var2+550,138309,9962336,15786964)
  10. $BUUB = 15786964   // Усиление брони
  11. $BUUA = 138309      // Усиление атаки
  12. $BUZM = 9962336    // Защита от магии
  13. $BUPE = 8257         // -Повышение энергии
  14. $BUL = 7536382       // -Лечение
  15. $BUPEV = 9286    //+- Повышение энергии всем
  16. $BUV = 660242   //- Воскрешение
  17.  
  18. // Выполнение
  19. $U321 = 0           // обнуление
  20. FOR ($Kup,$U321 < 400)                // FOR (просто Счетчик, подсчет меньше заданного)
  21.   print ("Делаю"," Счет ",$U321)  // а удали, просто для наблюдения начал выполнение и  сколько подсчет
  22.   $check = 0
  23.   WHILE($check = 0)
  24.      GETSCREEN
  25.      IF_PIXEL_IN($var1+700-$U321,$var2+530, $var1+720-$U321,$var2+550,$BUUA,$BUZM,$BUUB) // "$var1+700-$U321" координаты поиска  $var...+  не знаете значит вам пока не нужен удалить; 700 длина; $U321 отнемает то что нащитал; $BUUA,$BUZM,$BUUB  цвет пикселя
  26.         $check = 1
  27.         print ("КУПИЛ ",$U321) // а удали, просто для наблюдения что купил и сколько подсчитал
  28.         WAITMS(RND(300,1000))    // просто пауза 0,3-1сек
  29.         m_move($var1+700-$U321+RND(-40,40),$var2+650+RND(-11,11))   // описание в самом верху
  30.         LCLICK($_xmouse,$_ymouse)                                  
  31.         $U321 =  $U321 + 199  // пересчитывает подсчет чтобы $U321 была больше на 199
  32.         WAITMS(100)
  33.      ELSE
  34.  
  35.  
  36.         IF_PIXEL_IN($var1+700-$U321,$var2+530, $var1+720-$U321,$var2+550,$BUPE,$BUL,$BUV,$BUPEV)
  37.            $check = 1
  38.            $U321 =  $U321 + 199
  39.            print ("не нужно ",$U321)    // а удали, просто для наблюдения что не купил и сколько подсчитал
  40.            WAITMS(100)
  41.         ELSE
  42.            LOGWRITE ("Не нашел")   // а удали, просто  если хочешь что что то не находит
  43.            WAIT(2)
  44.         END_IF
  45.      END_IF
  46.   END_CYC
  47.   WAITMS(rnd(300,1000))
  48.  
  49.  
  50.   GETSCREEN  // 6 строк для проверки выскочило окно о не хватки денег, ен нужно удали
  51.   IF_PICTURE_IN ($var1+500,$var2+520, $var1+530,$var2+550, "Башня_\N_Ch_OK.bmp", -1, 100)
  52.      WAITMS(rnd(1000,1500))
  53.      m_move($_return1+3+RND(-30,30),$_return2+4+RND(-11,11))
  54.      LCLICK($_xmouse,$_ymouse)
  55.   END_IF
  56.  
  57.  
  58.   print ("счет ",$U321)       // а удали, просто для наблюдения сколько подсчет
  59. END_CYC
  60.  
  61.  
  62. LOGWRITE ("Закончил ",$Kup)   // это можно в конец скрипта чтобы видел сколько раз купил и пропустил, одна общая цифра

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3250
  • Котэ
    • Просмотр профиля
Re: Виртуальная привязка области
« Ответ #25 : Сентябрь 15, 2018, 07:41:33 am »
1 вначале скрипта пишешь переменные в которых указываешь координаты. В функции указываешь эти переменные.
2 нужно использовать поток который параллельно основному скрипту будет следить за таймером.
3 Для начала получаешь число контрольной суммы
Код: Clickermann
  1. GETSCREEN
  2. $hash = PXLCRC(10,10, 1000,1000) // Получаем контрольную сумму пикселов в области 10,10, 1000,1000
  3. LOGWRITE ($hash)
  4. HALT

Теперь в условии можно сравнивать контрольную сумму области с полученным ранее числом
Код: Clickermann
  1. GETSCREEN
  2. IF(PXLCRC(10,10, 1000,1000) = 3171075084)
  3.  // Если верно
  4. ELSE
  5.  // Если не верно
  6. END_IF

$time = $_time_t + 300
$time - просто переменная с любым именем в которую мы сохраним текущее время в секундах + 300 сек
$_time_t - системная переменная возвращающая текущее время Unix

Код: Clickermann
  1. $wx = 100 // Координата положения окна
  2. $wy = 100
  3.  
  4. //=============================================
  5.  
  6. $time = $_time_t + 300 // Устанавливаем таймер на 5 минут
  7. $timeF = $_time_t // Засекаем время с момента запуска
  8. SETTHREAD (t1, 1) // Запускаем поток t1
  9.  
  10. THREAD(t1, 0)
  11.   IF($time < $_time_t) // Тут в потоке проверяем каждую секнуду не вышло ли время
  12.      BEEP(900,2000) // Если вышло сигналим
  13.      LOGWRITE ("Прошло с момента запуска: ", $_time_t-$timeF, " сек") // Выводим в лог время выполнения скрипта
  14.      HALT // И останавливаем выполнение
  15.   END_IF
  16.   WAITMS(1000)
  17. END_THREAD
  18.  
  19. go: // Бесконечный цикл
  20.  
  21. $check = 0
  22. WHILE($check = 0)
  23.   GETSCREEN
  24.   LOGWRITE ("2")
  25.   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "0_Firefox.bmp", -1, 100)  // ищем картинку приложения, только не FlashPlayerP [32-bit mode] Процесс
  26.      $check = 1
  27.      $time = $_time_t + 300 // продлеваем таймер
  28.      LOGWRITE ("игра обнаружена")
  29.      $hwnd = HGET($_return1,$_return2)  // определение номера окна
  30.      //HSET($hwnd,1)   //+      привязка 1, 0 отвезать
  31.      // WNDSETINFO($hwnd, 0, 0, 1037, 730) //установка окна  вписать нужные координаты и размер, минимальный размер окна
  32.      WNDSIZE ($hwnd, 1037, 851)    //+ Задает размер окна
  33.      //WNDPOS ($hwnd, 655, 0)   //+ Помещает окно на экране в указанные координаты   Правый угол комп + на половина полоса прокрутки
  34.      WNDPOS ($hwnd, $wx, $wy)   //+ Помещает окно на экране в указанные координаты
  35.      WNDGETINFO($hwnd, $var1, $var2, $var3, $var4) //+ определение существующих размеров и координат их можно и вписать в установку, тогда не придётся переписывать существующий скрипт
  36.      LOGWRITE ("hwnd ",$hwnd," стали координаты ",$var1,",", $var2," размер ", $var3,",", $var4)    //+
  37.      WNDBUMP ($hwnd)  //+Помещает окно на передний план
  38.      WAITMS(1000) // время на обновление
  39.      GETSCREEN
  40.      LOGWRITE ("3")
  41.      //      IF(PXL($X, $Y) = 1653112)   // Доделать проверка что вся область которая нужна видна //+ будете проверять лучше заместо ($X, $Y) пишите ( $var1+"координаторы Х", $var2+"координаторы Y") без ковычек
  42.      LOGWRITE ("игра установлена ")
  43.      WAITMS(100)
  44.   ELSE
  45.      LOGWRITE ("измените браузер или его панели")
  46.      WAITMS(500)
  47.      //      END_IF
  48.   END_IF
  49. END_CYC
  50.  
  51.  
  52. GOTO(go) // Бесконечный цикл
« Последнее редактирование: Сентябрь 15, 2018, 07:50:04 am от Oraven »

KingDrakonov

  • Освоившийся
  • **
  • Сообщений: 39
    • Просмотр профиля
Re: Виртуальная привязка области
« Ответ #26 : Сентябрь 15, 2018, 03:34:58 pm »
СПС
1) Я как понял, если раз вызвал "THREAD ... END_THREAD" он прочитал дает проход дальше, но выполняется условие все время не зависимо что выполняется.

2) Это я уже пытал
Код: Clickermann
  1. $wx = 100 // Координата положения окна
  2. $wy = 100
  3. //=============================================
  4. WNDPOS ($hwnd, $wx, $wy)
Если $W... ,не указывать, убрать в комментарий, пытался химикать немного. не прокатывает. Будет 0,0 или то что задал.
цель; выключить (как словно этой строчки нету) или задать координаты которые мне надо

3) ну контрольные суммы как делать знаю спс, при моей попытки я не ставил равно, вопрос не тот, условие только может быть только это. без поиска картинки все равно не обойдеся в некоторых местах
IF(PXLCRC(100,100, 100,100) = 3171075084)
И искать будет 10х10 в зоне 100х100, если будет не отвечайте проверю сегодня
Хотя где то искали по нескольким пикселям с подряд не помню что и где но, это большое увеличение кода

Eсли только это условие то как написать покороче
1я   PXLCRC(10,10, 30,30) = $01
2я   PXLCRC(50,10, 80,30) = $02
3я   PXLCRC(100,10, 130,30) = $03
искал все 3 при находке любой выдавал какую нашел и где

Думаю все объяснил что мне надо.
Пака писал эту либуду вроде дошло как сделать одно выполнение.
« Последнее редактирование: Сентябрь 15, 2018, 03:43:17 pm от KingDrakonov »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3250
  • Котэ
    • Просмотр профиля
Re: Виртуальная привязка области
« Ответ #27 : Сентябрь 15, 2018, 04:15:33 pm »
Заключи функцию в условие.

Код: Clickermann
  1. $wx = -1 // WNDPOS работать не будет
  2. $wy = 100
  3. //=============================================
  4. IF(($wx > -1)&($wy > -1)) // функция выполняется если оба параметра 0 или больше
  5.   WNDPOS ($hwnd, $wx, $wy)
  6. END_IF

KingDrakonov

  • Освоившийся
  • **
  • Сообщений: 39
    • Просмотр профиля
Re: Виртуальная привязка области
« Ответ #28 : Сентябрь 27, 2018, 08:10:13 pm »
Заключи функцию в условие.
Это я не увидел в притык спс


Помогите еще с одним, или я что то не понял как это сделать

На карте от1 до 15(пака макс видел) сражений расположение неизвестно, хотя раз напал появляется значок
Цель;  найти картинку у которой  нет 2й картинки и кликнуть (выше она примерно на 30пх), если не находит  пусть поищет еще раз 5 + задержка сек 10, если все же не нашел спустя 5 раз пусть выполнит последние действие.

Как понимаю это уже делается с  помощью массива

KingDrakonov

  • Освоившийся
  • **
  • Сообщений: 39
    • Просмотр профиля
Re: Виртуальная привязка области
« Ответ #29 : Сентябрь 29, 2018, 05:13:53 pm »
еще 1 вопрос пустое значение чему ровняется 0 или меньше всего
если судить по математике, то пусто значит 0

и ответьте на прошлый вопросик и желательно поиск с лева на право
На карте от1 до 15(пака макс видел) сражений расположение неизвестно, хотя раз напал появляется значок
Цель;  найти картинку у которой  нет 2й картинки и кликнуть (выше она примерно на 30пх)
это ладно вроде знаю как в строить
если не находит  пусть поищет еще раз 5 + задержка сек 10, если все же не нашел спустя 5 раз пусть выполнит последние действие.