Краткое руководство по скриптингу




Скачать 21.51 Kb.
НазваниеКраткое руководство по скриптингу
Дата публикации05.10.2013
Размер21.51 Kb.
ТипРуководство
odtdocs.ru > Информатика > Руководство

Краткое руководство по скриптингу


Язык внутриигровой консоли Cube схож с языками консолей других игр (напр., Quake), но он является более мощным, поэтому его можно назвать полноценным языком программирования.
Что является похожим на Quake, это базовая структура команд: команда состоит из, собственно, команды, сопровождаемой несколькими аргументами, разделённых пробелами. Вы можете использовать "" (кавычки), чтобы заключить строку с пробелами в один аргумент.
Что же касается отличий от Quake, так это то, что вы можете сравнивать alias'ы и выражения. Вы можете объявлять значение переменной как аргумент с помощью префикса "$" (напр.: echo The current value of x is $x). Вы также можете использовать значения консольных переменных, например $fov равняется текущему значению fov. Некоторые alias'ы создаются автоматически, например, создаются от $arg1 до $argN (как с помощью команды `push`), если вы держите аргументы во время выполнения alias'а, и уничтожаются по завершении выполнения.
Существуют две альтернативы кавычкам для заключения строки: () и []. Они действуют так же как и "", но с отличием: они могут быть вложены бесконечное кол-во раз, и могут содержать строки текста (широко исп. в больших скриптах). () отличается от [] тем, что команда, содержащаяся внутри обрабатывается перед обработкой команды, стоящей перед скобками и заменяет результаты. Строки, взятые в (), называются выражениями, а заключённые в [] могут быть названы блоками.
Альтернатива $x - это @x, которая использует alias в качестве макроса. Отличие в том, что @x может быть заменено внутри форм [] или () перед их вычислением (во время выполнения), что делает их полезными для составления строк или создания кода "на лету". Форма @x будет заменена на значение x во время вычисления [], содержащих выражение.Вы можете добавлять больше префиксов @ для подъёма на большее количество уровней [], поэтому @@x перейдёт на два уровня вверх, и т.д. Пример: x=0; if $cond [x = 1; [x = 2; echo @@x]] выдаст 0, так как использует значение x двумя уровнями выше.
Форма @(body) похожа на @x, исключая тот момент, что body содержит команды, выполняющиеся во время парсинга. Далее @(body) заменяется на результат выполнения всех команд внутри. Вы также можете использовать несколько префиксов @, как в случае с @x. Пример: @(result "Hello, World!") будет заменено на Hello, World!.
Следующие команды доступны для програмирования:

+ A B
- A B
* A B
div A B
mod A B

(прибавить, вычесть, умножить, разделить, деление с остатком): работают так же, как целочисленные операторы из других языков (пример: echo x squared is (* $x $x)).

= A B
< A B
> A B
strcmp A B

(равно, меньше чем, больше чем, сравнить строки): операторы сравнения возвращают 0 или 1.

! A
&& A B
|| A B
^ A B

(не, и, или, логическое или): двоичные операторы. 0 - false, всё остальное - true.

if cond true false

Выполняет части true/false, в зависимости от выполнения условия (пример: if (< $x 10) [ echo "x is" $x ] [ echo "x is too big" ])

loop I N body

Выполняет body N раз и присваивает I значения от 0 до N-1 за каждый раз. Пример: loop i 10 [ echo $i ]

while cond body

Выполняет body, пока cond=true. Прим. - условие должно быть заключено в [], в противном случае, будет вычислено только однажды. Пример: i = 0; while [ (< $i 10) ] [ echo $i; i = (+ $i 1) ]

concat S...

Соединяет все аргументы в одну строку и возвращает результат.

concatword S...

То же, что и concat, но без пробелов между элементами.

format F V1..Vn

Что-то вроде printf в C. Пример: format "%1 бутылок %2 на %3, %1 бутылок %2!" 99 пива стене вернёт 99 бутылок пива на стене, 99 бутылок пива!. %% внутри строки F будет преобразовано в %.

at S N

Возвращает N-ное слово из строки S

listlen L

Возвращает кол-во элементов в списке L

onrelease A

Выполняет A только при отпускании кнопки (Пример: sscale = $sensitivityscale; sfov = $fov; bind mouse2 [ sensitivityscale ( * $sscale 5 ); fov ( div $sfov 5); onrelease [ sensitivityscale $sscale; fov $sfov ] ])

result V

Возвращает результат блока V.
Переменные, которые могут быть полезны для использования в качестве значений:

$editing

Равно 1 в режиме редактирования.

Добавить документ в свой блог или на сайт

Похожие:

В водный курс для пользователя Kicad
Краткое руководство для успешной разработки печатных плат электронных устройств в системе автоматизированного проектирования

Руководство кассира-оператора
Данное руководство является кратким справочным описанием для кассира-оператора по работе в конфигурации "Торговля и склад. Ред. 2"...

Учебный комплекс программ для разработки интеллекта, играющего в...
Библиотека предназначена для обучения основам искусственного интеллекта для настольных игр на примере игры в крестики-нолики. Поле...

Учебный комплекс программ для разработки интеллекта, играющего в...
Библиотека предназначена для обучения основам искусственного интеллекта для настольных игр на примере игры в крестики-нолики. Поле...

Руководство по эксплуатации. Гарантийный талон
Чтобы Вы как можно быстрее овладели всеми его возможностями, мы подготовили полное справочное руководство, знакомящее с режимами...

Пошаговое руководство по установке и базовой настройке Gentoo Linux...

Руководство пользователя Москва, 2012
Данное руководство может распространяться только согласно условиям, изложенным в лицензии Open Publication License, версии 0 или...

Руководство Freebsd
Добро пожаловать в Freebsd! Это Руководство охватывает процесс установки и ежедневного использования

Руководство также включает в себя разделы объяснения основных функций
Данное руководство, чтобы описать пять основных видов применения программы sedev патч Studio 2

«Руководство по эксплуатации» иизучите
«Руководство по эксплуатации» и изучите обратную бесскобочную логику вычислений. Ваша «Электроника» обладает вычислительными возможностями,...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
odtdocs.ru
Главная страница