Автор Тема: [Alpha/Beta Testing]  (Прочитано 68516 раз)

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

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3081
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing] Clickermann 4.9+
« Ответ #30 : Январь 09, 2014, 12:21:07 pm »
Удалось изолировать баг. Оказалось все дело в цикле WHILE и подпрограммы в нем. Переменная изменена но цикл не прерывается. Если же за комментировать  помехи() то все работает нормально.

Код: Clickermann
  1. LOGCLEAR
  2.  
  3. // Помехи
  4. SUB(помехи)
  5.   LOGWRITE ("ПОМЕХИ")
  6. END_SUB
  7.  
  8. SUB(приглашение)
  9.   LOGWRITE ("Начинаю цикл")
  10.   $a = 0
  11.   WHILE($a = 0)
  12.      помехи()
  13.      WAITMS(500)
  14.      $a = 1
  15.      LOGWRITE ("переменная A: ", $a)
  16.   END_CYC
  17.   LOGWRITE ("заканчиваю цикл")
  18. END_SUB
  19.  
  20. приглашение()
  21.  
  22. LOGWRITE ("Конец")
  23.  
  24. HALT
« Последнее редактирование: Январь 09, 2014, 02:25:53 pm от Oraven »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3081
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing] Clickermann 4.9+
« Ответ #31 : Январь 09, 2014, 02:23:24 pm »
Еще один багнутый пример с циклом

Код: Clickermann
  1. sub(test)  
  2.   $test = 1  
  3. end_sub
  4.  
  5. $test = 0
  6. while ($test = 0)  
  7.   wait (1)
  8.   test ()
  9.   print ($test)
  10. end_cyc
  11.  
  12. halt
« Последнее редактирование: Январь 09, 2014, 02:27:46 pm от Oraven »

Крис Тинка

  • Активный участник
  • ***
  • Сообщений: 177
    • Просмотр профиля
Re: [Alpha/Beta Testing] Clickermann 4.9+
« Ответ #32 : Январь 11, 2014, 03:13:46 pm »
Дополню: Если задать sub с параметрами, то игнорируется первая строка в цикле, начиная со второго круга.
Код: Clickermann
  1. sub(test,$test)
  2.   $a = $test
  3.   print(0)
  4. end_sub
  5.  
  6. $a = 0
  7. while ($a = 0)
  8.   print(2)
  9.   print(3)
  10.   print(4)
  11.   wait (1)
  12.   test (1)
  13.   print ($a)
  14. end_cyc
  15.  
  16. halt
« Последнее редактирование: Январь 11, 2014, 03:20:17 pm от Крис Тинка »

Крис Тинка

  • Активный участник
  • ***
  • Сообщений: 177
    • Просмотр профиля
Re: [Alpha/Beta Testing] Clickermann 4.9+
« Ответ #33 : Январь 11, 2014, 05:08:00 pm »
Такая же ситуация с циклом FOR
Код: Clickermann
  1. $test1 = 1
  2.  
  3. sub(test,$test)
  4.   $test1 = $test
  5. end_sub
  6.  
  7. for ($a, $a < $test1)
  8.   print("1 строка")
  9.   print("2 строка")
  10.   print("3 строка")
  11.   waitms (200)
  12.   test (10)
  13.   print ($a, ":" ,$test1)
  14. end_cyc
  15.  
  16. halt
print("1 строка") - выполняется только 1 раз и цикл не прекращается при не соблюдении условия

Johnny

  • Создатель
  • Герой форума
  • *
  • Сообщений: 534
    • Просмотр профиля
Re: [Alpha/Beta Testing] Clickermann 4.9+
« Ответ #34 : Январь 11, 2014, 06:21:25 pm »
с наскоку не решить, увы.
пока воздержитесь от вызова подпрограмм в цикле

mz3fedor

  • Зашел в гости
  • *
  • Сообщений: 8
  • Бойся ночи
    • Просмотр профиля
Re: [Alpha/Beta Testing] Clickermann 4.9+
« Ответ #35 : Январь 12, 2014, 11:59:30 pm »
Дополню: Если поставить задержку в цикле, хоть от 1 мкс то все глюки исчезают(Если задать sub с параметрами, то игнорируется первая строка в цикле, начиная со второго круга.)
Код: Clickermann
  1. sub(test,$test)
  2.   $a = $test
  3.   print(0)
  4. end_sub
  5.  
  6. $a = 0
  7. while ($a = 0)
  8. WAITMS(50)
  9.   print(2)
  10.   print(3)
  11.   print(4)
  12.   wait (1)
  13.   test (1)
  14.   print ($a)
  15. end_cyc
  16.  
  17. halt

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3081
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing] Clickermann 4.9+
« Ответ #36 : Январь 13, 2014, 12:37:39 am »
На втором цикле выскакивает ошибка.

Код: Clickermann
  1. sub(test,$a1,$a2,$a3)
  2.   print($a1)
  3.   print($a2)
  4.   print($a3)
  5. end_sub
  6.  
  7. $a = 0
  8. while ($a = 0)
  9.   test (1,2,3)
  10.   WAITMS(500)
  11.   LOGWRITE ("конец")
  12.   $a = 1
  13. end_cyc
  14.  
  15. halt

Johnny

  • Создатель
  • Герой форума
  • *
  • Сообщений: 534
    • Просмотр профиля
Re: [Alpha/Beta Testing] Clickermann 4.9+
« Ответ #37 : Январь 13, 2014, 10:53:22 am »
да все все. я уже нашел в чем ошибка, но пока понятия не имею как ее решить потмоу что ошибка в самой концепции.
еще раз. вызов подпрограммы из цикла гарантированно приведет к какой либо ошибке. держите это пока в голове.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3081
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing] Clickermann 4.9+
« Ответ #38 : Январь 20, 2014, 06:38:45 pm »
Обнаружил новую "странность".

Скрипт
Код: Clickermann
  1. $a = FROMCLIP()
  2. TOCLIP($a)
  3. HALT

В буфер копируем
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
А в логе получаем обрезанную строку у которой в начале от куда то кавычки нарисовались  :o
"00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Johnny

  • Создатель
  • Герой форума
  • *
  • Сообщений: 534
    • Просмотр профиля
Re: [Alpha/Beta Testing] Clickermann 4.9+
« Ответ #39 : Январь 28, 2014, 05:37:28 pm »
Обнаружил новую "странность".
да нет, это как раз описано. начиная с версии 4.8 максимальная длина переменной 255 символов. и числа в том числе (каламбур лол).
приведенная тобой строка-число как раз длинее, отсюда и странность.

Johnny

  • Создатель
  • Герой форума
  • *
  • Сообщений: 534
    • Просмотр профиля
Re: [Alpha/Beta Testing] Clickermann 4.9+
« Ответ #40 : Январь 28, 2014, 05:45:07 pm »
далее

Патч 4.9.004

- вроде бы исправляет проблему вызова подпрограмм из цикла
- добавляет screenshotex, позволяющий скриншотить отдельные области

http://rghost.net/52008255

тестим, проверяем

Крис Тинка

  • Активный участник
  • ***
  • Сообщений: 177
    • Просмотр профиля
Re: [Alpha/Beta Testing] Clickermann 4.9+
« Ответ #41 : Январь 28, 2014, 06:49:23 pm »
SCREENSHOTEX - супер. Теперь можно делать заготовки картинок таким скриптом.
Код: Clickermann
  1. $x1 = $_xmouse
  2. $y1 = $_ymouse
  3. MOVE($x1 + 15, $y1 + 15)
  4. WAITMS(50)
  5. GETSCREEN
  6. SCREENSHOTEX($x1, $y1, $x1 + 10, $y1 + 10, "name", 0)
  7. HALT

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3081
  • Котэ
    • Просмотр профиля
Re: [Alpha/Beta Testing] Clickermann 4.9+
« Ответ #42 : Январь 28, 2014, 07:04:56 pm »
Обнаружил новую "странность".
да нет, это как раз описано. начиная с версии 4.8 максимальная длина переменной 255 символов. и числа в том числе (каламбур лол).
приведенная тобой строка-число как раз длинее, отсюда и странность.

Обрезание как раз предсказуемо, я имел ввиду "кавычки" возникающие в начале. В 4.8 такого не происходит.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Сообщений: 3046
  • Лечу куда хочу. cman 4.11.003, xp32
    • Просмотр профиля
Re: [Alpha/Beta Testing] Clickermann 4.9+
« Ответ #43 : Январь 29, 2014, 01:12:42 pm »
Ура! Заработало, вроде.

Можно переходить на 4.9?


ЦИТРИН

  • Супермодератор
  • Оплот сообщества
  • *
  • Сообщений: 485
  • Марафон опавших листьев, коктейль из дыма и мыслей
    • Просмотр профиля
Re: [Alpha/Beta Testing] Clickermann 4.9+
« Ответ #44 : Февраль 13, 2014, 07:09:33 pm »
  Пока старые скрипты 4.8 в 4.9 оживить не удалось.
 Можно ли в шапке к этой теме сделать  сообщение , как  нужно изменить прежний скрипт 4.8, чтобы он заработал в 4.9?
Или рано ?
Бабочки полёт будит тихую поляну в солнечном свету...