Author Topic: Подпрограммы  (Read 5264 times)

0 Members and 3 Guests are viewing this topic.

InsDel

  • Зашел в гости
  • *
  • Posts: 1
    • View Profile
Подпрограммы
« on: January 22, 2017, 08:59:21 PM »
Что то не врубаюсь.. >:(
Вылетает ошибка POP()
Помогите разобраться

Code: (clickermann) [Select]
SUB(target)
KEYPRESS(#F9)
GETSCREEN
$hp_max = PXL(1044,52)
$hp_min = PXL(896,52)
WAITMS(100)
KEYPRESS(#F1)
WAIT(1)
END_SUB


SUB(kill)
IF $hp_min ! $hp_min
WAITMS(100)
target()
ELSE
kill()
END_IF
END_SUB

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Подпрограммы
« Reply #1 on: January 23, 2017, 01:18:55 AM »
(PXL(1044,52) ! PXL(1044,52))  :-\
Вас случаем это не смущает?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Подпрограммы
« Reply #2 on: January 23, 2017, 07:59:43 AM »
кто знает как там у него что работает, но вот исходный, но правильно работающий вариант
 
Code: (clickermann) [Select]
SUB(target)
   KEYPRESS(#F9)
   WAITMS(100)
   GETSCREEN
   $hp_max = PXL(1044,52)
   $hp_min = PXL(896,52)
   KEYPRESS(#F1)
   WAIT(1)
END_SUB

SUB(kill)
   target() // жмем F9 и F1 в первый раз
   WHILE($hp_min ! $hp_max) // и если min и max не одинаковы повторяем
      target()
   END_CYC
END_SUB

kill()

Sania

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Подпрограммы
« Reply #3 on: February 10, 2017, 11:56:56 AM »
Ух ты, а можно писать сабы внутри саба???
Например:
SUB(1)
   If...
   SUB(2)
   else
   SUB(3)
   END_SUB
   END_SUB
END_SUB
« Last Edit: February 10, 2017, 01:59:45 PM by Sania »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Подпрограммы
« Reply #4 on: February 10, 2017, 12:00:51 PM »
Ух ты, а можно писать сабы внутри саба???
Например:
SUB(1)
   If...
   SUB(2)
   else
   SUB(3)
   END_SUB
END_SUB
END_SUB

Конечно нет, ты написал полный бред.

Sania

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Подпрограммы
« Reply #5 on: February 10, 2017, 02:18:37 PM »

Sania

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Подпрограммы
« Reply #6 on: February 10, 2017, 03:16:42 PM »
Я так и хотел, просто интересовала сама суть вопроса, главное что меня поняли, я просто давненько думал можно можно ли писать подпрограммы друг в друге и вот ответ)))

malf66

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: Подпрограммы
« Reply #7 on: April 13, 2017, 08:47:29 AM »
Помогите! Где напортачил? выдает ошибку сценария "Ошибка при вызове функции РОР()""

// Вводим исходные параметры
SUB (Vvod)

//Ставка ввод
DBLCLICK($x_cop,$y_cop)   // выделение значения
WAITMS(100)
KEYDOWN(17)     // Ctrl копирование
WAITMS(100)
KEYDOWN(67)     // C
WAIT (1)

DBLCLICK($x_vvd,$y_vvd)   // выделение значения
WAITMS(100)
KEYDOWN(17)        // Ctrl  Ввод
WAITMS(100)
KEYDOWN(86)        // V
WAIT (1)

END SUB

// Ввод ставки
$x_cop =  $x_st
$y_cop =  $y_st
$x_vvd =  $x1_st
$y_vvd =  $y1_st

Vvod ()

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Re: Подпрограммы
« Reply #8 on: April 13, 2017, 09:28:36 AM »
SUB (Vvod)
   
   //Ставка ввод
   DBLCLICK($x_cop,$y_cop)   // выделение значения
   WAITMS(100)
   KEYDOWN(17)     // Ctrl копирование
   WAITMS(100)
   KEYDOWN(67)     // C
   WAIT (1)
   
   DBLCLICK($x_vvd,$y_vvd)   // выделение значения
   WAITMS(100)
   KEYDOWN(17)        // Ctrl  Ввод
   WAITMS(100)
   KEYDOWN(86)        // V
   WAIT (1)
   
END_SUB  //  Вот так правильно

// Ввод ставки
$x_cop =  $x_st
$y_cop =  $y_st
$x_vvd =  $x1_st
$y_vvd =  $y1_st

Vvod ()

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Re: Подпрограммы
« Reply #9 on: April 13, 2017, 09:34:40 AM »
И клавиши отжимать надо командой KEYUP(). 

malf66

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: Подпрограммы
« Reply #10 on: April 13, 2017, 09:58:29 AM »
Спасибо за помощь. Вот мелочь, но обязательно просмотрю. А вот на KEYUP() обиделся, снова выдал ошибку. А в принципе робит и без отжатия.

open_78

  • Активный участник
  • ***
  • Posts: 285
  • v4.13.014 x64
    • View Profile
Re: Подпрограммы
« Reply #11 on: April 13, 2017, 10:04:10 AM »
Спасибо за помощь. Вот мелочь, но обязательно просмотрю. А вот на KEYUP() обиделся, снова выдал ошибку. А в принципе робит и без отжатия.
Я конечно уверен что команду отжатия ты правильно написал, но на всякий случай проверим. У тебя так? :D
Code: (clickermann) [Select]
SUB (Vvod)
   
   //Ставка ввод
   DBLCLICK($x_cop,$y_cop)   // выделение значения
   WAITMS(100)
   KEYDOWN(17)     // Ctrl копирование
   WAITMS(100)
   KEYDOWN(67)     // C
   WAITMS(100)
   KEYUP(67)
   WAITMS(100)
   KEYUP(17)
   WAIT (1)
   
   DBLCLICK($x_vvd,$y_vvd)   // выделение значения
   WAITMS(100)
   KEYDOWN(17)        // Ctrl  Ввод
   WAITMS(100)
   KEYDOWN(86)        // V
   WAITMS(100)
   KEYUP(86)
   WAITMS(100)
   KEYUP(17)
   WAIT (1)
   
END_SUB

// Ввод ставки
$x_cop =  $x_st
$y_cop =  $y_st
$x_vvd =  $x1_st
$y_vvd =  $y1_st

Vvod ()

malf66

  • Освоившийся
  • **
  • Posts: 20
    • View Profile
Re: Подпрограммы
« Reply #12 on: April 13, 2017, 01:54:51 PM »
Нее, я понял, что можно без цифер.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Подпрограммы
« Reply #13 on: April 13, 2017, 02:41:45 PM »
Где можно? Если внутри KEYUP, то как раз нельзя.

KEYUP(код клавиши)