Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Определяем задачу.

Читайте также:
  1. Глава 2. ОПРЕДЕЛЯЕМ ХАРАКТЕР ГЕРОЯ: ПОСТОЯНСТВА И ПАРАДОКСЫ
  2. Задача 5. Решить транспортную задачу.
  3. ИЗМЕРЕНИЯ. Длину маятника l определяют суммируя измеренное рулеткой расстояние от точки подвеса до шарика и радмус шарика (определяемый при помощи штангенциркуля).
  4. Однако затем рост замедляется, и при некотором давлении селективность достигает максимума, определяемого типом мембраны и природой удаляемых веществ.
  5. Определяем величину перебура шпуров:
  6. Определяем количество гелиостатов.

Пример построения более сложного, комбинированного макроса

Если вы не читали предыдущие инструкции, то вам здесь делать нечего!!!!!! Есть ранее написанные и переведённые инструкции. Подразумеваю, что вы уже ознакомились с инструкциями по определению и анализу баллистики вашего оружия, по работе с MacroEditor и Headshot, умеете загружать, конвертировать и назначать макросы на нужные кнопки, имеете на «руках» ваш баллистический анализ. Работы будет море, так что, если у вас нет желания уделить большое количество времени этому вопросу, милости прошу на выход. Это только пример, который должен подгоняться под определённую игру. У кого-то задержка должна быть больше, у кого-то эта задержка должна будет стоять в другом месте… В общем, всё будет зависеть от вашего упорства. Не передумали? Может ну его?

Ну, ваше право. Готовы? Поехали.

 

 

Определяем задачу.

И так, у кого туго с воображением и памятью – берём листик и пишем на нём условие задачи. В моём варианте будет всё относительно, сильно на него опираться не стоит. И так, моя задача:

Персонаж Х должен стрелять более точно (с гашением отдачи) как «на бегу» (или просто стоя, не используя прицел, ближний бой…), так и по прицелу. Причём, по прицелу он должен стрелять сидя. По окончании стрельбы перезарядиться.

На что обращаем внимание – у нас 2 режима гашения, значит нужно провести 2 разных баллистических анализа. Один по прицелу сидя, второй без прицела стоя. Расстояние выбираете сами. Не будем вдаваться в подробности баллистики, возьму их с инструкции. Имеем линейную характеристику с уклоном вправо. Для варианта стоя на расстояние в 70м от стены наш анализ и пробы показали релативное смещение координат на каждую пулю в (-1;-2), для варианта сидя – расстояние 150м релативное смещение (-2;-10).

По оружию нам нужно время задержки. Из данных по оружию – автомат Х, скорострельность (выстрелов в минуту) – 640RPM (тоже взял от фонаря). Считаем по формуле из прошлых инструкций, получаем 93,75мс, округляем до 94мс.

Используемые кнопки: перезарядка – R, присесть – Ctrl.

 

Теперь можно переходить к анализу нашей задачи. От того, насколько правильно вы её проанализируете, будет зависеть правильность написания. Предупреждаю, нужно добиваться минимального количества строк с наименьшим числом переходов.

Начинаем анализ нашей задачи. Для лучшего понимания попробуйте проделать всё это вручную, запомните последовательность нажатий. И так, всё начинается с нажатия левой кнопки мыши (ЛКМ). Запишем на листик эту первую строчку, как старт выполнения макроса. То есть, наше нажатие ЛКМ инициирует начало макроса и его исполнение. Описываем первое условие для стрельбы стоя – нажали ЛКМ, задержка, отпустили ЛКМ, задержка, релативное смещение (-1;-2). Теперь описываем второе условие – зажали Сtrl, нажали ЛКМ, задержка, отпустили ЛКМ, задержка, релативное смещение (-2;-10), отпустили Сtrl. Перезарядка общая для обоих условий. Первая часть анализа основных действий закончена.

Анализируем части условий. Нам нужно будет указать макросу в какое время должно быть начато выполнение второго условия – по нажатию ПКМ. Ко всему, мы описали вылет только одной пули. Нам не хватает цикла. Переписываем второе условие:

 

Если ПКМ нажата То -> «Условие2»: зажать Сtrl, Нажать ЛКМ *, задержка, Отпустить ЛКМ, задержка, релативное смещение **, Если ЛКМ нажата То- Цикл с * по **, Если ЛКМ отпущена То – отпустить Сtrl

Мы описали, что мы присели, и будем стрелять, пока не отпустим левую кнопку мыши. И только после отпускания ЛКМ мы встанем. Задержку подобрать из расчётных 94мс так, чтобы оружие не запиналось. Схема может быть либо по целому числу задержки или половинному.

Таким же макаром анализируем и переписываем первое условие:

Если ПКМ отпущена То -> «Условие1»: Нажать ЛКМ *, задержка, Отпустить ЛКМ, задержка, релативное смещение **, Если ЛКМ нажата То- Цикл с * по **, Если ЛКМ отпущена То –перейти к концу макроса или следующему условию/действию

Описали то же самое, что и во втором условии. Не забываем, что у нас есть ещё одно действие – перезарядка. Самое последнее условие и будет на это указывать.

Теперь опишем условие старта макроса, признаки, по которым он будет запускать нужную нам часть условия. Разделение признаков осуществляется по логической единице. То есть, нажата это 1 или ДА, отпущена – 0 или НЕТ. Описание процедуры определения признака нужно начинать с 0. Опишем это определением признака:

 

Если ПКМ отпущена То – выполняем условие 1, Если ПКМ нажата То –выполняем условие 2

 

         
   
 
 
 
   

 


Вот так это выглядит схематически. Далее будем воплощать нашу схему в жизнь. Открываем наш Макроэдитор и начинаем вбивать наши условия. Начинаем с определения признаков.

Выбираем вкладку Key, задаём второй клавише признак Отпущено/Ненажато, переход на строку 3. Для нажато я пока выбрал произвольную строку, откорректирую позже. Теперь вбиваем наше Условие1.

 

Снова значение перехода в строчке 9 взято пока от фонаря. Всё, что нажималось обведено. Задержка пока взята половинной, 94/2=47. Теперь мы видим, что строчка 2 должна ссылаться на строчку 10, а не 8. Корректируем её и продолжаем вбивать второе условие. Признак в конце условия меняется с 0 на 1. Теперь вначале проверяется 1, а затем проверяется 0.

В строчке 16 мы указываем цикл на продолжение стрельбы при нажатой ЛКМ. Отличие заметили между условиями? В первом условии у нас есть прыжок на строку по отпущенной ЛКМ, а во втором условии прыжка нет. Почему? Потому, что в первом условии нам нужно было пропустить выполнение второго условия, а после второго условия идёт перезарядка и окончание макроса своим чередом. Нет смысла указывать прыжок на следующую строку. Попросту минимизировали. Теперь мы можем подкорректировать прыжок в строке 9 на строку 18 и закончить выполнение макроса перезарядкой.

Здесь мы тоже можем сэкономить одну строчку, убрав вставку задержки по отпусканию кнопки. В остальном, сохраняем макрос, конвертируем его в M-Macro, назначаем кнопку, загружаем и тестируем. Проверяем запинание оружия, корректируем задержки с помощью удаления строки с значением задержки и вставляем задержку через стрелочку, сняв пометки нажатия отпускания. Так же стоит попробовать кнопки повтора, но, думаю, не понадобится.

Это только один из примеров сложных макросов. Исполнение может быть любое на ваше усмотрение. Учтите, что плохо продуманный макрос может ввести мышь в ступор. Например, из-за ухода в постоянный цикл. Удачи вам в написании. http://vk.com/topic-54726107_30303191

Обнаружена ошибка!!! В эдиторе вниз по оси Y – это положительная величина, вверх - отрицательная. Пример: в коде макроса должно быть Mouse_relative_move -2 10, а не -2 -10

Виталий Кондратенко. Tjet.com@mail.ru


Дата добавления: 2015-07-15; просмотров: 72 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Резонанс напряжений| Результаты освоения ПРОФЕССИОНАЛЬНОГО МОДУЛЯ

mybiblioteka.su - 2015-2024 год. (0.009 сек.)