Плохие макросы 2, Например для AutoHotkey |
|
Здравствуйте, гость ( Вход | Регистрация )
Плохие макросы 2, Например для AutoHotkey |
27.5.2011, 6:26
Сообщение
#201
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Упрощённый абакан с компенсацией 2й пули играл-играл, да прозрел, что очередьи с абакана нужно сажать по 2 штуки быстро, а далее маленькая пауза) Код #IfWinActive ahk_class Battlefield: Bad Company 2 #NoEnv #SingleInstance Force Process, Priority,,High SetMouseDelay -1 SetBatchLines, -1 SetCapsLockState, Off Suspend, On Return CapsLock:: Suspend If (A_IsSuspended) { SetCapsLockState, Off } Else { SetCapsLockState, On } Return LButton:: Loop { GetKeyState, szButtonState, LButton, P If szButtonState = U { Break } Random, rnd, 20, 40 Loop, 2 { MouseClick, left,,, 1, 0, D Sleep, 60 DllCall("mouse_event", uint, 1, int, 0, int, 32, uint,0, int,0) MouseClick,left,,, 1, 0, U Sleep, 140 DllCall("mouse_event", uint, 1, int, 0, int, -32, uint,0, int,0) } Sleep, rnd } Return |
|
|
28.5.2011, 10:58
Сообщение
#202
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Потестил - тихий ужас...
|
|
|
19.7.2011, 21:50
Сообщение
#203
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Простенький скрипт для стрельбы из автоматов и дробовиков, который я использую в игре. Основная идея - сделать возможность переключаться между разными режимами стрельбы, нажимая хоткеи. Автохоткей я недавно изучаю, поэтому на поиск решения ушла масса времени :(
Для включения/оключения хоткеев надо нажать капслок. Потом F7 - автомат будет стрелять чуть медленнее, но кучнее. По F8 включается ускоренная перезарядка дробанов. Есть автоспот противника. Наслаждайтесь. Раскрывающийся текст Код #IfWinActive Battlefield: Bad Company 2 SetBatchlines -1 SendMode Input Suspend on return CapsLock:: Suspend Toggle; отключает или включает все или выбранные горячие клавиши if (A_IsSuspended); содержит 1, или если скрипт приостановлен 0 { SetCapsLockState Off; капс выключен SoundBeep, 500, 150; проиграть звук } else; иначе { SetCapsLockState On; капс включен SoundBeep, 1500, 150; проиграть звук } return; возврат F7:: SoundBeep, 1500, 150 Hotkey, *LButton, action1; создать хоткей и перейти к метке action return action1: SetTimer, timer, 80; запустить таймер на 80 миллисекунд gosub timer; перейти к метке timer return timer: if GetKeyState("LButton", "P"); если нажат хоткей, то... { Send {blind}{q 1}; спот противника Send {blind}{Click}; выстрел } else; иначе SetTimer, timer, Off; отключить таймер при отпущенном хоткее return F8:: SoundBeep, 1500, 150 Hotkey, *LButton, action2 return action2: Click Down; нажать левую кнопку мыши Loop; замкнутый цикл { GetKeyState, state, LButton, P; если нажат хоткей, то... if state = U ; если хоткей отпущен, то... break; выйти из замкнутого цикла Send {blind}{q 1} Sleep 50 Send {blind}{Click} Sleep 50 Send {blind}{1}; переключиться на пистолет Sleep 50 Send {blind}{2}; переключиться на дробовик Sleep 500 } Click Up ; отпустить левую кнопку мыши return Сообщение отредактировал Merzavets - 19.7.2011, 22:16 |
|
|
19.7.2011, 22:36
Сообщение
#204
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Блин, какого хрена не ставятся пробелы перед точкой с запятой? Если кто скопирует скрипт, то обязательно поставьте пробелы.
|
|
|
21.7.2011, 17:14
Сообщение
#205
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Merzavets а чё не собирается .. там вроде больше ничего нету и на пробел должно быть пофиг
люди нужны мастера писатели на C как в автохоткее считатать строки(структуру) если есть указатель выданный dllcall, но нету размера этой кучи. п.с. вернулся я к своей заморочке с нейронными сетями.. хочу сделать стабилизатор-подруливатель для вертушки)) берущий данные с видео потока (что-то отдалённо похожее на авиагоризонт в виде из кабины есть) п.п.с. насчёт производительности думаю не стоит упоминать... я пока не представляю чем можно загрузить амд1090Т Кстати кому мысль не приходила сделать тягу на джостике? замутить цикл считывания состояний, то-есть если тяга 50%, то нажимать W с периодичностью, и в зависимости от тяги менять длительность нажатий и паузу между ними))) если никто меня не опередит я изображу кусочек быдлокода. |
|
|
21.7.2011, 17:54
Сообщение
#206
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Без пробелов скрипт ошибку выдаёт. Надо тогда точки с запятой просто стереть, вместе с комментариями...
Сообщение отредактировал Merzavets - 21.7.2011, 17:57 |
|
|
29.7.2011, 22:57
Сообщение
#207
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Merzavets случаем не сцытом пользуешься? если да, то используй минус на нампаде для комментирования строчек.)
|
|
|
8.8.2011, 3:46
Сообщение
#208
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
|
|
|
10.8.2011, 18:46
Сообщение
#209
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Merzavets случаем не сцытом пользуешься? если да, то используй минус на нампаде для комментирования строчек.) Спасибо, действительно удобно. Написал ещё один макрос, который не ограничивает скорострельность оружия, а только очень хорошо гасит отдачу. Желательно из автоматов стрелять короткими очередями по 7-10 патронов, из пулемёта можно и больше. После стрельбы прицел приходит в исходное положение. Наслаждайтесь)) Раскрывающийся текст Код #IfWinActive, Battlefield: Bad Company 2 SetBatchLines, -1 SetMouseDelay, -1 SetKeyDelay, -1 SendMode, Input Suspend, On return CapsLock:: Suspend, Toggle if (A_IsSuspended) { SetCapsLockState, Off SoundBeep, 500, 150 } else { SetCapsLockState, On SoundBeep, 1500, 150 } return *LButton:: start_time := A_TickCount Click Down Loop { GetKeyState, state, LButton, P if state = U break DllCall("mouse_event", uint, 1, int, 0, int, 1, uint, 0, int, 0) Sleep, 20 } Click Up value := (A_TickCount - start_time)/15 DllCall("mouse_event", uint, 1, int, 0, int, -value, uint, 0, int, 0) return Сообщение отредактировал Merzavets - 10.8.2011, 18:56 |
|
|
10.8.2011, 23:31
Сообщение
#210
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Эх лучшеб нормально о массивах из длл рассказали, а именно я имею указатель на массив и его тип... не спорю! то, что язык совсем не для этого предназначен)))))))))
но как-то делают хитрые клиенты с помощью длл п.с. голова сейчас забита учением sql, bash, sed, autoit )) |
|
|
11.8.2011, 9:25
Сообщение
#211
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
...как-то делают хитрые клиенты с помощью длл Клиенты/длл чего/каких?...sql, bash, sed, autoit Определённо, лучше знать один/два язык/а, но в совершенстве. С#, АНК, + знание WinAPI
|
|
|
11.8.2011, 16:28
Сообщение
#212
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Ну начнём с того, что с одним sql делать нефига)))) толку?) баш это интерпретатор. а сед это регулярные выражения (не интерактивный текстовый редактор)
|
|
|
11.8.2011, 19:10
Сообщение
#213
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
|
|
|
11.8.2011, 20:56
Сообщение
#214
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
Ещё немного подумал и решил, что антиотдачу надо отключать через некоторое время. При стрельбе длинной очередью прицел у автоматов/пулемётов стабилизируется и антиотдача только мешает. Вот и переделал свой скриптик))
Конкретно макрос писался для М416, так как, в основном, бегаю штурмовиком. Для других видов оружия возможно потребуется изменить некоторые параметры, просто изучите чудо-программу Autohotkey и будет вам щастье)) Раскрывающийся текст Код #IfWinActive, Battlefield: Bad Company 2 SetBatchLines, -1 SetMouseDelay, -1 SetKeyDelay, -1 Suspend, On return CapsLock:: Suspend, Toggle if (A_IsSuspended) { SetCapsLockState, Off SoundBeep, 500, 150 } else { SetCapsLockState, On SoundBeep, 1500, 150 } return *LButton:: start_time := A_TickCount Click Down Loop { GetKeyState, state, LButton, P if A_TimeSinceThisHotkey < 900 { value1 := 1 value2 := (A_TickCount - start_time) / 15 } else { value1 := 0 value2 := (900 / 15) } if state = U break DllCall("mouse_event", uint, 1, int, 0, int, value1, uint, 0, int, 0) Sleep, 20 } Click Up DllCall("mouse_event", uint, 1, int, 0, int, -value2, uint, 0, int, 0) return |
|
|
12.8.2011, 8:18
Сообщение
#215
|
|
Группа: Сообщений: 0 Регистрация: -- Пользователь №: |
...изучите чудо-программу Autohotkey Безспорно, язык очень даже востребованный.мой вариант Код #IfWinActive ahk_class Battlefield: Bad Company 2 SetBatchLines, -1 var1:=1 ; start move var2:=15 ; stop move var3:=25 ; value move value:=0 value2:=0 dvar:=1 Return ;/* vkbb:: ; + var1+=dvar SendInput, {vk55} ; y - chat key Sleep, 250 SendInput, {Raw}X %var1% Sleep, 250 SendInput, {Esc} Sleep, 250 SendInput, {vkC0 2} ; tilde Return RCtrl & vkbb:: var1-=dvar SendInput, {vk55} Sleep, 250 SendInput, {Raw}X %var1% Sleep, 250 SendInput, {Esc} Sleep, 250 SendInput, {vkC0 2} Return vkbd:: ; - var2+=dvar SendInput, {vk55} Sleep, 250 SendInput, {Raw}Y %var2% Sleep, 250 SendInput, {Esc} Sleep, 250 SendInput, {vkC0 2} Return RCtrl & vkbd:: var2-=dvar SendInput, {vk55} Sleep, 250 SendInput, {Raw}Y %var2% Sleep, 250 SendInput, {Esc} Sleep, 250 SendInput, {vkC0 2} Return vk08:: ; backspace var3+=dvar SendInput, {vk55} Sleep, 250 SendInput, {Raw}Z %var3% Sleep, 250 SendInput, {Esc} Sleep, 250 SendInput, {vkC0 2} Return RCtrl & vk08:: var3-=dvar SendInput, {vk55} Sleep, 250 SendInput, {Raw}Z %var3% Sleep, 250 SendInput, {Esc} Sleep, 250 SendInput, {vkC0 2} Return F12:: ; change size dynamic variables KeyWait, F12 iteration++ SetTimer, counterrctrlf12, -350 Return counterrctrlf12: If iteration=1 SetTimer, action1rctrlf12, -0 ; 1 Else If iteration=2 SetTimer, action2rctrlf12, -0 ; 10 Else If iteration=3 SetTimer, action3rctrlf12, -0 ; 100 Else If iteration>=4 SetTimer, action4rctrlf12, -0 ; 500 iteration= Return action1rctrlf12: dvar:=1 SendInput, {vk55} Sleep, 250 SendInput, {Raw}DVAR %dvar% Sleep, 250 SendInput, {Esc} Sleep, 250 SendInput, {vkC0 2} Return action2rctrlf12: dvar:=10 SendInput, {vk55} Sleep, 250 SendInput, {Raw}DVAR %dvar% Sleep, 250 SendInput, {Esc} Sleep, 250 SendInput, {vkC0 2} Return action3rctrlf12: dvar:=100 SendInput, {vk55} Sleep, 250 SendInput, {Raw}DVAR %dvar% Sleep, 250 SendInput, {Esc} Sleep, 250 SendInput, {vkC0 2} Return action4rctrlf12: dvar:=500 SendInput, {vk55} Sleep, 250 SendInput, {Raw}DVAR %dvar% Sleep, 250 SendInput, {Esc} Sleep, 250 SendInput, {vkC0 2} Return ;*/ $LButton:: If GetKeyState("RButton", "P") Gosub, 2 Else Gosub, 1 Return 1: ; ordinary Click Down While GetKeyState("LButton", "P") { If (A_Index>var1&&A_Index<var2) { value:=% var3 value2:=% var3 cnt:=% A_Index cnt-=% var1 value2*=% cnt } DllCall("mouse_event", UInt, 0x0001 , Int, 0 , Int, value , UInt, 0 , Int, 0) If (A_Index>=var2) { value:=0 value2:=% var3 cnt:=% var2 cnt-=% var1 value2*=% cnt } If GetKeyState("RButton", "P") { Click Up value:=0 DllCall("mouse_event", UInt, 0x0001 , Int, 0 , Int, -value2*1.5 ; 1.5 - fov increase , UInt, 0 , Int, 0) value2:=0 cnt:=0 Gosub, 2 } Sleep, 50 } Click Up value:=0 DllCall("mouse_event", UInt, 0x0001 , Int, 0 , Int, -value2 , UInt, 0 , Int, 0) value2:=0 cnt:=0 Return 2: ; sighted While GetKeyState("LButton", "P") { Click Sleep, 120 ; stg, m416, 9a-91, aks-u If !GetKeyState("RButton", "P") Gosub, 1 } Return |
|
|
Текстовая версия | Сейчас: 27.9.2024, 5:30 |