Что нового

Local Monitor Модуль

Belfigor

Модератор
Локальный модератор
Сообщения
3 551
Репутация
930
LocalMonitor v0.2
Код:
Opt("MustDeclareVars", 1)
Dim $ScanSade = 5 ;Уровень оттенка
Dim $LocalRightTopX = , $LocalRightTopY = , $ScanRangeLeftTopX = , $ScanRangeLeftTopY = , $ScanRangeRightBottomX = , $ScanRangeRightBottomY = ; координаты левого верхнего угла локала и области скана
Dim $Any = , $Neutral = , $Offwar = , $Socorp = , $Soal = ;etc... Цвета целей
 
While 1
    Scan($Neutral)
    Scan($Offwar)
    Scan($Any)
WEnd
 
Func Scan($Target)
    PixelSearch($ScanRangeLeftTopX, $ScanRangeLeftTopY, $ScanRangeRightBottomX, $ScanRangeRightBottomY, $Target, $ScanSade)
    If Not @error Then
        MsgBox(0, "Message", "Подтверждено наличие искомой цели.")
    EndIf
EndFunc


Для ленивых кому лень даже автоит скачать и запустить скрипт ниже прикреплен exe-шник локал монитора v0.3.
Распознает нейтралов и минусов и выводит вам сообщение как только увидит их в списке локала.
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3 551
Репутация
930
Re: Local Monitor

Local Monitor v0.3
Запускаем скрипт, наводим мышку на левый верхний угол будущей области поиска, жмем и отпускаем Alt тем самым создается первая координата области поиска, ведем к правому нижнему углу и снова жмем альт, скрипт настроил так что область поиска будет подсвечиваться в течении всего времени работы скрипта. и выглядит так:


Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIConstants.au3>
#Include <Misc.au3>
#include <GuiListView.au3>
#include <array.au3>
 
;~ Opt("MustDeclareVars", 1)
Dim $ScanSade = 5 ;Уровень оттенка
;~ Dim $LocalRightTopX = , $LocalRightTopY = , $ScanRangeLeftTopX = , $ScanRangeLeftTopY = , $ScanRangeRightBottomX = , $ScanRangeRightBottomY = ; координаты левого верхнего угла локала и области скана
Dim $Any = 0, $Neutral = 0x858585, $Offwar = 0, $Socorp = 0, $Soal = 0;etc... Цвета целей
Dim $positions[4]
 
Draw_Area()
While 1
Scan($Neutral)
;~ Scan($Offwar)
;~ Scan($Any)
WEnd
Func Draw_Area()
    Do
        $pos = MouseGetPos()
        ToolTip("Click Alt to set." & @CRLF & "top: " & $pos[1] & " left: " & $pos[0])
        Sleep(25)
    Until _IsPressed(12)
    ToolTip("")
    Local $ScanWidth = 1, $ScanHeight = 1
    $x = $pos[0]
    $y = $pos[1]
    $GUI = GUICreate("", 0, 0, $x, $y, $WS_POPUP)
    $Top = GUICreate("Top Line", $ScanWidth, 2, $x, $y, $WS_POPUP, -1, $GUI)
    GUISetBkColor(0xFFffff)
    GUISetState()
    $Left = GUICreate("Left Line", 2, $ScanHeight, $x, $y, $WS_POPUP, -1, $GUI)
    GUISetBkColor(0xFFffff)
    GUISetState()
    $Right = GUICreate("Right Line", 2, $ScanHeight, $x + $ScanWidth - 2, $y, $WS_POPUP, -1, $GUI)
    GUISetBkColor(0xFFffff)
    GUISetState()
    $Bottom = GUICreate("Bottom Line", $ScanWidth, 2, $x, $y + $ScanHeight, $WS_POPUP, -1, $GUI)
    GUISetBkColor(0xFFffff)
    GUISetState()
    Sleep(800)
    Do
        $MousePos = MouseGetPos()
        ToolTip("Click Alt to set." & @CRLF & "bottom: " & $MousePos[1] - $y & " right: " & $MousePos[0] - $x)
        WinMove($Top, "", $x, $y, $ScanWidth, 1)
        WinMove($Left, "", $x, $y, 1, $ScanHeight)
        WinMove($Right, "", $x + $ScanWidth - 1, $y, 1, $ScanHeight)
        WinMove($Bottom, "", $x, $y + $ScanHeight, $ScanWidth, 1)
        If Not (($MousePos[0] - $x) <= 0) Then
            $ScanWidth = $MousePos[0] - $x + 1
        EndIf
        If Not (($MousePos[1] - $y) <= 0) Then
            $ScanHeight = $MousePos[1] - $y - 1
        EndIf
    Until _IsPressed(12)
    WinSetOnTop($Top,"",1)
    WinSetOnTop($Left,"",1)
    WinSetOnTop($Right,"",1)
    WinSetOnTop($Bottom,"",1)
    $positions[0] = $y
    $positions[1] = $x
    $positions[2] = $MousePos[0] ; - $y
    $positions[3] = $MousePos[1] ; - $x
    ToolTip("")
    Return $positions
EndFunc
 
Func Scan($Target)
    PixelSearch($positions[1], $positions[0], $positions[2], $positions[3], $Target, $ScanSade)
    If not @error Then
        MsgBox(0, "Message", "Подтверждено наличие искомой цели.")
    EndIf
EndFunc
 

Archy26

EVE DEVE eve bot development group
Сообщения
60
Репутация
42
Re: Local Monitor

Ну, вот собственно, один из наших ранних вариантов скана локала, основаного на концепции "теории относительности".
Код:
Func _WinGetLocalStatus()
	$LoclTmp = PixelSearch(300, 64, 370, 68, 0xFFFFFF, 1) ; ищем белый пиксель "треугольничка над кареткой"
	If @error <> 1 Then	; если нашли - задаём координаты скана локала
		$ScanRangeLeftTopX = $LoclTmp[0] - 19
		$ScanRangeLeftTopY = $LoclTmp[1] + 8
		$ScanRangeRightBottomX = $LoclTmp[0] - 19
	Else ; если не нашли - ищем белый левый нижний пиксель элемента управления чатом (у меня всегда стоит "only text show" от него и координаты)
		$LoclTmp = PixelSearch(220, 54, 270, 56, 0xF0F0F0, 1)
		If @error <> 1 Then ; если нашли - задаём координаты скана локала, а если нет - то там останется довольно широкая область из глобальных настроек.
			$ScanRangeLeftTopX = $LoclTmp[0] + 73
			$ScanRangeLeftTopY = $LoclTmp[1] + 27
			$ScanRangeRightBottomX = $LoclTmp[0] + 73
		EndIf
	EndIf
	PixelSearch($ScanRangeLeftTopX, $ScanRangeLeftTopY, $ScanRangeRightBottomX, $ScanRangeRightBottomY, $Neutral, $ScanSade, 2)
	If Not @error Then
		Return 1;"Palevo"
	EndIf
	PixelSearch($ScanRangeLeftTopX, $ScanRangeLeftTopY, $ScanRangeRightBottomX, $ScanRangeRightBottomY, $OrangeMinus, $ScanSade, 2)
	If Not @error Then
		Return 1;"Palevo"
	EndIf
	PixelSearch($ScanRangeLeftTopX, $ScanRangeLeftTopY, $ScanRangeRightBottomX, $ScanRangeRightBottomY, $RedMinus, $ScanSade, 2)
	If Not @error Then
		Return 1;"Palevo"
	EndIf
	Return 0;"Normalno"
EndFunc   ;==>_WinGetLocalStatus

Func _WinGetOverviewStatus()
 

dozzz33

ГаЛюЦиНоГеНнЫй ГрЫп
Сообщения
23
Репутация
2
Re: Local Monitor

народ а как вы решили проблему со скролом... ну когда много в локал набивается?
иконки на 10 пикселей уезжают
проверяете обе позиции или как то еще?
 

hikki

Продвинутый
Сообщения
233
Репутация
99
Re: Local Monitor

Когда много локала это плохо, это или палево, или какойто кта у тебя влокале, тоесть сидим и не отсвечиваем. При правильном выборе области сканирования в нее попадает полоса прокрутки списка локала, при сильном увеличении локала, цвет элементов полосы прокрутки совпадает с цветом нейтралов...
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3 551
Репутация
930
Re: Local Monitor

dozzz33 сказал(а):
народ а как вы решили проблему со скролом... ну когда много в локал набивается?
иконки на 10 пикселей уезжают
проверяете обе позиции или как то еще?
Одним постом выше Арчибальд выложил сканлокал который работает отталкиваясь от того есть скролл или нету. Код бы сперва прочитал хотя бы :smile:
 

dozzz33

ГаЛюЦиНоГеНнЫй ГрЫп
Сообщения
23
Репутация
2
Re: Local Monitor

Belfigor сказал(а):
dozzz33 сказал(а):
народ а как вы решили проблему со скролом... ну когда много в локал набивается?
иконки на 10 пикселей уезжают
проверяете обе позиции или как то еще?
Одним постом выше Арчибальд выложил сканлокал который работает отталкиваясь от того есть скролл или нету. Код бы сперва прочитал хотя бы :smile:
блин моя тупая)))
не мог понять что за треугольник над кареткой))) только вкурил)
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 156
Репутация
2 329
Re: Local Monitor

Предупреждение Почему тема названа по английский? И что более странное, так это то что назвал её модератор раздела :mad:
 

DJ_Tommy

Продвинутый
Сообщения
234
Репутация
57
Re: Local Monitor

CreatoR сказал(а):
[warn]Почему тема названа по английский? И что более странное, так это то что назвал её модератор раздела :mad:[/warn]
Я не модератор, но с точки зрения игры - это правильное название, ибо игра англоязычная и большинство клиентов англоязычные и Local Monitor - это 100% правильное название ИМХО. И никто не путается, все кто в эту игру игру играют прекрасно понимают сразу все.
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3 551
Репутация
930
Re: Local Monitor

CreatoR сказал(а):
Предупреждение Почему тема названа по английский? И что более странное, так это то что назвал её модератор раздела :mad:
Тема названа по английски в виду специфики интерфейса игры, более лаконичного названия чем Local Monitor ей ну просто не придумать. Ну если уж она так режет глаз остальным слово Monitor можно на Монитор заменить, но разницы это никакой не сделает мне кажется :smile:
Local - это один из чат-каналов игры, другого названия не имеет, точно так же как и темы названные по английски в честь других элементов интерфейса игры. Да и у нас все темы относящиеся к релизам конкретных модулей названы их именами...
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8 156
Репутация
2 329
Re: Local Monitor

Belfigor [?]
Тема названа по английски в виду специфики интерфейса игры
Ну тогда и простые программы нужно называть просто своим именем, например почему тема «Koda Form Designer - Визуализация работы с GUI - аналог Visual Basic.» названа именно так? почему не просто «Koda Form Designer»? тоже всем известный инструмент...
Эту тему как минимум можно было бы назвать так: «Бот Local Monitor».

DJ_Tommy [?]
это 100% правильное название ИМХО. И никто не путается, все кто в эту игру игру играют прекрасно понимают сразу все.
Вы ребята забываете, этот форум не крутится вокруг раздела ботов ;). Если пользователь будет искать нечто связанное с монитором (с “экраном”, а не “мониторингом” - надеюсь улавливаете различие :smile:), то возможно наткнётся на эту тему, и не поймёт связи и/или будет задавать в этой теме несвязанные с ней вопросы.
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3 551
Репутация
930
Re: Local Monitor

Ну сам по себе это не бот, просто модуль, я добавлю к названию указание на это.
 

FKO

Чайник
Сообщения
2
Репутация
0
Подскажите как можно сделать рамку про рисованную по заданным координатам, что бы уже под эту рамку настраивать окна?
 
Автор
B

Belfigor

Модератор
Локальный модератор
Сообщения
3 551
Репутация
930
В этой теме в исходняках уже все есть, сядь открой хелп и разберись. Даже тут, тех кто задает тупые вопросы, даже не удосужившись приложить и долю старания чтобы что-то сделать, не любят
 

DJ_Tommy

Продвинутый
Сообщения
234
Репутация
57
А я если честно и вопроса не понял ....
 

Archy26

EVE DEVE eve bot development group
Сообщения
60
Репутация
42
Два последних сообщения удалены.
причина: флуд
участникам флуда первое предупреждение
 

hariton

Чайник
Сообщения
8
Репутация
0
Либо я что-то недопонимаю, либо я прав и тогда выходит что я всегда есть один нейтрал в локале, поэтому надо вычитать 1 из количества нейтралов :smile:
 

hikki

Продвинутый
Сообщения
233
Репутация
99
Недопонимаеш, нейтралов ищет по цвету значка = на серо-белом фоне, нет значка нет нейтрала. На самого себя нет значка, значит локалмонитор просто не обращает внимания.
 

hariton

Чайник
Сообщения
8
Репутация
0
Ясно, я просто год в игру не играл, вот вернулся... Но я помню что когда-то нейтралы помечались серым значком = в локале, а сейчас у меня в локале нейтралы вообще без значка и я ищу в настройках как сделать чтобы был значек серый, а найти не могу... :(
 

hikki

Продвинутый
Сообщения
233
Репутация
99
это делается в настройках овервью, не совсем логично
 
Верх