Author Topic: Помогите закончить/улучшить скрипт новичку! Бот для MMORPG MIST  (Read 7460 times)

0 Members and 1 Guest are viewing this topic.

zZzIPer__

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Code: [Select]
WAIT(5)
WHILE($wait_like = 0) 
      GETSCREEN   
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "FullHP.bmp")   // Смотрит полное хп ли
         $wait_like = 1
WAIT(3)
LCLICK(1302,184) // создает дуэль
WAITMS(500)
LCLICK(644,285)
$wait_like = 0   
    WHILE($wait_like = 0) 
      GETSCREEN   
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Принять.bmp")  // ждет пока не появится окошко с предложением принять бой
         $wait_like = 1
Else

 WAITMS(500)
         WAITMS(500)   
    LCLICK(631,344) // Выбирает клетку впереди персонажа
  WAITMS(500) 
    LCLICK(654,234) // шаг вперед
Пока это все, у меня проблема в том что он не ждет пока появится окошко с просьбой принять, а выполняет скрипт дальше. Буду рад помощи и советами!!!

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
А ты в предложениях тоже точки не ставишь? У функций отсутствуют завершения, и кликер не может понять что где кончается.
$wait_like - видать выдрал из скрипта для лайков  :D. Переменные можно обозвать как хочешь.

Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "FullHP.bmp")   // Смотрит полное хп ли
      $check = 1
      WAITMS(100)
      LCLICK(1302,184) // создает дуэль
      WAITMS(500)
      LCLICK(644,285)
      WAIT(3)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Принять.bmp")  // ждет пока не появится окошко с предложением принять бой
      $check = 1
   Else
      WAITMS(500)
      LCLICK(631,344) // Выбирает клетку впереди персонажа
      WAITMS(500)
      LCLICK(654,234) // шаг вперед
      WAITMS(500)
   END_IF
END_CYC

WAIT(5)


zZzIPer__

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Хе-хе-хе, поймал, я плохо разбираюсь в этом) Очень благодарен за помощь!)

zZzIPer__

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
А есть такая возможность как выбирать рандомный вариант из предложенных координат и определенное кол-во

zZzIPer__

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Code: [Select]
123 217       //удар сверху
159 251       //удар с права
123 285       // удар с низу
85 248        //удар слева
122 251         //удар в корпус
тут надо выбрать 1-ну
Code: [Select]
124 336 //защита сверху
159 369 //защита справа
123 407 //защита с низу
86 373 // левая рука
125 374 // центр
тут надо 3

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Code: (clickermann) [Select]
$r = RND(1,5)
SWITCH($r) // случайный выбор
CASE(1)
   LCLICK(123,217)//удар сверху
CASE(2)
   LCLICK(159,251)//удар с права
CASE(3)
   LCLICK(123,285)// удар с низу
CASE(4)
   LCLICK(85,248)//удар слева
CASE(5)
   LCLICK(122,251)//удар в корпус
DEFAULT
END_SWITCH
WAITMS(100)

FOR($a=0,$a<3) // повтор 3 раза
   $r = RND(1,5)
   SWITCH($r) // случайный выбор
   CASE(1)
      LCLICK(124,336) //защита сверху
   CASE(2)
      LCLICK(159,369) //защита справа
   CASE(3)
      LCLICK(123,407) //защита с низу
   CASE(4)
      LCLICK(86,373)  // левая рука
   CASE(5)
      LCLICK(125,374) // центр
   DEFAULT
   END_SWITCH
   WAITMS(100)
END_CYC
« Last Edit: December 21, 2014, 07:32:40 AM by Oraven »

Kedrick

  • Освоившийся
  • **
  • Posts: 70
    • View Profile
Немного неправильно Оравен сделал во второй части скрипта.
Там нужно выбрать 3 случайных из 5 вариантов, а у тебя выбирает любую одну точку три раза подряд. Надо наверное еще сделать так, чтобы скрипт исключал из последующих рандомизаций свой предыдущий выбор.

zZzIPer__

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Kedrick прав нужно что бы не было повторений, а то получится сначало нажал, а если еще раз на одну точку нажать то защита отменится

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Kedrick прав нужно что бы не было повторений, а то получится сначало нажал, а если еще раз на одну точку нажать то защита отменится

Вот без повтора
Code: (clickermann) [Select]
$r = RND(1,5)
SWITCH($r) // случайный выбор
CASE(1)
   LCLICK(123,217)//удар сверху
CASE(2)
   LCLICK(159,251)//удар с права
CASE(3)
   LCLICK(123,285)// удар с низу
CASE(4)
   LCLICK(85,248)//удар слева
CASE(5)
   LCLICK(122,251)//удар в корпус
DEFAULT
END_SWITCH
WAITMS(100)

FOR($a=0,$a<3) // повтор 3 раза
   $r = "12345"
   $f = INT(STRCUT($r,RND(1,STRLEN($r)),1))
   $r = INT(STRFILTER ($r, $f, 0))
   SWITCH($f) // случайный выбор зх из 5 без повтора
   CASE(1)
      LCLICK(124,336) //защита сверху
   CASE(2)
      LCLICK(159,369) //защита справа
   CASE(3)
      LCLICK(123,407) //защита с низу
   CASE(4)
      LCLICK(86,373)  // левая рука
   CASE(5)
      LCLICK(125,374) // центр
   DEFAULT
   END_SWITCH
   WAITMS(100)
END_CYC

zZzIPer__

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Очень польщен,  ваше величество!!!

zZzIPer__

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

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
О боже,  я думал что больше вас не потревожу, но как сделать чтобы действие выполнялось до тех пор пока не появится нужная картинка.

Опять мысли вслух? Какое действие, какая картинка ты вообще о чем?

zZzIPer__

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Я думал закончил, но блин, уже достало... Почему не работает когда находит Fight(предложение принять бой) он не нажимает куда сказано, координаты правильные
Code: [Select]
WAIT(2)
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "FullHP.bmp")   // Ñìîòðèò ïîëíîå õï ëè
      $check = 1
      WAITMS(1000)
      LCLICK(1302,184) // ñîçäàåò äóýëü
      WAITMS(500)
      LCLICK(644,285)
      WAIT(3)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

$check = 0

WHILE($check = 0)
   
   GETSCREEN
   
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Fight.bmp")  // æäåò ïîêà íå ïîÿâèòñÿ îêîøêî ñ ïðåäëîæåíèåì ïðèíÿòü áîé
     
      $check = 1
     
      WAITMS(2000)
      LCLICK(640,404)
     
      WAIT(1)
     
      WAIT(1)
      LCLICK(655,234) // Âûáèðàåò êëåòêó âïåðåäè ïåðñîíàæà
      WAITMS(500)
      LCLICK(675,254) // øàã âïåðåä
      WAITMS(500)
     
     
      $check = 0
     
      GETSCREEN
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Ìîæíî.bmp")  // Ìîæíî õîäèòü
         
         
         WAIT(5)
         
         LCLICK(694,232) // êëèê ïî âðàãó
         WAITMS(500)
         LCLICK(732,245) // Çàùèòíàÿ ñòîéêà
         WAITMS(500)
         WAIT(1)
         
         $r = RND(1,5)
         SWITCH($r) // ????????? ?????
         CASE(1)
            LCLICK(123,217)//???? ??????
         CASE(2)
            LCLICK(159,251)//???? ? ?????
         CASE(3)
            LCLICK(123,285)// ???? ? ????
         CASE(4)
            LCLICK(85,248)//???? ?????
         CASE(5)
            LCLICK(122,251)//???? ? ??????
         DEFAULT
         END_SWITCH
         WAITMS(100)
         
         FOR($a=0,$a<3) // ?????? 3 ????
            $r = "12345"
            $f = INT(STRCUT($r,RND(1,STRLEN($r)),1))
            $r = INT(STRFILTER ($r, $f, 0))
            SWITCH($f) // ????????? ????? ?? ?? 5 ??? ???????
            CASE(1)
               LCLICK(124,336) //?????? ??????
            CASE(2)
               LCLICK(159,369) //?????? ??????
            CASE(3)
               LCLICK(123,407) //?????? ? ????
            CASE(4)
               LCLICK(86,373)  // ????? ????
            CASE(5)
               LCLICK(125,374) // ?????
            DEFAULT
            END_SWITCH
            WAITMS(100)
         END_CYC
      END_IF
     
      WAITMS(500)
     
      LCLICK(122,440)
     
      WHILE($check = 0)
         GETSCREEN
         IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Ãîòîâî.bmp")  //  Êîíåö áîÿ
            $check = 1
           
            WAITMS(500)
            LCLICK(738,640)
           
            $check = 0
           
            WHILE($check = 0)
               GETSCREEN
               IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Çàêðûòü.bmp")  // Çàêðûòü ëîã
                  $check = 1
                  WAITMS(500)
                  LCLICK(675,189)
               END_IF
            END_CYC

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Ставь точки в предложениях уже! Опять недостает завершений.
Нажми волшебную палочку в редакторе для авторасстановки отступов.
Увидишь в конце перекос, и вот теперь сам решай где ты забыл написать окончания условий и циклов!

zZzIPer__

  • Зашел в гости
  • *
  • Posts: 14
    • View Profile
Аха, ОН РАБОТАЕТ!!!)))