Автокликер Clickermann :: Форум
Основной раздел => Использование => Topic started by: Dampil on August 09, 2014, 11:46:52 AM
-
Помогите пжл, не понимаю, почему не происходит клик по кнопке "30 минут"(место выделено цветом и комментами)
// Задаём координаты зданий. Значения Х - [N,0], Y - [N,1]
GETSCREEN;
$varx[0,0]=616;
$varx[0,1]=736;
$varx[1,0]=722;
$varx[1,1]=779;
$varx[2,0]=880;
$varx[2,1]=775;
$varx[3,0]=810;
$varx[3,1]=710;
$varx[4,0]=716;
$varx[4,1]=663;
$varx[5,0]=656;
$varx[5,1]=586;
$varx[6,0]=572;
$varx[6,1]=544;
$varx[7,0]=698;
$varx[7,1]=499;
$varx[8,0]=747;
$varx[8,1]=588;
$varx[9,0]=838;
$varx[9,1]=614;
FOR($a=0, $a < 10)
//кликаем по координатам зданий
LCLICK($varx[$a,0], $varx[$a,1]);
//ждём, пока появится окно старта работы
WAITMS(2000);
// Жмём на кнопку "30 минут", она самая прибыльная
LCLICK(745, 610);
WAITMS(500);
// Закрываем окно здания
LCLICK(1215, 320);
// Эмулируем задумчивость
WAITMS(3000+RND(-300, 1200));
END_CYC
Понимаю, вопрос достаточно нубский, скрипт простой. Но нажатия 1 и 3 происходят, на второе только переносится курсор
-
Второе: периодически кликер игнорирует всё, что только можно, кроме ожидания
-
$varx[0,0]=616;
$varx[0,1]=736;
$varx[1,0]=722;
$varx[1,1]=779;
$varx[2,0]=880;
$varx[2,1]=775;
$varx[3,0]=810;
$varx[3,1]=710;
$varx[4,0]=716;
$varx[4,1]=663;
$varx[5,0]=656;
$varx[5,1]=586;
$varx[6,0]=572;
$varx[6,1]=544;
$varx[7,0]=698;
$varx[7,1]=499;
$varx[8,0]=747;
$varx[8,1]=588;
$varx[9,0]=838;
$varx[9,1]=614;
что это ?
попробуйте перед вторым кликом сначала сделать к этим координатам move а потом подождать немного ms
-
$varx[0,0]=616;
$varx[0,1]=736;
$varx[1,0]=722;
$varx[1,1]=779;
$varx[2,0]=880;
$varx[2,1]=775;
$varx[3,0]=810;
$varx[3,1]=710;
$varx[4,0]=716;
$varx[4,1]=663;
$varx[5,0]=656;
$varx[5,1]=586;
$varx[6,0]=572;
$varx[6,1]=544;
$varx[7,0]=698;
$varx[7,1]=499;
$varx[8,0]=747;
$varx[8,1]=588;
$varx[9,0]=838;
$varx[9,1]=614;
что это ?
попытка хранения координат зданий в двумерном массиве. [N,0] - X, [N,1] - Y
-
а с каких пор в кликере поддерживается двумерные массивы?
-
а с каких пор в кликере поддерживается двумерные массивы?
а попробовать?)) Просто не знал. Если на 2 массива просто разбить, прокатит, по идее? Кстати, если поддержки нет, почему тогда ошибку не выдаёт?
-
а с каких пор в кликере поддерживается двумерные массивы?
а попробовать?)) Просто не знал. Если на 2 массива просто разбить, прокатит, по идее? Кстати, если поддержки нет, почему тогда ошибку не выдаёт?
а вот это самое интересное =) гдето тут есть как сделать псевдо двумерный массив Крис Тинка писала
-
а с каких пор в кликере поддерживается двумерные массивы?
а попробовать?)) Просто не знал. Если на 2 массива просто разбить, прокатит, по идее? Кстати, если поддержки нет, почему тогда ошибку не выдаёт?
а вот это самое интересное =) гдето тут есть как сделать псевдо двумерный массив Крис Тинка писала
костыли - рулез, но проще - 2 массива))
-
пошёл зацикливать скрипт. Если не вернусь, считайте ламером:)
-
кстати, в проге есть комбинация клавиш для прерывания бесконечного цикла?
-
откройте настройки там есть горячие клавиши
-
гениально... координаты из 2 разных массивов в качестве параметров LCLICK тож не принимает... Не в обиду автору, ясно дело(спс, что сделано то, что сделано от души)
-
про псевдомногомерный массив прочитал... Не подходит, однако, слишком много IFов получается, да и слишком много коллизий при умножении(что ты на ноль или единицу ни умножай, получишь второй или первый параметр соответственно) :(
-
гениально... координаты из 2 разных массивов в качестве параметров LCLICK тож не принимает...
Что значит "не принимает" ? Ты хоть код покажи. Там нечему НЕработать.
Тоже и про псевдо... Что тебе не даёт умножать индексы?
-
гениально... координаты из 2 разных массивов в качестве параметров LCLICK тож не принимает...
Что значит "не принимает" ? Ты хоть код покажи. Там нечему НЕработать.
Тоже и про псевдо... Что тебе не даёт умножать индексы?
Сорь за косноязычие.
С 2 массивами в параметрах: LCLICK($arr1[$schetchik1],$arr2[$schetchik1]) - ошибка
C "псевдо" при умножении двух счётчиков цикла, увеличивающихся с 1 до N получаем слишком много коллизий(0*"любое_число" = "0 в качестве параметра", например). При этом, если не ошибаюсь(или ошибаюсь), в результате мы получаем одно значение $arr[N], а не пару, как предполагается в качестве параметров процедуре LCLICK. Или имелось в виду, что при умножении мы всего лишь берём значение исходного массива со смещением? Тогда при смещении получаем слишком много пустых элементов в массиве. Понимаю, при гигах оперативы это не критично, но, простите, ни в коем случае не в обиду автору оригинального подхода, непривычно слегка
При необходимости могу выложить скрипт полностью
-
LCLICK($arr1[$schetchik1],$arr2[$schet4ik1])
Всё работает.
Ты сознательно сделал разные счётчики (кстати зачем)?
Вот насчёт коллизий не понял. Откуда они там. Ты что-то путаешь.
Опять же про какие пустые элементы речь? Разве их не будет в 2-х мерном массиве?
Выложи только там где используется массив.
-
про пустоту понял... ты просто взял тот пример... Он упрощён для лёгкого использования с небольшими массивами.
Делай так:
массив 10х2
$r = 9 // строк 0-9
$c = 1 // колонок 0-1
обращение к ячейке [колонка,строка]
$varx[$c*n+$r]
инициализация
$varx[2*0+0]=616
$varx[2*0+1]=736
$varx[2*1+0]=722
$varx[2*1+1]=779
$varx[2*2+0]=880
$varx[2*2+1]=775
$varx[2*3+0]=810
$varx[2*3+1]=710
$varx[2*4+0]=716
$varx[2*4+1]=663
$varx[2*5+0]=656
$varx[2*5+1]=586
$varx[2*6+0]=572
$varx[2*6+1]=544
$varx[2*7+0]=698
$varx[2*7+1]=499
$varx[2*8+0]=747
$varx[2*8+1]=588
$varx[2*9+0]=838
$varx[2*9+1]=614
достаём пятую пару координат
$X = $varx[2*4+0]
$Y = $varx[2*4+1]
P.S. Пока писал перепутал местами :)
-
LCLICK($arr1[$schetchik1],$arr2[$schet4ik1])
Всё работает.
Ты сознательно сделал разные счётчики (кстати зачем)?
Счётчик один) Просто старые навыки транслита не дали написАть одинаково :)
выкладываю полностью, места обращений выделены:
$x[0]=616;
$y[0]=736;
$x[1]=722;
$y[1]=779;
$x[2]=880;
$y[2]=775;
$x/[3]=810;
$y[3]=710;
$x[4]=716;
$y[4]=663;
$x[5]=656;
$y[5]=586;
$x[6]=572;
$y[6]=544;
$x[7]=698;
$y[7]=499;
$x[8]=747;
$y[8]=588;
$x[9]=838;
$y[9]=614;
//массивы заданы
for($i,$i<10)
move($x[$i],$y[$i]);
lclick($x[$i],$y[$i]);
waitms(120);
end_cyc
-
обращение к ячейке [колонка,строка]
$varx[$c*n+$r]
Всё, понял, чего не осознал до этого) Множитель - пара, второе слагаемое - i-тый и (i+1)-ый элемент. Вот про слагаемое как раз и забыл, сократив формулу индекса до умножения :)
-
Ну да. К прошлой инициализации
for($i,$i<10)
move($varx[2*$i+0],$varx[2*$i+1])
lclick($varx[2*$i+0],$varx[2*$i+1])
waitms(120)
end_cyc
...точно, не доглядел. Один конечно.
-
Ну да. К прошлой инициализации
for($i,$i<10)
move($x[2*$i+0],$y[2*$i+1]);
lclick($x[2*$i+0],$y[2*$i+1]);
waitms(120);
end_cyc
так я и одним тогда обойдусь вместо двух :)
-
Впомнилось: "То ли лыжи не едут, то ли я чего-то не понимаю"
Вот теперь стена пробита головой... В скрипте не работает НИЧЕГО, кроме move, waitms и wait, хотя записанный за мной кликером аналог - фурыкает, собака такая; правда, в обоих случаях первый клик по зданию не срабатывает. Вот не поверю, что машина сильней человека тут оказалась. Замену Ldown+lup на lclick пробовал, результат тот же
$arr[0]=677
$arr[1]=729
$arr[2]=789
$arr[3]=785
$arr[4]=964
$arr[5]=789
$arr[6]=880
$arr[7]=715
$arr[8]=778
$arr[9]=673
$arr[10]=722
$arr[11]=617
$arr[12]=642
$arr[13]=544
$arr[14]=754
$arr[15]=512
$arr[16]=827
$arr[17]=568
$arr[18]=925
$arr[19]=617
for($i=0,$i<10)
$x=$arr[$i]
$y=$arr[$i+1]
move($x,$y)
waitms(1000+Rnd(-300,200))
ldown($x,$y)
waitms(80+rnd(50,200))
lup($x,$y)
waitms(1400+Rnd(-300,200))
ldown(747,614)
waitms(80+rnd(50,200))
lup(747,614)
waitms(400+rnd(-50,600))
ldown(1212,323)
waitms(80+rnd(50,200))
lup(1212,323)
waitms(1500+rnd(-240,380))
end_cyc
wait(1835)
Rnd - для эмуляции "человечности", никогда с точностью до миллисекунды не кликнешь.
Такое чувство, что название темы пророческое ;D
-
Лыжи не едут из за цикла FOR. Нужно наращивать две переменные независимо друг от друга
LOGCLEAR
$arr[0]=677
$arr[1]=729
$arr[2]=789
$arr[3]=785
$arr[4]=964
$arr[5]=789
$arr[6]=880
$arr[7]=715
$arr[8]=778
$arr[9]=673
$arr[10]=722
$arr[11]=617
$arr[12]=642
$arr[13]=544
$arr[14]=754
$arr[15]=512
$arr[16]=827
$arr[17]=568
$arr[18]=925
$arr[19]=617
$i=0
$count = 0
WHILE($count<10)
$x=$arr[$i]
INC($i,1)
$y=$arr[$i]
INC($i,1)
INC($count,1)
LOGWRITE ($x, " ", $y)
END_CYC
HALT
Кстати чтобы записать значения в массив используй ARRPUSH, не придется нумеровать ячейки.
ARRPUSH($arr, 677)
ARRPUSH($arr, 729)
// и тд.
-
Лыжи не едут из за цикла FOR. Нужно наращивать две переменные независимо друг от друга
Первый вариант тоже правильный. Всё работает. Ну кроме самих кликов их не проверял.
-
Лыжи не едут из за цикла FOR. Нужно наращивать две переменные независимо друг от друга
Первый вариант тоже правильный. Всё работает. Ну кроме самих кликов их не проверял.
так дело как раз в том, что клики не работают
-
Лыжи не едут из за цикла FOR. Нужно наращивать две переменные независимо друг от друга
Не совсем понял смысл кода. Параметр цикла нельзя использовать дважды? И почему именно цикл без параметра взят?
-
Лыжи не едут из за цикла FOR. Нужно наращивать две переменные независимо друг от друга
Не совсем понял смысл кода. Параметр цикла нельзя использовать дважды? И почему именно цикл без параметра взят?
Смысл в том что $i надо увеличивать в 2а рвза (для X Y) а сам цикл $count на один. С одной переменной правильно не получится.
Можно и с FOR написать только обязательно использовать внутри наращиваемую переменную.
-
Смысл в том что $i надо увеличивать в 2а рвза (для X Y) а сам цикл $count на один. С одной переменной правильно не получится.
Можно и с FOR написать только обязательно использовать внутри наращиваемую переменную.
Просто не совсем понимаю, почему. Тут почти полное копирование поста про "псевдомногомерный" массив... Хор. Если с учётом используемого цикла я внутри добавлю ещё одну переменную, которой присвою $i*2+1? прокатить, по идее, должно?
-
Смысл в том что $i надо увеличивать в 2а рвза (для X Y) а сам цикл $count на один. С одной переменной правильно не получится.
Можно и с FOR написать только обязательно использовать внутри наращиваемую переменную.
Ну почему же не получится. У нас массив из 20 элементов. 10 пар XY.
В цикле мы идём по 10 парам
for($i,$i<10)
Чтобы получить элементы мы умножаем на размерность, в данном случае пара, т.е. 2
$X = $varx[2*$i]
получается мы двигаемся по чётным элементам массива
0,1,2,3,4,5,6,7,8...18,19
А Y получаем беря следующую за X ячейку
for($i,$i<10)
$X = $varx[2*$i]
$Y = $varx[2*$i+1])
end_cyc
Что и было сделано.
-
"О, Великая Стена, прими голову моё и содержимое её"
Блин. Простите, что забиваю мозг читающим. Сделал аналогичный функционал "записью за мышкой"(автогенерацией скрипта). В итоге: работает всё, НО клик по первым координатам проходит впустую. Есть ли какой-нибудь способ первым действием назначить "вход в окно"(передачу фокуса)?
-
была подобная проблема, иногда скрипт не мог определить цвет пикселя, глядя точно на него, хз с чем это связано, решилось все командой:
getscreen
IF_PICTURE_IN (540,200, 800,500, "activ.bmp")
lclick($_return1, $_return2)
с координатами области и изображением кнопки в папке кликера