Добро пожаловать на форумы Боевого Народа (бывший форум Live.CNews.ru)!

ВАЖНЫЕ ТЕМЫ: FAQ по переезду и восстановлению учеток | Ошибки и глюки форума.
О проблемах с учетными записями писать СЮДА.
Плохие макросы 2 - Форумы Боевого Народа
IPB

Здравствуйте, гость ( Вход | Регистрация )

11 страниц V  « < 9 10 11  
Ответить в данную темуНачать новую тему
Плохие макросы 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
Регистрация: --
Пользователь №:



Потестил - тихий ужас... smile.gif
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 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
Регистрация: --
Пользователь №:



Цитата *
...используй минус на нампаде для комментирования строчек.
#CommentFlag
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 10.8.2011, 18:46
Сообщение #209





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата(Pupseg @ Суббота, 30 Июля 2011, 00:57:18) *
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
Регистрация: --
Пользователь №:



Цитата *
...регулярные выражения...
Это понятие реализовано во всех языках. Начни лучше с того, чтобы простым/внятным языком объяснить, что из себя представляют (принцип действия) хитрые клиенты, и какие длл идут в ход при создании их.

Сообщение отредактировал Grey Denisson - 11.8.2011, 19:11
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 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
Значение переменной var3 напрямую зависит от резолюции монитора, и уровня чувствительности в настройках игры (в скрипте, соответствует 1280х1024 и 30 чувствительности) Для изменения переменных клавиши: + и -, количество нажатий на клавишу ф12 задаёт размер изменения значения переменной (четыре позиции: 1, 10, 100, 500). Клавиша чата у меня Y (виртуальный код - vk55), меняем если не подходит, желательно тоже использовать виртуальный (vk) или машинный (sc) код своей клавиши, чтобы при русской локализации системы она корректно работала.
Перейти в начало страницы
Вставить ник
+Цитировать сообщение

11 страниц V  « < 9 10 11
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 16.4.2024, 21:30
Консультации адвоката по уголовным делам. Бесплатно. По всей России