Что нового

Нужен повторяющийся скрипт.

Нублет

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

Описание: Нужен скрипт с прикрепленными клавищами для старт,пауза,стоп....с простыми нажатиями прикрепленных клавищ,с заданными паузами между них,и с последующими нажатиями кнопок,завищимых от переменных (проверка на наличие цветов в заданных координатах)....повторяющийся до нажатия паузы или стоп.

Примечания:Не умею сам работат с переменными,максимум могу наити цвет да координаты мышки,изменят время между нажатиями,добавит простое,не звязанное к переменному нажатие клавищи.

Надо назначить горячие клавиши
на:
-старт функционала скрипта,
-паузу
-выход. ;Когда пауза-стоп,если не слишком сложно сделат,чтобы стартовал снова с начала.

Скрипт должен выполнять:
-проверить, существует ли процесс Rift.exe
-если нет, - тогда выйти
-иначе (существует) - выполнить нажатие <Ctrl+6> 1 раз-
-выполнить нажатие <5> 1 раз-
-перерыв 2750-
-выполнить нажатие <1> 4 раза с перерывом 750 между каждым нажатием -
-Проверить в заданных координатах наличие черного цвета-
-перерыв 750-
-если есть, - тогда выполнить нажатие <1> 1 раз- ;В принципе,нужно чередоват исползование клавищи <1> (с перерывом меж нажатиями 750)с проверкой на черный цвет,до тех пор,пока проверка дает:черный цвет в заданной очке осутсвует.

-перерыв 750-
-иначе (отсутствует) - выполнить нажатие <2> 1 раз-
-перерыв 750-
-Проверить в заданных координатах наличие черного цвета--если отсутствует, - тогда выполнить нажатие <3> 1 раз-
-перерыв 2750-
-Проверить в заданных координатах наличие зеленого цвета--если отсутствует, - тогда выполнить нажатие <6> 1 раз-
-перерыв 750-
-Проверить в заданных координатах наличие черного цвета--если отсутствует, - тогда выполнить нажатие <4> 1 раз-

;и тут все должно повторятся с начала,пока не нажали паузу или стоп.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
622
Re: Нужен повторяющий скрипт по мойм параметрам.

Нублет
если в общих словах, то тема должна называться так, чтобы лаконично описывать суть проблемы или задания. это если в общем, по форуму. касательно данного раздела стола заказов, то ко всему прочему, первое сообщение должно четко содержать тех задание. без каких либо общих соображений. а то скрипт по заданным параметрам смотрится смешно.
переименуй пож-та тему и сообщение. это не первый раз, и в дальнейшем будут применяться санкции, а тема либо закрыта или слита в раздел общения
 
Автор
Нублет

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
Яснее выражатся в теме заказа на кодировку скрипта,в заданных вами рамках,увы-не могу,(языковый барьер,и незнание терминологий программирования)....... :(
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Вот что получилось. Возможно правильно.
Только имя процесса, координаты и значение зеленого
цвета свои поставь.
Код:
Global $Paused
HotKeySet("z", "TogglePause") ;пауза/старт
HotKeySet("{ESC}", "Terminate") ;выход
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
If Not ProcessExists("notepad.exe") Then ;вместо notepad.exe - нужное имя процесса
	MsgBox(48, "Инфо", "Блокнот не запущен! - выход")
	Exit
EndIf
Send("^!6")
Sleep (100)
Send("5")
Sleep(2750)
Send("1")
Sleep(750)
Send("1")
Sleep(750)
Send("1")
Sleep(750)
Send("1")
Sleep(750)
PixelSend()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
While 1
    Sleep(100)
WEnd

Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
	PixelSend()
EndFunc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func PixelSend()
	While PixelGetColor( 500 , 500 ) = 0
		Send("1")
		Sleep(750)
	WEnd

	If PixelGetColor( 500 , 500 ) <> 0 Then
		Send("2")
		Sleep(750)
	EndIf

	If PixelGetColor( 500 , 500 ) <> 0 Then
		Send("3")
		Sleep(2750)
	EndIf

	If PixelGetColor( 500 , 500 ) <> 0 Then ;вместо о (черный) надо подставить числовое значение зеленого
		Send("6")
		Sleep(750)
	EndIf

	If PixelGetColor( 500 , 500 ) <> 0 Then
		Send("4")
		Sleep(750)
	EndIf

	PixelSend()

EndFunc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func Terminate()
    Exit 0
EndFunc

Если надо, код прокомментирую подробнее.
 
Автор
Нублет

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
Попробую запустит в игре,спасибо! :beer:
 
Автор
Нублет

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
-Проверить в заданных координатах наличие зеленого цвета--если отсутствует, - тогда выполнить нажатие <6> 1 раз---------------------------- надо менят на проверяет на присутствие черного (тёмносерого),если да то нажатие <6> 1 раз. ;графика размытый,вот что дал скрипт color.ahk:
Код:
;----------------------------------------------------------
; SnapShotter Utility
; Allows you to grab xy locations from the active window
; along with the color at that location. Saves the data to
; a text file for later use or editing.
; GirlGamer
;----------------------------------------------------------

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%,RGB
   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

;==========================================================

[info]WindowName=RIFT
557,65,0x000000 ;чёрный
560,64,0x000000
560,67,0x000000
558,67,0x000000
169,233,0x98C855 ;невероятный расброс
169,236,0x448C00 ;невероятный расброс
167,248,0x373968 ;невероятный расброс
167,233,0x9CC955 ;невероятный расброс
<EndCapture>
WindowName=RIFT
631,351,0x78AA17 ;невероятный расброс
628,350,0x9FCA53 ;невероятный расброс
628,350,0x9FCA53 ;невероятный расброс
633,350,0x98C653 ;невероятный расброс
631,349,0xADD773 ;невероятный расброс
626,348,0xADD773 ;невероятный расброс
630,345,0xA5CF7B ;невероятный расброс
625,346,0xA5D27E ;невероятный расброс
621,347,0xB7D97C ;невероятный расброс
625,347,0xA7D37B ;невероятный расброс
170,233,0x91C755 ;невероятный расброс
170,232,0xA2CD7E ;невероятный расброс
172,235,0x378200 ;невероятный расброс
170,233,0x90C554 ;невероятный расброс
<EndCapture>

[/info]

Пока откомментую линию - ; - скрипта на зеленый цвет,похоже там все цвета радуги (увеличил внутри игры UI 4 раза-прожилки,узоры итд.НО-ПУСТАЯ полоса жизни однотонный,черноватый.)


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

Я правильно ввёл координаты?
Код:
Global $Paused
HotKeySet("z", "TogglePause") ;?????/?????
HotKeySet("{ESC}", "Terminate") ;?????
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
If Not ProcessExists("rift.exe") Then ;?????? notepad.exe - ?????? ??? ????????
    MsgBox(48, "????", "??????? ?? ???????! - ?????")
    Exit
EndIf
Send("^!6")
Sleep (100)
Send("5")
Sleep(750)
Send("1")
Sleep(750)
Send("1")
Sleep(750)
Send("1")
Sleep(750)
Send("1")
Sleep(750)
PixelSend()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
While 1
    Sleep(100)
WEnd

Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
    PixelSend()
EndFunc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func PixelSend()
    While PixelGetColor( 560 , 64 ) = 0
        Send("1")
        Sleep(750)
    WEnd

    If PixelGetColor( 560 , 64 ) <> 0 Then
        Send("2")
        Sleep(750)
    EndIf

    If PixelGetColor( 560 , 64 ) <> 0 Then
        Send("3")
        Sleep(750)
    EndIf

    ; If PixelGetColor( 500 , 500 ) <> 0 Then ;?????? ? (??????) ???? ?????????? ???????? ???????? ????????
        Send("6")
        Sleep(750)
    ; EndIf

    If PixelGetColor( 560 , 64 ) <> 0 Then
        Send("4")
        Sleep(750)
    EndIf

    PixelSend()

EndFunc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func Terminate()
    Exit 0
EndFunc



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

Не идёт,как задумал.Несколько нажатий накладуются на друг-друга,в итоге комбо очки не набираются,и невероятный расход внутрииговой енергий . :(
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Что за игра?
Дайте ссылку на эту игру, пожалуйста.
 
Автор
Нублет

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
http://eu.riftgame.com/en/.Имеется трайал до уровня 15 (или 7 дней).Европейский сервер с русскими (shard)-Icewatch.2 антагонистских лагеря,я -The Guardians.условные pvp противники The Defiant.PvP на этом сервере только в матчах....

Клиент "весит много"...я правда на 40Мбит кабеле....



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

Почему всё затеял-но просто какая-то игра для маняков кликат,у меня правая рука устает (мышкой кликаю навыки)...Особенно клас Roque,других не знаю (набираются ли комбо-очки от 1 до 5-и).


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

Спам нажатия кнопки <6> ...одна причина перерасхода енергий.Это HoT (лечение в временном отрезке 8 секунд),я вручную чаще,чем раз в 20-30 сек не использую.Я вродебы ;вставил..... :shok:


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

Игнорирует переменные от наличия черного цвета на месте последнего комбо очка в иконке цели.Похоже исползует сразу...
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
qip - текстовое общение
Он же - мессенжер
TeamViewer - я управляю твоим ПК (ты видишь у себя мои манипуляции)
 
Автор
Нублет

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
Ну,на проверке в деле,не так уж и плохо.

Почемуто не удается правильно стартоват функцию нажатия <6>.
Мне помог бы следующий вариант:проверяет на наличие черного цвета в заданных координатах,если ДА-использует кнопку <6>.Если НЕТ-не делает ничего.
Либо же нажатие кнопки <6> в скрипте каждые 20 секунд.С УСЛОВИЕМ:МЕЖДУ КАЖДЫМ НАЖАТИЕМ кнопок в скрипте-минимум 1000.Даже если нажатие зависило от проверки переменной на наличие черных пикселей.

Скрипт после паузы,у меня встревает на нажатие <6>,почемуто.Лучще уж с начала после паузы. :scratch:

Код:
Global $Paused
HotKeySet("z", "TogglePause") ;?????/?????
HotKeySet("{ESC}", "Terminate") ;?????
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
If Not ProcessExists("rift.exe") Then ;?????? notepad.exe - ?????? ??? ????????
    MsgBox(48, "????", "??????? ?? ???????! - ?????")
    Exit
EndIf
Send("^!6")
Sleep (1000)
Send("5")
Sleep(2000)
Send("1")
Sleep(1000)
Send("1")
Sleep(1000)
Send("1")
Sleep(1000)
Send("1")
Sleep(1000)
PixelSend()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
While 1
    Sleep(1000)
WEnd

Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
    PixelSend()
EndFunc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func PixelSend()
    While PixelGetColor( 494 , 65 ) = 0
        Send("1")
        Sleep(1000)
    WEnd

    If PixelGetColor( 494 , 65 ) <> 0 Then
        Send("2")
        Sleep(1000)
    EndIf

    If PixelGetColor( 494 , 65 ) <> 0 Then
        Send("3")
        Sleep(1000)
    EndIf

    If PixelGetColor( 157 , 233 ) <> 0 Then ;?????? ? (??????) ???? ?????????? ???????? ???????? ????????
        Send("6")
        Sleep(1000)
    EndIf

    If PixelGetColor( 494 , 65 ) <> 0 Then
        Send("4")
        Sleep(1000)
    EndIf

    PixelSend()

EndFunc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func Terminate()
    Exit 0
EndFunc


Нынещний вариант.В принципе...возможен ли таймер на нажатие <6>,НИ В КОЕМ случае чаще,чем,скажем...20 секунд?Не смoтря даже на переменную от проверки на черный цвет.


Где можно найти варианты цветов?мне кажется,в случае с кнопкой <6>, я должен задавать в параметрах не совсем черный.Или же проверит на "Тёмные пиксели"....в диапазоне от тёмносерого то черного.

Код:
While 1
    Sleep(1000)
WEnd
Я изменял это с 100 на 1000.Может быт был не прав.Пожалуйста обязните кто-нибуд более подробнее,что 100 или 1000 паузят в конкретном скрипте?
-выполнить нажатие <5> 1 раз- Не используется,(casting time 2 sec),видимо остальный скрипт "наезжает",и етим отменяет,а очень нужное действие....
 
Автор
Нублет

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
В принципе,работающий (но хромает)скрипт у меня тепер имеется.Полироват ,я думаю,лучше умеют знатоки в другом разделе форума.

Личный низкий поклон и благодарност Yuriy!
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
282
Я так понял, не срабатывает это
Код:
If PixelGetColor( 157 , 233 ) <> 0 Then
        Send("6")
        Sleep(1000)
EndIf

0 - это черный цвет.
Замени на свой цвет (числовое значение)
Например, можно так его узнать
Код:
$VarColor = PixelGetColor( 157 , 233 )
MsgBox(64, "Color", $VarColor)

Или цвет по этим координатам, кроме черного, может быть любым?
Хотя, это
Код:
If PixelGetColor( 157 , 233 ) <> 0 Then

означает - Если цвет не черный, а любой другой, тогда выполнить нажатие
 
Автор
Нублет

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
Я окно любимчика увеличил 4 раза,такая возможность UI в Rift-е.Там ужас!Прожилки,радуги...наверное,сделали графику красивее,или антискрипт.НО-переменные на выстрелы <1>...получат 5 попаданий,и только потом <2> или <3> или <4> ПРЕКРАСНО соблюдаются!

Почему-то совсем не исползует <5> (А это (2 sec casting time)-выстрел,усиливает урон 15% на 25 секунд).Думаю,следующие нажатия "наезжают"...хотя,вроде не должны.

Сейчас исползую:
Код:
Global $Paused
HotKeySet("z", "TogglePause") ;?????/?????
HotKeySet("{ESC}", "Terminate") ;?????
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
If Not ProcessExists("rift.exe") Then ;?????? notepad.exe - ?????? ??? ????????
    MsgBox(48, "????", "??????? ?? ???????! - ?????")
    Exit
EndIf
Send("^!6")
Sleep (1000)
Send("5")
Sleep(2700)
Send("1")
Sleep(1000)
Send("1")
Sleep(1000)
Send("1")
Sleep(1000)
Send("1")
Sleep(1000)
PixelSend()
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
While 1
    Sleep(1000)
WEnd

Func TogglePause()
    $Paused = NOT $Paused
    While $Paused
        sleep(100)
        ToolTip('Script is "Paused"',0,0)
    WEnd
    ToolTip("")
    PixelSend()
EndFunc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func PixelSend()
    While PixelGetColor( 494 , 65 ) = 0
        Send("1")
        Sleep(1000)
    WEnd

    If PixelGetColor( 494 , 65 ) <> 0 Then
        Send("2")
        Sleep(1000)
    EndIf

    If PixelGetColor( 494 , 65 ) <> 0 Then
        Send("3")
        Sleep(1000)
    EndIf

    If PixelGetColor( 157 , 233 ) = 0 Then ;?????? ? (??????) ???? ?????????? ???????? ???????? ????????
        Send("6")
        Sleep(1000)
    EndIf

    If PixelGetColor( 494 , 65 ) <> 0 Then
        Send("4")
        Sleep(1000)
    EndIf

    PixelSend()

EndFunc
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Func Terminate()
    Exit 0
EndFunc


Пауза вещь очень нужный,но при нацелеваний на нового оппонента,скрипт ничего не делает,пока вручную не нажал <1> разок.

Перерасход енергий было от неверного цвета в параметре на кнопку <6>.Этот параметр легче будет переделат:ЕСЛИ 0 (черный),до использоват <6>,если другое-делать ничего.Буду брат пиксел с 75 % здоровия.Вроде логично.



У меня,простейшим способом из польноэкранного RIFT-а ,везде на запрос пришел ответ
Код:
decimal 0,hex 0x000000
.Погуглил я это как 0x000000 error....Среди прочего сказали использоват в окне,ибо D3D9 fullscreen-это дело directX итд...

Как это присобачит к переменному кнопки <6>
Код:
; Find a pure black pixel or a black pixel within 10 shades variations of pure black
$coord = PixelSearch( 0, 0, 20, 300, 0x000000, 10 )
If Not @error Then
 MsgBox(0, "X and Y are:", $coord[0] & "," & $coord[1])
EndIf
Чтобы искал от тёмно серого до черного.Залогинился,вот цветы с пустого (pet healthbar):[info]WindowName=RIFT
174,233,0x4C4E4C
171,233,0x494C49
168,231,0x414241
166,232,0x454645
173,233,0x4D4F4D
173,233,0x4D4F4D
173,232,0x4B4C4B
173,232,0x4B4C4B
170,232,0x484A48
174,231,0x464546
170,234,0x494A49
436,396,0x2B351D
<EndCapture>[/info]
Это сведётся к одному цвету в пойске?
 
Автор
Нублет

Нублет

Аватар випил ияда!
Сообщения
30
Репутация
0
Подымаю сново заказ,ибо Трион патчил клиент,и мой скрипт делает макс 2 нажатий,и всё.Попробовал макро на клаву Логитеха Г15,тоже не работает.

Нашель в Сети ето:http://www.ownedcore.com/forums/content/397-rift-integrates-warden-like-anti-cheat.html.

Думаю AutoIt.exe и все звязанное в черном списке/блокируются клиетном ?

Как обоити?
 

erofemax

Новичок
Сообщения
1
Репутация
0
[Мышь, клавиатура] Re: Нужен повторяющийся скрипт.

подскажите пожалуйста!!! я в этом деле совсем новичок. в интернете нет никакой информации как делать правильно скрипты и как делать чтобы они повторялись. подскажите что можно почитать чтобы узнать подробнее и попроще.
я собственно хотел сделать простенькую без прерывно повторяющуюся операцию. нажимать клавишу z(я) и клавишу 1 через 1 секунду. не знаю как скрипт работает, но предполагаю, что сначала надо перейти в активное окно в котором и будут использоваться данные клавиши. помогите пожалуйста мне с этим вопросом. заранее благодарен.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,320
erofemax,
Предупреждение За нарушение общих правил (пункт В.4):
Не лепите несколько вопросов разной тематики в один пост. По типу "Ребят, а ещё такой вопрос...". Каждый вопрос в свою тему.


С уважением, ваш Модератор.
 
Верх