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 - Jon

Pages: [1]
1
УРРРРАА Заработало!!!)))
 Спасибо Вам друзья большое!!)

2
Очень долго мудрил с Вашими скриптами, подставлял один к другому и наоборот...(голова чуть не лопнула) в итоге пришел к следующему.
Скрипт для записи:
Code: [Select]
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "42.bmp") // объект
    $x = $_return1
    $y = $_return2
END_IF

$x = $_return1 // координата начальной точки
$y = $_return2
 
WHILE(1)
   $x2 = $_xmouse-$x
   $y2 = $_ymouse-$y
   TFWRITE("Move.txt", STRCONCAT($x2, ",", $y2))
   WAITMS(50)
END_CYC
Скрипт для воспроизведения:
Code: [Select]
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "42.bmp") // объект
   $x = $_return1
   $y = $_return2
ELSE
   HINTPOPUP("Ориентир не найден", "Ошибка")
   HALT
END_IF
 
WHILE(2) // Бесконечный цикл, прокручиваем твою запись по кругу
   FOR($a=1,$a<TFCOUNT("Move.txt")+1)
      STRSEPARATE(TFREAD("Move.txt", $a), ",", $a_cor)
      LDOWN($x + $a_cor[0],$y + $a_cor[1]) //
      UNDEFINE($a_cor)
      WAITMS(50)
   END_CYC   
END_CYC
LUP(-1,-1)
Этот скрипт для воспроизведения собирал сам из Ваших предложенных, возможно тут что-то не правильно. И он зациклен.
Не могли бы Вы его чуть переделать, чтобы цикла не было? У меня не получается(
Нужно чтобы он воспроизводился только один раз за весь скрипт. Иначе мой скрипт доходит до него и все, зацикливается на нем. А нужно, чтобы он воспроизвел его один раз, и перешел к следующему шагу. Затем снова доходил до него, воспроизводил, и т.д.

3
Попробовал два новых скрипта... Истина где-то рядом :D

Почему мне хочется именно move с зажатой ЛКМ, дело в том, что при частом клике по окну игры,или по окну миникарты, у меня почему-то начинает она подтормаживать, не знаю точно с чем это связано, то ли слишком часто идут команды на сервер, то ли сам  комп от чего-то тормозит, не знаю точно...
Вторая причина: Бот "матерый", кораблик летает невидимый(так как ПВП) и чтобы, хотя бы криворуким, врагам было сложней его поймать, движения корабля не прямолинейные, а с "выкрутасами" (невидимый кораблик можно поймать лишь в основном окне игры, наведя курсор на предполагаемое место расположение кораблика, в этот момент указатель курсора меняется со стрелочки на руку. ЛКМ в этот момент и все, кораблик в локе.) Так вот, чтобы такого не было, приходится "юлить задом"
По этому частые клики по миникарте, чтобы кораблик резко поменял движение, приводят к подтормаживанию игры. Для таких движений больше подходит просто зажать ЛКМ и водить по миникарте туда-сюда, НО продвигаясь по основному напрвлению.
Еще один нюанс - время. То есть в определенное время он должен подлететь к порту, и выпрыгнуть с ПВП карты. При определенной скорости корабля, он должен подлететь в определенную точку и моментально выпрыгнуть, чтобы вражины не успели "зажопить"

Это я к чему все, к тому что простые клики по миникарте не совсем подходят. Ну наверно можно долго-долго подстраивать ик и подгонять, но очень долго и сложно. Проще, на мой взгляд, было бы простое движение мыши, с зажатой ЛКМ.

В остальном все отлично, Курсор ориентируется на определенный обьект, и кликает относительно его в нужном месте, но он либо кликает, либо просто водит курсором без зажатой ЛКМ.

4
Нет друзья, тот скрипт мне не подходит. Я уже полно всего перечитал и пересмотрел и тот тоже раньше видел.
Мне не нужно чтобы кораблик искал и собирал эти коробки, нужно лишь чтобы корабль летал по определенному маршруту. Коробки собирает PET.
Суть вот в чем. Кораблик запрыгивает на ПВП карту и летит там по определенному маршруту, именно в те места, где респится наибольшее количество этих бонусных коробок. Затем, пролетев маршрут , он подлетает к порту и выпрыгивает с ПВП. После этого он проверяет кучу всего, не убили ли кораблик, не потеряно ли соединение с игрой, не уничтожили ли PETа, Проверяет где(на какой карте) он находится и летит на нужную карту, и т.д. После этого скрипт повторяется. Точнее, действия происходят наоборот: Сначала идут все проверки, а после этого он запрыгивает на ПВП карту, но сути это не меняет.
Все остальные действия у меня уже привязаны к картинкам, либо просто ориентируются по пикселу, а вот с движением мыши - проблемы. Точнее проблема тогда возникает. когда окно с миникартой перемещается. Они(окна в игре, аналогичные миникарте) бывают смещаются сами по себе, при сворачивании браузера, или при перетаскивании с одного монитора на другой и обратно.
Для чего все это мне? Почему так сложно? Для того, чтобы просто включить игру, и включить бота, и все, не париться , где там кораблик, что с ним. Кликер сам все проверит и приведет кораблик в нужное место.

P.S. Могу показать весь скрипт, ну так, чисто Вам поржать))

5
УРА!! Решение проблемы почти найдено! Осталось совсем чуть-чуть :)
Благодаря помощи Vint и Oraven мне удалось сделать следующее: Записать движение мышки относительно некоего обьекта, у меня это "bmp"
Вот скрипт для записи движения курсора относительно обьекта.
Все эти движения мыши записываются в файл "Move.txt" и ОЧЕНЬ сильно сокращают размер (длину) скрипта.
Code: [Select]
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "ориентир.bmp") // объект
    $x = $_return1
    $y = $_return2
END_IF

$x = $_return1 // координата начальной точки
$y = $_return2
 
WHILE(1)
   $x2 = $_xmouse-$x
   $y2 = $_ymouse-$y
   TFWRITE("Move.txt", STRCONCAT($x2, ",", $y2))
   WAITMS(50)
END_CYC
Затем второй скрипт.
Code: [Select]
GETSCREEN
IF_PICTURE_IN(0,0, $_xmax,$_ymax, "ориентир.bmp") // объект
    $x = $_return1
    $y = $_return2
END_IF

$x = $_return1
$y = $_return2
 
FOR($a=1,$a<TFCOUNT("Move.txt")+1)
   STRSEPARATE(TFREAD("Move.txt", $a), ",", $a_cor)
   MOVE($x + $a_cor[0],$y + $a_cor[1])
   UNDEFINE($a_cor)
   WAITMS(50)
END_CYC
 
HALT
Кликер читает файл Move.txt и выполняет движения мыши относительно файла  "ориентир.bmp".
Куда бы я не передвинул по экрану картинку "ориентир.bmp", курсор, все свои движения будет совершать так же, относительно этой картинки.
С этим разобрались. Еще раз благодарю Vint и Oraven

Теперь другая проблемка у меня)
мой прежний скрипт выглядел примерно так:
Code: [Select]
  lDown(2902,835)
waitms(646 + $S_CORR)
move(2901,835)
...
...
waitms(44 + $S_CORR)
move(2900,834)
waitms(16 + $S_CORR)
  lUp(3081,975)
waitms(1509 + $S_CORR)
  lDown(3081,975)
waitms(2340 + $S_CORR)
move(3080,975)
waitms(24 + $S_CORR)
...
...
move(3008,899)
waitms(486 + $S_CORR)
  lUp(3008,899)
Проблема в том, что в новом скрипте не записываются команды
 lUp(... , ...) и  lDown(... , ...)
Курсор передвигается, все отлично, но нет зажатой левой клавиши.
Подскажите пожалуйста, как вписать в новый скрипт команды  lUp(... , ...) и  lDown(... , ...)???

6
давайте разберёмся, я вам помогаю и гораздо больше, чем все остальные, если вы этого не понимаете, то ваш уровень интелекта пока недостаточен для самостоятельных занятий программированием.
 Поэтому притча для примера. Однажды  мне нужно было доехать до вокзала несколько остановок, номер троллейбуса я знал, но не знал сколько остановок нужно ехать и в каком направлении. Естествено спросил у кондуктора доеду ли на этом троллейбусе до вокзала и получил однозначный утвердительный ответ.
И ЕХАЛ ДВА ЧАСА, так как маршрут оказался кольцевой!!!
Но ведь и кондуктор мне помог и даже не соврала тётя ни единым словом.
Так вот вы катаетесь по кругу и ещё таскаете за собой форумчан.
Одумайтесь, удачи в ваших начинаниях! ;)
Давайте разберемся.
Что вы мне предложили конкретного???
Да ничего!
"посмотри где-то там на каком-то форуме" ??? это???
Конкретного ответа , на мою просьбу, как не было, так и нет!
Предложите мне хоть что-нибудь!!! Конкретное решение моей проблемы.

7
Да, отвечу на Ваш вопрос "зачем перемещать миникарту"
Зрительно все, да и я в том числе, привыкли видеть миникарту в правом нижнем углу экрана, ей там место.
Только есть одно "НО" Так же все знают, что в этом самом углу экрана всплывают всякого рода уведомления: Почта, Антивирус(напоминает что нужно обновить) и тд. и т.п.
В связи с этим, мне бы очень не хотелось, чтобы кликер наворотил тут дел, в мое отсутствие, а отсутствую я долго, целый рабочий день. По этому, Миникарту приходится сдвигать вверх, или вообще в другое место.
Вот отсюда и вытекает вся моя проблема)
Ищите и создаёте трудности, там где их нет, чтоб затем их героически для вас преодолевали.
Ваша игра настолько примитивна, что не запоминает пользовательское расположение окон?
Вы удивитесь, НО СООБЩЕНИЯ ПАНЕЛИ УВЕДОМЛЕНИЙ КЛИКЕР НЕ ВИДИТ!!! и кликает только в те окна что на рабочем столе!
Вы занимаетесь сизифовым трудом и воруете время у тех кто помогает с написанием скриптов.
Кирилл, я конкретно ВАС ни о чем не просил, нет желания помочь, проходите мимо! И не тратте свое драгоценнейшее время на меня!

8
Да, отвечу на Ваш вопрос "зачем перемещать миникарту"
Зрительно все, да и я в том числе, привыкли видеть миникарту в правом нижнем углу экрана, ей там место.
Только есть одно "НО" Так же все знают, что в этом самом углу экрана всплывают всякого рода уведомления: Почта, Антивирус(напоминает что нужно обновить) и тд. и т.п.
В связи с этим, мне бы очень не хотелось, чтобы кликер наворотил тут дел, в мое отсутствие, а отсутствую я долго, целый рабочий день. По этому, Миникарту приходится сдвигать вверх, или вообще в другое место.
Вот отсюда и вытекает вся моя проблема)

9
А кто сказал что нужно делать именно так? Всё можно сделать гораздо сложней и умней.

А хочешь жёстко, привяжись жёстко. Ищи элемент миникарты типа как на скрине и определяй начало координат миникарты.
Дальше все свои движения отсчитывай от этого начала.
Дык я это и просил у вас, помочь мне с маленьким кусочком кода, как это написать?
Прочтите еще раз внимательней мой первый пост. Мне и нужно взять определенный обьект(ориентир) и к нему приклеить манипуляции на миникарте.
Я просто не знаю что там нужно написать...
И это, "отсчитывать движения", у меня, как ты видел, простая запись движения мышки. Как эту запись привязать к обьекту?
Да, и еще, корабль не собирает коробки, коробки собирает лишь ПЕТ

P.S. Вы же понимаете, что та желтая линия на миникарте(скрине), это всего лишь пример :)На самом деле там все гораздо сложнее.

10
явно извращённый подход к задаче.
Понятно, что мини карта может быть передвинута.
Поэтому нефиг её двигать, если записал скрипт.
К тому же все реализуют целевые перемещения по мини карте и сильно плачутся когда мимо кораБЛЯ, богато ништяков пролетает, а тут перемещение  и действия по жёсткому шаблону.
 Моё мнение, представлено тупиковое решение - из него конфетку делать не стоит.
Кирилл, да, мне нужен жесткий шаблон! Жесткий шаблон перемещения корабля по миникарте. Возможно Вам известно, что коробки респятся в бОльшей части , в определенных местах, именно по этому мне не нужно рандомное тыканье по миникарте, нужен жесткий шаблон.
Допустим кликер радомно тыкнет рядом с кораблем ,в паре милиметрах и все, корабль тупо пролетел 1 секунду и стоит и ждет свови 10-15 секунд до нового цикла. Зачем это??? Это не эффективно.

11
Code: [Select]
LCLICK(RND(X1 ,X2), RND(Y1,Y2)
WAIT(RND(10,20)
Вот этот?
 это не скрипт....

12
Здравствуйте.
Возникла некая проблем с написанием, точнее, хочется довести до ума. Но у меня ума не хватает :(
Есть некий скрипт, корявый конечно, но как сумел)
В игре есть окно(небольшое), его можно передвигать по всему экрану. В этом маленьком окне производятся несложные пассы мышкой
Code: [Select]
...
...
KEYPRESS (#J)
WAIT(3)
// Что сюда написать????
move(2925,872)
waitms(10 + $S_CORR)
move(2952,874)
waitms(10 + $S_CORR)
move(2966,874)
waitms(11 + $S_CORR)
move(2976,874)
waitms(10 + $S_CORR)
move(2981,873)
waitms(10 + $S_CORR)
move(2984,872)
waitms(10 + $S_CORR)
...
...
...
и таких строчек много-много, аж почти 10 000 (движения мышки примерно на 2-3 минуты)
Это окно обозначено своей цифрой (2-4) см. скрин
Внимание вопрос:  ;)
Что мне нужно написать, чтобы в случаи перемещения этого маленького окошка, все движения мышки, оставались в нем?
То есть. хотелось бы чтобы кликер ориентировался на определенный фрагмент этого маленького окошка, и в случаи перемещения этого окошка, он все свои движения (move) тоже корректировал относительно этого фрагмента.

Pages: [1]