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.


Topics - Otlichnii_paren

Pages: [1]
1
Общие вопросы / Рандомное имя переменной
« on: February 08, 2023, 08:54:44 PM »
Доброе времени суток. Сломал голову перерыл форум, нашел подходящие решения, но через костыли типа RNDFROM() . Должен же быть вариант по проще для реализации подобного кода, нужно обращение к рандомному имени переменной:
Code: [Select]
$var1="текст1..."
$var2="текст2..."
$var3="текст3..."
...
WAIT(1)

print($var(rnd(1,3)))

Или какая ни будь команда преобразующая строку "$var1" в имя переменной $var1. Или ткните пальцем на тему на форуме, если я в упор не вижу очевидного. Спасибо.

2
Добрый вечер, у меня возникла проблема с зацикливанием скрипта.

$var=1
$varz=5
$a=1
FOR($a=0,$a<5, -1)
$stav=2,5
FOR($var ,$var=1, 0)
     GETSCREEN
      COLORMODE(3)
      IF_PICTURE_IN (843, 867, 1091,959, "chernoe.bmp", -1, 100)
         WAITMS(50)
          $var=0
      else
         $stav=$stav*2
         RDown(953,992)
         waitms(105 + $S_CORR)
         RUp(953,992)
         KEYSTRING (StrConcat( "Рулетка" )  )
         WAIT(1)
         KEYPRESS(#ENTER)
         WAIT(5)
         KEYSTRING (StrConcat( $stav , " на чёрное " )  )
         WAIT(1)
         KEYPRESS(#ENTER)
         WAIT(5)
         KEYSTRING (StrConcat( "Крутить" )  )
         WAIT(1)
         KEYPRESS(#ENTER)
         WAIT(1)
                  IF($varz < $stav )
                      WAITMS(1000)
            $varz=$stav
            print($varz)
            else
          END_IF
         WAIT(rnd(20 , 30))
      END_IF
   END_CYC
      $var=1
   $stav=2,5
      FOR($var ,$var=1, 0)
         GETSCREEN
      COLORMODE(3)
      IF_PICTURE_IN (843, 867, 1091,959, "krasnoe.bmp", -1, 100)
         WAITMS(50)
         $var=0
      else
         $stav=$stav*2
         RDown(953,992)
         waitms(105 + $S_CORR)
         RUp(953,992)
         KEYSTRING (StrConcat( "Рулетка" )  )
         WAIT(1)
         KEYPRESS(#ENTER)
         WAIT(5)
         KEYSTRING (StrConcat( $stav , " на красное " )  )
         WAIT(1)
         KEYPRESS(#ENTER)
         WAIT(5)
         
         KEYSTRING (StrConcat( "Крутить" )  )
         WAIT(1)
         KEYPRESS(#ENTER)
         WAIT(1)
                  IF($varz < $stav )
           WAITMS(1000)
            $varz=$stav
            print($varz)
            else
         END_IF
         WAIT(rnd(20 , 30))
      END_IF
   END_CYC
 end_cyc

halt
что я делаю не так. Почему не получается просто зациклить на мертво скрипт?

3
Добрый день. Озадачился таким вопросом анализирования и распознования одинковых элементов в картинке и действовать исходя из количества элементов друг от друга, ну или количества на один взятый участок. Проще говоря что-то вроде шариков ромбов квадратов расположенных по разному (на картинке будет видно). Да понятно можно решить этот вопрос просто сделав снимки нужных элементов (на данный момент так у меня и работает бот). Но это как то долго вариантов уж слишком много и вообще решения вопроса в лоб. Трудности возникают именно с тем чтоб про анализировать картинку. Пробовал анализировать через расстояние, пробовал разбивать картинку на части, но код получался в 500 строк и то не работал. На чем вообще основано исчезновение шариков в таких играх как цветные линии.
Нужно именно чтоб скрипт проанализировав картинку кликал по одному из тех элементов которые в большем количестве идут друг за другом по горизонтали или вертикали, как зеленые квадратики на второй картинке. Если лень заморачиваться хотя бы подскажите в какую сторону капать.
Не надо не двигать их ниче, просто клик.... Возможно решение лежит на поверхности но в школе информатику я плохо учил...

4
Использование / Метро 2033
« on: March 12, 2020, 12:39:01 PM »
Может плохо искал, но по конкретному названию темы не нашел. Говорилось что полно скриптов и ботов для данной игрухи. Написал простенький скрипт который запускать нужно раз в день очень полезен на начальных этапах и когда есть друзья.
Естественно картинка под свой лад выставляйте ибо у меня на 2х машинах работало норм на 3ей приходилось заново скринить элементы изоборажения. Что касается картинки pid.bmp это маленький кусочек из слова vip 2-3 пикселя из буквы v. Скрипт пробегает по друзьям у которых в данный момент vip заходит обыскивает дарит бесплатный подарок закрывая при этом окно отправить уведомление если таковое выскакивает, кто хоть чуть чуть шарит разберется. Да можно доработать вписать более адекватную остановку после 10 обысков или подарков а не тот банальный вариант который я сделал))) но писалось все на коленке) закинул архив кому интересно какие именно элементы изображения я скринил.

Code: (clickermann) [Select]
$krug=0
WHILE($krug < 10)   //сколько переходов по друзьям кликать все ровно сработает пауза при отсутствии активной кнопки "обыскать" примерное число друзей/7 и вписываем. 
 
  GETSCREEN        //поиск вип
colormode(3)
SCANPICTURE ($ARR_SCAN, 0,0, $_xmax,$_ymax, "pib.bmp", -1, 100)
FOR($i=0,$i<ARRSIZE($ARR_SCAN),2)
RCLICK($ARR_SCAN[$i], $ARR_SCAN[$i+1])
   
   WAITMS(rnd(1000 , 5000))
     
  GETSCREEN    //клик по домику
   colormode(3)
      IF_PICTURE_IN (0,0, $_xmax,$_ymax, "dom.bmp", -1, 100)
   rCLICK($_return1, $_return2)
   MOVE(1619,662)
   WAITMS(rnd(1000 , 5000))
     END_IF
   
     GETSCREEN  //обыскать
 colormode(3)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "обыскать.bmp", -1, 100)

   RCLICK($_return1, $_return2)
   MOVE(1619,662)
   WAITMS(rnd(1000 , 5000))
 else
   halt     // отключает скрипт при отсуствии надписи обыскать

   END_IF
   
   
    GETSCREEN  //пожелания
 colormode(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "пожелания.bmp", -1, 100)

   RCLICK($_return1, $_return2)
   MOVE(1619,662)
   WAITMS(rnd(5000 , 10000))
   END_IF
   
     GETSCREEN  //подарить
 colormode(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "подарить.bmp", -1, 100)
   RDOWN($_return1, $_return2)
   waitms(1000)
   Rup($_return1, $_return2)
   MOVE(1619,662)
   WAITMS(rnd(2000 , 5000))
    END_IF
   
    GETSCREEN //закрыть оповещение
colormode(3)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "отмена3.bmp", -1, 100)
   rCLICK($_return1, $_return2)
   WAITMS(rnd(2000, 4000))
END_IF

 
   
   GETSCREEN  //закрыть
 colormode(3)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Закрыть.bmp", -1, 100)

   RCLICK($_return1, $_return2)
   MOVE(1619,662)
   WAITMS(rnd(1000 , 5000))
   END_IF
   
END_CYC
UNDEFINE($ARR_SCAN)
   
GETSCREEN //переход к след странице друзей
colormode(3)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "следдрузья.bmp", -1, 100)
   RCLICK($_return1, $_return2)
   MOVE(1619,662)
   WAITMS(rnd(10000 , 35000))
   
MOVE(1619,662)
   
   
END_IF

$krug=$krug+1
 
END_CYC 
   
   

halt

5
В общем такая тема надо кликнуть по первой картинке потом по второй потом по мере прохождения кода по 10ой и т.д. Реализовал это так:

...
GETSCREEN
colormode (3)
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "ноа.bmp", -1, 100)
$i=0
   rCLICK($ARR_SCAN[$i], $ARR_SCAN[$i+1])
   WAITMS(100)
UNDEFINE($ARR_SCAN)
.....
GETSCREEN
colormode (3)
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "ноа.bmp", -1, 100)
$i=0,
   rCLICK($ARR_SCAN[$i+2], $ARR_SCAN[$i+3])
   WAITMS(100)
UNDEFINE($ARR_SCAN)
....
Все работает как надо, но может есть более простой вариант исполнения данной задачи?
кликать надо не по порядку, поэтому не циклирую и картинки местами меняются...



И еще вопрос следующий из предыдущего, как более коротко организовать rnd() нажатие на один и те же картинки на странице если их 20-30 ?  отдельно для каждой прописывать sub будет слишком грамоздко. а вгонять координаты в одну переменную вроде нельзя


И еще раз уж задал вопросы то сразу же тот который меня всегда интересовал, если какая то возможность интегрировать или активировать горячую клавиши для нажатия пузы а не полной остановки клкермана? А то бывает мышь в работе и не можешь даже дотянуться до кнопки пауза, когда надо вдруг срочно сходить на соседние вкладки. А полностью останавливать сценарий не желательно.

6
Добрый день господа. Или я криво ищу или поиск не так работает, не могу найти тему с кликом по аналогичным картинкам. Суть в том что надо после поиска и нахождение черех ifpicturein кликнуть не только по первой но и по остальным совпадающим картинкам.... Знаю что была такая тема и обусждалась дайте хотя бы ссылку или кусок кода как это реализовать, спасибо)

7
Как поставить в один запрос
IF_PIXEL_IN(0,0, $_xmax,$_ymax, 255) несколько вариантов цветов пикселей для условия? через or не получается... отедльно создавть еще условие?

8
Общие вопросы / Не работает вместе
« on: October 05, 2019, 03:01:16 AM »
Часть кода нормально работает отдельно. Но когда запускаешь полностью все, находит каким то образом те картинки на экране которых нет.

Code: (clickermann) [Select]
SUB(ataka) // подпрограмма
 
  $S_CORR = (rnd(1 , 5))

waitms(5882 + $S_CORR)
  RDown(1332,793)
waitms(142 + $S_CORR)
  RUp(1332,793)
waitms(4181 + $S_CORR)
  RDown(1032,597)
waitms(146 + $S_CORR)
  RUp(1032,597)
waitms(6074 + $S_CORR)
// deleted
waitms(0 + $S_CORR)
// deleted
waitms(568 + $S_CORR)
// deleted
waitms(4 + $S_CORR)

$VAR=1
print ("Начал")
WHILE($VAR=1)
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (858, 352, 1177, 689, "boi2.bmp", -1, 90)
print (Нашел)
   WAITMS(1000)
   $VAR=2
ELSE
   RCLICK(rnd(856, 1208), rnd(638, 926))
   WAITMS(1000)
END_IF
END_CYC
wait(rnd(5 , 10))

// вот это часть кода что ниже.

GETSCREEN
colormode(6)
IF_PICTURE_IN (865,452, 969,565, "faild06.bmp", -1, 80)
print("еся")
         $S_CORR = rnd(1 , 5)
       waitms(7258 + $S_CORR)
  RDown(1096,595)
waitms(222 + $S_CORR)
  RUp(1096,595)
waitms(2443 + $S_CORR)
// deleted
waitms(0 + $S_CORR)
// deleted
waitms(396 + $S_CORR)
   WAITMS(100)

else

$S_CORR = (rnd(1 , 5))

waitms(5310 + $S_CORR)
  rDown(929,578)
waitms(153 + $S_CORR)
  rUp(929,578)
waitms(2543 + $S_CORR)
  rDown(1026,644)
waitms(140 + $S_CORR)
  rUp(1026,644)
waitms(7616 + $S_CORR)
// deleted
waitms(0 + $S_CORR)
// deleted
waitms(280 + $S_CORR)
// deleted
waitms(3 + $S_CORR)
END_IF

// Вот эта часть кода что выше



// тело выполняется только после вызова
END_SUB

//ataka() // вызов подпрограммы (обязательно ниже подпрограммы)


SUB(yachik) // подпрограмма
GETSCREEN
colormode(7)
//print ("нет ***")
IF_PICTURE_IN (1187,413, 1360,562, "yachik.bmp", -1, 90)


//print ("есть ящик ***")
   //LCLICK($_return1, $_return2) // вместо этой строки вбивать действие
else
  ataka() //сюда вписываем действие если ящика нет
   WAITMS(1000)
END_IF
 WAITMS(1000)
   // тело выполняется только после вызова
END_SUB

//yachik() // вызов подпрограммы (обязательно ниже подпрограммы)



WHILE($vasya < 40)


waitms(3234 + $S_CORR)//8ой
  rdown(1231,887)
waitms(144 + $S_CORR)
  rup(1231,887)
 waitms(6434 + $S_CORR)
yachik()

//7ой
  rdown(1156,886)
waitms(184 + $S_CORR)
  rup(1156,886)
  waitms(7014 + $S_CORR)
yachik()

  rdown(1086,887)//6ой
waitms(141 + $S_CORR)
  rup(1086,887)
waitms(6308 + $S_CORR)
yachik()

  rdown(1004,881)//5ый
waitms(90 + $S_CORR)
  rup(1004,881)
waitms(5907 + $S_CORR)
yachik()

  rdown(933,890)//4ый
waitms(104 + $S_CORR)
  rup(933,890)
waitms(6394 + $S_CORR)
yachik()

  rdown(859,889)//3ий
waitms(109 + $S_CORR)
  rup(859,890)
waitms(6451 + $S_CORR)
yachik()

  rdown(785,889) //2ой
waitms(105 + $S_CORR)
  rup(785,889)
waitms(6982 + $S_CORR)
yachik()

  rdown(703,880) //1ый
waitms(115 + $S_CORR)
  rup(703,880)
waitms(9401 + $S_CORR)
yachik()

  rdown(627,881) //переход дальше назад
waitms(112 + $S_CORR)
  rup(627,881)
waitms(3825 + $S_CORR)

 $vasya=$vasya+1

END_CYC

9
Общие вопросы / Откритие .cms из скрипта.
« on: September 12, 2019, 05:00:26 PM »
Добрый день. Я знаю что есть что-то похожее, но не смог пока найти вернее руки не доходят по искать. Так вот для того что бы чуть чуть разгрузить громоздкий скрипт, фактически игра ведется без моего не посредственного участи, но пришлось сделать кучу картинок кучу IF ов и циклов, соотвественно огроменный скрипт получился, хоть комментариями помечаны важные этапы, все ровно, чтоб чуть-чуть, что-то где то подправить, приходиться прокручивать искать двигать, особенно если нужно всунуть условие между условиями. Так вот можно как то сделать чтоб при условие IF истина скрипт обращался к другуму файлу .cms и соответственно возрващался обратно в то же метко с который был переход, а не в самое начало и шел дальше? Это хоть чуть чуть помогло бы разгрузить громоздкий код, а то машина даже при запуске подвисает, хотя может быть виною этому colormode(). И какую прогу используете для работы со скриптами? чтоб не путаться в циклах и условиях? В редакторе порою по 10 минут выискиваешь не закрытый end_if или end_cyc, спасибо заранее. Ну может конечно есть более современные решения моей проблемы грамоздкости скрипта, если есть подскажите, буду благодарен.

10
Кликерман умеет каким либо образом распозновать текст из выделенной области, либо числа, для дальнейшей обработки их. Что-то вроде жизнь нр 100 вытащил это число, совершил действие жизнь уменьшиласт вытащил это число. или как то из кода страницы это сделать можно? игруха браузерная . при нажатии просмотреть код выплывает нужная информация.

11
Есть картинки с прозрачностью, задний фон которых постоянно меняется, как можно обойти этот метод борьбы с кликерами? по моему это специально сделано так. colormode 8 даже не помог.

12
Добрый день. Под какой либо перменной хранитяться данные сколько осталось времени в таймере?
...
wait (rnd(1000 , 1200))
print ("осталось", ... , "сек")
...
  чтоб видеть сколько осталось секунд до повторного запуска цикла.
 

Pages: [1]