PDA

X Для форума GoHa.Ru теперь доступен мобильный стиль. Подробнее...

Просмотр полной версии : макрос на реи


тенёк
03.08.2011, 21:45
у меня есть макрос который по кнопке q перебирает три рея забинденные на шифт+i шифт+o шифт+p
вот текст

i = 0

Keys = +{SC017}|+{SC018}|+{SC019}

StringSplit, Key, Keys, |
Return
SC010::

if (i++ = Key0)
i = 1
Send, % Key%i%

+SC010::

if (i++ = Key0)
i = 1
Send, % Key%i%

Return

я хз как он работает
но мне нужен такой же который будет использоваться по нажатию буквы E тоже три спела забинденные на шифт+j +k +l
кто разбирается может написать?

unikas
03.08.2011, 21:49
поменяй SC010 на SC012

тенёк
03.08.2011, 22:18
sc012 это E?
а остальные три кнопки на что менять?

Loft
03.08.2011, 22:58
Сообщение от Винь удалено.
оффтоп, флуд, хейтерство.

DDTxa
04.08.2011, 00:42
в АХК:
+ shif
^ ctrl
! alt
если написано +{SC017}
значит шифт+I
подбери что тебе удобно из биндов и пропиши по этой таблице
http://www.usnetizen.com/fix_capslock.php#figure1
не забудь что надо написать SC0 а потом уже код (например I - 17)

тенёк
04.08.2011, 01:58
спасибо полОчилось

тенёк
04.08.2011, 17:17
ддтеха что означает в этом скрипте следующее

i = 0

Keys = +{SC017}|+{SC018}|+{SC019}

StringSplit, Key, Keys, |
Return
SC010::

if (i++ = Key0)
i = 1
Send, % Key%i%

+SC010:: ПОЧЕМУ тут +? в скрипте ведь просто буква q используется без щифта

if (i++ = Key0)
i = 1
Send, % Key%i%

Return

просто пишу скрипт и теперь действия вешаю на шифт + Q соответсвенно 3 спела забиндены на теже буквы только с альтом
вот

хилки

i = 0

Keys = !{SC017}|!{SC018}|!{SC019}

StringSplit, Key, Keys, |
Return
+SC010::

if (i++ = Key0)
i = 1
Send, % Key%i%

+SC010::

if (i++ = Key0)
i = 1
Send, % Key%i%

Return

и при этом он у меня не запускается
выдает ошибку error at line 1. This line dos not contain a recognized action

Добавлено через 9 минут
даже если сделать так

хилки

i = 0

Keys = !{SC017}|!{SC018}|!{SC019}

StringSplit, Key, Keys, |
Return
+SC010::

if (i++ = Key0)
i = 1
Send, % Key%i%

Return

то все равно выдает ошибку
+ наверное что бы скрипт срабатывал если случайно зажат шифт?

Loft
05.08.2011, 19:07
Сообщение от Винь удалено.
Оффтоп, хейтерство, провокация.

Добавлено через 7 минут
Сообщение пользователя Винь удалено.
Спор/ругань с модератором.

Предупреждение.

Роман Владимирович
05.08.2011, 20:17
Макрос плохой

lil_caesar
06.08.2011, 12:04
а чем плох то?

hpz0_renamed_572564_19052020
06.08.2011, 13:17
приоритета нету и сенда кея по кулдауну.

но на 2/3 спелла - нормуль, обычный цайклер.

DDTxa
06.08.2011, 15:35
обычный цайклер.
ога

Роман Владимирович
06.08.2011, 17:07
ддтеха что означает в этом скрипте следующее


а чем плох то?

Вот они два красавца "Эдварт руки ножницы", "в голове моей опилки не бе-да...."

тенёк
07.08.2011, 14:31
скройся нищеброд

lil_caesar
09.08.2011, 14:06
я таким макросом уже полгода пользуюсь, не программист я и хочу играть, а не работать

DDTxa
09.08.2011, 14:20
...и хочу играть...
...играть чет то не тянет совсем...
эм... :|)

hrundel
09.08.2011, 14:51
От ДДтха, от провокатор! Спалил таки цезаря!

lil_caesar
09.08.2011, 17:04
да не, я хочу работать и играть, а не работать и потом еще раз в игре работать, ну вобщем вы поняли )

IIIaMaH
09.08.2011, 18:37
В ахк:


#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#SingleInstance force
Temp1=2 ; don't touch
Temp2=3 ; don't touch
Temp3=4
Temp4=4 ; shield temp
Temp5=5 ; don't touch
Temp6=6 ; don't touch
TempCikl=1
#IfWinActive, Darkfall Online
#NoEnv
;Set the number of rays you have here
num_rays = 5
;Set your binds here
/*Regarding modifiers: Shift = +, Ctrl = ^, Alt = !,
> < denotes right and left keys respectively.
Consult the help file for further information
*/
k_1 = +7 ;Pungent Mist
k_2 = +6 ;impale
k_3 = +8 ;Unholy Caress
k_4 = +9 ;Dragon's Breath
k_5 = +0 ;Insect Swarm
;Tweak cooldowns here
cd_1 = 14000 ;Impale
cd_2 = 6500 ;Pungent Mist
cd_3 = 14000 ;Unholy Caress
cd_4 = 14000 ;Dragon's Breath
cd_5 = 13000 ;Insect Swarm
;Set ray priority here, 1 being highest, 5 being lowest
p_1 = 1 ;Impale
p_2 = 2 ;Pungent Mist
p_3 = 3 ;Dragon's Breath
p_4 = 4 ;Unholy Caress
p_5 = 5 ;Insect Swarm
;Initializes ray availability array to 1 (off cooldown)
While A_Index <= num_rays
{
r_%A_Index% = 1
}
;Set your ray HotKey here (currently set to f)
sc04f::
Send {Numpad1 Down}
Sleep, 50
Send {Numpad1 Up}
Sleep, 50
Send {F10 Down}
Sleep, 50
Send {F10 Up}
Sleep, 250
cur_ray := RayLogic(cur_ray, cur_key, cur_cool)
Sleep, 57
Send , %cur_key%
Sleep, 100
MouseClick, left,
Sleep, 554
While (ErrorLevel = 1)
{
If (GetKeyState(cs04f, "P") = 1)
Return
KeyWait, Lbutton, T.2
}
r_%cur_ray% = 0
neg_cur_cool := -cur_cool
SetTimer , %cur_ray% , %neg_cur_cool%
Return
;Subroutine group to reset ray cds
1:
2:
3:
4:
5:
r_%A_ThisLabel% = 1
Return
RayLogic(cur_ray, ByRef cur_key, ByRef cur_cool)
{
global
/*Initiates cur_ray to your highest priority ray
in the case of all rays being off cooldown
*/
cur_ray := p_1
/*Assigns the value of cur_ray to the first available
ray according to priority
*/
While A_Index <= num_rays
{
ray_number := p_%A_Index%
if (r_%ray_number% = 1)
{
cur_ray := ray_number
Break
}
}
;Sets the ray's corresponding key and cooldown
cur_key := k_%cur_ray%
cur_cool := cd_%cur_ray%
Return cur_ray
}
WriteIni(Section,Key,Value)
{
IniWrite,%Value%,%A_WorkingDir%\shield.ini,%Sectio n%,%Key%
}
ReadIni(Section,ReadParam)
{
IniRead, WriteParam, %A_WorkingDir%\2melee.ini,%Section%,%ReadParam%
return WriteParam
}


В аутоите:


;WinWaitActive("Untitled - Darkfall Online")
#Include <Misc.au3>
#Include <MouseOnEvent.au3>

;константа количество используемых реев
Const $num_ray = 5
;константа правая клавиша мыши
;$rmouse = 0x02
; Объявляем переменные
;блок назначения клавишь для реев
Global $k_array[$num_ray] = ["+6","+7","+8","+9","+0"]
;["+6"] impale
;["+7"] Pungent Mist
;["+8"] Unholy Caress
;["+9"] Dragon's Breath
;["+0"] Insect Swarm
; end
; блок значений времени отката реев
Global $cd_array[$num_ray] = [ 6500, 14000, 14000, 14000, 13000]
;[6500] Impale [14000] Pungent Mist [14000] Unholy Caress [14000] Dragon's Breath [13000] Insect Swarm
; end
;инициируем переменную перегрузки времени
$time_reload = 0
;масив для хранения времени последнего каста каждого рея и переменная для перегрузки
Global $time_cast[$num_ray], $ray_key
; инициализация массива очередности реев
; будет выбран ближайший элемент массива с значением 1
Global $next_ray[$num_ray] = [1, 1, 1, 1, 1]
; end
; задаем горячую клавишу или сочетание клавиш для выбора рея и его каста
; Shift = +, Ctrl = ^, Alt = !
HotKeySet ("{NUMPAD1}", "RayScroll")
HotKeySet ("{END}", "RayScroll")
;_MouseSetOnEvent($MOUSE_SECONDARYDOWN_EVENT, "SprintRun","","",0,0)

While 1
Sleep(100)
WEnd
;функция RayScroll
Func RayScroll ()
Send ("{F10 down}")
Send ("{F10 up}")
Sleep (258)
HotKeySet ("{NUMPAD1}")
Send ("{NUMPAD1 down}")
Send ("{NUMPAD1 up}")
HotKeySet ("{NUMPAD1}", "RayScroll")
Sleep (100)
$ray_key = RayLogic()
Send ($ray_key)
Sleep (79)
MouseClick("left")
$time_reload = TimerLogic()
Sleep (79)
EndFunc
Func RayLogic ()
$num = $num_ray - 1
Local $time
For $i = 0 to $num Step 1
$time = TimerDiff($time_cast[$i])
If $next_ray[$i] = 1 Then
$next_ray[$i] = 0
Return ($k_array[$i])
ElseIf $time >= $cd_array[$i] Then
$next_ray[$i] = 0
Return ($k_array[$i])
EndIf
Next
Return ("")
EndFunc
Func TimerLogic()
$key = $ray_key
$time = TimerInit()
$num = $num_ray - 1
For $i = 0 To $num Step 1
If $key = $k_array[$i] Then
$time_cast[$i] = $time
EndIf
Next
EndFunc
;SprintRun Func
;Func SprintRun()
;If _IsPressed ("10") Then
; If _IsPressed ("6A") Then
; Send ("{NUMPADMULT UP}")
; Return ("")
;EndIf
;Send ("{NUMPADMULT DOWN}")
;
;EndIf
;EndFunc

DDTxa
09.08.2011, 19:51
cd_1 = 14000 ;Impale
cd_2 = 6500 ;Pungent Mist
эт у импейла откат 6,5 сек, а не у пунжи :smiley)

IIIaMaH
09.08.2011, 22:56
эт у импейла откат 6,5 сек, а не у пунжи :smiley)
Да пофиг я видимо дорабатывал exeшник нормально пахал когда я играл

Рейтинг@Mail.ru