Автор Тема: [Alpha/Beta Testing] Тестируем сырые обновления (ссылки в первом посте)  (Прочитано 168285 раз)

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

quant13

  • Активный участник
  • ***
  • Сообщений: 174
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #165 : Декабрь 27, 2014, 09:57:08 pm »
тыкал не в браузер. в игру. игра не повисла. повис только кликер. 4,10 не вис раньше

Johnny

  • Создатель
  • Герой форума
  • *
  • Сообщений: 593
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #166 : Декабрь 28, 2014, 06:43:51 pm »
всяко бывает. добьешься стабильного воспроизведения ошибки, тогда и приходи

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3685
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #167 : Февраль 01, 2015, 10:38:03 pm »
На счет предложений, может уже стоит поработать над функционалом KEYSTRING?

Есть такая программка "KeePass 2" и в ней есть авто-набор логинов и паролей, так вот она как то умудряется набирать абсолютно любые символы, даже непечатные!

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3806
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #168 : Февраль 01, 2015, 10:52:52 pm »
Стоит конечно. Давно при чём. Но только не нужно трогать кейстринг. Это же агрегатор кейпрессов. Просто нужна новая функция эмулирующая набор текстовой переменной именно в том виде как она задана. С теми же символами и в той же раскладке. Идеальное название print но оно занято хоть и не документированно.
Последнее время прямо наплыв с этим кейстрингом.


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3685
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #169 : Март 04, 2015, 11:17:16 am »
Многократно повторял у себя, результат один, пока не будет полного снимка функция возвращает абы что. Графический буфер должен быть чист! Редактор открывать нельзя. Кроме того при использовании GETSCREEN() + PXLCOUNT изображение, скорее всего, не обновляется.

Это вылезло после разбора этого скрипта
http://vk.com/topic-14410794_21900056?post=25879

Может функция PXLCOUNT не правильно определяет положение этого вырезанного скрина?
« Последнее редактирование: Март 04, 2015, 11:22:07 am от Oraven »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3806
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #170 : Март 04, 2015, 03:11:19 pm »
Я проверял и с закрытым редактором и с открытым. Но до теста GETSCREEN уже отрабатывал поэтому было всё правильно.
 
Сейчас проблему удалось поймать. Стало заметно если первый GETSCREEN с областью и сразу после открытия скрипта GETSCREEN не прогонялся. В не зависимости открыт редактор или нет, ведь буферы разделены.

Вставил заделку скриншотов и понял что PXLCOUNT не при чём. Хотя и не сразу. PXLCOUNT считает правильно, но данные у него не те.
Короче GETSCREEN берёт область на 1 меньше по горизонтали и вертикали. Ошибка здесь.
Кто хочет может попробовать на белом фоне запустить
Код: Clickermann
  1. GETSCREEN(500,500,509,509)
  2. SCREENSHOTEX(500,500,509,509)

Размер области 10х10 но GETSCREEN с областью берёт на 1 меньше (см. скрин). Но заметить это легче только если GETSCREEN(...) идёт первым в скрипте, тогда там чернота. А если не первым, тогда там мусор от преведущих GETSCREEN, что тоже приводит к ошибкам, но заметить их труднее.

У всех остальных функций область считается правильно.
« Последнее редактирование: Март 04, 2015, 03:13:11 pm от Vint »


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3685
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #171 : Март 04, 2015, 03:44:23 pm »
Проблема

Короче, проблема в несовпадении области GETSCREEN с областями в функциях
Код: Clickermann
  1. GETSCREEN(500,500,509+1,509+1) // чтобы было правильно приходится прибавить по 1 <<== Проблема ==
  2. SCREENSHOTEX(500,500,509,509)
« Последнее редактирование: Март 04, 2015, 05:55:27 pm от Oraven »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3806
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #172 : Март 04, 2015, 03:52:39 pm »
В функциях всё правильно, неправильно в GETSCREEN


Johnny

  • Создатель
  • Герой форума
  • *
  • Сообщений: 593
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #173 : Май 01, 2015, 08:41:16 am »
Memory Leak

Друзья мои, как выяснилось наш кликер имеет классические утечки памяти, которые при длительном его использовании приводят к активному поглощению памяти и в конечном итоге краше (от обжорства). Скорость прямопропорциональна задержкам в скрипте.

Я сделал над собой усилие, вышел из прокрастинации и подправил ряд базисных функций. Теперь вроде все хорошо. Однако дело нуждается в проверке.
Затестите пожалуйста не сломал ли я чего и не ушло ли что от моего взора В ПЛАНЕ УТЕЧЕК. Все прочие фиксы и предложения позже. Это первостепенная задача.
Тренд: http://crapware.aidf.org/forum/index.php?topic=1811.0

fix http://rghost.net/92nSY8Gmd

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3685
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #174 : Май 24, 2015, 09:00:11 am »
Баг
Нашел тут странный баг с "Не равно". Он есть и в старых версиях.
Смысл в том что условие в цикле сравнивает два элемента массива с переменными. Когда используется "равно" то все нормально, но если используется "не равно", то оператор "И" почему то работает как "ИЛИ"

Код: Clickermann
  1. LOGCLEAR
  2.  
  3. FOR($a=0,$a<400)
  4.   ARRPUSH($arr, $a)
  5. END_CYC
  6.  
  7. $x = 356
  8. $y = 359
  9. LOGWRITE ("X:", $x," Y:", $y)
  10.  
  11. LOGWRITE ("РАВНО")
  12. FOR($a=0,$a<ARRSIZE($arr),2)
  13.  
  14.   IF(($arr[$a]=$x)&($arr[$a+1]=$y))
  15.      LOGWRITE ("Совпадает X:", $arr[$a]," Y:", $arr[$a+1])
  16.   END_IF
  17.  
  18. END_CYC
  19.  
  20. LOGWRITE ("НЕ РАВНО")
  21. FOR($a=0,$a<ARRSIZE($arr),2)
  22.  
  23.   IF(($arr[$a]!$x)&($arr[$a+1]!$y))
  24.   ELSE
  25.      LOGWRITE ("Совпадает X:", $arr[$a]," Y:", $arr[$a+1])
  26.   END_IF
  27.  
  28. END_CYC
  29.  
  30. HALT

Лог:
Цитировать
9:51:33 X:356 Y:359
9:51:33 РАВНО
9:51:33 НЕ РАВНО
9:51:33 Совпадает X:356 Y:357
9:51:33 Совпадает X:358 Y:359

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3806
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #175 : Май 25, 2015, 11:45:01 am »
Баг
Нашел тут странный баг с "Не равно". Он есть и в старых версиях.
Смысл в том что условие в цикле сравнивает два элемента массива с переменными. Когда используется "равно" то все нормально, но если используется "не равно", то оператор "И" почему то работает как "ИЛИ"
[spoiler]
Код: Clickermann
  1. LOGCLEAR
  2.  
  3. FOR($a=0,$a<400)
  4.   ARRPUSH($arr, $a)
  5. END_CYC
  6.  
  7. $x = 356
  8. $y = 359
  9. LOGWRITE ("X:", $x," Y:", $y)
  10.  
  11. LOGWRITE ("РАВНО")
  12. FOR($a=0,$a<ARRSIZE($arr),2)
  13.  
  14.   IF(($arr[$a]=$x)&($arr[$a+1]=$y))
  15.      LOGWRITE ("Совпадает X:", $arr[$a]," Y:", $arr[$a+1])
  16.   END_IF
  17.  
  18. END_CYC
  19.  
  20. LOGWRITE ("НЕ РАВНО")
  21. FOR($a=0,$a<ARRSIZE($arr),2)
  22.  
  23.   IF(($arr[$a]!$x)&($arr[$a+1]!$y))
  24.   ELSE
  25.      LOGWRITE ("Совпадает X:", $arr[$a]," Y:", $arr[$a+1])
  26.   END_IF
  27.  
  28. END_CYC
  29.  
  30. HALT

Лог:
Цитировать
9:51:33 X:356 Y:359
9:51:33 РАВНО
9:51:33 НЕ РАВНО
9:51:33 Совпадает X:356 Y:357
9:51:33 Совпадает X:358 Y:359
[/spoiler]

Бага нет. Ты наступил на логические грабли. Кстати ты именно на эти уже наступал. Я кстати тоже  ;D
Если коротко, то с участниками НЕ, для получения нужного тебе результата нужно ставить не И, а ИЛИ
Код: Clickermann
  1. IF(($arr[$a] ! $x) | ($arr[$a+1] ! $y))


При использовании НЕ в операндах
Код: Clickermann
  1. IF(($arr[$a] ! $x) & ($arr[$a+1] ! $y))
условие так же выполнится если оба операнда не совпадают.
Если совпадёт хоть один или не одного будет работать ELSE. Всё правильно.

В строке 25 LOGWRITE правильно должен быть написан
Код: Clickermann
  1. LOGWRITE ("Совпадает или X:", $arr[$a]," или Y:", $arr[$a+1])
тогда ты поймёшь, что всё правильно.
« Последнее редактирование: Май 25, 2015, 11:49:47 am от Vint »


АНТИКЛАН

  • Активный участник
  • ***
  • Сообщений: 111
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #176 : Октябрь 25, 2015, 11:08:52 am »
Memory Leak

Друзья мои, как выяснилось наш кликер имеет классические утечки памяти, которые при длительном его использовании приводят к активному поглощению памяти и в конечном итоге краше (от обжорства). Скорость прямопропорциональна задержкам в скрипте.

Я сделал над собой усилие, вышел из прокрастинации и подправил ряд базисных функций. Теперь вроде все хорошо. Однако дело нуждается в проверке.
Затестите пожалуйста не сломал ли я чего и не ушло ли что от моего взора В ПЛАНЕ УТЕЧЕК. Все прочие фиксы и предложения позже. Это первостепенная задача.
Тренд: http://crapware.aidf.org/forum/index.php?topic=1811.0

fix http://rghost.net/92nSY8Gmd

У меня ничего не поменялось. С запуском простого скрипта с потоком на нажатие одной кнопки с интервалом в 3 минуты. Быстро отъедается около полутора гигабайт памяти и потом со временем целевое приложение вылетает с ошибкой нехватки памяти.
« Последнее редактирование: Апрель 15, 2018, 06:32:49 pm от АНТИКЛАН »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3685
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #177 : Октябрь 25, 2015, 12:41:57 pm »
У меня ничего не поменялось. С запуском простого скрипта с потоком на нажатие одной кнопки с интервалом в 3 минуты. Быстро отъедается около полутора гигабайт памяти и потом со временем целевое приложение вылетает с ошибкой нехватки памяти.

Покажи свой скрипт.
Уверен что скачал последнюю версию 4.11.003?
На оф страничке не написано что это 003 но на самом деле там самая последняя версия.
http://crapware.aidf.org/page/clickermann

АНТИКЛАН

  • Активный участник
  • ***
  • Сообщений: 111
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #178 : Октябрь 27, 2015, 01:36:39 am »
Покажи свой скрипт.
Уверен что скачал последнюю версию 4.11.003?
На оф страничке не написано что это 003 но на самом деле там самая последняя версия.
http://crapware.aidf.org/page/clickermann

Код: Clickermann
  1. // СКРИПТ
  2. // Author: АНТИКЛАН
  3. // Version: 1.0 (25.10.2015)
  4.  
  5. #name "NAME"   // Имя скрипта
  6.  
  7. //#include "subs.cms"
  8.  
  9. #ps2_mouse   // Включаем режим PS/2 мыши
  10. #ps2_keyboard   // Включаем режим PS/2 клавиатуры
  11.  
  12. $HWND = WNDFIND("WINDOW", 1)   // Присвоение переменной окна значения и привязка к окну
  13. HSET($HWND, 1)
  14.  
  15. // ПОТОК
  16. THREAD(THREAD_1)
  17.   KEYPRESS(#F5)
  18.   WAIT(RND(175,185))
  19. END_THREAD
  20.  
« Последнее редактирование: Апрель 15, 2018, 06:36:44 pm от АНТИКЛАН »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3685
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #179 : Октябрь 27, 2015, 08:47:28 am »
Потестил, действительно память утекает. Дело в HSET($HWND, 1).
У тебя в главном потоке снова и снова каждую миллисекунду происходит привязка HSET($HWND, 1)

Если это пример части скрипта то пиши так
Код: Clickermann
  1. // СКРИПТ
  2. // Author: АНТИКЛАН
  3. // Version: 1.0 (25.10.2015)
  4.  
  5. #name "NAME"   // Имя скрипта
  6.  
  7. //#include "subs.cms"
  8.  
  9. #ps2_mouse   // Включаем режим PS/2 мыши
  10. #ps2_keyboard   // Включаем режим PS/2 клавиатуры
  11.  
  12. IF($_hwnd = 0) // условие перестанет срабатывать после привязки
  13.   $HWND = WNDFIND("Блокнот", 0)   // Присвоение переменной окна значения и привязка к окну
  14.   IF($HWND > 0)
  15.      HSET($HWND, 1) // если найдено привязываемся
  16.      SETTHREAD (THREAD_1, 1) // запускаем поток      
  17.   ELSE
  18.      HINTPOPUP("Окно не найдено")
  19.      HALT // если нет, останавливаем выполнение
  20.   END_IF
  21. END_IF
  22.  
  23. WAIT(1) // в главном потоке хорошо бы написать задержку
  24.  
  25. // ПОТОК
  26. THREAD(THREAD_1,0)
  27.   KEYPRESS(#F5)
  28.   WAIT(RND(175,185))
  29. END_THREAD

Если это весь скрипт то куда проще привязаться горячими клавишами Alt+W наведя мышь на окно.
Код: Clickermann
  1. #ps2_mouse
  2. #ps2_keyboard
  3.  
  4. KEYPRESS(#F5)
  5. WAIT(RND(175,185))
« Последнее редактирование: Октябрь 27, 2015, 08:49:45 am от Oraven »