Author Topic: Выполнить действие в игре, пока не загорится 6-я звезда  (Read 8602 times)

0 Members and 6 Guests are viewing this topic.

Veter32

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
День добрый !
Помогите пожалуйста не могу осилить скрипт на привязку к цвету и действие
[spoiler]https://monosnap.com/file/1O1f8nM7xO9L4vmbn6iW4gP1UMNLTI[/spoiler]https://monosnap.com/file/1O1f8nM7xO9L4vmbn6iW4gP1UMNLTI
есть у нас усиление артефакта
Хотелось бы чтобы усиление происходило до тех пор пока не загориться 6 звезда
каждая звезда включает шанс усиления  до 100%
как написать  скрипт чтоб усиление происходило только с 1-й до 6 звезды
И не могли заподозрить админы в сотнях одинаковых действий.

Veter32

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Тишина...
Конечно тишина. Тут такие термины 'усиление артефакта', 'шанс усиления' и не слова что для этого нужно делать. Куда бежать?
Ты же не думаешь что все играют в эту игру. Я, например, как открыл тогда ещё скрин так и прифигел. Побыстрей закрыл и желания разбираться не появилось.


Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
А мы сейчас разрежем. Где-то здесь ножницы валялись...


Veter32

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
А мы сейчас разрежем. Где-то здесь ножницы валялись...
за это спасибо.

Veter32

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Тишина...
ты влез в чужую тему с левым заданием, скажи спасибо, что добрые модераторы тебя сразу не выгнали. :'(
Тогда попробую написать отсвояси скрипт котрый у меня есть , а вы подмогите и подскажите чтоделаю не так.

Чтоб особо не вникать)

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Да ты хоть доступно объясни где что. Стрелочками там на скрине покажи. Вот сюда жмакаем (первое)... тут. ждём появления вот этого (второе)... если здесь вот это, то то... ну и в том же духе.


Qwerry

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Ну т.к. объяснения того, как именно действия должны выглядеть нет, будем считать, что надо просто кликать по кнопке  внизу "Усиление" долго и упорно.
Предлагаю кусочек кода с анализом цвета/либо поиска желтой картинки в области шестой звезды - спасибо шаблонам clickermann))
Координаты проставите сами -  благо нужные цифры даст сам кликер: наведите мышь куда хотите  и нажмите сочетание alt+Q (в кликере появится, что-то вроде:  LCLICK(1017,376)  // 8581375 ). Всего надо 4 координаты: 1) верхнюю-левую часть 6-й звездочки  и 2)нижнюю-правую часть 6-й звездочки, 3) верхний-левый и 4) нижний правый край кнопки Усиление.

Code: [Select]
$time = $_time_t + 10
WHILE($time > $_time_t)
   GETSCREEN
 IF_PIXEL_IN(x1, y1,x2,y2, 8581375) //по желанию можно закинуть скрин кусочка желтой звезды в папку с программой и заменить на "IF_PICTURE_IN (x1,y1,x2,y2, "желтаязвезда.bmp", -1, 90)"
// (x1,y1), (x2,y2) - координаты шестой звезды, 8581375  - цвет "желтый".

      $time = 0  // если желтая,  цикл завершился
      WAITMS(100)
   ELSE //пока звезда не желтая - будет делать то, что укажем ниже.

 LCLICK(RND(x_1,x_2),RND(y_1,y_2))
// типа "совершение нужных для усиления действий", т.е. клик в случайном месте в прямоугольнике  х_1,у_1 - х_2,у_2 (кнопка "усиление")

      WAITMS(RND(100,150)) //рандомная задержка между кликами от 100 до 150 мс
   END_IF
END_CYC

Немного рандома относительно места кликов и времени между ними добавила, при желании - можете изучить тему про правдоподобное движение мыши, но может и не к чему.

Veter32

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Спасибо огромное.Почти получилось что хотел  Пытаюсь зациклить процесс- покупка-усиление, продажа.  что то не получается.не судите строго первый раз в жизни такое делаю-учусь)
Code: (clickermann) [Select]
LCLICK(1015,176)  // 8889539
WAIT(1)
LCLICK(410,542)  // 3915
LCLICK(414,543)  // 5614059
WAIT(1)
LCLICK(607,358)  // 12829635
WAIT(1)
LCLICK(628,475)  // 1055028
WAIT(1)
LCLICK(612,357)  // 13553358
WAIT(1)
LCLICK(634,477)  // 6131366
WAIT(1)
LCLICK(609,359)  // 14408667
WAIT(1)
LCLICK(634,478)  // 4746623
WAIT(1)
LCLICK(568,197)  // 1778503
WAIT(1)
LCLICK(481,228)  // 14079702
WAIT(1)
LCLICK(425,520)  // 3608
WAIT(1)
LCLICK(518,303)  // 4543402
WAIT(1)
WHILE($time > $_time_t)
GETSCREEN   
IF_PIXEL_IN(874,335,877,338, 10223615)// 9175039
$time = 0 
WAITMS(150)
ELSE
LCLICK(RND(811,922),RND(554,567))   // 2698049
WAITMS(RND(100,150))
END_CYC
WAIT(1)

LCLICK(513,351)  // 4072499
WHILE($time > $_time_t)
GETSCREEN   
IF_PIXEL_IN(874,335,877,338, 10223615)// 9175039
$time = 0 
WAITMS(150)
ELSE
LCLICK(RND(811,922),RND(554,567))   // 2698049
WAITMS(RND(150,250))
END_CYC
WAIT(1)
LCLICK(647,351)  // 9195621
WHILE($time > $_time_t)
GETSCREEN   
IF_PIXEL_IN(874,335,877,338, 10223615)// 9175039
$time = 0 
WAITMS(150)
ELSE
LCLICK(RND(811,922),RND(554,567))   // 2698049
WAITMS(RND(150,200))
END_CYC
WAIT(1)
LCLICK(649,348)  // 10369106
WHILE($time > $_time_t)
GETSCREEN   
IF_PIXEL_IN(874,335,877,338, 10223615)// 9175039
$time = 0 
WAITMS(150)
ELSE
LCLICK(RND(811,922),RND(554,567))   // 2698049
WAITMS(RND(150,250))
END_CYC
WAIT(1)
LCLICK(727,226)  // 14408667
WAIT(1)
LCLICK(789,290)  // 9187143
WAIT(1)
LCLICK(840,285)  // 8730952
WAIT(1)
LCLICK(884,288)  // 8791083
WAIT(1)
LCLICK(942,291)  // 5716291
WAIT(1)
LCLICK(619,548)  // 1126812
« Last Edit: June 04, 2017, 08:19:12 AM by Oraven »

Qwerry

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Пожалуйста) правда не понятно, работает ли предложенное нормально.
Можно совет? Когда начинаете отвечать - нажимайте еще "предварительный просмотр" - чтобы иметь возможность поудобнее все написать.Как минимум там вы найдете кнопочку "#" . Вставив свой код между  [ code ]и [ /code ] вы немножко облегчите возможность понять вас.  :) Простую истину "если понимаете что-то вы, это не значит, что это поняли все остальные" - никто не отменял. :D

Пока что абсолютно непонятно, что именно делает вот этот длинный код  - видно три зацикленных действия, которые он выполняет если не видит в каком-то месте пиксель (причем в одном и том же месте и одного и того же цвета для всех трех случаев), но при этом  кликать он должен в разных местах.
Т.е. пара кликов, после если  не увидел пиксель - начал делать действие А, когда пиксель появился - ждет, чтоб он пропал,  и начинает действие Б, когда пиксель вновь появился, останавливается, а как исчез - переходит к действию В. после очередного возникновения пикселя - останавливается и делает еще несколько кликов  - Конец. ;)
В общем понятно лишь, что работать так вроде и не должно бы.

А что еще печальней - совсем неясно, чего конкретно вы от кликера хотите.
 "Пытаюсь зациклить процесс- покупка-усиление, продажа." - мало того, что непонятно, ЧТО, ГДЕ и  К А К   покупать/продавать, так еще и зациклить можно по-разному: можно сперва накупить кучу вещей, после всю кучу усиливать, после продавать пока не закончатся. Или же купил-усилил-продал - и снова покупаешь.(во втором случае зацикливать через while надо лишь для усиления. Условно -  показать, где и как покупать, запустить цикл усиления, запустить продажу 6-тизвездочной вещи. А кликер и сам может по завершению повторять выполнение программы - достаточно забыть поставить hult, а в режиме выполнения (шестеренка) указать количество повторов.
Искать это игру, регистрироваться, качать персонажа до доступа в этот раздел я не планирую (увы!). Так что вероятно придется вам или забить на использование проги,  или самому через справку/шаблоны видеоуроки на ютубе пытаться что-то делать (мой метод)),  или научиться объяснять всё чётко, однозначно и подробно 8)

Как вариант - можете скинуть скриншоты со стрелочками и надписями в духе : |"1. сперва клик сюда." | "2. после  клик вот сюда, дважды" |  "3. а дальше -  сюда"| "4. а если вот  туточки появилась серо-бур-малиновая фигулина типа вот такой, то повторить с 1. клика." | "5.   а когда вот эта фигня исчезнет - остановить выполнение программы".
« Last Edit: June 04, 2017, 02:25:43 AM by Qwerry »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
В твоем коде нет установки значения таймера и отсутствуют окончания условий END_IF

Одинаковый код запихнул в подпрограмму. Теперь код верный.
Code: (clickermann) [Select]
SUB(prog1) // описание подпрограммы prog1
   $check = 0
   WHILE($check = 0)
      GETSCREEN
      IF_PIXEL_IN(874,335,877,338, 10223615) // 9175039
         $check = 1
         WAITMS(150)
      ELSE
         LCLICK(RND(811,922),RND(554,567))   // 2698049
         WAITMS(RND(100,150))
      END_IF
   END_CYC
END_SUB

LCLICK(1015,176)  // 8889539
WAIT(1)
LCLICK(410,542)  // 3915
WAITMS(50)
LCLICK(414,543)  // 5614059
WAIT(1)
LCLICK(607,358)  // 12829635
WAIT(1)
LCLICK(628,475)  // 1055028
WAIT(1)
LCLICK(612,357)  // 13553358
WAIT(1)
LCLICK(634,477)  // 6131366
WAIT(1)
LCLICK(609,359)  // 14408667
WAIT(1)
LCLICK(634,478)  // 4746623
WAIT(1)
LCLICK(568,197)  // 1778503
WAIT(1)
LCLICK(481,228)  // 14079702
WAIT(1)
LCLICK(425,520)  // 3608
WAIT(1)
LCLICK(518,303)  // 4543402
WAIT(1)

prog1() // вызов подпрограммы prog1
WAIT(1)

LCLICK(513,351)  // 4072499
WAIT(1)
prog1()
WAIT(1)

LCLICK(647,351)  // 9195621
WAIT(1)
prog1()
WAIT(1)

LCLICK(649,348)  // 10369106
WAIT(1)
prog1()
WAIT(1)

LCLICK(727,226)  // 14408667
WAIT(1)
LCLICK(789,290)  // 9187143
WAIT(1)
LCLICK(840,285)  // 8730952
WAIT(1)
LCLICK(884,288)  // 8791083
WAIT(1)
LCLICK(942,291)  // 5716291
WAIT(1)
LCLICK(619,548)  // 1126812
WAIT(1)

Veter32

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Пожалуйста) правда не понятно, работает ли предложенное нормально.
Можно совет? Когда начинаете отвечать - нажимайте еще "предварительный просмотр" - чтобы иметь возможность поудобнее все написать.Как минимум там вы найдете кнопочку "#" . Вставив свой код между  [ code ]и [ /code ] вы немножко облегчите возможность понять вас.  :) Простую истину "если понимаете что-то вы, это не значит, что это поняли все остальные" - никто не отменял. :D

Пока что абсолютно непонятно, что именно делает вот этот длинный код  - видно три зацикленных действия, которые он выполняет если не видит в каком-то месте пиксель (причем в одном и том же месте и одного и того же цвета для всех трех случаев), но при этом  кликать он должен в разных местах.
Т.е. пара кликов, после если  не увидел пиксель - начал делать действие А, когда пиксель появился - ждет, чтоб он пропал,  и начинает действие Б, когда пиксель вновь появился, останавливается, а как исчез - переходит к действию В. после очередного возникновения пикселя - останавливается и делает еще несколько кликов  - Конец. ;)
В общем понятно лишь, что работать так вроде и не должно бы.

А что еще печальней - совсем неясно, чего конкретно вы от кликера хотите.
 "Пытаюсь зациклить процесс- покупка-усиление, продажа." - мало того, что непонятно, ЧТО, ГДЕ и  К А К   покупать/продавать, так еще и зациклить можно по-разному: можно сперва накупить кучу вещей, после всю кучу усиливать, после продавать пока не закончатся. Или же купил-усилил-продал - и снова покупаешь.(во втором случае зацикливать через while надо лишь для усиления. Условно -  показать, где и как покупать, запустить цикл усиления, запустить продажу 6-тизвездочной вещи. А кликер и сам может по завершению повторять выполнение программы - достаточно забыть поставить hult, а в режиме выполнения (шестеренка) указать количество повторов.
Искать это игру, регистрироваться, качать персонажа до доступа в этот раздел я не планирую (увы!). Так что вероятно придется вам или забить на использование проги,  или самому через справку/шаблоны видеоуроки на ютубе пытаться что-то делать (мой метод)),  или научиться объяснять всё чётко, однозначно и подробно 8)

Как вариант - можете скинуть скриншоты со стрелочками и надписями в духе : |"1. сперва клик сюда." | "2. после  клик вот сюда, дважды" |  "3. а дальше -  сюда"| "4. а если вот  туточки появилась серо-бур-малиновая фигулина типа вот такой, то повторить с 1. клика." | "5.   а когда вот эта фигня исчезнет - остановить выполнение программы".

Спасибо за замечание.

Сейчас попробую всё объяснить.

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
И самое главное... Все мы с нетерпением ждём, когда-же загорится шестая звезда? :D
Будем выполнять, пока не загорится. :)

Пока недостаточно загорелось.


Veter32

  • Зашел в гости
  • *
  • Posts: 8
    • View Profile
Открываю вкладку артефакты, потом обмен, ледяная сокровищница, покупаю 4 любых предмета и начинаю усиливать каждый предмет поочередно до 6 звезд,(именно здесь нашел баг при разборе получаешь больше ресурсов чем тратишь) Далее нажимаю разбор выделяю 4 предмета- разбираю, всё. и так хочу закрутить бесконечно)

Qwerry

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Вот так попонятнее) После правки  Oraven работать стало? Если всё ок  - супер.

Зациклить уже рабочий скрипт - не проблема. Проследил, чтоб после выполнения окно было точно такое, как до начала выполнения - (т.е. после продажи все окна были закрыты  программой)  - и выбрал цикл в самом кликермане  https://prnt.sc/ffs8s5 . Поначалу наверное не бесконечный, а раз 5. И сидишь, смотришь, где косяки.

Теоретически, окно с подтверждением покупки не всегда будет в одном месте появляться. Так что возможно придется посмотреть в редакторе Шаблоны=>графика=> IF_PICTURE_IN . И сохранить в папку со скриптом скрин кнопки ОК. 
Кстати, зеленая часть  в духе "// число" вещь не обязательная - это всего лишь комментарий (с цветом пикселя). Так что тебе удобнее будет или убрать их, или заменить на "// клик по кнопке такой-то". Не запоминать же что за что отвечает и координаты самому! А править наверняка ведь придется.

P.S.: задержки между кликами, которые ты написал сам уж очень машинные - всегда одна секунда. Попробуй заменить на WAITMS(700+rnd(0,300)) - та же секунда и будет (ну чуть меньше). То же касается координат. Если (x,y) превратится  в (x+rnd(0,10),y+rnd(0,5)) - будет немножко лучше.  Сам же говорил, что на сотни одинаковых действий могут внимание обратить. Хватит того, что багоюзом могут обозвать ;D чтоб еще и на боте попадаться.

А для покупки "любых" - т.е. нескольких рандомных  вещей лови скрипт. Вставишь sub в начало программы, а вызов ее строчкой "покупка(4)" - вместо всех кликов, ответственных за покупку. Но сначала в нее координаты кнопок установи. (брать под спойлером).

[spoiler]
Code: (clickermann) [Select]
SUB(pokupka, $par1) // править только координаты. этот кусок - в начале кода, рядом с SUB(prog1)

FOR($a=0,$a<$par1)
// чуть ниже -  КООРДИНАТЫ кнопок обмен надо превратить в  число - тупо убираем скобки и запятую. Но если второе число двузначное, то тогда добавляешь нолик, например, из  (331,50)  делаешь 331050  .
WAITms(10)
$qq=RNDFROM(109586, 142241, 448285, 465535) // вот здесь - записать координаты всех кнопок ОБМЕН через запятую, на которые можно нажимать. Причем, записывать без запятой как 1 число.
 $x=int($qq/1000)
 $y=$qq - $x*1000
MOVE($x,$y)

WAITms(50)
print($qq, ", x - ", $x, ", y -", $y)
WAITms(50)
LCLICK($x+rnd(0,10),$y+rnd(0,5))     // вот здесь - клик по одной из кнопок ОБМЕН. Координаты  не менять
WAITMS(700+rnd(0,300))

LCLICK(----+rnd(0,10),------+rnd(0,5))     // вот это - клик по кнопке ОК, подтверждающий покупку КООРДИНАТЫ
WAITMS(700+rnd(0,300))                   
END_CYC 
END_SUB
//==============================================//


pokupka(4) //  а вот это вызов подпрограммы покупка. В скобках - сколько вещей купить
[/spoiler]


« Last Edit: June 05, 2017, 08:04:11 AM by Qwerry »