Что нового

Создание бота (решалку) для Flesh приложения

Strog

Новичок
Сообщения
22
Репутация
0
Итак , что бы всем было ясно :
Игра: -Flesh
Задача бота (очень похожа на бота Пузыри http://www.botovod.ru/bots-for-browser-games/bot-dlya-puziri-vkontakte-t286-100.html):
-1.Поиск символов на игровом поле 6*6
0_76ab4_4d9482e9_M.jpg
(5 символов + у каждого камня свой множитель + камни объединены в группы, Красный жёлты зелёный)
-2.Подсчет каждого символа отдельно *.
-3.По алгоритмам нахождение идеального варианта раскладки (я так понимаю нужен двумерный массив)
-4.Рисование в проге поля 6*6 с символами (как выглядит вообще без разницы главное наглядно ДО и ПОСЛЕ)буду очень благодарен если дадите пример из Пузыри Вконтакте
-5.РАСКЛАДКА Нахождение и удаление в строке и столбце 3 и более одинаковых символов(максимум 4 столбец, 6 строчка) (одновременно)
потому что может быть так (смотри 8)
это поле исходное|5 4 1 5 6 4|
________________|4 8 8 8 2 1|
________________|6 8 2 5 6 7|
________________|3 8 5 8 7 9|
-6.После удаления одинаковых цветов , заменить пустое место символами сверху
это поле полученное|5 E E E 6 4|
__________________|4 E 1 5 6 1|
__________________|6 E 2 5 6 7|
__________________|3 4 5 8 7 9|
-7. строка лого для наглядности происходящего
*цвет допустим зелёный = камень зелёный * кол-во зелёных камней * множитель
ПРИМЕР: зелёный* 10 *3 = 30 (множитель зелёного 3)
**группа символов = (зелёный* 10 *3)+(жёлтый* 6 *1)+(красный* 9 *5)=30+6+45=81
0_76ab5_2418fd1b_M.jpg
*** E - на поле означает пустое место значение 0 (в игре это символы падающие рандомом)

Вроде ясно изложил суть помощника
Для бота написал только графический интерфейс и алгоритмы
Код:
#include <GUIConstants.au3> ;

GUICreate("Помощник","300","900","10","25")  ; создание окна 
GUISetState (@SW_SHOW)       ;будет дисплей  пустой. диалог блок

$button = GUICtrlCreateButton ( "Найти камни",35 , 285 ,110 ,25 ) ;список использованных кнопок
$button2 = GUICtrlCreateButton ( "Обновить камни(v2)",155 , 285 ,110 ,25 )

GUICtrlCreateGroup ("Алгоритмы для вычисления ходов", 25, 350, 250, 55) ;группы
GUICtrlCreateGroup ("Загрузка иинформации", 25, 270, 250, 75)

$button3 = GUICtrlCreateButton ( "Алгоритм Квадрат",35 , 365,110 ,25 )
$button4 = GUICtrlCreateButton ( "Алгоритм Крест(v3)",155 , 365 ,110 ,25 )

; дополнительная информация для вычислений!
$checkCN = GUICtrlCreateCheckbox ("Щит(v2)", 35, 320, 60, 20) ; список использованных чеков
$checkCN2 = GUICtrlCreateCheckbox ("Берсерк(v2)", 150, 320, 80, 20)

;выбор режима!
$radio1 = GUICtrlCreateRadio ("Турнир!", 35, 410, 80, 20) ; Для игры в турнирах!
$radio2 = GUICtrlCreateRadio ("Простой бой(v5)", 150, 410, 120, 20) ;не работает это не скоро

;не активные окна (в разработке)
GUICtrlSetState($radio2,$GUI_DISABLE)
GUICtrlSetState($checkCN,$GUI_DISABLE)
GUICtrlSetState($button,$GUI_DISABLE)
GUICtrlSetState($button2,$GUI_DISABLE)
GUICtrlSetState($checkCN2,$GUI_DISABLE)

;( "$Pole2", 25, 25 ,250 ,210 )

GUICtrlCreateCombo ("Поле 1", 35,245,150) ; создать сначала элемент(пункт)
GUICtrlSetData(-1,"Поле 2(номер)|Поле 3(v3)(Двумерный массив)") ; добавить другой элемент(пункт) snd набор  новый значение по умолчанию

;ПЕРВАЯ ПРОБА ПОИСКА КАМНЕЙ!

$Kamni = PixelGetColor( 1, 1 )
$Kamni2 = PixelGetColor( 1 , 2 )
$Kamni3 = PixelGetColor( 2, 1 )
$Kamni4 = PixelGetColor( 2 , 2 )


GUICtrlCreateLabel($Kamni , 10, 10, 250, 230)



; 	Выполнение Графический интерфейс пользователя до диалог есть закрытый
While 1  ; цикл
	
    $msg = GUIGetMsg()
    
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Wend
, вот возникли вопросы.
КАКИМИ методами написать задачу 1 и 4 на AutoIt? что можете подсказать.
Пункты 5 и 6 можно осуществить на AutoIt? КАК это воплотить???

Буду рад любой помощи

Если что-то не понятно или упустил КРИЧИТЕ!

СПАСИБО Belfigor , nonenicks, Fever

Задачу 1 я решил таким способом РЕШЕНИЕ
Код:
Dim $XB[6][6], $YB[6][6], $XN[6][6], $YN[6][6] ; объявим локальные массивы координат квадратов (в которых ищем)
Dim $aColor[6], $aColorS[6], $aIF[6]; объявим локальные массивы код цвета , и сигнатуру
;##########-----Код цвета-----##########
$aColor[1] = "0x1B5A01"
$aColor[2] = "0xBFA872"
$aColor[3] = "0xE29700"
$aColor[4] = "0x908C81"
$aColor[5] = "0xE20819"

;##########-----Сигнатура цвета-----##########
$aColorS[1] = 1
$aColorS[2] = 2
$aColorS[3] = 3
$aColorS[4] = 4
$aColorS[5] = 5

;##########-----Связки координат для каждого искомого квадрата-----##########
;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\---Строка N 1---/////////////////////////////////////
   $XB[0][0] = 589 ;----------- 1 связка --- 1 связка --- 1 связка 
   $YB[0][0] = 351
  $XN[0][0] = 599
  $YN[0][0] = 361
   
    $XB[0][1] = $XB[0][0]+41 ;----------- 2 связка
   $YB[0][1] = $YB[0][0]
   $XN[0][1] = $XB[0][1]+10
   $YN[0][1] = $YB[0][1]+10
   
	$XB[0][2] = $XB[0][1]+41 ;----------- 3 связка 
   $YB[0][2] = $YB[0][1]
   $XN[0][2] = $XB[0][2]+10
   $YN[0][2] = $YB[0][2]+10
   
       $XB[0][3] = $XB[0][2]+41 ;----------- 4 связка 
   $YB[0][3] = $YB[0][2]
   $XN[0][3] = $XB[0][3]+10
   $YN[0][3] = $YB[0][3]+10
   
       $XB[0][4] = $XB[0][3]+41 ;----------- 5 связка 
   $YB[0][4] = $YB[0][3]
   $XN[0][4] = $XB[0][4]+10
   $YN[0][4] = $YB[0][4]+10
   
       $XB[0][5] = $XB[0][4]+41 ;----------- 6 связка 
   $YB[0][5] = $YB[0][4]
   $XN[0][5] = $XB[0][5]+10
   $YN[0][5] = $YB[0][5]+10
   ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\---Строка N 2---/////////////////////////////////////
   
     $XB[1][0] = $XB[0][0] ;----------- 1 связка
   $YB[1][0] = $YB[0][0]+41
   $XN[1][0] = $XB[1][0]+10
   $YN[1][0] = $YB[1][0]+10
   
      $XB[1][1] = $XB[0][1] ;----------- 2 связка
   $YB[1][1] = $YB[0][1]+41
   $XN[1][1] = $XB[1][1]+10
   $YN[1][1] = $YB[1][1]+10
   
        $XB[1][2] = $XB[0][2] ;----------- 3 связка
   $YB[1][2] = $YB[0][2]+41
   $XN[1][2] = $XB[1][2]+10
   $YN[1][2] = $YB[1][2]+10
   
         $XB[1][3] = $XB[0][3] ;----------- 4 связка
   $YB[1][3] = $YB[0][3]+41
   $XN[1][3] = $XB[1][3]+10
   $YN[1][3] = $YB[1][3]+10
   
         $XB[1][4] = $XB[0][4] ;----------- 5 связка
   $YB[1][4] = $YB[0][4]+41
   $XN[1][4] = $XB[1][4]+10
   $YN[1][4] = $YB[1][4]+10
   
            $XB[1][5] = $XB[0][5] ;----------- 6 связка
   $YB[1][5] = $YB[0][5]+41
   $XN[1][5] = $XB[1][5]+10
   $YN[1][5] = $YB[1][5]+10
   ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\---Строка N 3---/////////////////////////////////////
   
   $XB[2][0] = $XB[1][0] ;----------- 1 связка
   $YB[2][0] = $YB[1][0]+41
   $XN[2][0] = $XB[2][0]+10
   $YN[2][0] = $YB[2][0]+10
   
      $XB[2][1] = $XB[1][1] ;----------- 2 связка
   $YB[2][1] = $YB[1][1]+41
   $XN[2][1] = $XB[2][1]+10
   $YN[2][1] = $YB[2][1]+10
   
        $XB[2][2] = $XB[1][2] ;----------- 3 связка
   $YB[2][2] = $YB[1][2]+41
   $XN[2][2] = $XB[2][2]+10
   $YN[2][2] = $YB[2][2]+10
   
         $XB[2][3] = $XB[1][3] ;----------- 4 связка
   $YB[2][3] = $YB[1][3]+41
   $XN[2][3] = $XB[2][3]+10
   $YN[2][3] = $YB[2][3]+10
   
         $XB[2][4] = $XB[1][4] ;----------- 5 связка
   $YB[2][4] = $YB[1][4]+41
   $XN[2][4] = $XB[2][4]+10
   $YN[2][4] = $YB[2][4]+10
   
            $XB[2][5] = $XB[1][5] ;----------- 6 связка
   $YB[2][5] = $YB[1][5]+41
   $XN[2][5] = $XB[2][5]+10
   $YN[2][5] = $YB[2][5]+10
   
   ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\---Строка N 4---/////////////////////////////////////
   
   $XB[3][0] = $XB[2][0] ;----------- 1 связка
   $YB[3][0] = $YB[2][0]+41
   $XN[3][0] = $XB[3][0]+10
   $YN[3][0] = $YB[3][0]+10
   
      $XB[3][1] = $XB[2][1] ;----------- 2 связка
   $YB[3][1] = $YB[2][1]+41
   $XN[3][1] = $XB[3][1]+10
   $YN[3][1] = $YB[3][1]+10
   
        $XB[3][2] = $XB[2][2] ;----------- 3 связка
   $YB[3][2] = $YB[2][2]+41
   $XN[3][2] = $XB[3][2]+10
   $YN[3][2] = $YB[3][2]+10
   
         $XB[3][3] = $XB[2][3] ;----------- 4 связка
   $YB[3][3] = $YB[2][3]+41
   $XN[3][3] = $XB[3][3]+10
   $YN[3][3] = $YB[3][3]+10
   
         $XB[3][4] = $XB[2][4] ;----------- 5 связка
   $YB[3][4] = $YB[2][4]+41
   $XN[3][4] = $XB[3][4]+10
   $YN[3][4] = $YB[3][4]+10
   
            $XB[3][5] = $XB[2][5] ;----------- 6 связка
   $YB[3][5] = $YB[2][5]+41
   $XN[3][5] = $XB[3][5]+10
   $YN[3][5] = $YB[3][5]+10
 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\---Строка N 5---/////////////////////////////////////
   
   $XB[4][0] = $XB[3][0] ;----------- 1 связка
   $YB[4][0] = $YB[3][0]+41
   $XN[4][0] = $XB[4][0]+10
   $YN[4][0] = $YB[4][0]+10
   
      $XB[4][1] = $XB[3][1] ;----------- 2 связка
   $YB[4][1] = $YB[3][1]+41
   $XN[4][1] = $XB[4][1]+10
   $YN[4][1] = $YB[4][1]+10
   
        $XB[4][2] = $XB[3][2] ;----------- 3 связка
   $YB[4][2] = $YB[3][2]+41
   $XN[4][2] = $XB[4][2]+10
   $YN[4][2] = $YB[4][2]+10
   
         $XB[4][3] = $XB[3][3] ;----------- 4 связка
   $YB[4][3] = $YB[3][3]+41
   $XN[4][3] = $XB[4][3]+10
   $YN[4][3] = $YB[4][3]+10
   
         $XB[4][4] = $XB[3][4] ;----------- 5 связка
   $YB[4][4] = $YB[3][4]+41
   $XN[4][4] = $XB[4][4]+10
   $YN[4][4] = $YB[4][4]+10
   
            $XB[4][5] = $XB[3][5] ;----------- 6 связка
   $YB[4][5] = $YB[3][5]+41
   $XN[4][5] = $XB[4][5]+10
   $YN[4][5] = $YB[4][5]+10
 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\---Строка N 6---/////////////////////////////////////

   $XB[5][0] = $XB[4][0] ;----------- 1 связка
   $YB[5][0] = $YB[4][0]+41
   $XN[5][0] = $XB[5][0]+10
   $YN[5][0] = $YB[5][0]+10
   
      $XB[5][1] = $XB[4][1] ;----------- 2 связка
   $YB[5][1] = $YB[4][1]+41
   $XN[5][1] = $XB[5][1]+10
   $YN[5][1] = $YB[5][1]+10
   
        $XB[5][2] = $XB[4][2] ;----------- 3 связка
   $YB[5][2] = $YB[4][2]+41
   $XN[5][2] = $XB[5][2]+10
   $YN[5][2] = $YB[5][2]+10
   
         $XB[5][3] = $XB[4][3] ;----------- 4 связка
   $YB[5][3] = $YB[4][3]+41
   $XN[5][3] = $XB[5][3]+10
   $YN[5][3] = $YB[5][3]+10
   
         $XB[5][4] = $XB[4][4] ;----------- 5 связка
   $YB[5][4] = $YB[4][4]+41
   $XN[5][4] = $XB[5][4]+10
   $YN[5][4] = $YB[5][4]+10
   
            $XB[5][5] = $XB[4][5] ;----------- 6 связка
   $YB[5][5] = $YB[4][5]+41
   $XN[5][5] = $XB[5][5]+10
   $YN[5][5] = $YB[5][5]+10
   
   
$shade = 15
$Case = 0 
$step = 2
$hwnd = 1 
;##########-----Цикл проходящий весь массив-----##########

For $aX = 0 To 5
    For $aY = 0 To 5
        _CheckColor() ; в ключение функции просмотра цвета
    Next


 ;##########-----Функция опредиленя цвета в квадрате-----##########
Func _CheckColor()
    For $a = 1 To UBound($aColor) - 1 ;сверяем наличие 5 цветов в ячейке...
        $sSearch = PixelSearchEx($XB[$aX][$aY], $YB[$aX][$aY], $XN[$aX][$aY], $YN[$aX][$aY], $aColor[$a], $shade, $Case, $step, $hwnd)
        If IsArray($sSearch) Then ;...если предыдущая ф-ция возвратила массив, то значит цвет найден и он в массиве под номером $i, тоесть $aColorS[$i]
            $polemassiv[$aX][$aY] = $aColorS[$a]; присваеваем ячейке это значение
            Return 1
        EndIf
    Next ;если же цикл прошел до конца, звачит совпадения цвета нет, следовательно присваеваем текущей ячейке значение 0
    $polemassiv[$aX][$aY] = 0
    Return 0
EndFunc
Задачу 4 я решил таким способом РЕШЕНИЕ
Код:
Func _ColorMassivPrint()
	If  $PoleMassiv[$i][$j] == 0 Then
	GUICtrlCreatePic("0000.jpg",20+$j*43,10+$i*43, 41,41)
Else
	If  $PoleMassiv[$i][$j] == 1 Then
	GUICtrlCreatePic("0001.jpg",20+$j*43,10+$i*43, 41,41)
Else
	If  $PoleMassiv[$i][$j] == 2 Then
	GUICtrlCreatePic("0002.jpg",20+$j*43,10+$i*43, 41,41)
Else
	If  $PoleMassiv[$i][$j] == 3 Then
	GUICtrlCreatePic("0003.jpg",20+$j*43,10+$i*43, 41,41)
Else
	If  $PoleMassiv[$i][$j] == 4 Then
    GUICtrlCreatePic("0004.jpg",20+$j*43,10+$i*43, 41,41)
Else
	If  $PoleMassiv[$i][$j] == 5 Then
    GUICtrlCreatePic("0005.jpg",20+$j*43,10+$i*43, 41,41)
EndIf
EndIf
EndIf
EndIf
EndIf
EndIf
EndFunc
Задачу 7 я решил таким способом РЕШЕНИЕ
Код:
$mylist = GUICtrlCreateList (_DateTimeFormat( _NowCalc(),5) & ">Запуск скрипта", 5,800,290,90)
$button6 = GUICtrlCreateButton ( "Очистить логи",5 , 885,80 ,20 );кнопка в отцовском окне
$checkCN3_log = "off"
$checkCN4_log = "off"

If GUICtrlRead($checkCN3) == $GUI_CHECKED Then
			_XYmassivPrintMouse()
			$checkCN3_log = "Проверка XY"  ; Это просто для примера записи в переменную
		EndIf
		
If GUICtrlRead($checkCN4) == $GUI_CHECKED Then
			_ArrayDisplay($polemassiv) ;вывод результатов массива
			$checkCN4_log = "Вывод массива"
		EndIf
GUICtrlSetData($mylist,_DateTimeFormat( _NowCalc(),5) & "> Поиск камней+ " & $checkCN3_log & "+ " & $checkCN4_log)  ; Это просто для примера записи в лого

Select
  case $msg = $button6 ; кнопка очистки
        GUICtrlSetData($mylist,"")
	EndSelect
Cкрин для задачи 1 и 4
0_78f36_8eeb973f_L.jpg
 

nonenicks

Новичок
Сообщения
18
Репутация
3
Re: Есть прямые руки , нет идей! Создание бота для Flesh приложения

Сам новичек... подскажу возможные направления
Ну ты заморочился...
Отображать можно через GUICtrlCreatePic сделать 24 элементов...
Я как понмаю есть рауд(момент обновления отображения)..
Всю логику делать в массиве [4][6]
если в ячейке 0 то пусто...1 2 и тд какой-то элемент...
В конце раунда запускать цикл на обновление элементов GUICtrlCreatePic в соответствие с массивом

Наверно так...

Если тебе непонятна логика работы с массивами..тут сложнее

вот цикл который просмотрит все ячейки массива
Код:
;;Создаем массив в 4 строки и 6 элементов в каждой строке
Global $array[4][6]
;;цикл который просмотрит все ячейки массива начиная с $array[0][0]
For $i = 0, 3 Step +1
	For $a = 0, 5 step +1
		;; Тут логика, либо добавляем чтото в ячейку $array[$i][$a], либо сверяем эту ячейку с чемнибуть например
		;;If $array[$i][$a] == 0 Then 
	Next
Next
 
Автор
S

Strog

Новичок
Сообщения
22
Репутация
0
Re: Есть прямые руки , нет идей! Создание бота для Flesh приложения

у меня поле 6*6 просто корявый пример сделал, сейчас подумаю и вечером вопросы напишу . Спасибо за пищу для ума)
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: Есть прямые руки , нет идей! Создание бота для Flesh приложения

Все это реализуемо на автоит. 1-е - просто путем создания различных пресетов для распознования с помощью pixel функций. 4-е - gdi+ например. 5 и 6 - просто обработка двумерных массивов.
 
Автор
S

Strog

Новичок
Сообщения
22
Репутация
0
Re: Есть прямые руки , нет идей! Создание бота для Flesh приложения

Вот помучился и написал создание массива, из кода видно каким методом на примере 2 а таких надо 36 по моему это заморочно :shok:. Вопрос как сделать покороче если это возможно :scratch: будет круто :laugh:, переменные только для удобства.
Код:
;$Kamni = PixelSearch(Х-ВерхнегоЛевогоУгла,У-ВерхнегоЛевогоУгла,Х-НижнегоПравогоУгла, У-НижнегоПравогоУгла, Цвет который будем искать в формате 0х000000, шейдер 10)
;-----------------------------------------------11111111111111111111111111111----------------------------------------
$XB1 = 570
$YB1 = 330
$XN1 = 615
$YN1 = 378

Global $PoleMassiv[6][6]
$Pozik1 = PixelSearch($XB1,$YB1,$XN1, $YN1, 0x50E205, 10) ;зелёный
          If Not @error Then
        $PoleMassiv[1][1] = 1
    Else
$Pozik1 = PixelSearch($XB1,$YB1,$XN1, $YN1, 0xB10014, 10) ;красный
          If Not @error Then
		$PoleMassiv[1][1] = 5
	Else
$Pozik1 = PixelSearch($XB1,$YB1,$XN1, $YN1, 0xA6A090, 10);крест
          If Not @error Then
		$PoleMassiv[1][1] = 4
	Else
$Pozik1 = PixelSearch($XB1,$YB1,$XN1, $YN1, 0xDC9102, 10);желтый
          If Not @error Then
		$PoleMassiv[1][1] = 3
	Else
$Pozik1 = PixelSearch($XB1,$YB1,$XN1, $YN1, 0x8F6733, 10);череп
          If Not @error Then
		$PoleMassiv[1][1] = 2
	Else
		$PoleMassiv[1][1] = 0
  EndIf
  EndIf
  EndIf
  EndIf
  EndIf
  ;-----------------------------------------------22222222222222222222222----------------------------------------
$XB2 = 615
$YB2 = 330
$XN2 = 655
$YN2 = 378

$Pozik1 = PixelSearch($XB2,$YB2,$XN2, $YN2, 0x50E205, 10) ;зелёный
          If Not @error Then
        $PoleMassiv[2][1] = 1
    Else
$Pozik1 = PixelSearch($XB2,$YB2,$XN2, $YN2, 0xB10014, 10) ;красный
          If Not @error Then
		$PoleMassiv[2][1] = 5
	Else
$Pozik1 = PixelSearch($XB2,$YB2,$XN2, $YN2, 0xA6A090, 10);крест
          If Not @error Then
		$PoleMassiv[2][1] = 4
	Else
$Pozik1 = PixelSearch($XB2,$YB2,$XN2, $YN2, 0xDC9102, 10);желтый
          If Not @error Then
		$PoleMassiv[2][1] = 3
	Else
$Pozik1 = PixelSearch($XB2,$YB2,$XN2, $YN2, 0x8F6733, 10);череп
          If Not @error Then
		$PoleMassiv[2][1] = 2
	Else
		$PoleMassiv[2][1] = 0
  EndIf
  EndIf
  EndIf
  EndIf
  EndIf


GUICtrlCreateLabel($PoleMassiv[1][1] , 10, 10, 20, 20) 
GUICtrlCreateLabel($PoleMassiv[2][1] , 30, 10, 20, 20)
 

nonenicks

Новичок
Сообщения
18
Репутация
3
Re: Есть прямые руки , нет идей! Создание бота для Flesh приложения

1 что именно покороче=)
2 когда указываешь в массиве количество элементов то ставиш цифры столько сколько нужно, а вот обращатцо надо с нулевого
пример

Код:
;Создаем массив
$array[2]
;Начинаем обращаться
$array[0] = "первый" ;первый элемент в массиве
$array[1] = "второй" ;второй элемент массива
$array[2] = "третий" ; ошибка доступа, привышаем длинну массива ибо мы задали при создании 2 элемента...


Впринципе можно непарить мозг и создавать массив на 1 элемент больше чем нужно и обращатцо к нему с начиная с первого.
просто чутка оперативки потеряем в таких программах это некритично
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: Есть прямые руки , нет идей! Создание бота для Flesh приложения

Прошарит заданную позицию по 5 заданным в массиве цветам, в случае успеха присвоит проверяемой ячейке массива значение 1, в случае неудачи оставит 0. На выходе будешь иметь в переменных нечто типа 11111 или 00000 или 10101 и тд и тп.
Код:
Dim $color[5] = [0x000000, 0x000001, 0x000002, 0x000003, 0x000004]
Dim $aArray[5][5]
For $i = 0 To 5 Step 1
    $Pozik1 = PixelSearch($XB1,$YB1,$XN1, $YN1, $color[$i])
    If Not @error Then $PoleMassiv[$i][$i] = $i
Next
 
Автор
S

Strog

Новичок
Сообщения
22
Репутация
0
Re: Есть прямые руки , нет идей! Создание бота для Flesh приложения

:scratch:Почему-то у меня не получается , постоянно с ошибками ищет череп и крест (может из за цвета ?? но я ставлю точное совпадение! камни находит без единой ошибки) координаты все проверены всё точно. В чом может скрываться проблема? или мне попробовать PixelGetColor вместо PixelSearch ?? Скрин поля можно посмотреть :blink: в 1 посту.

Ошибки
-не находит
-путает череп и крест

Кто сталкивался с таким? ↓↓↓ видел много программ работает быстро и безошибочно (за какието доли сек находит 225 объектов)
бот делает скриншот экрана, определяет поле с пузырями, и по сетке смотрит цвета определенных пикселей (сетка получается примерно в центре шарика). ну а сосчитать - вообще не проблема.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: Есть прямые руки , нет идей! Создание бота для Flesh приложения

с обработкой скриншота тебе надо обращаться к библиотеке GDI+. Не ставь точное совпадение в PS. Поставь шейд например 5 или 10.
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: Есть прямые руки , нет идей! Создание бота для Flesh приложения

не понял вопроса
 
Автор
S

Strog

Новичок
Сообщения
22
Репутация
0
Re: Есть прямые руки , нет идей! Создание бота для Flesh приложения

Вот код , я не пойму что не так
Код:
$XB1 = 589
$YB1 = 351
$XN1 = $XB1+10
$YN1 = $YB1+10

Dim $color[5] = [0x75BC3C, 0xFFF528, 0xD3131E, 0x8D8676, 0xD8B983]

For $i = 0 To 5 Step 1
    $Pozik1 = PixelSearch($XB1,$YB1,$XN1, $YN1, $color[$i], $shade)
    If Not @error Then 
		$PoleMassiv[0][0] = $i
		EndIf
	Next

логи
Код:
>"C:\Program Files\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "G:\AutoIt v3 Script (2).au3"    
G:\AutoIt v3 Script (2).au3 (75) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.:
$Pozik1 = PixelSearch($XB1,$YB1,$XN1, $YN1, $color[$i], $shade)
$Pozik1 = PixelSearch($XB1,$YB1,$XN1, $YN1, ^ ERROR
>Exit code: 1    Time: 1.115
Я должен получить первую ячейку массива (с значениями от 0 до 5)
т,е, цвет не найден 0 , каждому цвету соответственно значение от 1 до 5
 

nonenicks

Новичок
Сообщения
18
Репутация
3
Re: Есть прямые руки , нет идей! Создание бота для Flesh приложения

у тебя массив и 5 элементов
$color[5]

а цикл расчитан на 6 итераций(повторений) 0 это раз, 1 2 3 4 5 того шесть=)
$Pozik1 = PixelSearch($XB1,$YB1,$XN1, $YN1, $color[$i], $shade)
 
Автор
S

Strog

Новичок
Сообщения
22
Репутация
0
Re: Есть прямые руки , нет идей! Создание бота для Flesh приложения

Разобрался, это мои недочеты (( мало практики.
 
Верх