Меню Рубрики

Как самому написать макрос для варфейс

Х7 — учимся писать нормальные макросы на отдачу.

Общение и обсуждение Warface Online

03.10.2013, 14:00 #1

Подобрали мы нужно значение сдвига для второй пули, опять добавляем пять раз по 20 мс, опять идем на полигон проверять будет ли третий выстрел.
Если выстрел есть идем добавлять сдвиги по осям. Если получаем на выстрел больше убираем лишнее значение времени или если не получаем нужный выстрел — добавляем.
Внимание для чайников — добавляем сдвиги по относительным координатам а не абсолютным!
Таким образом мы добавляем к нашей очереди каждый раз по одной пули и корректируем ее по осям — и так для всего магазина.
Процесс это не быстрый, если делать более менее точный макрос и может занять день.
Важно с самого начала делать макрос как можно точнее — потому что потом будет очень сложно найти в нем например 11 пулю что бы ее поправить.

Теперь разберем полуавтоматы, например снайперку за вб.
Опять настройка — воспроизвести макрос единожды
Тыкаем в оскаре такой код:
нажать ЛКМ
20 мс
опустить ЛКМ
И так добавляем несколько раз что бы получить с одного нажатия два выстрела — корректируем это все дело по осям как в примере выше — что бы вторая пуля попадала в след первой. Потом опять добавляем несколько раз 20 мс для третьего выстрела, опять коррекция по осям и т.д. пока не кончится патроны в магазине.
Бывают случаи когда не получается точно поймать следующую пулю, а такое случается довольно часто — вот для этого мы и поменяем значение с 20 на 15 мс и поставим новое значение до встрела нужной нам пули.
Таким вот занудным образом и пишутся макросы.

Как адаптировать у себя чужой готовый макрос — наверняка значения чужих коррекций по осям вам не подойдут, если вы знаете что макрос у другого человека работал нормально — нормально гасил отдачу — то дальше все будет относительно просто так как вся основная работа уже проделана, нужно только поменять все значения под свои нужды таким образом:
Идем на полигон и смотрим что делает макрос, если макрос частично гасит отдачу то все значения сдвигов нужно увеличить но оставить пропорции между ними не тронутыми. Если было 8 4 а нам нужно увеличить это на половину в 8 прибавляем половину от 8 (4), 4 половину от 4 (2), так же если макрос уводит вниз — нужно уменьшить значения не меняя их пропорции если было 8 4 то ставим 4 2, иногда поделив или умножив на нужный нам коофицент мы не получим целого числа, по этому если у нас есть код:

В принципе написал все доступным языком, привел примеры — но если что не понятно — спрашивайте — отвечу, только откровенно не тупите — не отвечу =)

Странно, добавил видел на ютуб — его не отображает в посте.
____________________
Часть вторая.
Я таки решил не делать из этого тайны и выложить эту часть.
Для тех у кого есть желание научиться писать что то более сложное чем простой кликер — эта часть.
Как вернуть курсор/прицел на прежнее место если мы выстрелили короткой очередью.
У Блоди появилась функция которая возвращает прицел на место после того как макросом его опустило ниже того места в которое мы выпустили первую пулю. Скажу честно — работает она коряво и главное медленно, когда я ее увидел понял что унифицированные функции как всегда оказались хуже специально заточных.
Эту функцию можно довольно просто повторить в оскаре — не покупая только из за этой мульки Блоди. Для этого нужно представить что каждый совершенный макросом выстрел у нас является отдельным циклом — так проще будет понять что нужно делать.
Пример кода:
Как оно работает можно посмотреть загрузив макрос в мышь и включив его в пеинте — будет рисовать лесники для облегчения понимания принципа работы.
Логика макроса:
Способ воспроизведения макроса ставим «воспроизвести макрос единожды»

Root >
DefaultMacro >
Major > Major >
Description > One click to fire 3 sequential bullets instantly and concentrate on the point of impactsf impacts .
Applicable weapons : all guns

Description >
Comment > 3XFIRE
Comment >
GUIOption >
RepeatType > 0 RepeatType >
GUIOption >
KeyUp >
Syntax > Syntax >
KeyUp >
KeyDown >
Syntax > LeftDown 1
Delay 100 ms
MoveR 20 0
Delay 100 ms
MoveR 20 0
Delay 100 ms
MoveR 20 0
Delay 100 ms
MoveR 0 5
Delay 100 ms
MoveR 0 5
IfKey 7 0 36
Delay 100 ms
MoveR 20 0
Delay 100 ms
MoveR 20 0
Delay 100 ms
MoveR 20 0
Delay 100 ms
MoveR 0 5
Delay 100 ms
MoveR 0 5
IfKey 7 0 39
Delay 100 ms
MoveR 20 0
Delay 100 ms
MoveR 20 0
Delay 100 ms
MoveR 20 0
Delay 100 ms
MoveR 0 5
Delay 100 ms
MoveR 0 5
IfKey 7 0 42
IfKey 7 1 42
MoveR — 60 — 10
LeftUp 1
Goto 44
MoveR — 120 — 20
LeftUp 1
Goto 44
MoveR — 180 — 30
LeftUp 1 Syntax >
KeyDown >
Software > Counter — Strike ( CS )
Software > DefaultMacro >
Root >

Пример макроса написан для кнопки №7 — на других кнопках работать не будет.
Что видно в пеинте, нажал и тут же отпустил = 1 лесенка и возврат курсора, подержал подольше = 2 лесенки и возврат, еще чуть дольше = 3 и возврат.

Внимание! Конкретный макрос написан только демонстрации в пеинте логики написания такого макроса!

Разберем, как писалось выше — разбив на условные циклы.
С 1 по 11 строку у нас условно 1 выстрел = одному условному циклу (почему на один выстрел мы тратим столько строк — смотрим первую часть этого поста) + подготовка второго выстрела в туже точку куда отпарили первую пулю.
12 строка у нас условие — нажата кнопка стрельбы или нет — если кнопка нажата — макрос продолжает стрелять — выпускает 2 пулю (строки с 13 по 22) и продолжает корректировать прицел на нужном нам для третьего выстреле уровне.
Строка 23 опять отслеживание нажата кнопка огня или нет. Дальше опять все повторяется.
Самое интересное начинается когда например в строке 23 макрос обнаруживает что мы уже отпустили кнопку стрельбы — то есть кнопка 7 у нас не нажата — обнаружив это по нашему условию нас перекидывает на строку 39 где у нас записаны суммарные координаты коррекций двух выстрелов — то есть заданным макросом смещении за два цикла/выстрела курсор сдвинет на 120 влево и 20 пикселей вправо — а в строке 39 как раз записано на сколько пикселей вернуть если мы уже не стреляем — что бы прицел оказался там же куда мы послали первую пулю.

Источник статьи: http://zhyk.ru/forum/showthread.php?t=804556


0 0 голоса
Article Rating
Подписаться
Уведомить о
guest

0 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии