Что нового

Нужна макро-петля с учётом variables PixelSearch.

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
Версия AutoIt: 3.3.6.1

Описание: Надо,чтобы включался нажатием кноки,и выключался повторным нажатием той же кнопки.

Примечания: Для онлайн игры "Rift",класс Roque,но не бот.Просто несколько выстрелов (4),один лечение питомца.Loop

Как хотелось,чтобы работал:стартует с нажатием кнопки <z>.Проверяет наличие процесса Rift.
Код:
func _Process2Win($pid)
    if isstring($pid) then $pid = processexists($pid)
    if $pid = 0 then return -1
    $list = WinList()
    for $i = 1 to $list[0][0]
        if $list[$i][0] <> "" AND BitAnd(WinGetState($list[$i][1]),2) then ;попробую наити название процесса Rift,и привязать.
            $wpid = WinGetProcess($list[$i][0])
            if $wpid = $pid then return $list[$i][0]
        EndIf
    next
    return -1
endfunc

Сам макро:
нажатие кнопки <CTRL-6>,один раз
Код:
sleep 500
нажатие кнопки <4>,один раз
Код:
sleep 500
,
Код:
While 1 = 1
Send ("4")
Sleep (500) ;Так,что-ли?
Нужен loop использования кнопки <1>,5 раз,
Код:
sleep 500
потом-пока PixelSearch дает другой результат кроме hex 000000.(по моему,черный цвет).Может понадоватся от 5 до 10 разов.Тот variable,зделат их не умею.

Когда цвет не черный,исползует кнопку <2>,один раз.Перепроверяет цвет.
Код:
sleep 500
Если то сих пор цвет не черный,исползует кнопку <3>,один раз.
Код:
sleep 2000
.Исползует кнопку <8>,один раз.

Конец loop,петляет,пока не нажали кнопку <z> второй раз.

Увы,как сделат правилный поряадок кнопок,с variables,скорее всего,сам не умею...
 
Автор
Нублет

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
Re: Нужен макро-петля с учётом variables PixelSearch.

Сейчас вспомнил,кнопку <1> можно смело погнат БЕЗ проверки пикслей 5 раз,Впольне реально 6 разов,ибо игра считает miss,block,parry недочётом,и комбо бар очков не получает.С 6 раза один miss итд впольне вероятен.

Наити цвет пикселей и их област,скорее смогу по скриптам.Если Rift не слишком сильно и хитро защишен,и наврёт мне MouseGetPos и PixelgetColor..
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Re: Нужен макро-петля с учётом variables PixelSearch.

Этот "набросок" я написал из того что я понял:
Код:
HotKeySet('z', 'Loop')

While 1
	Sleep(100)
WEnd

Func Loop()
	If ProcessExists('rift.exe') Then
		Send('^6') ;нажатие кнопки <CTRL-6>,один раз
		Sleep(500)
		Send('4') ;нажатие кнопки <4>,один раз
		Sleep(500)
		Send('{1 5}') ;нажатие кнопки 1 пять раз
		Sleep(500)
		Send('2') ;нажатие кнопки <2>,один раз
		Sleep(500)
		If not '0x' & Hex(PixelGetColor('координаты'), 6) = '0x000000' Then Send('3') ;Если цвет не чёрный то нажимаем кнопку 3
		Sleep(2000)
		Send('8') ;нажатие кнопки <8>,один раз
	EndIf
EndFunc
 
Автор
Нублет

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
Re: Нужен макро-петля с учётом variables PixelSearch.

Премного благодарен,но,ест вопросы.Как вписат
Код:
 If not '0x' & Hex(PixelGetColor('координаты'), 6) = '0x000000' Then Send('2') ;Если цвет не чёрный то нажимаем кнопку 2
после
Код:
 Send('{1 5}') ;нажатие кнопки 1 пять раз
.

То ест,сперва просто гоняет <1> 5 раз,потом начинает сверят пикселей на неимение черного в последней верхней кружочке комбо очков цели/врага,и продолжает <1> с разрывом 500 (менят умею),пока получает не черный цвет в наблюдаемой точке.Уже ПОСЛЕ етого,исползует <2> один раз,если не успещно(Черный цвет НЕ ПОЯВИЛСЯ ЗАНОГО),исползует <3>.Такой вот loop.

<8> вообщето лечение ручного кабана-танка в конце макро.(Чтобы танк не сдох,и аггро на мне,и привет кладбище...Забываю иногда)


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

А финишеры <2> и <3>,потому-что финишер может промахнутся,и надо исползоват запасной (с casting time 2 sec).


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

Правильно?
Код:
HotKeySet('z', 'Loop')

While 1
    Sleep(100)
WEnd

Func Loop()
    If ProcessExists('rift.exe') Then
        Send('^6') ;нажатие кнопки <CTRL-6>,один раз
        Sleep(100)
        Send('4') ;нажатие кнопки <4>,один раз
        Sleep(1500)
        Send('{1 4}') ;нажатие кнопки 1  4 раза,ибо скилл <4> дает 2 комбо очков ;Будет ли sleep(500) между каждым нажатием <1>?
        Sleep(500)
        If '0x' & Hex(PixelGetColor('519,21'), 6) = '0x000000' Then Send('1') ;If Not...а обратное If?Если цвет чёрный то нажимаем кнопку 1 ;Один или два или ИТД <1> был missed,parried,block.Нужно 5 попаданий
        Sleep(500)
        If not '0x' & Hex(PixelGetColor('519,21'), 6) = '0x000000' Then Send('2') ;Если цвет не чёрный то нажимаем кнопку 2 ;Имею 5 удачных попаданий с стартер скилл <1>.Можно попрпбоват Финищер <2>,ибо будет максимим дмг с 5-ти комбо очков...
        Sleep(500)
        If not '0x' & Hex(PixelGetColor('519,21'), 6) = '0x000000' Then Send('3') ;Если цвет не чёрный то нажимаем кнопку ;Финищер <2> не попал,был блокирован,отбит итд...(Комбо очки обнулируются ВСЕ при попаданий навыком типа "Финищер").Попробую финищер <3>,ибо <2> имеет cooldown,и не готов
        Sleep(2000)
        If not '0x' & Hex(PixelGetColor('координаты'), 6) = '0xFEFEFE' Then Send('8') ;Если цвет не зеленый то нажимаем кнопку 8
        ; Send('8') ;нажатие кнопки <8>,один раз ;Поставлю лечение кабана на авто,ибо имеется healthbar,с цветами,макро в конце наблюдает,например цвет пикселей на 80 % и долечивает.
    EndIf
EndFunc
 
Автор
Нублет

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
Re: Нужен макро-петля с учётом variables PixelSearch.

Error incorrect parameters in function call...блин
 

axlwor

Скриптер
Сообщения
657
Репутация
147
Re: Нужен макро-петля с учётом variables PixelSearch.

все правильно. ошибка.
открой хелп по функции pixelsearch. там все написано
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Re: Нужен макро-петля с учётом variables PixelSearch.

Кто-нибудь, забаньте тред стартера, вы вообще то как он назвал тему читали? "Нужен макро-петля".
"Все татары кроме я, они в окно а я в дверя" да?
 
Автор
Нублет

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
Ага,чую "йлиту" за версту...Вам судар лучще будет,ежели я всё на англике?Нужно macro-loop,с variables????
(Как смог,24 года с средней школы,так и написал.Сами сколькими языками пашете...по иностранным форумам лазит?Я вот в 4-ти языках могу на форумах....И начхат мне на грамматические ошибки на не родных,мне как-бы родной не забыть... :smile:
Ну смотрел я,вроде нужно данные про квадрат и определят shade-variation.Что делает функция hwnd,мне не понятно.

А,между делом,запрос был в форуме заказы,я первом делом подумал,что в ответе был код котовый к использованию...

И странные я получал ответы в Rifte на запрос PixelGetColor.Вроде бы координаты мышки получаю правильные,(перепроверил с скиптом AutoHotKey:
Код:
;----------------------------------------------------------


SetTitleMatchMode,2

CoordMode, Mouse, Relative
CoordMode, Pixel, Relative
CoordMode, Tooltip,Relative

StdSleepDelay = 200
vFileName = SnapLocs.txt

;Grab the name of the window you want to make the keybuttonlocs file from
ToolTip, Click on your game window and press the Right Mouse Button bar to grab the window title.
SoundBeep
KeyWait, RButton, D 
ToolTip 
KeyWait, RButton, U
WinGet, vWinID,ID,A
MsgBox,,,The window you selected was %vWinID%,2
WinGetTitle, vWinName, ahk_id %vWinID%
MsgBox,,,The window you selected was %vWinName%,2

txt = WindowName=%vWinName%`n
FileAppend,%txt%,%vFileName%

WinActivate, %vWinName%
WinWaitActive, %vWinName%

MsgBox,,, The Locations you grab will be saved in %WorkingDir%\%vFileName%,3

;----------------------------------------------------------
;store positions
;----------------------------------------------------------
Loop
{   
   ToolTip, To Store a screen location`,`n  1. Activate the desired window`n  2. Position the mouse`n  3. Press the Right mouse button.`n`nPress ESC to end location collection.
   SoundBeep
   keyWait,RButton,D
   keyWait,RButton,U
   ToolTip
   WinActivate, %vWinName%
   WinWaitActive, %vWinName%
   Sleep,%StdSleepDelay%
   MouseGetPos,curx,cury
   Sleep,%StdSleepDelay%
   PixelGetColor,thiscolor,%curx%,%cury%,Alt
   sleep %stdSleepDelay%
   txt = %curx%`,%cury%`,%thiscolor%`n
   fileAppend,%txt%,%vFileName%
}   

GuiClose:
FileAppend,<EndCapture>`n,%vFileName%
Run %SystemRoot%\system32\notepad.exe %A_WorkingDir%\%vFileName%
Done:
ExitApp

Esc::
goto GuiClose

;==========================================================
)

Использовал все варианты-alt,slow,RGB.

Координаты пикелей мне нужных имею с MouseGetPos....блин,перепроверил один другой скрипт,действительно
Код:
$coor = PixelSearch( lt, rt, lb, rb, col, dif, sk )
While @error = 0
(Movement/attack Code)
$coor = PixelSearch( tlx, tly, brx, bry, col, dif, sk )


А зачем мне дали то,с PixelGetColor???????
 
Автор
Нублет

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
Ладно,состряпaю что-нибудь,выложу,пусть кто-то умеющий выправит код и убирает грабли. :wacko:

Всё это в конце концов туфта,и суета сует,ибо RIFT мне везде выдаёт hex 000000,якобы черный...(но уж точно нет).Все таки защита,или дрова NVidia?

Последовал советам на других форумах,дает правильный результат на цвет пикселей в Windowed mode
 
Автор
Нублет

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
Вагон граблей?
Код:
Global $Runner

HotKeySet('z',"start")
HotKeySet('z',"stop")

While 1
	Sleep(750)
WEnd

; ------ Functions---------

Func start ()
If ProcessExists('rift.exe') Then
$Runner = Not $Runner

While $Runner
	Sleep(500)
	Send('^6')
	Sleep(500)
	Send('4')
	Sleep(2500)
	Send('{1 4}')
	Sleep(750)
	$coor = Pixelsearch( 560, 64, 562, 63, 0x000000, 2, 2 ) ;По идее:смотрит пиксель-черный-5 успешных выстрелов не набраны,продолжает выстрел <1>,пока цёрный цвет не изменяется..
	While @error = 0
    Send('1')
	Sleep(750)
	$coor = Pixelsearch( 560, 64, 562, 63, 0x000000, 2, 2 ) ;По идее:сделает финищ выстрел <2>,проверяет на черный цвет,если да-Использует <5> petheal.(Если не чёрный-Финищер <2> НЕ попал,использует финишер <3>,sleep 2500 (ИБО финишер <3> casting time 2000+global skill cs 750)и <5> petheal.
	While @error = 1
	Send('2')
	$coor = Pixelsearch( 560, 64, 562, 63, 0x000000, 2, 2 )
	While @error = 1
	Send('3')
	Sleep(2500)
	Send('5')
WEnd
EndFunc  ;==>start

Func stop() ;;Будет ли повторятся до выключения клавищей <z>?
	Exit
	EndFunc  ;==>stop
 
Автор
Нублет

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
Ощибка в коде ,линия 41...Как исправит?Да и сам код наверное курам насмех....
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Нублет
Раз тема в рубрике "Стол заказов".
Может тех. задание дашь, разъяшнишь.
Чес, слово, - очень трудно понять.
Ну хоть как-то так - понятно, примерно расскажи, и тебе помогут.
К примеру:
Надо назначить горячие клавиши
на:
-старт функционала скрипита,
-паузу и
-выход.
Скрипт должен (это я так примерно подразумеваю) выполнять:
-проверить, существует ли процесс Rift.exe
-если нет, - тогда сообщить и выйти
-иначе (существует) - выполнить нажатие Ctrl+6 1 раз
пауза в 500
-############## почти все одинаково
Проверить в заданных координатах наличие черного цвета
Если нет его, тогда нажать на (2) 1 раз
пауза 500
и т.п.

Вот
 
Автор
Нублет

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
EndIf...может быт,...Wend?а где?

BTW...пишу вот етимhttp://winrus.com/screen_e.htm,ибо клава скандинавский G15v1,Как я блин мучаюсь копи-пастит,туда-сюда.....

Yuriy впольне правильно понял.
Сам не знаю,где теме лучще быт,в разделе заказы или игровые боты,вроде-бы не бот а (looping macro script)(а как это правильно по русский?Конечно,я не уверен,что это технический правилный термин и на английском....)

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

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Нублет
Просто уточни тех задание
в подробном понятном виде.
Если, считаешь, что я почти правильно
понял, какой алгоритм тебе нужен, скорее всего,
я помогу тебе.
 
Верх