Что нового

Бот-помощник для ханта Аномалек

Akenil

Новичок
Сообщения
9
Репутация
0
кстати _SendExEx("^r") - реально помогла функция, и она перезарядила модули. Странно что другие не перезаряжают :( Чо-о с раскладкой на компьютере похоже дело.

Слушай, а чем ты так увеличиваешь зону просмотра пикселей? Кинь ссылочку на такю функцию плиз :smile:
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Akenil сказал(а):
кстати _SendExEx("^r") - реально помогла функция, и она перезарядила модули. Странно что другие не перезаряжают :( Чо-о с раскладкой на компьютере похоже дело. Слушай, а чем ты так увеличиваешь зону просмотра пикселей? Кинь ссылочку на такю функцию плиз :smile:
Au3Info, программа идет в комплекте с автоитом.
 

Lexx98

Продвинутый
Сообщения
272
Репутация
73
Akenil сказал(а):
Слушай, а чем ты так увеличиваешь зону просмотра пикселей? Кинь ссылочку на такю функцию плиз :smile:
AU3Info.exe лежит в корневой папке установленного автоита.
Кстати обрати особое внимание на то, что установки откуда считать пиксели в твоих скриптах (Opt("...CoordMode")) и аналогичные в ау3инфо (в менюшках там есть) должны совпадать. А лупа это там же в менюшках magnify (вроде так), вызывается проще всего по Ctrl + Alt + M
 
Автор
D

DJ_Tommy

Продвинутый
Сообщения
236
Репутация
57
Akenil - если ты внимательно читал темы в этом разделе, то должен был заметить что активность модулей проверяется не по цвету полосы, а по отсутствию черной точки на границе модуля.
 

Belfigor

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

Jonik Silver

Знающий
Сообщения
19
Репутация
11
При включенном активатион таймере, в нижней части модуля всегда будет белая точка, ну или близкая к белой. Проблема в том, что сам активатион таймер не точен и иногда показывает время в Новой Зеландии, но никак не работу модуля.
 

Lexx98

Продвинутый
Сообщения
272
Репутация
73
Для того, чтобы убедиться, что ты действительно стреляешь, а не висишь в лаге перед дисконнектом, можно ещё сравнивать чексуммы области с количеством патронов, если конечно это не лазер.
Ну и в обоих случаях поможет также слежение за здоровьем цели и знание времени полёта мисслов (для ракетных кораблей).
 
Автор
D

DJ_Tommy

Продвинутый
Сообщения
236
Репутация
57
Итак, после запуска помощника для ханта аномалек высветилась такая проблема:
Файтеры не могут убить мелочь, причем на мелочи обычно 2 ТП и 1 сетка. Какие будут предложения по решению? (я решил, просто интересно какие еще есть простые решения)
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Продвинутый карибас сказал(а):
Итак, после запуска помощника для ханта аномалек высветилась такая проблема: Файтеры не могут убить мелочь, причем на мелочи обычно 2 ТП и 1 сетка. Какие будут предложения по решению? (я решил, просто интересно какие еще есть простые решения)
По окончанию каждой волны возврат файтеров в трюм, ожидание фулл агры, свап файтеров на лайт скаут дронов, убиение мелочи, свап обратно. Собсно у меня файтеры на ура распиливают таклеров.
 
Автор
D

DJ_Tommy

Продвинутый
Сообщения
236
Репутация
57
Belfigor сказал(а):
По окончанию каждой волны возврат файтеров в трюм, ожидание фулл агры, свап файтеров на лайт скаут дронов, убиение мелочи, свап обратно. Собсно у меня файтеры на ура распиливают таклеров.
Я отказался от идеи затаскивать на каждую волну в трюм - 14 файтеров и так нормально всех пилят и здоровья у них до фига. И у меня файтеры хорошо всех пилят - просто бывает иногда так, что какого нить фрига приходится пилить минут 30, ну просто не попадают почему то файтеры по нему, хотя и сигнатуру раздуваю на 45% и сеткую -55% к скорости. Решил проблему следующим образом - на один ТП поставил метку и если он работает более определенного времени без остановки, то делаю скупдеплой, Т.е. горячими клавишами даю команду дронам встать на орбиту и тут же команду атаковать - помогает в 100% случаях. Если с первой попытки скупдеплой не помог, то через такое же время запустится еще раз такая же последовательность.
 
Автор
D

DJ_Tommy

Продвинутый
Сообщения
236
Репутация
57
Не хочу создавать новую тему. Спрошу здесь. Белф ты случаем не искал какие нить переменные в памяти клиента, что бы скажем не только на графический интерфейс ориентироваться, но и из памяти какие либо данные вытягивать и обратно их в память загонять?
Скажем для скана это очень бы пригодилось бы, да и возможность индификации внутренних окон евы интересна.

Если кто в теме - присоединяйтесь к обсуждению.
 

Belfigor

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

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Продвинутый карибас сказал(а):
А сами окна (локала, скана, карты) как то можно идентифицировать?
Я делаю это графически. Помню кто-то говорил что в кэше хранятся их координаты, но я там не лазил.
 
Автор
D

DJ_Tommy

Продвинутый
Сообщения
236
Репутация
57
да меня вот интересовать стало. Думаю должны же где то хранится и обрабатываться данные, которые мы графическим путем считываем. Например наличие, состояние окна локала. Список локала со стендами чаров. Окно карты - наличие, состояние. Отсканированные позиции с названиями сигнатур. Окно овервью .... и прочее. Может попробуем общими усилиями нарыть эти данные?
 
Автор
D

DJ_Tommy

Продвинутый
Сообщения
236
Репутация
57
В связи с неактуальностью старого помощника для ханта аномалек решил выложить один из начальных вариантов кода - может кому пригодится.
Код:
Opt("PixelCoordMode", 2) ;Отсчет координат пикселей от левого верхнего угла клиентской части окна
Opt("MouseCoordMode", 2) ;Отсчет координат мыши от левого верхнего угла клиентской части окна
Opt("MustDeclareVars", 1) ;Форсируем задачу переменных. Тоесть после задания этой опции перед тем как нам использовать какую-либо переменную нам надо обозначить ее.
Opt("SendKeyDelay", 6)
HotKeySet("{PAUSE}","TogglePause")
HotKeySet("^{PAUSE}", "_Exit")
HotKeySet("^!{PAUSE}", "_Login")
Global $CurWin = "EVE - My Character"
Global $Paused;
; для задания переменных используем следующий шаблон; Col - цвет, Coord - координата
; Loc - локал, Over - овервью, Mod - модули, SI - selected item, Dr - дрон
; GM - главное меню, Menu - выпадающее меню, HUD - это HUD
Global $ColLocNeut=0x858585, $ColLocOffwar=0x8F0000, $ColLocCorp, $ColLocAli=0x001C73, $ColLocBlue=0x001C73, $ColLocLBlue=0x2660BF, $ColLocRed=0x8F0000, $ColLocLRed=0xBF4300, $ColLocSheid=12
; Нейтр, Оффвар, Корп, Али, Синий, Голубой, Красный, Светлокрасный, Шейд
Global $ColBlack=0x000000, $ColDronGreen=0x07F707, $ColNPC=0xC61010, $ColWhite=0xBCBCBC, $ColSpeed=0x558FBD; черный цвет фона, зеленый цвет статуса дронов, красный цвет неписи, белый цвет надписей
Global $CoordLocX=547, $CoordLocY=192 ; координаты правой верхней точки окна локала
Global $xxx, $xxx1, $xxx2, $xxx3, $xxx4, $xxx5, $qqq; переменная для счетчиков
Global $CoordGMX=62, $CoordGMY=24 ; координаты вершины треугольника главного меню
Global $CoordSIX=1010, $CoordSIY=2 ; коордиаты левой верхней точки окна Selected Item
Global $CoordDrX=291, $CoordDrY=110; координаты правой верхней точки окна Dron
Global $CoordDrXx=46, $CoordDrYy=117, $ColDronBlue=0xA8FFFF, $ColDronRed=0x9D2527 ; координаты левой верхней точки меню Dron, цвет синей папки дронов, красный цвет атакующих дронов
Global $CoordOverX=1020, $CoordOverY=114 ; координаты вершины треугольника Overview
Global $CoordHudX=698, $CoordHudY=769 ; координаты вершины треугольника HUD
Global $NCeli, $nmod, $ONPC, $i, $np; номер залоченной цели от 0 до 6, номер модуля F1 или F2, NPC в overview, счетчик
Global $StatWin1, $StatWin2 ;статус окна 1- Eve, 2- Eve
TogglePause(1)
WinActivate($CurWin)
While 1
	WinWaitActive($CurWin)
	WinMove($CurWin, "", -3, -28)
If _LocalScan()=0 Then 
	If _kolceley()=0 And _kolnpc()=0 Then
		Sleep (5000)
		If _kolnpc()=0 Then
		_warpSpot()
		Send ("{CTRLDOWN}")
				Sleep (200)
				Send ("b")
				Sleep (200)
				Send ("{CTRLUP}")
				Sleep (2000)
		TogglePause(3)
		EndIf
	EndIf
	
	If _kolceley()<3 And _kolnpc()>_kolceley() Then
		Sleep (2000)
			If _kolceley()<3 And _kolnpc()>_kolceley() Then
				_attack()
				_LocCeley()
				Sleep (1000)
				For $i1=1 to 16
					If _LocalScan()=0 Then 
						ToolTip ("")
						_attack()
						Sleep (1500)
					Else
						ExitLoop
					EndIf
				Next
			EndIf
	EndIf

	
	If _kolceley()>0 Then
		ToolTip ("")
		_attack()
	EndIf

Else
	ToolTip ("АЛЯРМА, ГАЛАКТИКА В ОПАСНОСТИ. ШПИЕНЫ ПОВСЮДУ",220,80)
	$qqq=0
	While 1
	If _WarpStat()=0 Then
		If _LocalScan()=0 Then
			Send ("{CTRLDOWN}")
			Sleep (300)
			Send ("{SPACE}")
			Sleep(300)
			Send ("{CTRLUP}")
			ExitLoop
		Else
			_warpPos()
			_attack()
				If _kolceley()<_kolnpc() Then
					$qqq=$qqq+1
					If $qqq>15 Then
				_LocCeley()
				$qqq=0
					EndIf
				EndIf
	
		EndIf
	EndIf

	If _WarpStat()=1 and _SpeedShip()=3 Then
		Sleep (3000)
			If _WarpStat()=1 and _SpeedShip()=3 Then
				For $i=1 to 40
					Sleep (2000)
					If _WarpStat()=0 and _SpeedShip()<3 Then
						ExitLoop
					EndIf
				Next
				Send ("{CTRLDOWN}")
				Sleep (200)
				Send ("b")
				Sleep (200)
				Send ("{CTRLUP}")
				Sleep (2000)
				TogglePause(2)
			EndIf
	EndIf

	If _WarpStat()=1 and _SpeedShip()<3 Then
		If _LocalScan()=0 Then
			Send ("{CTRLDOWN}")
			Sleep (200)
			Send ("{SPACE}")
			Sleep (200)
			Send ("{CTRLUP}")
			Sleep (2000)
				If _WarpStat()=0 Then
					ExitLoop
				Else
				For $i=1 to 40
					Sleep (2000)
					If _WarpStat()=0 and _SpeedShip()<3 Then
						ExitLoop
					EndIf
				Next
				Send ("{CTRLDOWN}")
				Sleep (200)
				Send ("b")
				Sleep (200)
				Send ("{CTRLUP}")
				Sleep (2000)
					TogglePause(2)
					ExitLoop
				EndIf
		Else	
			_attack()
			Sleep (2000)
		EndIf
	EndIf
WEnd
EndIf
Sleep (1500)
WEnd

Func _WarpStat()
Sleep (1000)
PixelSearch ($CoordHudX-130, $CoordHudY-197, $CoordHudX-86, $CoordHudY-167, $ColWhite, $ColLocSheid)
If Not @error Then
	Return 1
Else
	Return 0
EndIf
EndFunc

Func _SpeedShip()
$xxx4=0
PixelSearch ($CoordHudX-91, $CoordHudY-15, $CoordHudX-84, $CoordHudY-10, $ColSpeed, $ColLocSheid)
If Not @error Then
	$xxx4=1
EndIf
PixelSearch ($CoordHudX-63, $CoordHudY, $CoordHudX-56, $CoordHudY+3, $ColSpeed, $ColLocSheid)
If Not @error Then
	$xxx4=2
EndIf
PixelSearch ($CoordHudX-33, $CoordHudY-15, $CoordHudX-25, $CoordHudY-12, $ColSpeed, $ColLocSheid)
If Not @error Then
	$xxx4=3
EndIf
Return $xxx4
EndFunc

Func _attack()
	If _LockCeli(1)=1 Then
		If _ActivModul(1)=1 Then
			$xxx3=$xxx3+1
			If $xxx3>8 Then
				Send ("{CTRLDOWN}")
				Sleep (200)
				Send ("n")
				Sleep (200)
				Send ("{CTRLUP}")
				Sleep (2000)
				_DronAtack()
				$xxx3=0
			EndIf
			Sleep (50)
		Else
			$xxx3=0
			Send ("{CTRLUP}")
			Send ("{F1}")
			Sleep (50)
			_DronAtack()
		EndIf
		
		If _ActivModul(2)=1 Then
			Sleep (50)
		Else
			Send ("{CTRLUP}")
			Send ("{F2}")
			Sleep (50)
		EndIf
		
		If _ActivModul(3)=1 Then
			Sleep (50)
		Else
			Send ("{CTRLUP}")
			Send ("{F3}")
			Sleep (50)
		EndIf
		
		If _StatusDron()=1 Then
			_DronAtack()
			Sleep(60)
			ToolTip ("Направляю дронов убивать", 40, 30)
		ElseIf _StatusDron()=3 Then
			Sleep(400)
			MouseClick ( "left", $CoordDrXx+100, $CoordDrYy+46,1,18)
			Sleep (2000)
			MouseClick ( "left", $CoordDrXx+95, $CoordDrYy+26, 1,20)
			Sleep (1300)
		ElseIf _StatusDron()=4 Then
			Sleep(400)
			MouseClick ( "right", $CoordDrXx+110, $CoordDrYy+65,1,18)
			Sleep (2000)
			MouseClick ( "left", $CoordDrXx+160, $CoordDrYy+69, 1,20)
			Sleep (1300)
		ElseIf _StatusDron()=5 Then
			Sleep (2000)
			MouseClick ( "left", $CoordDrXx+107, $CoordDrYy+83, 1,20)
			Sleep (1300)
		EndIf
	EndIf
EndFunc

		


Func _LocCeley()
$xxx5=_kolnpc()
If $xxx5>5 Then $xxx5=6
Send ("{CTRLDOWN}")
For $i=1 to $xxx5
Sleep (90)
MouseClick ("left", $CoordOverX+63,$CoordOverY+60+19*($i-1), 1,15)
Sleep (700)
Next
Send ("{CTRLUP}")
MouseClick ("left", $CoordSIX-76-3, $CoordSIY+72-3, 1,15)
EndFunc


Func _kolceley() ; количество залоченных целей
$xxx1=0
For $i=1 to 6
If _LockCeli($i)=1 Then
	$xxx1=$xxx1+1
EndIf
Next
Return $xxx1
EndFunc

Func _kolnpc() ; количество целей в овервью
$xxx2=0
Send ("{CTRLDOWN}")
For $i=0 to 15
If _OverNPC($i)=1 Then
	$xxx2=$xxx2+1
EndIf
Next
Send ("{CTRLUP}")
Return $xxx2
EndFunc

Func _ActivModul($nmod)
$nmod=$nmod-1
$xxx=0
For $i=1 to 3
PixelSearch ($CoordHudX+43+51*$nmod, $CoordHudY-76, $CoordHudX+43+51*$nmod, $CoordHudY-76, $ColBlack, $ColLocSheid)
If @error Then
	$xxx=$xxx+1
	sleep (150)
Else
	Sleep(150)
EndIf
Next
If $xxx>0 Then
	Return 1
Else
	Return 0
EndIf

EndFunc


Func _DronAtack()
	Send ("{CTRLDOWN}")
	Sleep (200)
	Send ("m")
	Sleep (200)
	Send ("{CTRLUP}")
EndFunc


Func _warpPos()
Sleep (500)
MouseClick ("left",$CoordGMX+2,$CoordGMY+3,1,15)
Sleep (2250)
MouseClick ("left",$CoordGMX+100,$CoordGMY+93,1,15)
Sleep (2250)
MouseClick ("left",$CoordGMX+188,$CoordGMY+93,1,15)
Sleep (2250)
EndFunc

Func _warpSpot()
Sleep (500)
MouseClick ("left",$CoordGMX+2,$CoordGMY+3,1,15)
Sleep (2250)
MouseClick ("left",$CoordGMX+100,$CoordGMY+93+16,1,15)
Sleep (2250)
MouseClick ("left",$CoordGMX+188,$CoordGMY+93+16,1,15)
Sleep (2250)
EndFunc

Func _StatusDron(); если найден зеленый цвет - значит 1, иначе 0, красный цвет дронов - 2, свернуты папки дронов -3, развернуты папки дронов-4, 5- свернуто только список дронов
PixelSearch ($CoordDrX-171, $CoordDrY+130, $CoordDrX-107, $CoordDrY+330, $ColDronGreen, 50)
If Not @error Then
	$xxx=1
Else
	PixelSearch ($CoordDrX-171, $CoordDrY+130, $CoordDrX-107, $CoordDrY+330, $ColDronRed, 50)
	If Not @error Then
		$xxx=2
		Else
		$xxx=0
	EndIf
EndIf

If $xxx=0 Then
PixelSearch ($CoordDrXx+21, $CoordDrYy+43, $CoordDrXx+28, $CoordDrYy+48, $ColDronBlue, 50)
	If Not @error Then
		$xxx=3
		Else
		PixelSearch ($CoordDrXx+21+17, $CoordDrYy+43+19, $CoordDrXx+28+17, $CoordDrYy+48+19, $ColDronBlue, 50)
	If Not @error Then
		$xxx=4
	Else
	PixelSearch ($CoordDrXx+21+17, $CoordDrYy+43+38, $CoordDrXx+28+17, $CoordDrYy+48+38, $ColDronBlue, 50)
	If Not @error Then
		$xxx=5
		EndIf
	EndIf
	EndIf	
EndIf

Return $xxx
EndFunc


Func _LockCeli($NCeli); если цель есть - 1 иначе 0
$NCeli=$NCeli-1
PixelSearch ($CoordSIX-76-3-98*$NCeli, $CoordSIY+72-3, $CoordSIX-76-98*$NCeli, $CoordSIY+72, $ColBlack, $ColLocSheid*2)
If Not @error Then
	Return 0
Else
	Return 1
EndIf
EndFunc

Func _OverNPC($ONPC)
$ONPC=$ONPC-1
PixelSearch ($CoordOverX-2, $CoordOverY+54+19*$ONPC, $CoordOverX+15, $CoordOverY+67+19*$ONPC, $ColNPC, $ColLocSheid*3)
If Not @error Then
	Return 1
Else
	Return 0
EndIf
EndFunc


Func _LocalScan(); функция проверки локала, возвращает 0 - нет опасности, 1 - найдены минуса или нейтралы
$xxx=0
PixelSearch ($CoordLocX-19, $CoordLocY+48, $CoordLocX-7, $CoordLocY+48+410, $ColLocNeut, $ColLocSheid)
If NOT @error Then
	$xxx=$xxx+1
EndIf
PixelSearch ($CoordLocX-19, $CoordLocY+48, $CoordLocX-7, $CoordLocY+48+410, $ColLocOffwar, $ColLocSheid)
If NOT @error Then
	$xxx=$xxx+1
EndIf
PixelSearch ($CoordLocX-19, $CoordLocY+48, $CoordLocX-7, $CoordLocY+48+410, $ColLocRed, $ColLocSheid)
If NOT @error Then
	$xxx=$xxx+1
EndIf
PixelSearch ($CoordLocX-19, $CoordLocY+48, $CoordLocX-7, $CoordLocY+48+410, $ColLocLRed, $ColLocSheid)
If NOT @error Then
	$xxx=$xxx+1
EndIf
If $xxx=0 Then
	Return 0
Else 
	Return 1
	EndIf
EndFunc




Func TogglePause($np)
    $Paused = NOT $Paused
    While $Paused
        sleep(1000)
		Select
			Case $np=2
		ToolTip('Нейтралы в системе. Ждемс ...',0,0)			
Case $np=3
		ToolTip('Целей больше нет - ушел на спот',0,0)			
Case Else
		ToolTip('Скрипт поставлен на паузу',0,0)
WinGetState("EVE")
If Not @error Then
_Login()
EndIf
	EndSelect
	WEnd
     ToolTip("")
EndFunc



Func _Exit()
	Exit
EndFunc

Func _Login()
Sleep (3000)
WinActivate("EVE")	
WinWaitActive ("EVE")
Sleep (1200)
MouseClick ("left", 595, 735, 1, 10)
Sleep (2300)
Send ("1")
Sleep (200)
Send ("1")
Sleep (200)
Send ("1")
Sleep (200)
Send ("1")
Sleep (100)
Send ("1")
Sleep (100)
Send ("1")
Sleep (100)
Send ("1")
Sleep (100)
Send ("1")
Sleep (100)
Send ("1")
Sleep (100)
Send ("1")
Sleep (100)
Send ("1")
Sleep (3000)
MouseClick ("left", 635, 758,1,15)
Sleep (20000)
Send ("{ENTER}")
Sleep (20000)
Send ("{ENTER}")
Sleep (3500)
Send ("{ENTER}")
Sleep (10500)
Send ("{F10}")
Sleep (10000)
MouseClick ("left", 1187, 484, 1, 15)
Sleep (3000)
MouseClickDrag ("left", 760, 550, 599, 200, 22)
Sleep (1500)
MouseClickDrag ("left", 760, 550, 599, 200, 22)
Sleep (1500)
$xxx=0
For $i=1 to 3
PixelSearch ($CoordHudX+66, $CoordHudY-32, $CoordHudX+66, $CoordHudY-32, $ColBlack, $ColLocSheid)
If @error Then
	$xxx=$xxx+1
	sleep (150)
Else
	Sleep(150)
EndIf
Next
If $xxx=0 Then
	Sleep (300)
	Send ("{ALTDOWN}")
	Sleep (400)
	Send ("{F1}")
	Sleep (700)
	Send ("{F2}")
	Sleep (400)
	Send ("{F3}")
	Sleep (900)
	Send ("{F4}")
	Sleep (1000)
	Send ("{ALTUP}")
	Sleep (1500)
	
	
	Send ("{CTRLDOWN}")
	Sleep (400)
	Send ("{F4}")
	Sleep (700)
	Send ("{F5}")
	Sleep (1000)
	Send ("{CTRLUP}")
	Sleep (1500)
EndIf

Sleep (10000)
EndFunc


Будут вопросы - пишите в теме, но не факт что отвечу. Код писался на коленке чисто для второго компа на работе за которым регулярный прикляд был.
 

Jonik Silver

Знающий
Сообщения
19
Репутация
11
Продвинутый карибас сказал(а):
Не хочу создавать новую тему. Спрошу здесь. Белф ты случаем не искал какие нить переменные в памяти клиента, что бы скажем не только на графический интерфейс ориентироваться, но и из памяти какие либо данные вытягивать и обратно их в память загонять?
Скажем для скана это очень бы пригодилось бы, да и возможность индификации внутренних окон евы интересна.

Если кто в теме - присоединяйтесь к обсуждению.
Продвинутый карибас сказал(а):
Belfigor сказал(а):
Неа, память в еве мне не интересна
zzZ.png

А сами окна (локала, скана, карты) как то можно идентифицировать?

...
Есть еще план Б
[me=Jonik Silver]ищет инсталяционку артмонея[/me]
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
на офсайте не глядел? http://www.artmoney.ru/r_download_se.htm
91.gif
 
Автор
D

DJ_Tommy

Продвинутый
Сообщения
236
Репутация
57
Jonik Silver основной смысл этой затеи был вытаскивать из памяти или откуда то еще данные окон. Например скан локала делать не только графически, но и по никам искать и по статусам. А еще использовать при скане системы и считывать результаты не графически. Плюс ко всему достаточно широкая перспективая трейдерскрипта, основанного не на щелканьи мыши, а на данных из памяти .....
 
Верх