Author Topic: помогите грамотно построить код  (Read 10082 times)

0 Members and 2 Guests are viewing this topic.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите грамотно построить код
« Reply #15 on: January 21, 2023, 04:13:44 PM »
Можно ли как то увидеть те точки, на которые ошибочно срабатывает кликер? Ну т.е. сохранение картинок в файл, с пометкой точки на котору реагирвоал кликер

Code: (clickermann) [Select]
$path = "screens\Цех"



IF($start = 0)
   $start = 1
   
   if (FExists($path)=0)
      FCREATE ($path)
   end_if
   
   GETFILELIST ($arr, STRCONCAT($path,"\*.bmp"))
   FOR($a=0,$a<ARRSIZE($arr))
      FDELETE (STRCONCAT($path,"\",$arr[$a]))
   END_CYC
   UNDEFINE ($arr)
END_IF



SUB(bordering, $x_bord1,$y_bord1, $x_bord2,$y_bord2, $color)
   PXLREPLACE($x_bord1-1,$y_bord1-1, $x_bord2+1,$y_bord1-1, -1, $color)
   PXLREPLACE($x_bord1-1,$y_bord2+1, $x_bord2+1,$y_bord2+1, -1, $color)
   PXLREPLACE($x_bord1-1,$y_bord1-1, $x_bord1-1,$y_bord2+1, -1, $color)
   PXLREPLACE($x_bord2+1,$y_bord1-1, $x_bord2+1,$y_bord2+1, -1, $color)
END_SUB

GETSCREEN(771, 567, 786, 682)
IF_PIXEL_IN(771, 567, 786, 682, 1446725, 1579598, 2301001, 5653088)
   bordering ($_return1,$_return2, $_return1,$_return2, 255)
   
   GETFILELIST ($arr, STRCONCAT($path,"\*.bmp"))
   $n = ARRSIZE($arr)
   UNDEFINE ($arr)
   
   SCREENSHOTFIX(771, 567, 786, 682, STRCONCAT($path,"\",$n,".bmp"), 0)
   
   $left_time = 0
   IF($right_time < $_ms)
      KEYDOWN(#RIGHT)
      WAITMS(40)
      KEYUP(#RIGHT)
      $right_time = $_ms + 100
   END_IF
ELSE
   $right_time = 0
   IF($left_time < $_ms)
      KEYDOWN(#LEFT)
      WAITMS(40)
      KEYUP(#LEFT)
      $left_time = $_ms + 100
   END_IF
END_IF

WAITMS(50)
Я не ду... Потому и не бу...

kiril

  • Активный участник
  • ***
  • Posts: 106
    • View Profile
Re: печалька
« Reply #16 on: January 21, 2023, 05:46:00 PM »
у вас в корне неверный подход к написанию скрипта.
Специально включил посмотреть в чём там такие непредвиденные сложности и сразу увидел, что с каждым уровнем персонаж увеличивается в размерах, соответственно на каждый уровень нужны индивидуальные  автоматические настройки по высоте палок; на настройках с начальных уровней будет задевать большого перса, а на настройках с продвинутых будет зависать на начальных.

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: печалька
« Reply #17 on: January 22, 2023, 01:27:14 AM »
у вас в корне неверный подход к написанию скрипта.
Специально включил посмотреть в чём там такие непредвиденные сложности и сразу увидел, что с каждым уровнем персонаж увеличивается в размерах, соответственно на каждый уровень нужны индивидуальные  автоматические настройки по высоте палок; на настройках с начальных уровней будет задевать большого перса, а на настройках с продвинутых будет зависать на начальных.

Бред полный...   https://www.youtube.com/watch?v=DkmlMLyPFG0

А хотя не... Сейчас вот обновил страницу и начал с начала. Действительно перс пониже и частенько падает от палок. Но он очень быстро вкачивается до дедка с черным поясом, а этот дедок уже по ходу не трансформируется...

Ну, вот я ровно за 15 минут с самого первого левла стал дедком с черным поясом. Оставлю скрипт до утра. Посмотрим - что он там набьет к утру... Пошел спать.
« Last Edit: January 22, 2023, 03:02:16 AM by Hito »
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите грамотно построить код
« Reply #18 on: January 22, 2023, 09:12:08 AM »
Там эти грёбанные, медленно летящие брёвна всё портят. Подлазят под руку.
И немного - белые числа.

P.S. добавил ещё один цвет. Сейчас хорошо работает, но не быстро. Ошибается очень-очень редко.

А че пропал-то?  ;D Вкурил - для чего все это?  ;D ;D ;D Я только с утра вкурил...  ;D На сколько редко ошибается? Сколько поинтов максимально собирал? ))
Я не ду... Потому и не бу...

Ellen

  • Освоившийся
  • **
  • Posts: 54
    • View Profile
Re: печалька
« Reply #19 on: January 22, 2023, 01:31:11 PM »

Quote
Бред полный...   https://www.youtube.com/watch?v=DkmlMLyPFG0
Вот то скорость... это какой код в работе?

Я добился того, чтобы он не ошибался, ввел абсолютно все точки + добавил времени перед тем как сделать скрин, чтобы белые цифры успели проскочить, в итоге более-менее работает, но когда долго нет бонуса времени, то проигрывает только из за времени, задержка перед скрином у меня 170мс, если делать больше на хотя бы 5, но уже проигрывает из за цифр, но как добиться той скорости, которая в видео?

Ellen

  • Освоившийся
  • **
  • Posts: 54
    • View Profile
Re: помогите грамотно построить код
« Reply #20 on: January 22, 2023, 01:37:17 PM »
Можно ли как то увидеть те точки, на которые ошибочно срабатывает кликер? Ну т.е. сохранение картинок в файл, с пометкой точки на котору реагирвоал кликер

Code: (clickermann) [Select]
$path = "screens\Цех"



IF($start = 0)
   $start = 1
   
   if (FExists($path)=0)
      FCREATE ($path)
   end_if
   
   GETFILELIST ($arr, STRCONCAT($path,"\*.bmp"))
   FOR($a=0,$a<ARRSIZE($arr))
      FDELETE (STRCONCAT($path,"\",$arr[$a]))
   END_CYC
   UNDEFINE ($arr)
END_IF



SUB(bordering, $x_bord1,$y_bord1, $x_bord2,$y_bord2, $color)
   PXLREPLACE($x_bord1-1,$y_bord1-1, $x_bord2+1,$y_bord1-1, -1, $color)
   PXLREPLACE($x_bord1-1,$y_bord2+1, $x_bord2+1,$y_bord2+1, -1, $color)
   PXLREPLACE($x_bord1-1,$y_bord1-1, $x_bord1-1,$y_bord2+1, -1, $color)
   PXLREPLACE($x_bord2+1,$y_bord1-1, $x_bord2+1,$y_bord2+1, -1, $color)
END_SUB

GETSCREEN(771, 567, 786, 682)
IF_PIXEL_IN(771, 567, 786, 682, 1446725, 1579598, 2301001, 5653088)
   bordering ($_return1,$_return2, $_return1,$_return2, 255)
   
   GETFILELIST ($arr, STRCONCAT($path,"\*.bmp"))
   $n = ARRSIZE($arr)
   UNDEFINE ($arr)
   
   SCREENSHOTFIX(771, 567, 786, 682, STRCONCAT($path,"\",$n,".bmp"), 0)
   
   $left_time = 0
   IF($right_time < $_ms)
      KEYDOWN(#RIGHT)
      WAITMS(40)
      KEYUP(#RIGHT)
      $right_time = $_ms + 100
   END_IF
ELSE
   $right_time = 0
   IF($left_time < $_ms)
      KEYDOWN(#LEFT)
      WAITMS(40)
      KEYUP(#LEFT)
      $left_time = $_ms + 100
   END_IF
END_IF

WAITMS(50)

При запуске этого кода возникает ошибка
Игнорируя её, скрипт запускается, но останавливается самопроизвольно со звуком ошибки, почему?

Ellen

  • Освоившийся
  • **
  • Posts: 54
    • View Profile
Re: печалька
« Reply #21 on: January 22, 2023, 01:39:55 PM »

Quote
Ну, вот я ровно за 15 минут с самого первого левла стал дедком с черным поясом. Оставлю скрипт до утра. Посмотрим - что он там набьет к утру... Пошел спать.

И сколько результат?

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите грамотно построить код
« Reply #22 on: January 22, 2023, 01:47:59 PM »
Можно ли как то увидеть те точки, на которые ошибочно срабатывает кликер? Ну т.е. сохранение картинок в файл, с пометкой точки на котору реагирвоал кликер

Code: (clickermann) [Select]
$path = "screens\Цех"



IF($start = 0)
   $start = 1
   
   if (FExists($path)=0)
      FCREATE ($path)
   end_if
   
   GETFILELIST ($arr, STRCONCAT($path,"\*.bmp"))
   FOR($a=0,$a<ARRSIZE($arr))
      FDELETE (STRCONCAT($path,"\",$arr[$a]))
   END_CYC
   UNDEFINE ($arr)
END_IF



SUB(bordering, $x_bord1,$y_bord1, $x_bord2,$y_bord2, $color)
   PXLREPLACE($x_bord1-1,$y_bord1-1, $x_bord2+1,$y_bord1-1, -1, $color)
   PXLREPLACE($x_bord1-1,$y_bord2+1, $x_bord2+1,$y_bord2+1, -1, $color)
   PXLREPLACE($x_bord1-1,$y_bord1-1, $x_bord1-1,$y_bord2+1, -1, $color)
   PXLREPLACE($x_bord2+1,$y_bord1-1, $x_bord2+1,$y_bord2+1, -1, $color)
END_SUB

GETSCREEN(771, 567, 786, 682)
IF_PIXEL_IN(771, 567, 786, 682, 1446725, 1579598, 2301001, 5653088)
   bordering ($_return1,$_return2, $_return1,$_return2, 255)
   
   GETFILELIST ($arr, STRCONCAT($path,"\*.bmp"))
   $n = ARRSIZE($arr)
   UNDEFINE ($arr)
   
   SCREENSHOTFIX(771, 567, 786, 682, STRCONCAT($path,"\",$n,".bmp"), 0)
   
   $left_time = 0
   IF($right_time < $_ms)
      KEYDOWN(#RIGHT)
      WAITMS(40)
      KEYUP(#RIGHT)
      $right_time = $_ms + 100
   END_IF
ELSE
   $right_time = 0
   IF($left_time < $_ms)
      KEYDOWN(#LEFT)
      WAITMS(40)
      KEYUP(#LEFT)
      $left_time = $_ms + 100
   END_IF
END_IF

WAITMS(50)

При запуске этого кода возникает ошибка
Игнорируя её, скрипт запускается, но останавливается самопроизвольно со звуком ошибки, почему?

Ты скрипт сохраняешь куда-нибудь прежде, чем его запустить? Или ты просто отсюда копируешь его, вставляешь в кликер и погнал...?
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: печалька
« Reply #23 on: January 22, 2023, 01:51:06 PM »

Quote
Бред полный...   https://www.youtube.com/watch?v=DkmlMLyPFG0
Вот то скорость... это какой код в работе?

Я добился того, чтобы он не ошибался, ввел абсолютно все точки + добавил времени перед тем как сделать скрин, чтобы белые цифры успели проскочить, в итоге более-менее работает, но когда долго нет бонуса времени, то проигрывает только из за времени, задержка перед скрином у меня 170мс, если делать больше на хотя бы 5, но уже проигрывает из за цифр, но как добиться той скорости, которая в видео?

Code: (clickermann) [Select]
SWITCH($position)
   CASE("right")
     
      $left_time = 0
      IF($right_time < $_ms)
         KEYPRESS(#RIGHT)
         $right_time = $_ms + 100
      END_IF
     
   CASE("left")
     
      $right_time = 0
      IF($left_time < $_ms)
         KEYPRESS(#LEFT)
         $left_time = $_ms + 100
      END_IF
     
END_SWITCH

И в конце скрипта пауза на 50 мс.
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: печалька
« Reply #24 on: January 22, 2023, 01:53:09 PM »

Quote
Ну, вот я ровно за 15 минут с самого первого левла стал дедком с черным поясом. Оставлю скрипт до утра. Посмотрим - что он там набьет к утру... Пошел спать.

И сколько результат?

Ну, он 3X вкачал и на этом остановился. По ходу это максимум.
Я не ду... Потому и не бу...

Ellen

  • Освоившийся
  • **
  • Posts: 54
    • View Profile
Re: печалька
« Reply #25 on: January 22, 2023, 02:44:45 PM »

Quote
Ну, вот я ровно за 15 минут с самого первого левла стал дедком с черным поясом. Оставлю скрипт до утра. Посмотрим - что он там набьет к утру... Пошел спать.

И сколько результат?

Ну, он 3X вкачал и на этом остановился. По ходу это максимум.

ну 3х то множитель очков, а сам рейтинг формируется из цифр, которые находятся вверху дерева

Ellen

  • Освоившийся
  • **
  • Posts: 54
    • View Profile
Re: печалька
« Reply #26 on: January 22, 2023, 02:45:23 PM »

Quote
Бред полный...   https://www.youtube.com/watch?v=DkmlMLyPFG0
Вот то скорость... это какой код в работе?

Я добился того, чтобы он не ошибался, ввел абсолютно все точки + добавил времени перед тем как сделать скрин, чтобы белые цифры успели проскочить, в итоге более-менее работает, но когда долго нет бонуса времени, то проигрывает только из за времени, задержка перед скрином у меня 170мс, если делать больше на хотя бы 5, но уже проигрывает из за цифр, но как добиться той скорости, которая в видео?

Code: (clickermann) [Select]
SWITCH($position)
   CASE("right")
     
      $left_time = 0
      IF($right_time < $_ms)
         KEYPRESS(#RIGHT)
         $right_time = $_ms + 100
      END_IF
     
   CASE("left")
     
      $right_time = 0
      IF($left_time < $_ms)
         KEYPRESS(#LEFT)
         $left_time = $_ms + 100
      END_IF
     
END_SWITCH

И в конце скрипта пауза на 50 мс.

А где здесь поиск пикселя?

Ellen

  • Освоившийся
  • **
  • Posts: 54
    • View Profile
Re: помогите грамотно построить код
« Reply #27 on: January 22, 2023, 02:46:30 PM »

Quote

Ты скрипт сохраняешь куда-нибудь прежде, чем его запустить? Или ты просто отсюда копируешь его, вставляешь в кликер и погнал...?

Да, сохраняю в папку, где находятся другие наработки по этой игре. Копировал - сохранил - запустил

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: печалька
« Reply #28 on: January 22, 2023, 05:07:31 PM »

Quote
Бред полный...   https://www.youtube.com/watch?v=DkmlMLyPFG0
Вот то скорость... это какой код в работе?

Я добился того, чтобы он не ошибался, ввел абсолютно все точки + добавил времени перед тем как сделать скрин, чтобы белые цифры успели проскочить, в итоге более-менее работает, но когда долго нет бонуса времени, то проигрывает только из за времени, задержка перед скрином у меня 170мс, если делать больше на хотя бы 5, но уже проигрывает из за цифр, но как добиться той скорости, которая в видео?

Code: (clickermann) [Select]
SWITCH($position)
   CASE("right")
     
      $left_time = 0
      IF($right_time < $_ms)
         KEYPRESS(#RIGHT)
         $right_time = $_ms + 100
      END_IF
     
   CASE("left")
     
      $right_time = 0
      IF($left_time < $_ms)
         KEYPRESS(#LEFT)
         $left_time = $_ms + 100
      END_IF
     
END_SWITCH

И в конце скрипта пауза на 50 мс.

А где здесь поиск пикселя?

А ты не в состоянии поиск пикселей намутить что ль...? ))
Я не ду... Потому и не бу...

Hito

  • Герой форума
  • *****
  • Posts: 1212
    • View Profile
Re: помогите грамотно построить код
« Reply #29 on: January 22, 2023, 05:08:01 PM »

Quote

Ты скрипт сохраняешь куда-нибудь прежде, чем его запустить? Или ты просто отсюда копируешь его, вставляешь в кликер и погнал...?

Да, сохраняю в папку, где находятся другие наработки по этой игре. Копировал - сохранил - запустил

Хз - откуда у тебя такая ошибка...
Я не ду... Потому и не бу...