Author Topic: требуется помощь в оптимизации и изменении кода  (Read 1973 times)

0 Members and 2 Guests are viewing this topic.

net-walker

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Всем привет, написал простенький код для игры Vikings: War of Clans. Цель-пересылка ресурсов в цитадель (ибо очень тягомотно). В данном примере пересылка дерева. Хочется сделать так, чтобы спрашивало (в идеале всплывающее окно, где пишешь кол-во походов), сколько ресурсов отправить (или как вариант указать количество походов, так как количество ресурса в одном походе более-менее стабильно). Этот скрипт просто передвигает ползунок на максимум отправляет бессчетное кол-во раз.

Также есть еще ресурс дерево, камень, железо и серебро, там все по аналогии. Можно было бы сделать, чтоб спрашивало, какой ресурс отправить. В коде 5 повторений, потому что 5 походов, может это как то можно упростить? Буду очень признателен за помощь.
Это пример еды
Code: [Select]
LCLICK(671,409) Кликаем по ците
WAIT(RND(1,3))
LCLICK(517,563) Кликаем Передать ресы
WAIT(RND(1,3))
REPEAT:
LCLICK(500,342) Кликаем по ползунку
WAITMS(100)
LDOWN(500,342)  Зажимаем ползунок
WAIT(RND(1,3))
MOVE(724,338)   Перемещаем ползунок
LUP(724,338)    Отпускаем
WAITMS(100)
LCLICK(882,664) Кликаем отправить
WAIT(RND(1,3))
LCLICK(500,342) Кликаем по ползунку
WAITMS(100)
LDOWN(500,342)  Зажимаем ползунок
WAIT(RND(1,3))
MOVE(724,338)   Перемещаем ползунок
LUP(724,338)    Отпускаем
WAITMS(100)
LCLICK(882,664) Кликаем отправить
WAIT(RND(1,3))
LCLICK(500,342) Кликаем по ползунку
WAITMS(100)
LDOWN(500,342)  Зажимаем ползунок
WAIT(RND(1,3))
MOVE(724,338)   Перемещаем ползунок
LUP(724,338)    Отпускаем
WAITMS(100)
LCLICK(882,664) Кликаем отправить
WAIT(RND(1,3))
LCLICK(500,342) Кликаем по ползунку
WAITMS(100)
LDOWN(500,342)  Зажимаем ползунок
WAIT(RND(1,3))
MOVE(724,338)   Перемещаем ползунок
LUP(724,338)    Отпускаем
WAITMS(100)
LCLICK(882,664) Кликаем отправить
WAIT(RND(1,3))
LCLICK(500,342) Кликаем по ползунку
WAITMS(100)
LDOWN(500,342)  Зажимаем ползунок
WAIT(RND(1,3))
MOVE(724,338)   Перемещаем ползунок
LUP(724,338)    Отпускаем
WAITMS(100)
LCLICK(882,664) Кликаем отправить
WAIT(20)
GOTO(REPEAT)

А это пример на серебро
Code: [Select]
LCLICK(671,409) Кликаем по ците
WAIT(RND(1,3))
LCLICK(517,563) Кликаем Передать ресы
WAIT(RND(1,3))
LCLICK(654,309)
WAITMS(100)
WHEELDOWN
WAIT(1)
WHEELDOWN
WAIT(1)
WHEELDOWN
WAIT(RND(1,3))
REPEAT:
LCLICK(500,521) Кликаем по ползунку
WAITMS(100)
LDOWN(500,521)  Зажимаем ползунок
WAIT(RND(1,3))
MOVE(724,518)   Перемещаем ползунок
LUP(724,518)    Отпускаем
WAITMS(100)
LCLICK(882,664) Кликаем отправить
WAIT(1)
LCLICK(500,521) Кликаем по ползунку
WAITMS(100)
LDOWN(500,521)  Зажимаем ползунок
WAIT(RND(1,3))
MOVE(724,518)   Перемещаем ползунок
LUP(724,518)    Отпускаем
WAITMS(100)
LCLICK(882,664) Кликаем отправить
WAIT(1)LCLICK(500,521) Кликаем по ползунку
WAITMS(100)
LDOWN(500,521)  Зажимаем ползунок
WAIT(RND(1,3))
MOVE(724,518)   Перемещаем ползунок
LUP(724,518)    Отпускаем
WAITMS(100)
LCLICK(882,664) Кликаем отправить
WAIT(1)LCLICK(500,521) Кликаем по ползунку
WAITMS(100)
LDOWN(500,521)  Зажимаем ползунок
WAIT(RND(1,3))
MOVE(724,518)   Перемещаем ползунок
LUP(724,518)    Отпускаем
WAITMS(100)
LCLICK(882,664) Кликаем отправить
WAIT(1)LCLICK(500,521) Кликаем по ползунку
WAITMS(100)
LDOWN(500,521)  Зажимаем ползунок
WAIT(RND(1,3))
MOVE(724,518)   Перемещаем ползунок
LUP(724,518)    Отпускаем
WAITMS(100)
LCLICK(882,664) Кликаем отправить
WAIT(1)
WAIT(20)
GOTO(REPEAT)
HALT

net-walker

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Так понимаю можно написать это все короче с помощью цикла? Самое главное, чтобы всплывало окошко с вопросом, сколько караванов отправить и выполнялось заданное кол-во.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Скрипт 1
Code: (clickermann) [Select]
$count = INT(INPUTBOX("Сколько ресов передать?", "5", 999))

LCLICK(671,409) // Кликаем по ците
WAIT(RND(1,3))
LCLICK(517,563) // Кликаем Передать ресы
WAIT(RND(1,3))

FOR($a=0,$a<$count)
   LCLICK(500,342) // Кликаем по ползунку
   WAITMS(100)
   LDOWN(500,342)  // Зажимаем ползунок
   WAIT(RND(1,3))
   MOVE(724,338)   // Перемещаем ползунок
   LUP(724,338)    // Отпускаем
   WAITMS(100)
   LCLICK(882,664) // Кликаем отправить
   WAIT(RND(1,3))
END_CYC
HALT

Скрипт 2
Code: (clickermann) [Select]
$count = INT(INPUTBOX("Сколько ресов передать?", "5", 999))

LCLICK(671,409) // Кликаем по ците
WAIT(RND(1,3))
LCLICK(517,563) // Кликаем Передать ресы
WAIT(RND(1,3))
LCLICK(654,309)
WAITMS(100)

FOR($a=0,$a<3)
   WHEELDOWN
   WAIT(1)
END_CYC
WAIT(RND(1,3))

FOR($a=0,$a<$count)
   LCLICK(500,521) // Кликаем по ползунку
   WAITMS(100)
   LDOWN(500,521)  // Зажимаем ползунок
   WAIT(RND(1,3))
   MOVE(724,518)   // Перемещаем ползунок
   LUP(724,518)    // Отпускаем
   WAITMS(100)
   LCLICK(882,664) // Кликаем отправить
   WAIT(1)
END_CYC
HALT

net-walker

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Спасибо большое за быстрый ответ и помощь, очень помогло, но есть одно условие, которое я забыл рассказать, нужно отправлять по группами по 5 караванов, то есть 5 отправили, ожидание 20 секунд, например, потом еще 5 и так до заданного количества караванов. И можно ли сделать окно, где сразу вводится количество караванов.
Например так:
Сколько еды?          поле для ввода
Сколько дерева?    поле для ввода
Сколько Железа?   поле для ввода
Сколько камня?      поле для ввода
Сколько серебра?  поле для ввода
« Last Edit: December 22, 2018, 08:34:09 PM by net-walker »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Code: (clickermann) [Select]
$count = INT(INPUTBOX("Сколько ресов передать?", "5", 999))
 
LCLICK(671,409) // Кликаем по ците
WAIT(RND(1,3))
LCLICK(517,563) // Кликаем Передать ресы
WAIT(RND(1,3))

FOR($a=0,$a<$count)
   LCLICK(500,342) // Кликаем по ползунку
   WAITMS(100)
   LDOWN(500,342)  // Зажимаем ползунок
   WAIT(RND(1,3))
   MOVE(724,338)   // Перемещаем ползунок
   LUP(724,338)    // Отпускаем
   WAITMS(100)
   LCLICK(882,664) // Кликаем отправить
   WAIT(RND(1,3))
   INC($c,1)
   IF($c = 5) // каждый пятый проход будет включаться задержка на 20 сек
      WAIT(20)
      $c = 0
   END_IF
END_CYC

HALT

Кликер не поддерживает GUI (графическая оболочка), поэтому только через INPUTBOX отдельный для каждого параметра.

Пример:
Code: (clickermann) [Select]
$count1 = INT(INPUTBOX("Сколько еды?", "5", 999))
$count2 = INT(INPUTBOX("Сколько дерева?", "5", 999))
$count3 = INT(INPUTBOX("Сколько Железа?", "5", 999))
$count4 = INT(INPUTBOX("Сколько камня?", "5", 999))
$count5 = INT(INPUTBOX("Сколько серебра?", "5", 999))

В переменные $count1 - $count5 будут записаны введенные значения и их можно будет использовать в скрипте.
« Last Edit: December 22, 2018, 10:04:58 PM by Oraven »

net-walker

  • Зашел в гости
  • *
  • Posts: 4
    • View Profile
Огромное спасибо, я благодарен очень. благодаря вам, такие неучи как я, учатся программировать...