Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Команды объявления переменных (Declaring variables)Содержание книги
Поиск на нашем сайте
Существует 4 типа переменных:
Локальная переменная может быть объявлена где угодно в скрипте, главное, чтобы она была объявлена перед первой командой, которая будет ее использовать. Обычно все переменные декларируют в начале скрипта, чтобы его было легче читать. Скрипты также могут использовать переменные типа reference (ссылка на копию объекта):
4.3.4 Команды Begin (начало блока) и End (конец блока) Конструкции Begin-End являются блоками, внутри которых и размещен, собственно, весь исполняемый код скрипта. Другими словами, все скриптовые команды, кроме объявления переменных, обязательно должны находиться именно внутри блоков begin-end!
Теперь все блоки Begin-End имеют свое условие для выполнения. Это полезное нововведение в скриптовый язык TES 4 Oblivion, по сравнению с TES 3 Morrowind. Условия ставятся в строке непосредственно после команды Begin и получили название "тип блока" (BlockTypes). Всего их насчитывается 30 и все они имеют различное назначение. Каждый раз, когда скрипт выполняется в текущем фрейме, все блоки скрипта проверяются на истинность их условий. Если условие какого-либо блока не истинно, то этот блок и все скриптовые команды в его пределах выполняться не будут.
Команда End всегда завершает начатый блок, т.е. каждому begin должен обязательно соответствовать свой end. Блоки следуют один за другим последовательно и таким же образом выполняются.
Важные замечания: · Количество блоков в скрипте может быть произвольным, но не менее одного! · Блоки begin-end не могут быть вложенными! · Все блоки должны обязательно содержать название используемого типа блока! Пример:
В таблицу, приведенную ниже, сведены все существующие блок-типы. Общее их количество равно 30.
Заметьте, что для блоков с параметрами можно указывать тот же самый блок несколько раз, используя разные параметры. Например, этот скрипт не содержит ошибок:
Типы выполняемых блоков (BlockTypes). Рассмотрим типы выполняемых блоков более подробно.
GameMode Скрипт внутри этого блока выполняется в каждом фрейме, когда игра не находится в режиме меню. Большинство скриптов используют исключительно этот тип блока.
Пример:
В игре Обливион блок-тип GameMode используется 964 раза. MenuMode Синтаксис:
Пример:
Без параметров этот блок будет выполняться, когда игрок НЕ находится режиме игры – то есть, когда отображается ЛЮБОЕ меню.
Тип меню:
Меню:
В игре Обливион блок-тип MenuMode используется 34 раза. OnActivate Синтаксис:
Этот блок запускается один раз, когда активируется заскриптованный объект. В игре Обливион блок-тип OnActivate используется 587 раз.
OnActorEquip Синтаксис:
Пример:
Этот блок выполняется один раз, когда заскриптованный актер надевает указанный объект (ObjectID). В игре Обливион блок-тип OnActorEquip используется 1 раз.
OnActorUnequip Синтаксис:
Пример:
Этот блок выполняется один раз, когда заскриптованный актер снимает указанный объект (ObjectID). В игре Обливион блок-тип OnActorUnequip не используется. OnAdd Синтаксис:
Пример:
Этот блок выполняется один раз, когда заскриптованный объект добавляется в указанный контейнер (ContainerRefID). Если контейнер не указан, блок будет исполняться, если объект добавляется в любой инвентарь. В игре Обливион блок-тип OnAdd используется 72 раза. OnAlarm Синтаксис:
Пример:
Этот блок выполняется один раз, когда заскриптованный актер поднимает тревогу по поводу определенного типа преступлений (CrimeType), совершенного преступником-актером (Criminal). Если указан только тип преступлений, блок будет исполняться, когда актер поднимает тревогу по поводу этого типа преступлений (неважно кем совершенного). Если необходимо знать больше информации о преступлении, функция GetCrimeKnown может использоваться внутри блока OnAlarm, чтобы определить, случилась ли определенная комбинация преступник/жертва. В игре Обливион блок-тип OnAlarm используется 15 раз.
OnAlarmVictim Синтаксис:
Пример:
Этот блок выполняется один раз, когда заскриптованный актер поднимает тревогу по поводу определенного типа преступлений (CrimeType), совершенного против жертвы-актера (Victim). Если указан только тип преступлений, блок будет выполняться, когда актер поднимает тревогу по поводу этого типа преступлений (неважно против кого совершенного). Если необходимо знать больше информации о преступлении, функция GetCrimeKnown может использоваться внутри блока OnAlarm, чтобы определить, случилась ли определенная комбинация преступник/жертва. В игре Обливион блок-тип OnAlarmVictim не используется.
OnDeath Синтаксис:
Пример:
Этот блок выполняется один раз, когда указанный актер (ActorID) убивает заскриптованного актера. Если параметр не используется, блок выполняется, когда заскриптованный актер умирает. В игре Обливион блок-тип OnDeath используется 303 раза.
OnDrop Синтаксис:
Пример:
Этот блок выполняется один раз, когда заскриптованный объект сбрасывается из указанного контейнера (ContainerRefID). Если контейнер не указан, блок будет исполняться, если объект сбрасывается из любого инвентаря. В игре Обливион блок-тип OnDrop используется 7 раз.
OnEquip Синтаксис:
Пример:
Этот блок исполняется один раз, когда заскриптованный объект надевается указанным актером (ActorID). Если параметр не используется, блок будет исполняться, когда объект надевается любым актером. В игре Обливион блок-тип OnEquip используется 27 раз.
OnHit Синтаксис:
Пример:
Этот блок исполняется один раз, когда заскриптованный актер получает удар от указанного актера (ActorID) оружием или заклинанием. Если параметр не используется, блок исполняется каждый раз, когда актера ударяют. В игре Обливион блок-тип OnHit используется 55 раз.
OnHitWith Синтаксис:
Пример:
Этот блок исполняется один раз, когда заскриптованный актер получает удар указанным оружием (ObjectID). Если параметр не используется, блок будет выполняться, когда заскриптованный актер получает удар любым оружием. В игре Обливион блок-тип OnHitWith используется 7 раз.
OnKnockout Синтаксис:
Этот блок исполняется один раз, когда заскриптованный актер отправляется в нокаут. В игре Обливион блок-тип OnKnockout не используется.
OnLoad Синтаксис:
Этот блок исполняется один раз, когда загружается модель объекта, то есть когда игрок заходит в интерьер, ячейка с объектом загружается в область 5x5 вокруг игрока. В игре Обливион блок-тип OnLoad используется 95 раз.
OnMagicEffectHit Синтаксис:
Пример:
Этот блок исполняется один раз, когда указанный тип магического эффекта (EffectID) ударяет по заскриптованному объекту. Если эффект не указан, блок будет выполняться, когда любой эффект ударяет по объекту. В игре Обливион блок-тип OnMagicEffectHit используется 7 раз.
OnMurder Синтаксис:
Пример:
Этот блок выполняется один раз, когда указанный актер (ActorID) совершает убийство (преступление) заскриптованного актера. Если параметр не используется, блок выполняется, когда совершается убийство заскриптованного актера (неважно кем). В игре Обливион блок-тип OnMurder используется 10 раз.
OnPackageChange Синтаксис:
Пример:
Этот блок выполняется один раз, когда заскриптованный актер меняет пакет ИИ с указанного (PackageID) на другой. Заметьте, что "прерывающие" пакеты, такие, как бой или разговор, не запускают этот блок, поскольку они лишь временно заменяют текущий пакет. В игре Обливион блок-тип OnPackageChange используется 32 раза.
OnPackageDone Синтаксис:
Пример:
Этот блок исполняется один раз, когда заскриптованный актер завершает указанный пакет ИИ (PackageID). Заметьте, что пакет может быть завершен из-за неудачи (не найден путь, невозможно найти нужное количество объектов, или истекло время), если только у пакета не установлены флаги Must Reach Location или Must Complete. В игре Обливион блок-тип OnPackageDone используется 45 раз. OnPackageStart Синтаксис:
Пример:
Этот блок исполняется один раз, когда заскриптованный актер начинает выполнять указанный пакет (PackageID). В игре Обливион блок-тип OnPackageStart используется 13 раз.
OnReset Синтаксис:
Этот блок исполняется один раз, когда ячейка с объектом возвращается в исходное состояние (через 3 после последнего посещения игрока). Обычно используется для ловушек и анимированных объектов, чтобы вернуть их в исходное состояние. В игре Обливион блок-тип OnReset используется 110 раз. Примеры скриптов: ARCAVEINTRAPSCRIPT01, ARChainPlatform01SCRIPT
OnSell Синтаксис:
Пример:
Этот блок исполняется один раз, когда заскриптованный объект продается. Если вы указываете копию продавца (SellerRefID), блок будет исполняться только тогда, когда указанный объект продает объект; иначе он выполняется, когда любой NPC продает объект. В игре Обливион блок-тип OnCell используется 1 раз.
OnStartCombat Синтаксис:
Пример:
Этот блок выполняется один раз, когда заскриптованный актер начинает бой с указанной целью (TargetActorRefID). Если цель не указана, блок исполняется, когда актер начинает бой. В игре Обливион блок-тип OnStartCombat используется 13 раз.
OnTrigger Синтаксис:
Пример:
Этот блок исполняется один раз, когда что-то сталкивается с заскриптованным объектом. Если вы указываете это что-то (TriggeringRefID), блок исполняется, когда указанная копия сталкивается с объектом; иначе блок исполняется, когда любая копия сталкивается с объектом. В игре Обливион блок-тип OnTrigger используется 94 раза.
OnTriggerActor Синтаксис:
Пример:
Этот блок исполняется один раз, когда актер сталкивается с заскриптованным объектом. Если вы указываете это актера (TriggeringRefID), блок исполняется, когда указанная копия (актера) сталкивается с объектом; иначе блок исполняется, когда любой актер сталкивается с объектом. В игре Обливион блок-тип OnTriggerActor используется 11 раз.
OnTriggerMob Синтаксис:
Пример:
Этот блок исполняется один раз, когда мобильный объект сталкивается с заскриптованным объектом. Если вы указываете этот объект (TriggeringRefID), блок исполняется, когда указанная копия (мобильного объекта) сталкивается с объектом; иначе блок исполняется, когда любой мобильный объект сталкивается с объектом. Мобильные объекты включают актеров (NPC и существа), стелы и магические снаряды. В игре Обливион блок-тип OnTriggerMob не используется.
OnUnequip Синтаксис:
Пример:
Этот блок исполняется один раз, когда заскриптованный объект снимается указанным актером (ActorID). Если параметр не используется, блок исполняется, когда объект снимается любым актером. В игре Обливион блок-тип OnUnequip используется 11 раз.
ScriptEffectFinish Использование:
Особый блок. Он используется только в скриптах для магических эффектов. Этот блок исполняется после того, как заскриптованный эффект закончился. В игре Обливион блок-тип ScriptEffectFinish используется 32 раза.
ScriptEffectStart Использование:
Это особый блок. Он используется только в скриптах для магических эффектов и выполняется сразу же после того, как заскриптованный эффект наложен. В игре Обливион блок-тип ScriptEffectStart используется 42 раза.
ScriptEffectUpdate Использование:
Особый блок, используется только в скриптах для магических эффектов. Этот блок запускается, как только эффект наложен, и исполняется до тех пор, пока время действия эффекта не закончится. В игре Обливион блок-тип ScriptEffectUpdate используется 13 раз. 4.3.6 Команда "." (точка - UseReference) Синтаксис:
Команда "." устанавливает предшествующий ей ObjectID (ID объекта) только для текущей функции. ObjectID может быть задан как непосредственно - с указанием ID копии объекта, так и с помощью переменной типа reference (как указатель на объект).
Команда Set (установить) Команда Set присваивает локальной или глобальной переменной указанное значение. Это значение может быть числом или результатом вычисления выражения.
Примечания: · Оператор модуля "%" вычисляется после умножения / деления, но перед сложением / вычитанием:
· Минус сразу перед числом или переменной считается знаком "отрицания". Если вам необходимо выполнить вычитание, нужно оставлять как минимум по одному пробелу до и после минуса. Это единственный случай, когда вам нужен пробел между арифметическими операторами. (Например: "a-b" не будет компилироваться; нужно написать "a - b"). · Если при делении вы используете только числа, необходимо указать хотя бы один знак после запятой, чтобы показать, что вы хотите использовать деление с вещественным результатом, иначе остаток будет отброшен после окончания деления:
· Если вы хотите сохранить в целочисленной переменной верно округленный результат деления, убедитесь, что в вычислениях используется плавающая точка (и десятичная часть не отбрасывается) и добавьте 0.5:
· Вы можете использовать результат сравнения в качестве "значения". Переменная тогда станет равной 1 или 0 в зависимости от того, истинно ли сравнение или нет. Например,
делает то же самое, что и
Другие примеры:
Команда Return (возврат) Синтаксис:
Команда Return используется для того, чтобы остановить выполнение скрипта в текущем фрейме. Она не просто завершает ТЕКУЩИЙ блок, он завершает ВЕСЬ скрипт до конца фрейма. Скрипт будет запущен снова в следующем фрейме. Это может быть полезно внутри команд if, когда требуется блокировать команды, следующие непосредственно после return.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-07-11; просмотров: 370; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.28.111 (0.012 с.) |