Что нового

Miner Bot с 0 до 100 для Нуба своими руками

Asshaker

Знающий
Сообщения
150
Репутация
17
Доброе утро! Вот уже 4й день изучаю AutoIT и уже почти сделал "бота"
Сейчас столкнулся с проблемой определения захваченной цели сколько их и что за цель.
Алгоритм копки такой:
Прилетел на белт-включил сканер-из определенной области выбираю тип руды-раскрываю раздел-выбираю самые богатые месторождения-лочу-копаю 2 цикла-выбрасываю в космос.
Подскажите пожалуйста как сделать "из определенной области выбираю тип руды-раскрываю раздел-выбираю самые богатые месторождения"?
 

Arei

Скриптер
Сообщения
938
Репутация
115
Re: Распознование цифр-букв в области поиска

может вы покажите скрины или игру ссылку.А то информации 0,а ещё вопросы задаете.
 
Автор
A

Asshaker

Знающий
Сообщения
150
Репутация
17
Re: Распознование цифр-букв в области поиска

Игра EVE Online
 

Arei

Скриптер
Сообщения
938
Репутация
115
Re: Распознование цифр-букв в области поиска

""""из определенной области выбираю тип руды-раскрываю раздел-выбираю самые богатые месторождения""""" из какой ?
 
Автор
A

Asshaker

Знающий
Сообщения
150
Репутация
17
Re: Распознование цифр-букв в области поиска

Видишь раскрыто меню Plagioclase Вот при раскрытии меню показываются астероиды. Сортировка идет по объему. Нужно найти максимальный объем и послать ctrl+click.
Окно сканера всегда на этом месте, каталог с нужной рудой всегда раскрыт т.е. после сканирования можно сразу определять кол-во символов в колонке "количество" и выбирать максимальное
 

Lexx98

Продвинутый
Сообщения
272
Репутация
73
Re: Распознование цифр-букв в области поиска

Уважаемые, прежде чем задавать вопросы "а какая игра, покажи скрины" и т.п. сначала посмотрите по навигации в каком разделе вы находитесь. Соответственно, если вы не играете в эту игру, то лучше и не стоит отвечать, ибо тут всё весьма специфично, включая игровой жаргон. Arei, пожалуйста, не отвечай в этой ветке по вопросам, связанным с внутриигровыми проблемами, ибо слишком долго растолковывать непосвящённому то, что знает каждый играющий.

Потому, Asshaker, не стоит пытаться объяснить суть вопроса тому же Arei, ибо он явно не в курсе.

По сути. Боту пофиг, самый богатый астер или нет, он копает все подряд, до каких может дотянуться, ибо выкопает всё-равно все. Так что не заморачивайся со сканером руды.

Для типа руды... Как правило, бот копает в определённых системах, обычно хайсеках, и всю руду можно разделить на 2-3 группы одинаковой выгодности. Проще всего настроить овервью на несколько закладок, по одной на каждую группу, и таким образом отсекать ненужную в данный момент.

И ВООБЩЕ, покури-ка ты данный раздел, почитай вдумчиво все темы. Думаю, минимум половина вопросов отпадёт. Просто бывает что проскакивает решение одних вопросов в теме, изначально посвящённой вроде бы совсем другим. Особое внимание удели темам с готовыми функциями, некоторые из них до сих пор не утратили актуальности (а некоторые не утратят никогда).
 
Автор
A

Asshaker

Знающий
Сообщения
150
Репутация
17
Re: Распознование цифр-букв в области поиска

Уже обкурился, да есть на примете скипт с контролем таргетов. Сейчас его разбираю.
Тогда вопрос по PixelSearch :smile: не могу понять как указывать координаты левой,правой, верхней и нижней стороны области поиска.

Как на картинке будет правильно?
 

Arei

Скриптер
Сообщения
938
Репутация
115
Re: Распознование цифр-букв в области поиска

SirMaksFromEho согласен не посмотрел, но всё равно интересно, и не стоит советовать
Потому, Asshaker, не стоит пытаться объяснить суть вопроса тому же Arei, ибо он явно не в курсе.
 

Lexx98

Продвинутый
Сообщения
272
Репутация
73
Re: Распознование цифр-букв в области поиска

Asshaker [?]
Как на картинке будет правильно?
Нет. Отсчёт идёт слева направо, сверху вниз. Просто запусти ау3инфо (в папке установленного автоита) и посмотри как изменяются координаты при движении мыши.
Для твоего примера ЛВ угол будет 10, 20. ПН - 40, 40. Соответственно,
PixelSearch(10, 20, 40, 40, 0xFFFFFF).
И всегда учитывай систему координат в ау3инфо и в скриптах. То есть от чего идёт отсчёт, скрин, окно, клиентская часть.

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

Asshaker

Знающий
Сообщения
150
Репутация
17
Re: Распознование цифр-букв в области поиска

У меня все координаты идут от $WinPos=WinGetPos('EVE') (очень удобно, спер worldcheats.mo-rpg.com)
Я копаюсь ищу читаю. Но хочу написать полностью свой. Определение в локе цель или нет уже сделал :smile:
P/S/ Как можно запихнуть определение всех координат в отдельный скрипт чтоли... у меня очень много точек типа:
Код:
Dim $WinPos=WinGetPos('EVE')
Dim $line1x=$WinPos[0]+796
Dim $line1y=$WinPos[1]+188
Dim $line1z=$WinPos[1]+192
Dim $line2x=$WinPos[0]+797
Dim $line2y=$WinPos[1]+187
Dim $line2z=$WinPos[1]+193
Dim $line3x=$WinPos[0]+798
Dim $line3y=$WinPos[1]+186
Dim $line3z=$WinPos[1]+194
это только для определения заолчена ли 1 цель или нет.
 

Zaramot

I ♥ AutoIt
Сообщения
1 160
Репутация
659
Re: Распознование цифр-букв в области поиска

Как на картинке будет правильно?
Так будет правильно:



Код:
PixelSearch ( left, top, right, bottom, color [, shade-variation [, step [, hwnd]]] )
 

Lexx98

Продвинутый
Сообщения
272
Репутация
73
Re: Распознование цифр-букв в области поиска

Мы уже ушли от топика темы :smile:
Да, для кода используй тег Автоит (правее тега кода).

Для определения, залочено или нет, достаточно проверить 1-2 точки на ярко-белый цвет - те треугольники-скобки, в которые берётся пиктограмма объекта в овервью.

И у тебя плохо сделано. Представь, что случайно сдвинул овервью, или его сдвинули в очередном патче. Тогда тебе придётся менять 100500 строк с определениями координат вот этих от винпоса.

Запихнуть часть кода в отдельный файл - просто в отдельном файле с расширением au3 пишешь код, а потом в основном скрипте используешь
Код:
#include "filename.au3"

смотри справку.
 
Автор
A

Asshaker

Знающий
Сообщения
150
Репутация
17
Re: Распознование цифр-букв в области поиска

Проверку лока сделал, с долочиванием 1 цели.
Проверку карго сделал, по синей полоске. Выкидывай руду в космос тоже научился :smile:
SirMaksFromEho [?]
И у тебя плохо сделано. Представь, что случайно сдвинул овервью, или его сдвинули в очередном патче. Тогда тебе придётся менять 100500 строк с определениями координат вот этих от винпоса.
А подскажи пожалуйста, как лучше? Потому что некоторые кона не прилеплены изза непрозрачности фона.
 

Lexx98

Продвинутый
Сообщения
272
Репутация
73
Re: Распознование цифр-букв в области поиска

Вот смотри, какие координаты задаются ручками в результате измерений лупой автоита:
- угол списка овервью. Все объекты в списке идут с одинаковым смещением, достаточно знать его.
- угол окна Selected item (это то что над овервью, там показывают выделенную цель и действия что с ней можно сделать), всё что там расположено, если правильно настроено, тоже никуда не ездит относительно этих координат. Также, если используется, то иконки залоченных целей вверху экрана тоже относительно этого угла никуда не перемещаются.
- угол карго корабля, от него никуда не ездит полоска наполненности и содержимое трюма.
- угол ангара, если ты с ним взаимодействуешь в скрипте, аналогично карго.
- координаты HUD - это те полоски справа ниже щита-армора-капы корабля, внизу. Отсюда считаются отступы для определения активности модулей (смотри подпись).
- точку/точки на шилде, где проверяется его целостность.

И больше ничего не припоминаю.

И ещё, называй переменные такими именами, пусть и длинными, чтобы ты через полгода некопания в коде мог в него заглянуть и понять, что это у тебя то, а это сё, а не так, что "а что это на фигня с $line3x, ну, 3 это 3, х это х, но которая линия имеется в виду?".
А то потом фиг в своём же коде разберёшься.

И не надо руду в космос выкидывать, её надо тащить на станцию и выкидывать там. По крайней мере в первом варианте бота.


Охренеть, что у тебя под аватаркой написано "Версия AutoIt: Version 1.79" ?
А ну быстро поставил 3.3 или какая там последняя!
А то ведь кое-что может не будет работать, или работать не так...
 
Автор
A

Asshaker

Знающий
Сообщения
150
Репутация
17
Re: Распознование цифр-букв в области поиска

Все так и делаю, версия AutoIt 3.3.6.1
Код:
;~ Dim $line1[3]=[$WinPos[0]+796,$WinPos[1]+195,10]
;~ Dim $line2[3]=[$WinPos[0]+797,$WinPos[1]+195,10]
;~ Dim $line3[3]=[$WinPos[0]+798,$WinPos[1]+195,10]

Func TargetLock()
	MouseClick('left',540,286,1,15)
;Dim $step=0
	For $i=0 to 3 Step 1
		$coord=PixelSearch($line1[0],($line1[1]+($i*10)),$line1[0],($line1[1]+10+($i*10)),0xFFFFFF)
		if not @error Then
			$coord=PixelSearch($line2[0],($line2[1]+($i*10)),$line2[0],($line2[1]+10+($i*10)),0xFFFFFF)
			if not @error Then
				$coord=PixelSearch($line3[0],($line3[1]+($i*10)),$line3[0],($line3[1]+10+($i*10)),0xFFFFFF)
				if Not @error Then
					;MsgBox('','','Cel 1')
					$i=$i+2
				EndIf
			EndIf		
		EndIf
					Send('{Ctrldown}')
			Sleep(200)
			MouseClick('left',$line1[0],($line1[1]+($i*10)),1,15)
			Sleep(200)
			Send('{Ctrlup}')			

	Next		
EndFunc
Почему скрипт 4 раза пытается залочить цели? 2 по первой и 2 по второй

З,Ы, Ура я это сделал :smile: уже стабильно работает в течении 40 минут!
 

Lexx98

Продвинутый
Сообщения
272
Репутация
73
Re: Распознование цифр-букв в области поиска

Asshaker [?]
Если это используется для выхода из цикла, то вместо него пиши
Код:
ExitLoop


Два раза... Может потому, что во время лока, а это несколько секунд, у тебя проверка на залоченность запускается ещё раз, и она снова говорит, что цель не залочена, потому что проверки на то, что оно уже лочится сейчас - нет.

И используй тег автоит, а не код. Тег автоит как раз правее тега код.
 
Автор
A

Asshaker

Знающий
Сообщения
150
Репутация
17
Re: Распознование цифр-букв в области поиска

Круто, все работает! :IL_AutoIt_1:

А как можно сделать цикличность выполнения всех шагов (андок-варп-копка-варп-док-разгрузка) и все это возможностью приостановить, запустить, остановить скрипт?
 

Lexx98

Продвинутый
Сообщения
272
Репутация
73
Re: Распознование цифр-букв в области поиска

Ты по темам на allcheats форуме (мы раньше там были) всё облазил?
Хотя может и тут где-то есть.

В общем...
Код:
HotKeySet("{PAUSE}", "TogglePause") ;Назначение горячей клавиши. При нажатии Pause Break скрипт встанет на паузу
HotKeySet("{F9}", "Terminate") ;Назначение горячей клавиши. При нажатии F9 скрипт закончит свою работу

$sBeginTime = TimerInit() ;Запуск глобального таймера
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;
;; TogglePause v0.1 Переключение паузы. Функция отвечает за постановку скрипта на паузу.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;
Func TogglePause()
$Paused = NOT $Paused
Local $sec
if $Paused then
 $sec=0
endif
While $Paused and $sec<1000
sleep(100)
 $sec+=0.1*$ShortPause
TT('Script is "Paused"')
WEnd
if $sec>=1000 then
$Paused = NOT $Paused
endif
TT("")
EndFunc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;
;; Terminate v0.1 Завершение работы бота. Функция отвечает за завершение работы бота.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;
Dim $sMSG

Func Terminate()
$sMSG = StringFormat("Cycle Time: %.02d minutes."&@CRLF&"Time %d.%d.%d %d:%d", (TimerDiff($sBeginTime)/1000)/60, @MDAY, @MON, @YEAR, @HOUR, @MIN)
MsgBox(0, "Macro Statistics", $sMSG)
Exit 0
EndFunc ;==>Terminate


Ну и поскольку прерывание скрипта у нас теперь на клавишу назначено, основное тело бота будет в бесконечном цикле
Код:
While 1
;тут то что должно повторяться всё время
WEnd


Ну и переименуй тему, чтоб её название больше соответствовало смыслу беседы :smile:
 
Автор
A

Asshaker

Знающий
Сообщения
150
Репутация
17
Вооот спасибо большое :smile:
Да Алл чит я облазил полностью, видел тут. Но тут он уже был замешан с другим кодом.
Все таки мой TargetLock() работает криво :smile:
если целей нет лочит 2 позиции
если 1ая позиция есть, лочит 2ую
если 2ая есть, лочит первую и 3ю!!!
И по прежнему делает 4 клика каждый 2ой клик идет с зажатым CTRL
Код:
Func TargetLock()
   MouseClick('left',540,286,1,15)
   For $i=0 to 3 Step 1
      $coord=PixelSearch($line1[0],($line1[1]+($i*10)),$line1[0],($line1[1]+10+($i*10)),0xFFFFFF)
      if not @error Then
         $coord=PixelSearch($line2[0],($line2[1]+($i*10)),$line2[0],($line2[1]+10+($i*10)),0xFFFFFF)
         if not @error Then
            $coord=PixelSearch($line3[0],($line3[1]+($i*10)),$line3[0],($line3[1]+10+($i*10)),0xFFFFFF)
            if Not @error Then
               ;MsgBox('','','Cel 1')
               $i=$i+2
            EndIf
         EndIf      
      EndIf
               Send('{Ctrldown}')
         Sleep(200)
         MouseClick('left',$line1[0],($line1[1]+($i*10)),1,15)
         Sleep(200)
         Send('{Ctrlup}')         
   Next      
EndFunc


как это исправить? Я никак понять не могу
 

Belfigor

Модератор
Локальный модератор
Сообщения
3 598
Репутация
938
{CodeWarn}
 
Верх