InFlames #1 Опубликовано: 16 февраля 2011 Тут я писал как сделать свой скрипт для WC3 с помощью Autohotkey.После падения форума, тему восстановили, но я от своего имени создавать не стал.Кому-то интересно написать свой скрипт? Я могу помочь учесть все пожелания.Зачем мне это? Мне просто нехрена делать. Как использовать?Скачать Autohotkey Installer и установить.Скопировать содержимое скрипта в текстовый файл, сохранить его с расширением .ahkЗапустить созданный скрипт двойным щелчком мыши. Цитата Поделиться сообщением Ссылка на сообщение
Ramil #2 16 февраля 2011 напиши бинды для инвокера Цитата javascript:void(0); Поделиться сообщением Ссылка на сообщение
Hed-kun #3 16 февраля 2011 напиши бинды для инвокера vk76:: if (flagf7:=!flagf7) sendplay {enter} triple qwe mode {enter} else sendplay {enter} norm qwe mode {enter} return ~vk51:: if !flagf7 return sendplay {vk51}{vk51} return ~vk45:: if !flagf7 return sendplay {vk45}{vk45} return ~vk57:: if !flagf7 return sendplay {vk57}{vk57} return !vk4C::sendplay {enter}-il{enter} ^vk46::sendplay {vk45}{vk45}{vk51}{vk52} ^vk56::sendplay {vk51}{vk51}{vk57}{vk52} ^vk54::sendplay {vk45}{vk45}{vk45}{vk52} ^vk44::sendplay {vk45}{vk45}{vk57}{vk52} ^vk58::sendplay {vk57}{vk57}{vk51}{vk52} ^vk59::sendplay {vk51}{vk51}{vk51}{vk52} ^vk47::sendplay {vk51}{vk51}{vk45}{vk52} ^vk5A::sendplay {vk57}{vk57}{vk45}{vk52} ^vk43::sendplay {vk57}{vk57}{vk57}{vk52} ^vk42::sendplay {vk51}{vk57}{vk45}{vk52} Цитата Скрытый текст Цитата посоны я джуса забанил мне пиздос? Цитата Поделиться сообщением Ссылка на сообщение
InFlames #4 16 февраля 2011 напиши бинды для инвокераЕсли вышенаписанные не подойдут, напиши техзадание, какие хоткеи использовать.Реализовать можно практически что угодноМожно даже с выводом на экран всех перезарядок магий, но это уже чит как бы.Да и сам вывод на экран осуществляется с помощью внедрения в процесс war3.exeКак бы само внедрение нужно только для того, что бы отображать информацию поверх окна War3. Цитата Поделиться сообщением Ссылка на сообщение
Ramil #5 16 февраля 2011 напиши бинды для инвокераЕсли вышенаписанные не подойдут, напиши техзадание, какие хоткеи использовать.Реализовать можно практически что угодноМожно даже с выводом на экран всех перезарядок магий, но это уже чит как бы.Да и сам вывод на экран осуществляется с помощью внедрения в процесс war3.exeКак бы само внедрение нужно только для того, что бы отображать информацию поверх окна War3.хоткеи настраиваимые как и для инвентарядобавь в свою прогу вкладку для инвокера, туда список его магий, а напротив хоткей Цитата javascript:void(0); Поделиться сообщением Ссылка на сообщение
InFlames #6 16 февраля 2011 Не в WHK я точно такого делать не буду скорее всего. Есть комбинации в WHK2, где можно легко за 3 минуты создать свой конфиг и сохранить его. Вот скрипт для инвокера. Редактируешь настройки под себя и пользуешься.Автоотключение чата не добавлял, т.к. обычно эти комбинации биндят на ALT+KEY, что не мешает чату.Если надо, то добавлю отключение скрипта при наборе в чат. ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ НЕ РЕДАКТИРОВАТЬ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ #NoEnv #SingleInstance, force #MaxHotkeysPerInterval 1000 Process, Priority, , High SetBatchLines, -1 SetKeyDelay, -1 VK_LIST = VK41,VK42,VK43,VK44,VK45,VK46,VK47,VK48,VK49,VK4A,VK4B,VK4C,VK4D,VK4E,VK4F,VK50,VK51,VK52,VK53,VK54,VK55,VK56,VK57,VK58,VK59,VK5A,VKC0 HK_LIST = A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,`` Spell_List = SunStrike,ChaosMeteor,ForgeSpirit,ColdSnap,GhostWalk,IceWall,Alacrity,Tornado,EMP,DeafeningBlast ; Комбинации SunStrike = eee ChaosMeteor = eew ForgeSpirit = eeq ColdSnap = qqq GhostWalk = qqw IceWall = qqe Alacrity = wwe Tornado = wwq EMP = www DeafeningBlast = qwe InvokeList = -il ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ НАСТРОЙКИ (МОЖНО РЕДАКТИРОВАТЬ) ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ; Нажимать R в конце комбинации? 1=да, 0=нет UseBook := 1 ; Хоткеи для комбинаций ; ! = ALT, + = SHIFT, ^ = CTRL, # = WIN Key_1 := "!t" ; SunStrike (T) Key_2 := "!d" ; ChaosMeteor (D) Key_3 := "!f" ; ForgeSpirit (F) Key_4 := "!y" ; ColdSnap (Y) Key_5 := "!v" ; GhostWalk (V) Key_6 := "!g" ; IceWall (G) Key_7 := "!z" ; Alacrity (Z) Key_8 := "!x" ; Tornado (X) Key_9 := "!c" ; EMP (C) Key_10:= "!b" ; DeafeningBlast (B) Key_IL:= "!``" ; -InvokeListr ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ НЕ РЕДАКТИРОВАТЬ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ; Создание хоткеев Loop, parse, Spell_List, CSV Hotkey, % VK(Key_%A_Index%), %A_LoopField%, On Hotkey, % Key_IL, IL, On return ; Выполнение комбинаций при нажатии хоткеев SunStrike: ChaosMeteor: ForgeSpirit: ColdSnap: GhostWalk: IceWall: Alacrity: Tornado: EMP: DeafeningBlast: SendPlay, % %A_ThisLabel% . (UseBook ? "r" : "") return IL: Send, {Enter} SendRaw, -il Send, {Enter} return VK(Param) ; заменяет нужные хоткеи на виртуальные коды { global Hotkey:=RegExReplace(Param, "[\^\!\+\#]+(.*)", "$1") If StrLen(Hotkey) > 1 return Param Loop, parse, HK_LIST, CSV If (Hotkey = A_LoopField) { Index := A_Index Loop, parse, VK_LIST, CSV If (A_Index = Index) return % RegExReplace(Param, "(.*)" Hotkey, "$1" A_LoopField) } } Цитата Поделиться сообщением Ссылка на сообщение
InFlames #7 16 февраля 2011 А вот реализация с помощью жестов мыши. Хз может кому и удобно будет. Sensitivity = 20 CoordMode, Mouse Spell_List = SunStrike,ChaosMeteor,ForgeSpirit,ColdSnap,GhostWalk,IceWall,Alacrity,Tornado,EMP,DeafeningBlast SunStrike = eee ChaosMeteor = eew ForgeSpirit = eeq ColdSnap = qqq GhostWalk = qqw IceWall = qqe Alacrity = wwe Tornado = wwq EMP = www DeafeningBlast = qwe ; РЕДАКТИРОВАТЬ ТУТ ; U - жест вверх, D - жест вниз ; L - жест влево, R - жест вправо ; можно совмещать жесты: UL - жест вверх-влево ; жест делается с зажатой средней кнопкой мыши ; срабатывание происходит при отпускании СКМ J_SunStrike = U ; это значит жест вверх J_ChaosMeteor = D ; это значит жест вниз J_ForgeSpirit = L J_ColdSnap = R J_GhostWalk = UD ; это значит жест вверх-вниз J_IceWall = DU J_Alacrity = RL J_Tornado = LR J_EMP = UL J_DeafeningBlast = UR ; это значит жест вверх-вправо ; Нажимать R в конце комбинации? 1=да, 0=нет UseBook := 1 ; Далее не редактировать Gestures_list=%J_SunStrike%,%J_ChaosMeteor%,%J_ForgeSpirit%,%J_ColdSnap%,%J_GhostWalk%,%J_IceWall%,%J_Alacrity%,%J_Tornado%,%J_EMP%,%J_DeafeningBlast% Return MButton:: NewGesture = 1 While GetKeyState("MButton", "P") { if NewGesture { MouseGetPos, StartX, StartY NewGesture = } MouseGetPos, X, Y DX := X - StartX, DY := Y - StartY if (Abs(DX) >= Sensitivity) Gesture := (DX > 0 ? "R" : "L"), NewGesture := 1 if (Abs(DY) >= Sensitivity) Gesture := (DY > 0 ? "D" : "U"), NewGesture := 1 if (NewGesture && Gesture != PrevGesture) Gestures .= Gesture, PrevGesture := Gesture Sleep, 10 } if Gestures { If Gestures in %Gestures_list% { Loop, parse, Gestures_list, CSV If (Gestures = A_LoopField) Index := A_Index Loop, parse, Spell_list, CSV If (Index = A_Index) SendPlay % %A_LoopField% . (UseBook ? "r" : "") } } Gestures := Gesture := PrevGesture := "" Return MButton Up::Return Цитата Поделиться сообщением Ссылка на сообщение
Hed-kun #8 16 февраля 2011 ты крут :)и тебе рли нехрена делать Цитата Скрытый текст Цитата посоны я джуса забанил мне пиздос? Цитата Поделиться сообщением Ссылка на сообщение
InFlames #9 16 февраля 2011 Функция удерживания курсора в окне варкрафта.F12 вкл\выкл удерживание #NoEnv SetBatchLines, -1 NumPut(WI, VarSetCapacity(WI, 60)) OnExit, exit SetTimer, HoldCursor, 10 F12:: SetTimer, HoldCursor, % (IsPaused:=!IsPaused) ? "Off" : "10" DllCall("ClipCursor", UInt, 0) return HoldCursor: If !WinExist("ahk_class Warcraft III") Return WinGet, hTargetWin, ID, ahk_class Warcraft III IfWinNotActive, ahk_id %hTargetWin% { If !NotActiveTarget { DllCall("ClipCursor", UInt, 0) NotActiveTarget := 1 } Return } NotActiveTarget = DllCall("GetWindowInfo", UInt, hTargetWin, UInt, &WI) DllCall("ClipCursor", UInt, &WI + 20) Return exit: DllCall("ClipCursor", UInt, 0) ExitApp Цитата Поделиться сообщением Ссылка на сообщение
InFlames #10 16 февраля 2011 GarenaAutojoiner как в Warhotkeys, немного изменен.1. Добавить нужную комнату в избранное2. Запустить скриптСкрипт работает с комнатой в избранном, которая находится ниже всех в списке избранных комнат.Работает даже когда окно Garena свернуто или неактивно. ;~ Garena autojoiner ;~ Garena autojoiner ;~ 1. Добавить нужную комнату в избранное ;~ 2. Запустить скрипт ;~ Скрипт работает с комнатой в избранном, ;~ которая находится ниже всех в списке избранных комнат #NoEnv SetTitleMatchMode, regex SetBatchLines, -1 SetControlDelay 200 CoordMode, mouse If !WinExist("Garena") ; если нет окна гарены { MsgBox Окно Garena не найдено ExitApp } SetTimer, tooltip, 10 ; закомментировать эту строку если не надо показывать сообщения Start: Error:=0 msg = Заходим в комнату IfWinExist, ahk_class SkinDialog, Sorry ; 5 секунд не прошло ControlClick, Button1, ahk_class SkinDialog, Sorry,,, NA ControlClick, Button10, Garena ahk_class SkinWindow,,,, NA ; кнопка "избранное" WinGetPos,,,, Fav_Height, ahk_class ATL:0062* ; высота окна "избранное" ControlClick, x0 y%Fav_Height%, ahk_class ATL:0062*,,,, NA ; кликаем в нижнюю часть окна "избранное" Wait1: sleep 1000 IfWinExist, ahk_class SkinDialog, Sorry ; 5 секунд не прошло { ControlClick, Button1, ahk_class SkinDialog, Sorry,,, NA ; закрыть окно Goto, Wait1 ; подождем еще секунду } else IfWinExist, ahk_class SkinDialog, Купить голд ; Предложение купить голд { ControlClick, Button1, ahk_class SkinDialog, Купить голд,,, NA ; закрыть окно Goto, Wait5 ; ждем 5 секунд } else IfWinExist, ahk_class SkinDialog, Отмена ; Всё еще заходит в комнату { ControlClick, Button1, ahk_class SkinDialog, Отмена,,, NA ; закрыть окно Goto, Wait1 ; подождем еще секунду } else IfWinExist,, Вы в той же самой комнате ; уже в комнате { Winclose ; закрыть окно ExitApp } return Wait5: Loop { msg := "Ожидание " . 6 - a_index . " секунд" If a_index > 5 break sleep 1000 } Goto, Start return Tooltip: ToolTip, %msg% return Цитата Поделиться сообщением Ссылка на сообщение
BARMALEY #11 16 февраля 2011 загрузал.. Цитата Ливер я найду тебя и убью, а потом убью твоих детей!Нет убью тебя и съем твоих детей, съем всех детей! _________________________________________ наконец то мне снимут модера в таверне :vau: http://playerbar.ru/pbars/20.4.2010/3073714315 Поделиться сообщением Ссылка на сообщение
Ramil #12 17 февраля 2011 да я просто посоветовал, что в вхк добавить, чтоб прога была сверхпиздатойсам инвокером не играю, т.к. не нравится мне он :3 Цитата javascript:void(0); Поделиться сообщением Ссылка на сообщение
Hed-kun #13 17 февраля 2011 мне тоже не нравился пока скрипт не написал Цитата Скрытый текст Цитата посоны я джуса забанил мне пиздос? Цитата Поделиться сообщением Ссылка на сообщение
InFlames #14 17 февраля 2011 Инвокер.Магии посылаются сразу на дефолтных хоткеях. Т.е. нажимая B сразу нажимается qwer, затем небольшая задержка и нажимается B.Добавлена функция автоотключения чата.F12 - пауза скрипта ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ НЕ РЕДАКТИРОВАТЬ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ #NoEnv #SingleInstance, force #MaxHotkeysPerInterval 1000 #IfWinActive ahk_class Warcraft III Process, Priority, , High SetBatchLines, -1 SetKeyDelay, -1 VK_LIST = VK41,VK42,VK43,VK44,VK45,VK46,VK47,VK48,VK49,VK4A,VK4B,VK4C,VK4D,VK4E,VK4F,VK50,VK51,VK52,VK53,VK54,VK55,VK56,VK57,VK58,VK59,VK5A,VKC0 HK_LIST = A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,`` Spell_List = SunStrike,ChaosMeteor,ForgeSpirit,ColdSnap,GhostWalk,IceWall,Alacrity,Tornado,EMP,DeafeningBlast ; Комбинации SunStrike = eee ChaosMeteor = eew ForgeSpirit = eeq ColdSnap = qqq GhostWalk = qqw IceWall = qqe Alacrity = wwe Tornado = wwq EMP = www DeafeningBlast = qwe InvokeList = -il ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ НАСТРОЙКИ (МОЖНО РЕДАКТИРОВАТЬ) ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;Задержка между комбо и нажатием хоткея магии delay:=170 ; Хоткеи для комбинаций ; ! = ALT, + = SHIFT, ^ = CTRL, # = WIN Key_1 := "t" ; SunStrike (T) Key_2 := "d" ; ChaosMeteor (D) Key_3 := "f" ; ForgeSpirit (F) Key_4 := "y" ; ColdSnap (Y) Key_5 := "v" ; GhostWalk (V) Key_6 := "g" ; IceWall (G) Key_7 := "z" ; Alacrity (Z) Key_8 := "x" ; Tornado (X) Key_9 := "c" ; EMP (C) Key_10:= "b" ; DeafeningBlast (B) Key_IL:= "!``" ; -InvokeListr ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ НЕ РЕДАКТИРОВАТЬ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ; Создание хоткеев Loop, parse, Spell_List, CSV Hotkey, % VK(Key_%A_Index%), %A_LoopField%, On Hotkey, % Key_IL, IL, On return ; Выполнение комбинаций при нажатии хоткеев SunStrike: ChaosMeteor: ForgeSpirit: ColdSnap: GhostWalk: IceWall: Alacrity: Tornado: EMP: DeafeningBlast: Loop, parse, VK_LIST, CSV If (A_ThisHotkey = A_LoopField) Index:=A_Index Loop, parse, HK_LIST, CSV If (Index=A_Index) ThisHotkey:=A_LoopField Send, % %A_ThisLabel% . "r" sleep %delay% Send % ThisHotkey return IL: Send, {Enter} SendRaw, -il Send, {Enter} return VK(Param) ; заменяет нужные хоткеи на виртуальные коды { global Hotkey:=RegExReplace(Param, "[\^\!\+\#]+(.*)", "$1") If StrLen(Hotkey) > 1 return Param Loop, parse, HK_LIST, CSV If (Hotkey = A_LoopField) { Index := A_Index Loop, parse, VK_LIST, CSV If (A_Index = Index) return % RegExReplace(Param, "(.*)" Hotkey, "$1" A_LoopField) } } ; клавиши активации чата ~*Enter:: ~*Numpadenter:: suspend suspend If GlobalPaused ; если стоит пауза Return If !paused ; если не открыт чат suspend, on Else ; если чат открыт suspend, off paused:=!paused Return ; клавиши отмены чата ~*$esc:: ~*lbutton:: suspend suspend If GlobalPaused or !paused ; если стоит пауза или не открыт чат Return suspend, off paused=0 return F12:: Suspend GlobalPaused:=!GlobalPaused return Цитата Поделиться сообщением Ссылка на сообщение
InFlames #15 19 февраля 2011 Быстрая покупка предметов в магазинах.Описание работы в самом скрипте. /* Скрипт для быстрой покупки предметов. 10 магазинов через шифт должны быть забиндены на клавишу Shopkey (устанавливается в настройках скрипта, см. ниже) !!!ВНИМАНИЕ!!! Язык ввода по-умолчанию в системе должен быть английским Как пользоваться: 1. Создать хоткеи для покупки предметов (примеры ниже) 2. Запустить скрипт 3. Для активации покупки нажать F5 4. Купить нужные предметы 5. Второй раз нажать F5 или Escape (Не забывайте деактивировать функцию!) Функция имеет формат Buy("Item") где Item - название предмета Исопльзовать именно Item, но не Item1 или Item2 (см. в конце скрипта) Название предмета обязательно заключать в кавычки */ ;~;~;~;~;~;~;~;~;~;~;~;~ ;~;~;~ НАСТРОЙКИ ;~;~;~ ;~;~;~;~;~;~;~;~;~;~;~;~ ;~ Клавиша на которой будут висеть магазины ;~ 10 магазинов через шифт должны быть забиндены на клавишу Shopkey (в данном случае ноль) ;~ -- зажать Shift ;~ -- Выделить поочередно каждый магазин, что бы в наборе появились все 10 магазинов ;~ -- Нажать Ctrl+0 Shopkey:="0" ;~ Выбирать магазин при активации функции покупки (F5) / Выбирать героя при деактивации функции покупки (F5, Escape) ;~ 1 = да, выбирать ;~ 0 = нет, не выбирать SelectShop:=0 ;~ При деактивации функции покупки ;~ 1 = возвращать фокус на героя и центрировать его (камера будет "прыгать", если на один хоткей повесить покупку более одного предмета) ;~ 0 = ничего не делать ReturnHeroSelect:=1 ;~ Отключать функцию покупки после покупки одного предмета ;~ 1 = отключать (не устанавливайте 1, если на одну клавишу вешаете больше одного предмета) ;~ 0 = не отключать, продолжить покупку AutoBuyOff:=0 ;~ Посылать сообщения в чат об активации/деактивации функции ;~ 1 = да, посылать ;~ 0 = нет, не посылать Message:=1 ;~ Задержка перед покупкой предмета ;~ Увеличить, если происходят сбои d:=30 SetKeyDelay, -1 ; не менять и не удалять SetBatchLines, -1 ; не менять и не удалять Gosub, Items ; не менять и не удалять #IfWinExist EnableHotkeys ahk_class AutoHotkeyGUI ; не менять и не удалять ;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~ ;~ Список хоткеев для покупки предметов при активированной функции покупки ;~ ! = ALT, + = SHIFT, ^ = CTRL, # = WIN ;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~ ;~ ПРИМЕРЫ ХОТКЕЕВ ДЛЯ ПОКУПКИ ;~ НЕ ДУБЛИРУЙТЕ ХОТКЕИ ;~ СПИСОК ПРЕДМЕТОВ НАХОДЯТСЯ В КОНЦЕ СКРИПТА ;~ Покупка свитка летающего курьера f::Buy("FlyingCourier") ;~ Покупка телепорта t::Buy("TP") ;~ Покупка бутылки b::Buy("Bottle") ;~ Закуска к бутылке v::Buy("Tango") ;~ Купить бутылку, выбрать курицу (если забиндена на 2), нажать t, что бы курица принесла предмет, выбрать героя !b:: Buy("Bottle") Send, 2 sleep, 20 ; разделяйте паузой команды, что бы скрипт работал надежнее Send, t sleep, 20 ; разделяйте паузой команды, что бы скрипт работал надежнее Send, {F1 2} return ;~ Покупка курицы + свитка летающего курьера ;~ Функции Buy() можно не разделять паузами !f:: Buy("Courier") Buy("FlyingCourier") return ;~ Покупка сапога + свиток BootsOfTravel !t:: Buy("boots") Buy("BOT") return ;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~ ;~;~;~ НЕ РЕДАКТИРОВАТЬ ;~;~;~ ;~;~;~;~;~;~;~;~;~;~;~;~;~;~;~ #IfWinActive ahk_class Warcraft III F5:: If (Buy:=!Buy) and (SelectShop) Send {%ShopKey%} If (!Buy and SelectShop and ReturnHeroSelect) Send {F1 2} If Message { Send {enter} SendRaw % "Shop is " . (Buy ? "activated" : "deactivated") Send {enter} } If Buy ; если функция активирована, то создаем скрытое gui { Gui, +ToolWindow Gui, show, x9999 y9999 NA, EnableHotkeys } else Gui, destroy return ~Esc:: If !Buy ; если функция неактивна return Buy:=0 If Message ; если надо послать сообщение { Send {enter} SendRaw Shop is deactivated Send {enter} } Gui, destroy return Buy(Item) { global If !Buy ; ничего не делать, если функция отключена return SetKeyDelay, 5 Send {%ShopKey%} ; выделить магазины Sleep %d% Send, % %Item%1 Sleep, %d% Send, % %Item%2 If AutoBuyOff ; если после покупки одного предмета надо деактивировать функцию { Buy:=0 If Message { SetKeyDelay, -1 Send {enter} SendRaw Shop is deactivated Send {enter} } Gui, destroy } If ReturnHeroSelect ; если надо вернуть фокус на героя Send, {F1 2} } Items: ;~ Список предметов. ;~ Предмет1 - количество нажатий TAB или SHIFT+TAB, что бы выделить нужный магазин ;~ Предмет2 - хоткей для покупки нужного предмета ;~ Ancient Of Wonders Clarity1:=HealingSalve1:=Tango1:=Bottle1:=ObserverWards1:=SentryWards1:=Dust1Courier1:=TP1:=SmokeOfDeceit1:="" Clarity1:="c" HealingSalve2:="v" Tango2:="s" Bottle2:="b" ObserverWards2:="o" SentryWards2:="w" Dust2:="d" Courier2:="r" TP2:="t" SmokeOfDeceit2:="k" ;~ Arcane Sanctum Eul1:=ForceStuff1:=Dagon1:=Necronomicon1:=Refresher1:="{Tab}" Eul2:="t" ForceStuff2:="f" Dagon2:="d" Necronomicon2:="n" Refresher1:="r" ;~ Ancient Weaponry Radiance1:=Buriza1:=Basher1:=Manta1:=Crystalys1:=Armlet1:=Lothar1:="{Tab 2}" Radiance2:="r" Buriza2:="b" Basher2:="s" Manta2:="m" Crystalys2:="c" Armlet2:="a" Lothar2:="e" ;~ Supportive Vestments Mekansm1:=Vladimir1:=FlyingCourier1:=Buckler1:=Pipe1:=Urn1:=Headdress1:=Medallion1:=Janggo1:="{Tab 3}" Mekansm2:="m" Vladimir2:="v" FlyingCourier2:="f" Buckler2:="b" Pipe2:="p" Urn2:="s" Headdress2:="e" Medallion2:="d" Janggo2:="a" ;~ Enchanted Artifacts Satanic1:=Mjollnir1:=Sange1:=Maelstorm1:=Desolator1:=Yasha1:=MOM1:=Diffusal1:="{Tab 4}" Satanic2:="n" Mjollnir2:="j" Sange2:="s" Maelstorm2:="m" Desolator2:="r" Yasha2:="y" MOM2:="a" Diffusal2:="d" ;~ Protectorate Cuirass1:=Tarrasque1:=BKB1:=Shiva1:=Linken1:="{Tab 5}" Cuirass2:="c" Tarrasque2:="a" BKB2:="b" Shiva2:="s" Linken2:="r" ;~ Cache of the Quel'thelan GlovesOfHaste1:=MaskOfDeath1:=ROR1:=Dagger1:=Sobi1:=Boots1:=Gem1:=Cloak1:=Stick1:=TalismanOfEvasion1:=GhostScepter1:="+{Tab}" GlovesOfHaste2:="g" MaskOfDeath2:="m" ROR2:="r" Dagger2:="d" Sobi2:="b" Boots2:="s" Gem2:="i" Cloak2:="w" Stick2:="c" TalismanOfEvasion2:="e" GhostScepter2:="p" ;~ Sena The Accessorizer Gauntlets1:=Slippers1:=Mantle1:=Branch1:=Belt1:=Elvenskin1:=Robe1:=Circlet1:=OgreAxe1:=Alacrity1:=Staff1:=Orb1:="+{Tab 2}" Gauntlets2:="s" Slippers2:="a" Mantle2:="i" Branch2:="n" Belt2:="b" Elvenskin2:="e" Robe2:="r" Circlet2:="c" OgreAxe2:="x" Alacrity2:="y" Staff2:="w" Orb2:="o" ;~ Weapons Dealer BladesOfAttack1:=BroadSword1:=QuarterStaff1:=Claymore1:=RingOfProtection1:=StoutShield1:=Javelin1:=Mithril1:=Chainmail1:=Helm1:=Platemail1:=Quelling1:="+{Tab 3}" BladesOfAttack2:="a" BroadSword2:="b" QuarterStaff2:="q" Claymore2:="c" RingOfProtection2:="r" StoutShield2:="s" Javelin2:="j" Mithril2:="m" Chainmail2:="l" Helm2:="h" Platemail2:="p" Quelling2:="u" ;~ Gateway Relics BOT1:=SoulRing1:=Midas1:=Bracer1:=Wraith1:=Null1:=Wand1:="+{Tab 4}" BOT2:="t" SoulRing2:="s" Midas2:="d" Bracer2:="b" Wraith2:="w" Null2:="n" Wand2:="m" return Цитата Поделиться сообщением Ссылка на сообщение
InFlames #16 25 февраля 2011 Поиграл инвокером и понял, что вместо ALT+KEY лучше всего использовать MBUTTON+KEY. Т.е. не надо левую руку выворачивать, что бы нажать хоткей. Зажимаем Mouse3 на мышке, нажимаем хоткей скила.Добавил опцию UseEEE - нажимает EEE после комбинации, работает только если UseBook=1В конце скрипта есть дополнительные хоткеи, которые можете создать сами. Я написал несколько для примера.Если раскладка по-умолчанию английская, то вместо виртуальных кодов VK51 например, можно использовать просто QДобавил автоматическое отключение хоткеев при открытии чата в игре ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ НЕ РЕДАКТИРОВАТЬ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ #NoEnv #SingleInstance, force #MaxHotkeysPerInterval 1000 Process, Priority, , High SetBatchLines, -1 SetKeyDelay, -1 VK_LIST = VK41,VK42,VK43,VK44,VK45,VK46,VK47,VK48,VK49,VK4A,VK4B,VK4C,VK4D,VK4E,VK4F,VK50,VK51,VK52,VK53,VK54,VK55,VK56,VK57,VK58,VK59,VK5A,VKC0 HK_LIST = A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,`` ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ НАСТРОЙКИ (МОЖНО РЕДАКТИРОВАТЬ) ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ; Этот хоткей зажимается вместе с магией, что бы активировать ее (Mbutton+T = SunStrike) Modif:="Mbutton" ; Нажимать R в конце комбинации? 1=да, 0=нет UseBook := 1 ; Нажимать eee после книги, что бы получить больше урона? 1=да, 0=нет UseEEE := 1 ; ! = ALT, + = SHIFT, ^ = CTRL, # = WIN ; Комбинации Хоткеи комбинаций Хоткеи ; (используйте `` вместо `) магий SunStrike:= "eee" , Key_1 := "t" ; T ChaosMeteor:= "eew" , Key_2 := "d" ; D ForgeSpirit:= "eeq" , Key_3 := "f" ; F ColdSnap:= "qqq" , Key_4 := "y" ; Y GhostWalk:= "qqw" , Key_5 := "v" ; V IceWall:= "qqe" , Key_6 := "g" ; G Alacrity:= "wwe" , Key_7 := "z" ; Z Tornado:= "wwq" , Key_8 := "x" ; X EMP:= "www" , Key_9 := "c" ; C DeafeningBlast:= "qwe" , Key_10:= "b" ; B InvokeList:= "-il" , Key_IL:= "F9" ; -InvokeListr ;~ Свои хоткеи можно добавить в конце скрипта ;~ Они не должны дублировать существующие ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ НЕ РЕДАКТИРОВАТЬ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ Spell_List = SunStrike,ChaosMeteor,ForgeSpirit,ColdSnap,GhostWalk,IceWall,Alacrity,Tornado,EMP,DeafeningBlast ; Создание хоткеев Hotkey, IfWinactive, ahk_class Warcraft III Loop, parse, Spell_List, CSV Hotkey, % Modif . " & " . VK(Key_%A_Index%), %A_LoopField%, On Hotkey, % Key_IL, IL, On return ; Выполнение комбинаций при нажатии хоткеев SunStrike: ChaosMeteor: ForgeSpirit: ColdSnap: GhostWalk: IceWall: Alacrity: Tornado: EMP: DeafeningBlast: SendInput, % %A_ThisLabel% . (UseBook ? "r" : "") . ((UseBook & UseEEE) ? "eee" : "") return IL: Send, {Enter} SendRaw, -il Send, {Enter} return VK(Param) { global Hotkey:=RegExReplace(Param, "[\^\!\+\#]+(.*)", "$1") If StrLen(Hotkey) > 1 return Param Loop, parse, HK_LIST, CSV If (Hotkey = A_LoopField) { Index := A_Index Loop, parse, VK_LIST, CSV If (A_Index = Index) return % RegExReplace(Param, "(.*)" Hotkey, "$1" A_LoopField) } } #IfWinActive ahk_class Warcraft III ; клавиши активации чата ~*Enter:: ~*Numpadenter:: suspend suspend If globalpause ; если стоит пауза Return Suspend, % (paused:=!paused) ? "on" : "off" Return ; клавиши отмены чата ~*$esc:: ~*lbutton:: suspend suspend If globalpause or !paused ; если стоит пауза или не открыт чат Return suspend, off paused=0 return ;~;~;~;~;~;~;~;~;~;~ ;~ Кастомные хоткеи ;~;~;~;~;~;~;~;~;~;~ ;~ Инвентарь VKC0::SendInput {Numpad7} ; ~ 4::SendInput {Numpad1} ; 4 Space::SendInput {Numpad2} ; Пробел ;~ Выбор героя на TAB TAB::SendInput {F1} ;~ -clear F5:: SendInput {Enter} SendRaw -clear SendInput {Enter} return ;~ Случайное нажатие ALT+Q будет заменяться на Q !VK51::SendInput {VK51} ;~ F12 = ALT+Q, т.к. отключили ALT+Q, выходим на F12 F12::SendInput {!VK51} ;~ Прокачка скилов Левй WIN = O LWIN::SendInput {VK4F} ;~ Пауза скрипта F10:: Suspend globalpause:=!globalpause SoundPlay, *48 return Цитата Поделиться сообщением Ссылка на сообщение
ever #17 8 марта 2011 если не сложно, вставь опцию UseEEE в бинды для инвокера с альтом Цитата Поделиться сообщением Ссылка на сообщение
InFlames #18 8 марта 2011 ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ НЕ РЕДАКТИРОВАТЬ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ #NoEnv #SingleInstance, force #MaxHotkeysPerInterval 1000 Process, Priority, , High SetBatchLines, -1 SetKeyDelay, -1 VK_LIST = VK41,VK42,VK43,VK44,VK45,VK46,VK47,VK48,VK49,VK4A,VK4B,VK4C,VK4D,VK4E,VK4F,VK50,VK51,VK52,VK53,VK54,VK55,VK56,VK57,VK58,VK59,VK5A,VKC0 HK_LIST = A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,`` Spell_List = SunStrike,ChaosMeteor,ForgeSpirit,ColdSnap,GhostWalk,IceWall,Alacrity,Tornado,EMP,DeafeningBlast ; Комбинации SunStrike = eee ChaosMeteor = eew ForgeSpirit = eeq ColdSnap = qqq GhostWalk = qqw IceWall = qqe Alacrity = wwe Tornado = wwq EMP = www DeafeningBlast = qwe InvokeList = -il ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ НАСТРОЙКИ (МОЖНО РЕДАКТИРОВАТЬ) ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ; Нажимать R в конце комбинации? 1=да, 0=нет UseBook := 1 ; Нажимать EEE после комбо? 1=да, 0=нет (работает только, если UseBook=1) UseEEE:=1 ; Хоткеи для комбинаций ; ! = ALT, + = SHIFT, ^ = CTRL, # = WIN Key_1 := "!t" ; SunStrike (T) Key_2 := "!d" ; ChaosMeteor (D) Key_3 := "!f" ; ForgeSpirit (F) Key_4 := "!y" ; ColdSnap (Y) Key_5 := "!v" ; GhostWalk (V) Key_6 := "!g" ; IceWall (G) Key_7 := "!z" ; Alacrity (Z) Key_8 := "!x" ; Tornado (X) Key_9 := "!c" ; EMP (C) Key_10:= "!b" ; DeafeningBlast (B) Key_IL:= "!``" ; -InvokeListr ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ НЕ РЕДАКТИРОВАТЬ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ;~ ; Создание хоткеев Loop, parse, Spell_List, CSV Hotkey, % VK(Key_%A_Index%), %A_LoopField%, On Hotkey, % Key_IL, IL, On return ; Выполнение комбинаций при нажатии хоткеев SunStrike: ChaosMeteor: ForgeSpirit: ColdSnap: GhostWalk: IceWall: Alacrity: Tornado: EMP: DeafeningBlast: SendPlay, % %A_ThisLabel% . (UseBook ? "r" : "") . ((UseBook & UseEEE) ? "eee" : "") return IL: Send, {Enter} SendRaw, -il Send, {Enter} return VK(Param) ; заменяет нужные хоткеи на виртуальные коды { global Hotkey:=RegExReplace(Param, "[\^\!\+\#]+(.*)", "$1") If StrLen(Hotkey) > 1 return Param Loop, parse, HK_LIST, CSV If (Hotkey = A_LoopField) { Index := A_Index Loop, parse, VK_LIST, CSV If (A_Index = Index) return % RegExReplace(Param, "(.*)" Hotkey, "$1" A_LoopField) } } Цитата Поделиться сообщением Ссылка на сообщение
LifeForVictory #19 12 марта 2011 Pomogi sdelat vse toje samoe na mouse4) Цитата gogo iNs. E :basher: Поделиться сообщением Ссылка на сообщение
InFlames #20 13 марта 2011 Pomogi sdelat vse toje samoe na mouse4)Что значит "тоже самое"? Конкретно пост указывай.И что значит на mouse4? Mouse4 вместо альта? В посте #25 есть код с Mbutton. Меняешь ее (переменная Modif) на Xbutton1 (или Xbutton2 смотря какая у тебя из них mouse4) и получаешь например торнадо на Xbutton1+X Цитата Поделиться сообщением Ссылка на сообщение