Что нового

EVE Hunt Bot пишем за несколько часов :D

Lexx98

Продвинутый
Сообщения
272
Репутация
73
SVNa сказал(а):
Здравствуйте! помогите пожалуйста, не могу дописать модуль поиска последующих целей,
ругается на эту строку.
Код:
Local $Wreck1 = PixelSearch($Wreck[0], $Wreck[1], $Wreck[0], $Wreck[1]+80, $Overview3[4], $Overview3[5] ;Если не нашли неписей - ищим врек белый врек

Ещё бы оно не ругалось. Где закрывающая скобка после аргументов функции?
 

SVNa

Новичок
Сообщения
9
Репутация
0
SirMaksFromEho сказал(а):
SVNa сказал(а):
Здравствуйте! помогите пожалуйста, не могу дописать модуль поиска последующих целей,
ругается на эту строку.
Код:
Local $Wreck1 = PixelSearch($Wreck[0], $Wreck[1], $Wreck[0], $Wreck[1]+80, $Overview3[4], $Overview3[5] ;Если не нашли неписей - ищим врек белый врек

Ещё бы оно не ругалось. Где закрывающая скобка после аргументов функции?

Блин, сори за мою не внимательность, уже неделю сижу за скриптами, не высыпаюсь видимо :smile:

Спасибо ОГРОМНОЕ!!!!
 

SVNa

Новичок
Сообщения
9
Репутация
0
Подскажите пожалуйста в чём моя ошибка?

выдаёт ошибку Subscript used with non-Array variable

Вроде и функция простая

Если использовать просто модуль поиска и записать данные в *INI то получаем
X=343.029910853365
Y=7.95161982625723
Может из-за этого ?



[box title=TitleBox]
Код:
Func Del_Books()
	WinA()
			MouseMove (19, 168,$mm);Открываем буки
			MouseClick ("left",19, 168,1,$mm);Открываем буки
		Global $pix3
		$pix3 = PixelSearchEx(38,10,161,94,0x8D765B, 5,5);Ищем где открылось меню закладок
		ToolTip("Меню видим",0,0)
		Sleep(2000)
			If Not @error Then
;~ 				Local $x10 = Random ($pix[0]+272, $pix[0]+277, 1), $y10 = Random($pix[1]-28, $pix[1]-25,1);Координаты закрытия
					Local $CheckGreenBook1 = PixelSearch($pix3[0], $pix3[1]+116, $pix3[0]+234, $pix3[1]+128, 0x63BC63, 10);Ищем зелёную закладку поса №1
					If Not @error Then ;Если нашли то
						Local $CheckGreenBook2 = PixelSearch($pix3[0], $pix3[1]+137, $pix3[0]+234, $pix3[1]+148, 0x63BC63, 10);Ищем зелёную закладку буки №2
						ToolTip("Закладку поса видим",0,0)
						Sleep(2000)
							If Not @error Then ;Если нашли то)
									If Not @error Then ;Если нашли то
										Local $x12 = Random($CheckGreenBook2[0]+5, $CheckGreenBook2[0]+50, 5), $y12 = Random($CheckGreenBook2[1]+1, $CheckGreenBook2[1]-3, 1);Задаём координаты для клика
										ToolTip("Закладку буки видим",0,0)
										Sleep(2000
										MouseClick  ("right",$x12, $y12,1,$mm);Кликаем по закладке #2
										Sleep ($sleep)
										MouseMove($x12+71, $y12+144,$mm);Наводим
										MouseClick	("left",$x12+71, $y12+144,1,$mm);Удаляем
										Sleep ($sleep)
									EndIf
							EndIf
					EndIf
			EndIf
EndFunc[autoit]
[/autoit][/box]
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Ты бы текст ошибки указывал.
 

SVNa

Новичок
Сообщения
9
Репутация
0
Вроде получилось
Правда не понял почему но данные в ини файл стали тоже писатся полные, типа X=68
Y=34
и после этого всё заработало.






[box title=TitleBox]
Код:
Case $Case1 = "Del_Books"
				WinA()
			MouseMove (19, 168,$mm);Открываем буки
			MouseClick ("left",19, 168,1,$mm);Открываем буки
	Local $pix
	Sleep(1000)
	$pix = PixelSearchEx(38,10,161,94,0x8D765B, 5,5); (0x8D765B 68 31)  (0xA9E4E7 89 29) 0xFFFFFF 194 35
	If Not @error Then
			Local $x5 = $pix[0], $y5 = $pix[1]
			Local $CheckGreenBook1 = PixelSearch($x5-4, $y5+87, $x5+234, $y5+87+40, 0x5AB35A, 10);Ищем зелёную закладку поса №1
				If Not @error Then ;Если нашли то
					Local $CheckGreenBook2 = PixelSearch($CheckGreenBook1[0]-10, $CheckGreenBook1[1]+10, $CheckGreenBook1[0]+50, $CheckGreenBook1[1]+30, 0x5AB35A, 10);Ищем зелёную закладку  №2
						If Not @error Then ;Если нашли то
							Local $x12 = $CheckGreenBook2[0], $y12 = $CheckGreenBook2[1]
							MouseClick  ("right",$x12, $y12+3,1,$mm)
							MouseMove($x12+71, $y12+135,$mm)
						EndIf
					EndIf
				EndIf
[/box]
 

Lexx98

Продвинутый
Сообщения
272
Репутация
73
Ну оно тебе говорит, что ты обращаешься к переменной как к массиву, когда она таковым не является. Обращаешься же ты только к массиву координат найденной точки. Ты уверен, что PixelSearchEx выставляет переменную @error, по которой ты и определяешь найденность пикселя? Больше я нигде не увидел обращения к массивам.

И ещё есть вероятность, что при определении массива глобальной переменной (первый вариант) надо сразу указывать размерность массива. Но в этом я не уверен. Просто у меня где-то в скриптах есть глобальные массивы, размерность указана и всё работает.

Кстати будь готов, что когда-нибудь, при небольшом лаге или тормозе, или ещё чего, твой участок удаления буки её не удалит. Идеальный вариант - нужно проверять, что каждый клик мыши вызвал именно то действие которое нужно. То есть сделал правый клик - убедись, что контекстное меню открылось. Выбрал пункт, нажал, убедился что как минимум оно исчезло.
 

SVNa

Новичок
Сообщения
9
Репутация
0
SirMaksFromEho сказал(а):
Ну оно тебе говорит, что ты обращаешься к переменной как к массиву, когда она таковым не является. Обращаешься же ты только к массиву координат найденной точки. Ты уверен, что PixelSearchEx выставляет переменную @error, по которой ты и определяешь найденность пикселя? Больше я нигде не увидел обращения к массивам.

И ещё есть вероятность, что при определении массива глобальной переменной (первый вариант) надо сразу указывать размерность массива. Но в этом я не уверен. Просто у меня где-то в скриптах есть глобальные массивы, размерность указана и всё работает.

Кстати будь готов, что когда-нибудь, при небольшом лаге или тормозе, или ещё чего, твой участок удаления буки её не удалит. Идеальный вариант - нужно проверять, что каждый клик мыши вызвал именно то действие которое нужно. То есть сделал правый клик - убедись, что контекстное меню открылось. Выбрал пункт, нажал, убедился что как минимум оно исчезло.

Спасибо за разяснение!

если бука не удалится, это гразит повторным переварпом на неё, что не критично, а вот с точной проверкой тут да, часто сбивается, нашел топик http://autoit-script.ru/index.php/topic,64.0.html

актуально ещё использовать такую доп проверку в модуле OpenMenu ?
 

мама

Новичок
Сообщения
3
Репутация
1
Помогите понять ..

Func GetLogicState()
Local $LogicState[5]
$LogicState[1] = ConCheck("Location")
$LogicState[2] = ConCheck("Warp")
$LogicState[3] = ConCheck("Overview")
$LogicState[4] = ConCheck("Process")
$LogicState[0] = "Location: "&$LogicState[1]&" | Варп: "&$LogicState[2]&" | Овервью: "&$LogicState[3]&" | В процессе: "&$LogicState[4]&
Return $LogicState
EndFunc

Пишет ошибка :$LogicState[0] = "Location: "&$LogicState[1]&" | Варп: "&$LogicState[2]&" | Овервью: "&$LogicState[3]&" | В процессе: "&$LogicState[4]&
:$LogicState[0]=^ERROR
error: Error in expression.

Что ему ненравиться :laugh:
 

NoMad73rus

Продвинутый
Сообщения
124
Репутация
80
Думаю одинокий символ "&" в конце...

OffTopic:
Автору респект! к eve не имею ни малейшего отношения, но за образец для построения механики бота, огромное спасибо ))
 

мама

Новичок
Сообщения
3
Репутация
1
Спасибо , действительно не обратил на это внимание.Все заработало !
 

мама

Новичок
Сообщения
3
Репутация
1
И вновь буду мучать Вас вопросами , ибо сама видимо очень тупая (.
Почему не работает данный код?? В момент запуска шип на станции, координаты кнопки андока верные .

Код:
#include <Misc.au3>

Opt("PixelCoordMode", 2) ;Отсчет координат пикселей от левого верхнего угла клиентской части окна
Opt("MouseCoordMode", 2) ;Отсчет координат мыши от левого верхнего угла клиентской части окна
WinMove("EVE", "", -3, -25)
;---------------
Global $SpaysChk;проверка на космос

;---------------

While 1
Avtopilot()
WEnd
Func Avtopilot()
	Select
	Case $SpaysChk="Station"
		_Action("Undock")
	EndSelect
EndFunc

Func Status()
   _Check("Location")
   ToolTip("Location:"&$SpaysChk&)
EndFunc
;--------------------------

Func _Check($To1)
	Select
		Case $To1="Location"
			PixelSearch(20, 719, 20, 719, 0xFFD842, 10);
			If Not @error Then ;Если нашли
				$SpaysChk="Station"
				Return "Station"
			Else ;Если не нашли кнопку андока
				PixelSearch(759, 112, 759, 112, 0xCFCFCF, 10) ;
				If Not @error Then ;Если нашли
					$SpaysChk="Space"
				EndIf
			EndIf
			EndSelect
EndFunc

;--------------------------
Func _Action($Ca1)
	Select
		Case $Ca1 = "Undock"
			MouseClick("left", 20, 718, 1, 10)
			Sleep(6000)
		EndSelect
EndFunc
 

alexisnoy123

Новичок
Сообщения
9
Репутация
2
У тебя не меняется $SpaysChk так как никогда не происходит запуск функции Status(). Например сделай так:

AdlibRegister("Status",2000)

добавь это после

Global $SpaysChk;проверка на космос
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
мама сказал(а):
И вновь буду мучать Вас вопросами , ибо сама видимо очень тупая
Ты бы хоть код в читабельный вид привел. Тогда мб больше людей бы вчитывалось в суть проблемы
34.gif




Добавлено:
Сообщение автоматически объединено:

Код:
#include <Misc.au3>

тут кстати вообще не используется если я ничего не просмотрел.


Добавлено:
Сообщение автоматически объединено:

alexisnoy123 сказал(а):
У тебя не меняется $SpaysChk так как никогда не происходит запуск функции Status(). Например сделай так: AdlibRegister("Status",2000) добавь это после Global $SpaysChk;проверка на космос
а использовать AdlibRegister (сферический второй поток) тогда когда человек еще скрипты формировать не научился как минимум глупо. Ибо будет этот второй поток профукан впустую.
 

alexisnoy123

Новичок
Сообщения
9
Репутация
2
В принципе согласен. Если человек только начал писать скрипты - то вот вариант попроще :smile:
Код:
While 1
  Status()
  Avtopilot()
WEnd
 

rbn

Новичок
Сообщения
1
Репутация
0
не фурычит

Cкринов бы.. Пытаюсь обработать эталонные данные - бот пишет про загрузку локации и трюма, либо "Неописанная ситуация". Такое ощущение, что всю графическую часть придется переписывать - но что где лежало "в старой еве", как это выглядело - темный лес..
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Отлаживай поэтапно, не вижу проблем.
 

chelsanya

Новичок
Сообщения
2
Репутация
0
Прошу сильно не ругаться, а лучше потратить немного сил на нубские вопросы.

у меня, win7 64 бит... окно евы 1024х768

Я в доке, в 00
Выдает такую ошибку при запуске. Трюм почти пустой...
Впрочем на белте тоже самое.

---------------------------
#Error Message
---------------------------
Неописанная ситуация
Location: Station | В процессе: # | Варп: # | Трюм: Full | Овервью: # | Таргет: # | Возможное действие: #
---------------------------
ОК
---------------------------
 

DJ_Tommy

Продвинутый
Сообщения
236
Репутация
57
chelsanya [?]
Прошу сильно не ругаться, а лучше потратить немного сил на нубские вопросы.
у меня, win7 64 бит... окно евы 1024х768
Я в доке, в 00
Выдает такую ошибку при запуске. Трюм почти пустой...
Впрочем на белте тоже самое.
---------------------------
#Error Message
---------------------------
Неописанная ситуация
Location: Station | В процессе: # | Варп: # | Трюм: Full | Овервью: # | Таргет: # | Возможное действие: #
---------------------------
ОК
---------------------------

Ну если ты его полностью скачал, запустил без исправлений - то результат закономерный, ибо с момента его написания несколько раз сменились координаты и смещения относительно важных точек. Теперь что бы заставить его работать нужно посидеть и внимательно проработать функции датчиков, думаю все заработает. Разрядность системы и разрешение экрана уже придется настроить под себя.
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Настраивай датчики.Ты же видишь что видят датчики и что происходит на самом деле.Ситуация которую ты привел говорит о том что бот исходя из показателей датчиков уверен что он на станции и у него полный трюм.
 

chelsanya

Новичок
Сообщения
2
Репутация
0
Global $Cargo[2] = [409, 621] ;Левый верхний угол окна трюма

Следовательно трюм должен быть открыт?

Global $CargoBar[6] = [$Cargo[0]+147, $Cargo[1]+63, $Cargo[0]+246, $Cargo[1]+63, 0x020F13, 10] ;Настройки области поиска и цвета для определения статуса карго бара

Можно поподробней как происходит определение?

Global $Overview_1[6] = [844, 7, 844, 12, 0x838383, 10] ;Миникарта, палоска слева от Universe

Миникарта которая вызывается по ф11? с какой целью ее использовать? и что в ней находить?


Global $Und[6] = [31, 722, 31, 722, 0xFFBB3A, 0] ;Координаты кнопки андока

Задал, но при запуске все равно пишет что в доке....
 
Верх