Пятница, 19.04.2024, 05:49 | RSS | Приветствую Вас Гость
Главная | Регистрация | Вход
Меню сайта
Категории раздела
Разное [10]
Решения задач (студентам) [9]
PC Игры - кодинг [2]
Python [1]
PHP, Mysql [1]
HTML, CSS, Javascript [1]
Scilab [1]
Поиск
Опрос
Какой язык программирования Вы предпочитаете?
Всего ответов: 44
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » PC Игры - кодинг

Консольные команды в Quake 3. Часть 2. Макрос-клавиши.
Бывает много в случаев в Quake, когда быстро проделать несколько операций. При том так быстро, что никакие, даже самые набитые, пальцы не успеют  сделать этот так быстро, как требует того ситуация. А особенно, если этот необычный набор операций надо проделывать часто. Так, например, можно часто увидеть такое в поведении ботов, а именно, быстро сменить одно оружие на другое сделать один выстрел и вернуться к прежднему оружию. Конечно, для ботов это плевое дело - проделать такое в любой момент при любых обстоятельствах и по несколько раз - ведь им не приходится жать на кнопки. И другое дело - живой игрок. В данной ситуации спасут макросы. Именно о них эта статья.

Как говорилось в первой части этой статьи (Консольные команды в Quake 3. Часть 1.), команда bind назначает какое-то действие на клавишу. Вся шутка в том, что этой команде абсолютно безразлично, сколько действий привязывать на кнопку. Именно с помощью этого можно сделать макрос (последовательный набор операций).

Самый простой способ создать макрос, прописать в конфиге или через консоль коману такого вида bind <клавиша> "<действие 1>; <действие 2>; <действие 3>; <действие 4>". Обязательно надо разделять команды символом ; (точка с запятой).

Но если таких макрос-кнопок много и вдруг захочется их переназначить... Очевидно, будет неудобно при каждом переназначении прописывать такую длинную строку в консоли. А  в конфиг файле при большом количестве таких длинных строк просто можно заблудиться. В таком случае следует применить еще две команды: seta и vstr.

seta устанавливает значение любой переменной (даже еще не существующей) на совсем (прописывает ее в q3config.cfg). vstr возвращает значение переменной. И с помощью команды seta привязать макрос не к кнопке, а записать в переменную.

Рассмотрим на примере.

seta sgQuick "weapon 3; wait; wait; wait; wait; wait; +attack; wait; wait; wait; -attack; weapon 5"

Здесь sgQuick это название переменной (выглядит приятнее чем строка, заключенная в ковычках далее!). А выражение в ковычках это набор операций, т.е. макрос. Этот макрос выбирает в инвентаре дробовик (weapon 3) делает один выстрел и выбирает ракетницу (weapon 5). Обратите внимание на многократно прописанную команду wait. Она делает небольшую задержку выполнения каких-либо действий. Команда attack (выстрел) прописана два раза - с плюсом и с минусом. Символ "+" означает, что клавиша зажата, "-" что отпущена. Если просто прописать +attack, то когда очередь в макросе дойдет до этой команды, персонаж будет стрелять без остановки и никакие нажатия других клавишь не помогут. Кроме того, после нажатия нескольких клавишь управление целиком заклинит!

Что касается количества команд wait. Следует помнить, что в оригинальном Quake 3: Arena и в модах для него динамика игры сильно различается, а потому для каждой версии (или мода) нужно делать свои задержки. Так, например, указанный выше макрос писался для Quake 3: CPMA. В этом моде все действия происходят очень быстро, смена оружия идет практически без задержки. А потому, использовано 5 и 3 wait'ов. Но, учитывая, что динамика игры в Quake 3: CPMA и Quake Live схожа, для этих версий игр можно применять одни и те же макросы. Таким образом, самое сложное при создании макросов это подобрать правильные задержки между действиями, чтобы они успевали завершиться до конца.

И так, после того, как ситуация по поводу длинных строк разъяснена, следует задуматься об организации "библиотеки" макрос-кнопок. Самый лучший вариант, прописать набор переменных с макросами в отдельный .cfg файл, а затем занести все эти переменные разом в игру с помощью команды exec через консоль.
Пример.

exec myhotkeys.cfg

После этого через ту же консоль или через конфиг-файл можно биндить макросы на клавиши.
Пример.

bind q vstr sgQuick

Вот тут-то и нужна команда vstr. Участок строки "vstr sgQuick" будет равносилен строке "weapon 3; wait; wait; wait; wait; wait; +attack; wait; wait; wait; -attack; weapon 5". Самое сложное в данном случае будет не забыть, какая переменная за какой макрос отвечает.

Но есть одно "НО". Желательно перед назначением переменных прописать в игре в консоли cvar_restart. Это избавит от нежелательных глюков. Один из них - макросы не работают! Особенно такое может быть, если игра используется давно и игрок за это время прилично помучал консоль. Вероятно, некоторые переменные начинают конкурировать... ну или что-то в этом роде.

P.S. Ну... и если все в порядке, удачных Вам и красивых фрагов! :]]

Предыдущая часть: Консольные команды в Quake 3. Часть 1.
Поделиться ссылкой в соц. сетях:

Категория: PC Игры - кодинг | Добавил: =Sanek= (10.05.2011)
Просмотров: 2946 | Теги: Конфиги, Макросы, Quake Live, консольные команды, Quake 3 | Рейтинг: 1.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

© 2024 raznocoding.do.am