Введение в Q3-скрипты
Вступление
Чтобы сразу предовратить неизбежные вопросы во вступлении обозначим - что новенького в системе скриптов Quake III? Во-первых, те из вас, кто знаком с конфигами еще со времен Quake 2 (или даже Quake 1) возможно удивятся, узнав, что из игры убрана команда "alias", теперь ее нет. И чтобы создавать алиасы нужно пользоваться другой командой (см. ниже). И во-вторых, теперь в Quake III Arena ВООБЩЕ нет возможности написания алиасов навроде "+action", т.е. тех, которые начинают выполняться при нажатии на клавишу и прекращают выполнение после ее отпускания. Это конечно плохо, но придется пока с этим смириться.
Основы
Начнем помаленьку. Первым делом в игре необходимо настроить клавиши передвижения и управления оружием. Самый простой способ - это произвести настройку в меню игры (Setup-Configuration).
Однако любой, кто хочет научится разбиратся в скриптах, должен уметь настраивать все с консоли. Соответственно, для настроек клавиш существует команда "bind".
Например, я хочу, чтобы при нажатии клавиши "g" устанавливался ник игрока, мне нужно ввести в консоли команду:
bind g "name Goblin"
Конкретно для данной команды наличие кавычек необязательно, но как правило рекомендуется команды заключать в кавычки, что делает чтение длинных скриптов на порядок проще.
Алиас
Что такое "алиас"? Это последовательность команд, имеющая конкретное название. Под командами понимаются те команды, которые можно использовать в консоли игры.
Например, если бы мы хотели сделать алиас "Прыжок вправо", то включили бы в него команды
"начать_двигаться_вправо;сделать_прыжок;прекратить_двигаться_вправо".
После этого достаточно присвоить этот алиас клавише D bind D "прыжок вправо", и тогда при ее нажатии будет выполнена данная последовательность команд.
Как уже было сказано выше, команда "alias" в Quake III Arena была исключена. Чтобы создать свою последовательность команд, нужно создать свою переменную содержащую эту последовательность. Для этого существует команда set переменная "последовательность команд". А затем использовать команду vstr переменная, которая выполнит последовательность команд, указанных в переменной. Вот вам простой пример:
set rocket "weapon 5; echo Rocket Launcher chosen"
bind r "vstr rocket"
В этом примере создается переменная rocket и ей присваивается значение "weapon 5; echo Rocket Launcher chosen" (включить RL и потом вывести на экран надпись "Rocket Launcher chosen").
Затем клавише r присваивается команда "vstr rocket", которая выполняет последовательность команд в переменной rocket.
Теперь рассмотрим более сложный пример, демонстрирующий часто используемый принцип работы с переключением каких-либо команд:
set zoomin "+zoom; echo Zoomed In!; set zoomtoggle vstr zoomout"
set zoomout "-zoom; echo Zoomed Out!;
set zoomtoggle vstr zoomin" set zoomtoggle "vstr zoomin" set cg_zoomfov 25
bind z "vstr zoomtoggle"
В этом скриптике мы создаем три переменные ZOOMIN, ZOOMOUT и ZOOMTOGGLE. Первая переменная содержит команды, которые включают режим увеличения и присваивают переменной ZOOMTOGGLE значения второй переменной. А во второй все наоборот: режим увеличениявыключается, а ZOOMTOGGLE присваивается первая (ZOOMIN) переменная.
Таким образом, при нажатии клавиши Z в первый раз выполняется команда zoomtoggle, содержащая "vstr zoomin". После этого, команде zoomtoggle назначается команда "vstr zoomout" и поэтомупри следующем нажатии Z будет выполнена последовательность команд в переменной zoomout.
Видите как все просто?
Команда TOGGLE
И парру слов о довольно полезной команде в Quake3Arena: toggle переменная. Она делает простое, но нужное действие - переключает значение указанной переменной либо в "0", либо в "1". Например, если вы хотите, чтобы при нажатии X, то включался, то выключался счетчик FPS, сделайте следующее:
bind x "toggle cg_drawfps"
Данная команда может быть запросто использована в более сложных скриптах, для переключения значений простых (0/1) переменных.
Где все это сохранить?
Обычно все основные команды игрока хранятся в файле под названием "config.cfg". Но туда не всегда сохраняются те команды, которые мы вводили с вами в консоли. Поэтому самый надежный выход - это создание своего собственного конфига, в котором будут все ваши настройки.
Назвать этот файл можно либо autoexec.cfg, и тогда Quake III Arena будет выполнять этот файл при запуске игры, либо вы можете его назвать по своему: filename.cfg. И тогда в игре, вам нужно будет в консоли ввести команду на выполнение этого файла: /exec filename. Находится этот файл должен там же, где находится конфиг самой игры.
Каждый из скриптов можно использовать двумя способами. Либо копировать в свой конфиг и настраивать на удобные клавиши. Либо, если у вас много скриптов, а очередной используется редко - скопировать его в отдельный файл, например quake3/baseq3/script_1.rc и в игре загружать его с помощью команды "exec script_1.rc".
Не забывайте, что одна кнопка не может быть использована в двух разных скриптах. Либо следите, чтобы такого не случалось, либо копируйте скрипты в разный конфиги и экзечьте ("exec ..") их по необходимости.
Copyright c 2002 by DOOMer