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

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

Johnny

  • Создатель
  • Герой форума
  • *
  • Сообщений: 593
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #90 : Октябрь 05, 2014, 04:11:34 pm »
ладно разберемся. новшество сильно новое видимо.
с рандомными зависаниями еще интереснее.. есть какой нить скрипт чтоб погонять?

но "разберемся с вашей помощью" будет по-быстрее. погоняйте глючную версию, посмотрите на предметы зависаний, закономерностей. если повис, смотрите что пишет errorlog.txt (он очищается при каждом запуске имейте ввиду).
« Последнее редактирование: Октябрь 05, 2014, 05:20:37 pm от Johnny »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3685
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #91 : Октябрь 05, 2014, 05:25:51 pm »
Точно установлено что в errorlog.txt пишутся ошибки при нажатии кнопки "Стоп" если скрипт не запущен.
Удалось добиться зависаний  8)

Игра Clicker Heroes
http://www.clickerheroes.com/
Играю в Мазилле. Кликер подключается к флешке через оконный режим.
Далее запускаю, останавливаю,запускаю, останавливаю,запускаю, останавливаю и бац программа не отвечает.
Иногда выскакивает ошибка интерпретации IF($time2 < $_time_t). После этого кликер невозможно остановить а в логе ошибок пишет "Thread Error: Отказано в доступе (5)"

05.10.2014 18:27:21 Access violation at address 004A7150 in module 'Clickermann.exe'. Read of address 0000000A
05.10.2014 18:27:21 Access violation at address 004C6CBA in module 'Clickermann.exe'. Read of address FFFFFFFC
05.10.2014 18:27:21 Access violation at address 004A7150 in module 'Clickermann.exe'. Read of address 0000000A
05.10.2014 18:27:22 Access violation at address 004A7150 in module 'Clickermann.exe'. Read of address 0000000A
05.10.2014 18:29:48 Access violation at address 004A7150 in module 'Clickermann.exe'. Read of address 0000000A
05.10.2014 18:29:48 Access violation at address 004A7150 in module 'Clickermann.exe'. Read of address 0000000A
05.10.2014 18:29:48 Access violation at address 004A7150 in module 'Clickermann.exe'. Read of address 0000000A
05.10.2014 18:29:49 Access violation at address 004A7150 in module 'Clickermann.exe'. Read of address 0000000A
05.10.2014 18:29:51 Access violation at address 004A7150 in module 'Clickermann.exe'. Read of address 0000000A
05.10.2014 18:29:51 Access violation at address 004A7150 in module 'Clickermann.exe'. Read of address 0000000A
05.10.2014 18:31:05 Access violation at address 004A7150 in module 'Clickermann.exe'. Read of address 0000000A
05.10.2014 18:31:07 Access violation at address 004A7150 in module 'Clickermann.exe'. Read of address 0000000A
05.10.2014 18:31:20 Access violation at address 004A7150 in module 'Clickermann.exe'. Read of address 0000000F
05.10.2014 18:45:41 Invalid pointer operation
05.10.2014 18:45:44 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:45 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:47 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:49 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:50 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:51 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:51 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:53 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:53 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:54 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:54 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:54 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:54 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:57 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:57 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:57 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:57 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:59 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:59 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:59 Thread Error: Отказано в доступе (5)
05.10.2014 18:45:59 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:01 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:01 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:02 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:02 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:02 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:03 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:12 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:13 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:13 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:13 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:13 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:14 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:15 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:15 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:17 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:18 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:18 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:18 Thread Error: Отказано в доступе (5)
05.10.2014 18:46:19 Thread Error: Отказано в доступе (5)
05.10.2014 18:49:48 Invalid pointer operation
05.10.2014 18:49:50 Invalid pointer operation
05.10.2014 18:49:51 Invalid pointer operation
05.10.2014 18:49:51 Invalid pointer operation
05.10.2014 18:49:52 Invalid pointer operation
05.10.2014 18:49:53 Invalid pointer operation
05.10.2014 18:49:54 Invalid pointer operation
05.10.2014 18:49:54 Invalid pointer operation

Там приложен скрипт и файл сохранения


« Последнее редактирование: Октябрь 05, 2014, 06:08:09 pm от Oraven »

i0

  • Оплот сообщества
  • ****
  • Сообщений: 353
  • CMann 4.13.014 final, ie, presto, win7 x86, x64
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #92 : Октябрь 05, 2014, 08:13:08 pm »
ммм.. есть проблема с проверкой условия с участием строк (вообще забыл про них). попробуем поковырять.
if ( $sString = "" )в Clickermann v4.11 вызывает ошибку интерпретации (в 4.10.003 всё норм.)

Johnny

  • Создатель
  • Герой форума
  • *
  • Сообщений: 593
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #93 : Октябрь 06, 2014, 02:18:57 pm »
Включаю-выключаю это все понятно и впринципе примерно ясно где баг. Там то что называется есть риск остановить в неправильное время (и судя по всему в неправильном месте).
А вот в процессе работы оно не висло? То есть просто запустил, нажал плей и она крутится?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3685
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #94 : Октябрь 06, 2014, 03:16:06 pm »
Да виснит, вот еще пример. На втором проходе скрипта кликер виснит
Upd..
Понял почему виснит. Переменная в for теперь не сбрасывается, в результате на втором проходе цикл пропускается и функция tfwritearr пытается записать несуществующий массив. Все дело в tfwritearr

Код: Clickermann
  1. THREAD(name1, 0)
  2.   for($b, $b<1000)
  3.      ARRPUSH($arr_out, rnd(1,99))
  4.   end_cyc
  5.   $check1 = 1
  6.   SETTHREAD (name1, 0)
  7. END_THREAD
  8.  
  9. THREAD(name2, 0)
  10.   for(,<1000)
  11.      ARRPUSH($arr_out, rnd(1,99))
  12.   end_cyc
  13.   $check2 = 1
  14.   SETTHREAD (name2, 0)
  15. END_THREAD
  16.  
  17. //=============================================
  18.  
  19. $ms = $_ms
  20. for($a, $a<2000)
  21.   ARRPUSH($arr_out, rnd(1,99))
  22. end_cyc
  23. tfwritearr("arr_save_1.txt", $arr_out)
  24. LOGWRITE ("Тест 1: ",$_ms-$ms)
  25. UNDEFINE($arr_out)
  26.  
  27. $ms = $_ms
  28. SETTHREAD (name1, 1)
  29. SETTHREAD (name2, 1)
  30.  
  31. WHILE(($check1 = 0) | ($check2 = 0))
  32.   WAITMS(20)
  33. END_CYC
  34. $check1 = 0
  35. $check2 = 0
  36.  
  37. tfwritearr("arr_save_2.txt", $arr_out)
  38. LOGWRITE ("Тест 2: ",$_ms-$ms)
  39. UNDEFINE($arr_out)
  40.  
  41. //HALT // Без хальта на втором проходе висяк
« Последнее редактирование: Октябрь 06, 2014, 06:13:28 pm от Oraven »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3802
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #95 : Октябрь 06, 2014, 03:32:47 pm »
Сколько не включал/выключал явного сбоя не добился xp sp3
Хотя мне кажется какой-то поток не останавливался.
« Последнее редактирование: Октябрь 06, 2014, 03:34:50 pm от Vint »


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3685
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #96 : Октябрь 07, 2014, 02:43:09 pm »
Там в Командах и шаблонах что я написал есть ошибка
Файл qinsert_menu.txt стока 237 не хватает точки с запятой в конце
Define - Объявляет макрос; #define find:replace;Надо исправить, иначе этот пункт работать не будет.
« Последнее редактирование: Октябрь 07, 2014, 02:46:06 pm от Oraven »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3802
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #97 : Октябрь 07, 2014, 03:16:45 pm »
Там в Командах и шаблонах что я написал есть ошибка
Файл qinsert_menu.txt стока 237 не хватает точки с запятой в конце
Define - Объявляет макрос; #define find:replace;Надо исправить, иначе этот пункт работать не будет.
91 наверно хотел так?:
IF( ); IF($a = $b);
И почему вот это в вычислениях дублируется вместе с работой с файлами?
   TFREADARR - Считывает массив из файла; TFREADARR("file.txt", $arr);
   TFWRITEARR - Записывает массив в текстовый файл; TFWRITEARR("file.txt", $arr);

И это в вычислениях, вместо строковых функций:
   STRSEPARATE - Разбивает строку на подстроки; STRSEPARATE("1:2:3:4", ":", $arr);


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3685
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #98 : Октябрь 07, 2014, 03:50:25 pm »
91 наверно хотел так?:
IF( ); IF($a = $b);
Нет там пример, опять же зачем вставлять в скрипт какие то $a = $b? Чтоб потом тратить время на удаление.

Пункты дублируются для удобства, там три пункта массивов дополнились еще тремя. Хочешь что то с массивами написать, вот они все в кучке. Лучше больше чем меньше.
STRSEPARATE надо бы тоже сдублироть к строкам.

Про удобство
Можно ли сделать так чтобы после клика по пункту, менюшка не скрывалась?
Например я хочу вставить LDOWN LUP, приходится два раза лезть в Команды.
Или может использовать правую клавишу для серийной вставки команд?

Вот последний исправленный вариант.
« Последнее редактирование: Октябрь 07, 2014, 04:23:42 pm от Oraven »

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3802
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #99 : Октябрь 07, 2014, 04:49:15 pm »
Насчёт лишних, да.
Я просто смотрю по аналогии. Ведь в
FOR($a, $a < 5)
у тебя вставлено, то что потом придётся удалять.  И не только там.

Я давно там всё правлю в упрощённую сторону и без вставки комментов.
А, например подпрограммы сразу с оформлением разделителями.


Johnny

  • Создатель
  • Герой форума
  • *
  • Сообщений: 593
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #100 : Октябрь 07, 2014, 05:19:49 pm »
Развлекаетесь?
Я патч принес. Вроде более менее удалось синхронизировать потоки, глючить должно меньше. Или вообще не должно.
Так же вроде решил все (почти все) упомянутые тут ранее проблемы.

http://rghost.net/58397900 (exe)

[spoiler=Пример]Скрипт с двумя параллельными потоками для игры The Escapists. При зажатой R, тыкает попеременно Q и E. В игре это нужно для качалочки.
Обратите внимание, что все потоки, как и основной, должны иметь паузу что бы процессор смог перевести дух. Подбирается индивидуально под ваш CPU.
Код: Clickermann
  1. thread(hr1)
  2.   if($flag = 1)
  3.      keypress(#q)
  4.      waitms(20)
  5.      keypress(#e)
  6.      waitms(20)
  7.   end_if
  8.   waitms(10)
  9. end_thread
  10.  
  11. thread(hr2)
  12.   if(iskeydown(#w) = 1)
  13.      $flag = 1
  14.   else
  15.      $flag = 0
  16.   end_if
  17.   waitms(10)
  18. end_thread
[/spoiler]

Цитировать
Про удобство
Можно ли сделать так чтобы после клика по пункту, менюшка не скрывалась?
Например я хочу вставить LDOWN LUP, приходится два раза лезть в Команды.
Или может использовать правую клавишу для серийной вставки команд?
возможно и можно, но довольно трудозатратно. это стандартная менюшка винды. так придется изобретать свой велосипед.
хочешь вставлять больше одной строки? милости прошу в шаблоны

Цитировать
Понял почему виснит. Переменная в for теперь не сбрасывается
очередное дисциплинирующее нововведение, да. с другой стороны в ряде случаев позволяет сэкономить костыли и не портить изящество кода
« Последнее редактирование: Октябрь 07, 2014, 05:23:48 pm от Johnny »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3685
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #101 : Октябрь 07, 2014, 06:29:44 pm »
[spoiler=Пример использования потока в боте]Слежение за мышью в потоке. Если курсор не двигается заданное количество секунд то можно предположить что бот застрял.

Код: Clickermann
  1. THREAD(name, 1)
  2.   IF(($sx = $_xmouse)|($sy = $_ymouse))
  3.      IF($moustime < $_time_t)
  4.         HALT
  5.      END_IF
  6.      WAITMS(50)
  7.   ELSE
  8.      $moustime = $_time_t + 60
  9.      $sx = $_xmouse
  10.      $sy = $_ymouse
  11.      WAITMS(50)
  12.   END_IF
  13. END_THREAD
  14.  
  15. WAIT(1)
[/spoiler]

Цитировать
Понял почему виснит. Переменная в for теперь не сбрасывается
очередное дисциплинирующее нововведение, да. с другой стороны в ряде случаев позволяет сэкономить костыли и не портить изящество кода

Дело не в FOR а в TFWRITEARR. Попытка записать отсутствующий массив приводит к зависанию. И этот патч это все еще не исправляет.
Код: Clickermann
  1. TFWRITEARR("file.txt", $arr)
  2. HALT


Баг
Если в ходе выполнения скрипта (любого) в редакторе нажать Применить то кликер невозможно остановить.


« Последнее редактирование: Октябрь 07, 2014, 07:35:20 pm от Oraven »

Johnny

  • Создатель
  • Герой форума
  • *
  • Сообщений: 593
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #102 : Октябрь 09, 2014, 01:03:45 pm »
Дело не в FOR а в TFWRITEARR. Попытка записать отсутствующий массив приводит к зависанию. И этот патч это все еще не исправляет.
минутка занимательного программирования
посмотрел, там оказывается очень забавный баг. там расчитывается максимальный индекс как размер_массива-1. При нулевом массиве получаем 0-1. Однако сама переменная беззнаковая. Следовательно вместо -1 мы получаем четыре миллиарда (итераций по добавлению пустоты, которые вешают по).
похожая ошибка, известная как Сумасшедший Ганди, была в игре Цивилизация
почитать на лурке http://lurkmore.to/Civilization#.D0.A1.D1.83.D0.BC.D0.B0.D1.81.D1.88.D0.B5.D0.B4.D1.88.D0.B8.D0.B9_.D0.93.D0.B0.D0.BD.D0.B4.D0.B8

Цитировать
Если в ходе выполнения скрипта (любого) в редакторе нажать Применить то кликер невозможно остановить.
ну вы совсем уже... к таким же примерно результатам приведет попытка открыть другой сценарий в момент выполенния первого.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3685
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #103 : Октябрь 09, 2014, 01:28:28 pm »
ну вы совсем уже... к таким же примерно результатам приведет попытка открыть другой сценарий в момент выполенния первого.
Однако в 4.10.003 нажатие Применить останавливает скрипт.
Юзеры своими рученками куда только не тыкнут, надо учитывать все.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3802
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • Просмотр профиля
Re: [Alpha/Beta Testing]
« Ответ #104 : Октябрь 09, 2014, 02:27:50 pm »
Ко всем запрещённым кнопкам подвести напряжение  :D ;D