Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - m0rv1n

Pages: [1]
1
Например, я думал что колормод нагружает процессор гораздо сильнее чем гетскрин.
Как тестировать у меня ума не хватит, вот  и обратился к светлым умам форума.

2
Спасибо большое за информацию и совет!
Постараюсь делать поменьше .

3
Я часто в скриптах использую Colormode, собственно вот стало очень интересно. Какой из режимов от 1- 8 больше грузит пк?
И дополнительно про задание прозрачности пикселям при поиске картинок, не грузит ли это пк?

Обычно искомые области у меня около 100х100 пикселей и процессор загружается кликерманом до 10%.
Собственно хотелось бы понять как облегчить скрипты.
PS: задержки между поисками всегда больше 100мс

4
Похоже заходить нужно где-то через год-полтора, посмотреть не выложил ли он пароль к архиву, если, конечно, этот вопрос еще будет интересен.

5
Сам столкнулся с такой задачей, выход нашел таким способом
Может пригодится кому
Code: (clickermann) [Select]
SUB(hold, $tim, $_xpos, $_ypos)
   $timer = $_ms + $tim // таймер
   // LOGWRITE ("таймер",$tim)
   MOVE($_xpos, $_ypos)
   WAITMS(10)
   WHILE($timer > $_ms)
      IF( ($_xmouse == $_xpos) & ($_ymouse == $_ypos) )
         WAITMS(10)
      ELSE
      $sx= $sx + ($_xmouse - $_xpos) // запоминает сдвиг который делаете мышью
$sy= $sy + ($_ymouse - $_ypos)
         MOVE($_xpos, $_ypos)
         WAITMS(10)
      END_IF
   END_CYC
END_SUB

$sx = $_xmouse // запоминаем положение курсора
$sy = $_ymouse
hold(1000, 20, 30) //вызов саба на удержание. например 1000мс в координате х20 у30
MOVE($sx,$sy) // вернуть курсор с учетом сдвига мыши во время блока

6
С регистрацией новичков полный порядок менее чем за неделю текущего месяца зарегистрировано 18 человек.
А мультиакаунты ни где не приветствуются, правильно что повторную регистрацию блокирут и со спамерами теперь меньше проблем стало.  ;)
Стало быть новичков было бы гораздо больше, если бы с отправкой сообщений на почту не было проблем.
Не могу же я быть таким особенным, что меня блокируют и не дают ни зарегистрироваться ни восстановить пароль, а все остальное население планеты делает это без проблем.

7
Давно не был на форуме, появилось пару вопросов, не мог вспомнить пароль, пытался восстановить пароль - письма на почту не приходят. Зарегестрировать новый тоже не вышло. Почта на @gmail.com.
Думал может на мэйле ру получится, хотел создать новый аккаунт, и вот снова подарок, не приходит сообщение подтвердить аккаунт. Вот спустя неделю попыток . . . или две. Ввел правильный пароль.
Прошу посмотреть что у вас с регистрацией не так, люди же не могут зарегистрироваться.

8

А зачем параллельно? Просто вставь вызов подпрограммы перед условиями.
Наличия большого количества подпрограмм совсем не плохо. плохо будет когда ты решишь выпрыгивать из них через ГОТО. Но такого у тебя нет так что все в пределах нормы.

У тебя пишутся ограничения областей коррекции, в дополнение к этому, тогда уж, ограничь и зону снимка.
Из цикла while ($atak = 0) убрал у тебя лишние снимки.


Вот уж не ожидал столь быстрой помощи, жаль плюсиков нет. Спасибо большое!!!  Впервые столкнулся с этой программой и думал что у меня бред получился.
Еще раз спасибочки!!!  :) :) ::)  Пойду развивать дальше этот код  :D

9
И еще просьба  ::)
Вот код боя в котором проверяется активность кнопок удара и нажатие по ним, можно ли сделать чтоб параллельно шла проверка на количество ХП персонажа ( шла проверка на наличие определенных пикселей и нажатие по значку еды).
Code: (clickermann) [Select]
SUB (atak)
   //Сам процесс боя
   $atak = 0
   while ($atak =0)
      //Нажатие на кнопку призыва дракона (если она активна)
      GETSCREEN
      COLORMODE(6, $xtop, $ytop+60, $xtop+40, $ytop+72)
      IF_PICTURE_IN ($xtop, $ytop+60, $xtop+40, $ytop+72, "prizv.bmp", -1, 90)
         
         LDOWN($_return1+5, $_return2+3)
         wAITMS(100)
         LUP($_return1+5, $_return2+3)
         
         WAITMS(50)
         LOGWRITE ("зовем драка")
         WAITMS(500)
         MOVE($xtop+50, $ytop+100)
         
         
      Else
         //Если кнопка удара не активна, то нажмем на нее
         GETSCREEN
         COLORMODE(6, $xtop+455,$ytop+430, $xtop+900,$ytop+465)
         IF_PICTURE_IN ($xtop+455,$ytop+430, $xtop+900,$ytop+465, "an2.bmp", -1, 100)
            LCLICK($_return1+30, $_return2)
            WAITMS(50)
            LOGWRITE ("атака1")
            MOVE($xtop+50, $ytop+100)
           
            WAIT(2)
           
         Else
            //Если кнопка удара нстала активной, то нажмем на нее
            GETSCREEN
            COLORMODE(6, $xtop+455,$ytop+430, $xtop+900,$ytop+465)
            IF_PICTURE_IN ($xtop+455,$ytop+430, $xtop+900,$ytop+465, "aa2.bmp", -1, 100)
               LCLICK($_return1+30, $_return2)
               WAITMS(50)
               LOGWRITE ("атака2")
               MOVE($xtop+50, $ytop+100)
               WAIT(2)
               
            Else
               
               
               
               GETSCREEN
               //  Проверка на наличие кнопки закрыть бой (если противник или наш герой повержен)
               IF_PICTURE_IN ($xtop+400,$ytop+300, $xtop+1000,$ytop+500, "zak2.bmp", -1, 90)
                  WAITMS(800)
                 
                  //проверяем проиграли мы или победили
                  sliv ()
                  //Закрываем бой
                  WAITMS(200)
                  LDOWN($_return1, $_return2)
                  WAITMS(200)
                  LUP($_return1, $_return2)
                  WAITMS(200)
                  MOVE($xtop+50, $ytop+100)
                 
                  LOGWRITE ("бойзак")
                 
                  $atak = 1
                  WAIT(1)
               END_IF
            END_IF
         END_IF
      END_IF
   end_cyc
   
   //boiend()
   WAITMS(100)
END_SUB

10
При беглом взгляде нашел ошибку. Строки 366 и 367 перепутаны окончания. Поменяй строки местами.
Спасибо большое, исправил.
Можете подсказать, есть ли более компактные конструкции, чтоб не использовать такое количество подпрограмм?
Если что я готов читать и учиться, только направьте, ибо мозги пухнут.
PS: Конструкция работает, но меня беспокоит плохо ли то, что в коде так много подпрограмм, при том, они ссылаются на другие подпрограммы и должны влиять на изменение одной переменной?

11
Меня смущает большое количество подпрограмм которые ссылаются на другие подпрограммы.
Но как реализовать это проще или рациональнее не догоняю.

12
Написал я бота, который в одной игре может пинать одного моба.
Суть такова :
1. Бот перед боем проверяет здоровье персонажа и дракона (при необходимости восстанавливает здоровье)
2. Ищет моба и атакует его (если не найдет проверяет на наличие ошибок и выскакивающих окон)
3. Проводит бой (если бой не начался  после атаки моба, проверяет на наличие ошибок и выскакивающих окон)
4. При завершении боя проверяет победа или поражение

Код получился большой и безобразный, прошу помочь довести его до ума. Или дайте правильную конструкцию, я готов переписать его заново, лишь бы он был нормальней.
Code: (clickermann) [Select]
LOGSHOW (1, 950,600)

SUB (hppers)
   //Проверка на хп персонажа
   GETSCREEN
   COLORMODE(6,$xtop+100, $ytop+35, $xtop+130, $ytop+42)
   IF_PICTURE_IN ($xtop+100, $ytop+35, $xtop+130, $ytop+42, "hp.bmp", -1, 90)
      LOGWRITE ("Персонаж Голоден")
      WAITMS(100)
      MOVE($xeda+16, $yeda+19)
      WAITMS(100)
      LDOWN($xeda+16, $yeda+19)
      WAITMS(100)
      LUP($xeda+16, $yeda+19)
      WAITMS(200)
      MOVE($xeda+16, $yeda+100)
      WAITMS(800)
   else
     
      LOGWRITE ("Персонаж сыт")
   END_IF
END_SUB


SUB (stat)
   //проверка на наличие выскакивающего окна статистика
   LOGWRITE ("статистика ?")
   WAITMS(100)
   GETSCREEN
   
   COLORMODE(6, $xtop+880, $ytop-5, $xtop+930, $ytop+38)
   IF_PICTURE_IN ($xtop+880, $ytop-5, $xtop+930, $ytop+38, "sta.bmp", -1, 90)
      LOGWRITE ("да, стат")
      WAITMS(100)
      LDOWN($_return1, $_return2)
      wAITMS(100)
      LUP($_return1, $_return2)
      WAITMS(200)
     
      MOVE($xtop+50, $ytop+100)
      WAITMS(100)
     
   Else
      LOGWRITE ("Нет")
   END_IF
END_SUB

SUB (bonus)
   //Проверка на наличие выскакивающего окна бонусов
   LOGWRITE ("бонусы?")
   WAITMS(100)
   GETSCREEN
   
   COLORMODE(6, $xtop+400, $ytop+300, $xtop+700, $ytop+480)
   IF_PICTURE_IN ($xtop+400, $ytop+300, $xtop+700, $ytop+480, "bonus.bmp", -1, 90)
      LOGWRITE ("да, бонус")
      WAITMS(100)
      LDOWN($_return1, $_return2)
      wAITMS(100)
      LUP($_return1, $_return2)
      WAITMS(200)
     
      MOVE($xtop+50, $ytop+100)
      WAITMS(100)
     
   Else
      LOGWRITE ("Нет бонусов")
   END_IF
END_SUB

SUB (sliv)
   //Проверка на проигрыш в бою
   GETSCREEN
   COLORMODE(6,$xtop+266, $ytop+150, $xtop+1025, $ytop+450)
   IF_PICTURE_IN ($xtop+266, $ytop+150, $xtop+1025, $ytop+450, "sliv.bmp", -1, 90)
      LOGWRITE ("СЛИЛИ")
      //Если проиграли в бою нажимаем на кнопку закрыть игру и прерываем сценарий
      WAITMS(100)
      LDOWN($xtop+1006, $ytop-35)
      WAITMS(100)
      LUP($xtop+1006, $ytop-35)
      WAITMS(200)
      HALT
   else
      LOGWRITE ("Победа")
   END_IF
END_SUB

SUB (atak)
   //Сам процесс боя
   $atak = 0
   while ($atak =0)
      //Нажатие на кнопку призыва дракона (если она активна)
      GETSCREEN
      COLORMODE(6, $xtop, $ytop+60, $xtop+40, $ytop+72)
      IF_PICTURE_IN ($xtop, $ytop+60, $xtop+40, $ytop+72, "prizv.bmp", -1, 90)
         
         LDOWN($_return1+5, $_return2+3)
         wAITMS(100)
         LUP($_return1+5, $_return2+3)
         
         WAITMS(50)
         LOGWRITE ("зовем драка")
         WAITMS(500)
         MOVE($xtop+50, $ytop+100)
         
         
      Else
         //Если кнопка удара не активна, то нажмем на нее
         GETSCREEN
         COLORMODE(6, $xtop+455,$ytop+430, $xtop+900,$ytop+465)
         IF_PICTURE_IN ($xtop+455,$ytop+430, $xtop+900,$ytop+465, "an2.bmp", -1, 100)
            LCLICK($_return1+30, $_return2)
            WAITMS(50)
            LOGWRITE ("атака1")
            MOVE($xtop+50, $ytop+100)
           
            WAIT(2)
           
         Else
            //Если кнопка удара нстала активной, то нажмем на нее
            GETSCREEN
            COLORMODE(6, $xtop+455,$ytop+430, $xtop+900,$ytop+465)
            IF_PICTURE_IN ($xtop+455,$ytop+430, $xtop+900,$ytop+465, "aa2.bmp", -1, 100)
               LCLICK($_return1+30, $_return2)
               WAITMS(50)
               LOGWRITE ("атака2")
               MOVE($xtop+50, $ytop+100)
               WAIT(2)
               
            Else
               
               
               
               GETSCREEN
               //  Проверка на наличие кнопки закрыть бой (если противник или наш герой повержен)
               IF_PICTURE_IN ($xtop+400,$ytop+300, $xtop+1000,$ytop+500, "zak2.bmp", -1, 90)
                  WAITMS(800)
                 
                  //проверяем проиграли мы или победили
                  sliv ()
                  //Закрываем бой
                  WAITMS(200)
                  LDOWN($_return1, $_return2)
                  WAITMS(200)
                  LUP($_return1, $_return2)
                  WAITMS(200)
                  MOVE($xtop+50, $ytop+100)
                 
                  LOGWRITE ("бойзак")
                 
                  $atak = 1
                  WAIT(1)
               END_IF
            END_IF
         END_IF
      END_IF
   end_cyc
   
   //boiend()
   WAITMS(100)
END_SUB

SUB (rec)
   //Проверка на выскакивающее окно с ошибкой реконект
   LOGWRITE ("реконект?")
   WAIT(2)
   GETSCREEN
   COLORMODE(6, $xtop, $ytop+80, $xtop+1240, $ytop+502)
   IF_PICTURE_IN ($xtop, $ytop+80, $xtop+1240, $ytop+502, "rec.bmp", -1, 90)
      LOGWRITE ("дА")
      // Если окно найдено закрываем его
      wAITMS(200)
      LDOWN($_return1, $_return2)
      wAITMS(100)
      LUP($_return1, $_return2)
      // И посылаем команду боя
      wAITMS(200)
      atak ()
     
   Else
      LOGWRITE ("Нет")
   END_IF
END_SUB

SUB (boi)
   //Проверяем бой начался или нет  (определяется по кнопке призыва дракона, которая появляется во время боя)
   LOGWRITE ("бой нач-ся?")
   WAIT(2)
   GETSCREEN
   COLORMODE(6)
   COLORMODE(6, $xtop, $ytop+60, $xtop+40, $ytop+72)
   IF_PICTURE_IN ($xtop, $ytop+60, $xtop+40, $ytop+72, "prizv.bmp", -1, 90)
      LOGWRITE ("дА")
      // отправляем команду начать бой
      atak ()
     
   Else
      LOGWRITE ("Нет")
     
      //Не начался бой. уменьшаем счетчик убитых мобов на 1
      INC($mob,-1)
   END_IF
END_SUB

SUB (boii)
   GETSCREEN
   COLORMODE(6, $xtop+455,$ytop+430, $xtop+500,$ytop+465)
   IF_PICTURE_IN ($xtop+455,$ytop+430, $xtop+500,$ytop+465, "an2.bmp", -1, 90)
      atak ()
   Else
      LOGWRITE ("Бой начался")
   END_IF
END_SUB

//Проведение проверок
SUB (prover)
   
   //На наличие окна с реконектом
   rec ()
   //Начался ли бой (но дракон еще не призван)
   boi ()
   //Начался ли бой ( дракон уже призван)
   boii ()
   //На наличие окна с бонусами
   bonus ()
   //на наличие окна со статистикой
   stat ()
   
   //проверка вдруг бой уже закончился
   GETSCREEN
   COLORMODE(6, $xtop+400,$ytop+300, $xtop+1000,$ytop+500)
   IF_PICTURE_IN ($xtop+400,$ytop+300, $xtop+1000,$ytop+500, "zak.bmp", -1, 90)
      WAITMS(1000)
      // если бой закончился проверяем проиграли или нет
      sliv ()
     
      WAITMS(200)
      LDOWN($_return1+20, $_return2)
      WAITMS(200)
      LUP($_return1+20, $_return2)
      WAITMS(200)
      MOVE($xtop+50, $ytop+100)
      LOGWRITE ("бойзак")
     
      $atak = 1
      WAIT(1)
   END_IF
END_SUB

SUB (poisk)
   
   $prov = 0
   $poiskm = 0
   
   // количество попыток найти моба (они перемещаются и могут быть не сразу найдены)
   while ($poiskm <19)
     
      INC($prov,1)
      LOGWRITE ("поиск моба ",$prov )
      //Ищем моба
      GETSCREEN
      COLORMODE(6, $xtop+209, $ytop+212, $xtop+240, $ytop+227)
      IF_PICTURE_IN ($xtop+209, $ytop+212, $xtop+240, $ytop+227, "31.bmp", -1, 100)
         //  моб найден. заканчиваем поиски моба
         $poiskm = 20
         $prov = 0
         //Нажимаем на картинку моба
         DBLCLICK($_return1, $_return2-15)
         WAITMS(50)
         INC($mob,1)
         LOGWRITE ("бой номер ", $mob)
         LOGWRITE ("Бъем верхнего")
         WAITMS(300)
         //Отправляем команду на проверку начался бой или нет
         boi()
         
         WAIT(1)
         
         
      Else
         WAITMS(400)
         INC($poiskm,1)
         if ($prov > 18)
           
            prover ()
           
         END_IF
      END_IF
   END_CYC
END_SUB


SUB (drakhp)
   //Проверка здоровья дракона
   GETSCREEN
   COLORMODE(6)
   IF_PIXEL_IN ($xtop-3, $ytop+78, $xtop, $ytop+81, 4144959)
     
      //низкое здоровье нажимаем на иконку еды (находится с небольшим смещением от еды персонажа)
      LOGWRITE ("ДРАК Голод")
      WAITMS(100)
      MOVE($xeda+70, $yeda+19)
      WAITMS(100)
      LDOWN($xeda+70, $yeda+19)
      WAITMS(100)
      LUP($xeda+70, $yeda+19)
      WAITMS(200)
      MOVE($xeda+70, $yeda+100)
      WAITMS(800)
   else
      //полоса здоровья нормальная для боя
      LOGWRITE ("ДРАК сыт")
   END_IF
END_SUB


GETSCREEN
COLORMODE(6)
// Расположение ОРИЕНТИРА по отношению к которой будем искать те или иные предметы.
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "xy.bmp", -1, 90)
   $xtop = $_return1
   $ytop = $_return2
   
   LOGWRITE("X: ", $xtop," Y: ", $ytop)
   // поиск предмета на карте, захватив который мы смещаем карту в нужное положение по отношению к ориентиру
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "ornt.bmp", -1, 90)
      $xor = $_return1
      $yor = $_return2
     
     
      WAITMS(100)
     
      LDOWN($xor,$yor)
      WAITMS(50)
      MOVE($xtop+258, $ytop+359)
      WAITMS(50)
      LUP($xtop+258, $ytop+359)
      WAITMS(100)
     
      //Поиск картинки с едой
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "eda.bmp", -1, 90)
         $xeda = $_return1
         $yeda = $_return2
         LOGWRITE ("еда найдена")
         
         
         $mob = 0
         while ($mob <2000)
           
            WAITMS(200)
            //прверки на выскакивающие окна и на сытость песонажа и дракона
            //Проверка на ежедневный бонус
            bonus ()
            //Проверка на ошибку реконект
            rec ()
            //Проверка на  хп персонажа
            hppers ()
            //Проверка на хп дракона
            drakhp ()
            //Поиск моба
            poisk ()
           
           
         END_CYC   
         END_IF
     
   END_IF
   
   WAITMS(100)
   LDOWN($xtop+1006, $ytop-35)
   WAITMS(100)
   LUP($xtop+1006, $ytop-35)
   WAITMS(200)
   
END_IF



HALT

Pages: [1]