Что нового

[Автоматизация] Бот для игры вконтакте Территория Фермеров.

warshadow

Новичок
Сообщения
62
Репутация
0
Всем привет. Стал писать бота для данной игры, функцией PixelSearch.
Ошибка в том, что программа иногда работает корректно и выполняет те действия,которые я ей задал. Но иногда выдает такую ошибку: Subscript used with non-Array variable.
Вот собственно код:
Код:
For $i=0 to $count
							
					
					
				If $x>1 and $y>1 Then
					Dim $aRed_Coords
					Sleep($gh)
					if GUICtrlRead($klava1)= $GUI_CHECKED then
					$aRed_Coords = PixelSearch(1,0,@DesktopWidth, @DesktopHeight, 0x44240F);засадка
					GUICtrlRead($aRed_Coords)
					MouseClick("left", $aRed_Coords[0], $aRed_Coords[1])
					ReDim $aRed_Coords
					
				Else
					$aRed_Coords = PixelSearch(1,0,@DesktopWidth, @DesktopHeight, 0x67734F);сбор клевера
					GUICtrlRead($aRed_Coords)
					MouseClick("left", $aRed_Coords[0], $aRed_Coords[1])
					ReDim $aRed_Coords
					EndIf
					EndIf
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Может pixelsearch выдает @error, а не массив?
 

Belfigor

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

warshadow

Новичок
Сообщения
62
Репутация
0
И как исправить данную ошибку?
Да и такой вопрос я так до сих пор не понял как высчитывать прямоугольник(в котором происходит поиск пикселей), может есть какая-то программа?
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Код:
$aRed_Coords  = PixelSearch(1,0,@DesktopWidth, @DesktopHeight, 0x44240F);засадка
if @error = 1 then 
msgbox(0,0,"Облом")
exit ;или return если это будет в функции
endif

вконтакте нет мну, но это флэшевые игры. Значит можно получить координаты и размеры объекта. + иногда флэши можно получить напрямую (в autoit window info виден как контрол. как это действует я не знаю - поэтому буду рад объяснению)
 
Автор
W

warshadow

Новичок
Сообщения
62
Репутация
0
Спасибо за код -- помог!
А вот конечно с расчетами координат хочется поподробнее )
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Код:
$oFlash = _IEGetObjById/_IEGetObjByName () ; выберешь сам 
;почитай что каждый значит.
$param = "screenx"
$param = "screeny"
$param = "top"
$param = "left"
$param = "height"
$param = "width"

_IEPropertyGet($oFlash, $param)
 

axlwor

Скриптер
Сообщения
657
Репутация
147
работает как то так
Код:
$oIE = _IECreate("http://google.com/")
$oButton = _IEGetObjByName ($oIE, "btnG")
msgbox(0,"Координаты", "X " & _IEPropertyGet($oButton, "left") & @CRLF & "Y " & _IEPropertyGet($oButton, "top"))

я не помню какое именно property нужно брать. Я использую обычно такую конструкцию
Код:
While IsObj($oFlash)
	$x += $oFlash.offsetLeft
	$y += $oFlash.offsetTop
	$oFlash = $oFlash.offsetParent
WEnd
 
Автор
W

warshadow

Новичок
Сообщения
62
Репутация
0
Эм..еще такой вопросик, я ставлю чтобы цвет такой-то искал ищет, но пропускает некоторые объекты и приходиться заново цвет новый выставлять:
Код:
$aRed_Coords = PixelSearch(0,0,@DesktopWidth, @DesktopHeight,0x022900,0,1)
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Потому что вариантность оттенков у тебя выставлена 0
 
Автор
W

warshadow

Новичок
Сообщения
62
Репутация
0
Belfigor сказал(а):
Потому что вариантность оттенков у тебя выставлена 0
Вы про это имеете ввиду:
shade-variation - [опциональный] величина от 0 до 255 указывает разрешенное число каналов сопоставимого цвета для rgb компонентов. Стандартное значение 0 (точное сопоставление)?
А какую именно надо выставить
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Да, именно оно. Какую - я не могу знать, я даже не видел что ты пытаешься там у себя найти. Поиграйся со значениями. А так если не уверен начни с 10.
 
Автор
W

warshadow

Новичок
Сообщения
62
Репутация
0
Belfigor сказал(а):
Да, именно оно. Какую - я не могу знать, я даже не видел что ты пытаешься там у себя найти. Поиграйся со значениями. А так если не уверен начни с 10.
Поигрался со значениями вообще видеть перестал, работает только когда заново цвет инициализирую -- вот собственно картинка http://s006.radikal.ru/i215/1010/45/d845d8f198a0.bmp
 

Belfigor

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

warshadow

Новичок
Сообщения
62
Репутация
0
Belfigor сказал(а):
Таки на один из цветочков сагрить скрипт пытаешься?
Да у меня целое поле(примерно шт.100) цветочков и он по каждому тыкает, т.е как находит пиксель тыкает и дальше ищет и тыкает
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Ну попробуй вот к такому цвету привязаться: 0xCC3399 с шейдом 10, это один из верхних цветочков. Я бы с этого начал если бы знал что это вообще за игра :smile:
 
Автор
W

warshadow

Новичок
Сообщения
62
Репутация
0
Belfigor сказал(а):
Ну попробуй вот к такому цвету привязаться: 0xCC3399 с шейдом 10, это один из верхних цветочков. Я бы с этого начал если бы знал что это вообще за игра :smile:
Хорошо попробую, спасибо )
Игра вконтакте - Территория Фермеров ( аналогия Агрохолдинг) , засиживать и снимать принцип игры
А вопрос такой как вы рассчитали шейды?
Вышло вот так:
Код:
$aRed_Coords = PixelSearch(0,0,@DesktopWidth, @DesktopHeight,0xCC3399,10,1)

2 цветков находит дальше не обнаруживает
 

Belfigor

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



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

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

warshadow

Новичок
Сообщения
62
Репутация
0
Belfigor сказал(а):
Я увы там не зарегистрирован. А расчитывал - методом научного тыка основанном на большом опыте
55.gif



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

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



Мне надо ткнуть на каждый цветок, чтобы был сбор.
Цвета в разнобой идут, но они одинаковые все как клоны, странность что приходиться все время цвет перебивать.
А вот на засадку все отлично работает как часы 1 раз ввел цвет и не пропускает и не ругается сажает себе и сажает :smile:
 
Верх