Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: MIG29 on December 19, 2015, 03:50:25 AM

Title: Внезапный выход из подпрограммы
Post by: MIG29 on December 19, 2015, 03:50:25 AM
Привет, я не совсем новичок в КМ, но вот такая беда, кликер (4.11) выходит из подпрограммы странным образом,
как минимум не выполняет команды что я отметил красным прямоугольником на скрине.
Такое ощущение что подпрограмма просто не доконца отрабатывает!

Code: (clickermann) [Select]
2:45:42 Attack! //Тут мы зашли в подпрограмму норм!
2:45:42 Char HP   : 166/174
2:45:42 Char Mana : 164/180
2:45:42 Mob  HP   : 10/40
2:45:42 2 lvl easy mob. 9/20
2:45:43 Char HP   : 166/174
2:45:43 Char Mana : 164/180
2:45:43 Mob  HP   : 10/40
2:45:43 STRONG to strong.
2:45:43 Можно бить слабым
2:45:44 Char HP   : 166/174
2:45:44 Char Mana : 164/180
2:45:44 Mob  HP   : 10/40
2:45:44 STRONG to strong.
2:45:44 Можно бить слабым
2:45:46 Char HP   : 159/174
2:45:46 Char Mana : 164/180
2:45:46 Mob  HP   : 10/40
2:45:46 STRONG to strong.
2:45:46 Можно бить слабым
2:45:46 Бью слабым ударом
2:45:49 Attack!                    //Тут мы снова зашли в подпрограмму, при этом не было  сообщения о выходе прошлого раза!
2:45:50 Char HP   : 159/174
2:45:50 Char Mana : 144/180
2:45:50 Mob  HP   : 0/40
2:45:50 2 lvl easy mob. 9/20
2:45:56 Char HP   : 159/174
2:45:56 Char Mana : 144/180
2:45:56 Mob  HP   : 0/40
2:45:56 STRONG to strong.
2:45:56 Могу бить кулаком!
2:45:56 -Нет боя
2:45:57 End of Attack    //Нормально вышли из подпрограммы!
2:45:57 999

Чуствую где то накосячил, но где? Скрипт прилагается...


Title: Re: Внезапный выход из подпрограммы
Post by: Oraven on December 19, 2015, 08:23:35 AM
На первый взгляд косяков не видно, но там еще не понятно что в
Code: (clickermann) [Select]
#include "sub_m-move.cms"
#include "sub_hp.cms"

Повтыкай больше записей в лог. Из твоего лога видно только что проблема идет после
Code: (clickermann) [Select]
2:45:46 Бью слабым ударом
Title: Re: Внезапный выход из подпрограммы
Post by: MIG29 on December 19, 2015, 04:38:16 PM
Золотой,
цвет правильный. HALT не выполняется как и другие команды...

Oraven,
m-move() годами проверенная функция "плавного перемещения курсора", спионерил тут же в этом сообществе.
hp() всегда отрабатывает правильно.

Не знаю что и пробовать втыкать, у меня нет никаких обьяснений.
Вот немножко откомментировал и изменил. Те же яйца...

Лог под спойлером:
[spoiler]
Code: (clickermann) [Select]
15:27:07 Attack! // Заход
15:27:07 Char HP   : 166/174
15:27:07 Char Mana : 151/180
15:27:07 Mob  HP   : 100/100
15:27:07 3 lvl easy mob. 10/22
15:27:08 Char HP   : 166/174
15:27:08 Char Mana : 151/180
15:27:08 Mob  HP   : 100/100
15:27:08 Могу бить сильным
15:27:08 Могу бить слабым
15:27:08 Бью слабым ударом
15:27:11 Attack!                                 //Перезаход?
15:27:12 Char HP   : 166/174
15:27:12 Char Mana : 135/180
15:27:12 Mob  HP   : 68/100
15:27:12 3 lvl easy mob. 10/22
15:27:13 Char HP   : 166/174
15:27:13 Char Mana : 135/180
15:27:13 Mob  HP   : 68/100
15:27:13 Могу бить сильным
15:27:13 Могу бить слабым
15:27:13 No errors, =0                    // Нормальное поведение, так должно быть всегда, переход по метке action.
15:27:13 A fight is going on!
15:27:15 Char HP   : 157/174
15:27:15 Char Mana : 135/180
15:27:15 Mob  HP   : 68/100
15:27:15 Могу бить сильным
15:27:15 Могу бить слабым
15:27:15 Бью слабым ударом
15:27:18 Attack!                              //Перезаход?
15:27:18 Char HP   : 157/174
15:27:18 Char Mana : 119/180
15:27:18 Mob  HP   : 34/100
15:27:18 3 lvl easy mob. 10/22
15:27:19 Char HP   : 157/174
15:27:19 Char Mana : 119/180
15:27:19 Mob  HP   : 34/100
15:27:19 STRONG too strong.
15:27:19 Могу бить слабым
15:27:19 No errors, =0                 // Нормальное поведение, так должно быть всегда, переход по метке action.
15:27:19 A fight is going on!
15:27:20 Char HP   : 148/174
15:27:20 Char Mana : 119/180
15:27:20 Mob  HP   : 34/100
15:27:20 STRONG too strong.
15:27:20 Могу бить слабым
15:27:20 Бью слабым ударом
15:27:23 Attack!                        //Перезаход?
15:27:24 Char HP   : 148/174
15:27:24 Char Mana : 99/180
15:27:24 Mob  HP   : 4/100
15:27:24 3 lvl easy mob. 10/22
15:27:25 Char HP   : 139/174
15:27:25 Char Mana : 99/180
15:27:25 Mob  HP   : 4/100
15:27:25 STRONG too strong.
15:27:25 Могу бить кулаком!
15:27:25 Бью кулаком!
15:27:28 Attack!                           //Перезаход?
15:27:29 Char HP   : 139/174
15:27:29 Char Mana : 103/180
15:27:29 Mob  HP   : 0/100
15:27:29 3 lvl easy mob. 10/22
15:27:30 Char HP   : 139/174
15:27:30 Char Mana : 103/180
15:27:30 Mob  HP   : 0/100
15:27:30 STRONG too strong.
15:27:30 Могу бить кулаком!
15:27:30 -Нет боя                           //Наконец таки нормальный выход, только когда моба убил.
15:27:31 Удачное завершение боя! 999
15:27:31 End of Attack
15:27:31 Error code : 999
[/spoiler]

При этом кликер все таки убивает моба, выбирает правильные заклинания (за исключением редких лагов изза перезагрузки подпрограммы).
Нормальный выход происходит только в конце боя. Больше всего думается что не правильно работает GOTO , но я так стопицот раз делал и работало...

Совсем забыл что у меня win10...

Перекачал кликер, та же пестня.
Title: Re: Внезапный выход из подпрограммы
Post by: Oraven on December 19, 2015, 07:03:57 PM
m-move() годами проверенная функция "плавного перемещения курсора", спионерил тут же в этом сообществе.
hp() всегда отрабатывает правильно.
Ну то есть мы должны тебе на слово поверить что там все нормально. Вот поэтому я и не люблю эти #include

Так, а почему у нас тут одно значение отправляется в подпрограмму?
Code: (clickermann) [Select]
//Бить сильным заклинанием?
if($strong)
   Print("Могу бить сильным")
   if_picture_in($xf,$yf,$xf+350,$yf+220+60, $strong_str)
      print("Бью сильным ударом")
      $temp = rnd(0,15)
      m-move($_return1 +$temp,$_return2 +$temp) // здесь 2а
      waitms(rnd(80,160))
      lclick($_return1 +$temp,$_return2 +$temp)
      //Ждалка
      $t1 = rnd(500,1500)
      $t2 = 2000 - $t1
      waitms($t1)
      m-move($_xmouse+rnd(-10,10)) /// а тут одно!!!!!!!
      waitms($t2)
      goto(action)
   end_if
end_if

//Бить слабым заклинанием?
if($low)
   Print("Могу бить слабым")
   if_picture_in($xf,$yf,$xf+350,$yf+220+60, $low_str)
      print("Бью слабым ударом")
      $temp = rnd(0,15)
      m-move($_return1 +$temp,$_return2 +$temp)
      waitms(rnd(80,160))
      lclick($_return1 +$temp,$_return2 +$temp)
      //Ждалка
      $t1 = rnd(500,1500)
      $t2 = 2000 - $t1
      waitms($t1)
      m-move($_xmouse+rnd(-10,10))  /// а тут одно!!!!!!!
      waitms($t2)
      goto(action)
   end_if
end_if

if($kulak)
   print("Могу бить кулаком!")
   if_picture_in($xf,$yf,$xf+350,$yf+220+60, "kulak.bmp")
      print("Бью кулаком!")
      $temp = rnd(0,15)
      m-move($_return1 +$temp,$_return2 +$temp)
      waitms(rnd(80,160))
      lclick($_return1 +$temp,$_return2 +$temp)
      //Ждалка
      $t1 = rnd(500,1500)
      $t2 = 2000 - $t1
      waitms($t1)
      m-move($_xmouse+rnd(-10,10)) /// а тут одно!!!!!!!
      waitms($t2)
      goto(action)
   end_if
end_if

Из справки:
Quote
Для вызова подпрограммы необходимо написать ее имя в сценарии вместе со всеми параметрами. Очень важно чтобы количество параметров в описании и в вызове совпадало. После выполнения подпрограммы, сценарий продолжится с момента вызова подпрограммы.
Title: Re: Внезапный выход из подпрограммы
Post by: MIG29 on December 19, 2015, 08:11:11 PM
Oraven, да, аргумента не хватало, дописал, заработало как надо, спасибо ;)