Опрос
Как вы относитесь к расширении тематики сайта
[ Результаты · Архив опросов ]
Всего ответов: 7678
Главная » Статьи » Oblivion » TES Construction Set

Быстрое обучение по скриптах
30.10.2016
Учебник скриптирования: Основы скриптирования

Из The Elder Scrolls Construction Set Wiki

Скрипт – это маленькая программа, которая запускается внутри игры, язык скриптов Обливиона сравнительно прост, опыт любых других языков программирования даст вам многое.
Главное правило: каждая операция должна начинаться с новой строки.
Вы также можете добавлять комментарии в свой скрипт, используя «;», все после точки с запятой будет проигнорировано.

Скриптовые операции могут быть разделены на две базовые категории, каждая с двумя подкатегориями.

1.Команды

Команды – это скриптовые операции, которые контролируют, что, собственно, происходит внутри скрипта. Команды управляют исполнением скрипта, однако не воздействуют на мир прямо.

[ Примечание переводчика: по-видимому, имеется в виду, команды не влияют прямо на события, происходящие в мире внутри игры, сиречь в Киродииле. В общем, понимайте как хотите =)]

Различают две подкатегории: административные команды и statement.

[Примечание переводчика: поскольку я не профессиональный программист, я не смог подобрать точного термина для «statement».Простите мне этот маленький грех. Вообще statement переводится как «заявление» или «утверждение». Однако в данной ситуации оба термина не будут точными, поскольку «statement» в скриптах Обливы (как и Морра) означает открытие своего рода конструкции, влияющей на исполнение скрипта – дальше по ходу вы сами это увидите. Давайте будет называть statement просто конструкциями. Еще раз прошу прощения. Если подберете нужный термин – отпишитесь мне на мыло, пожалуйста.]

Административные команды – это Scriptname [название скрипта – прим. переводчика], Begin, End и блоки [Blocktypes – отдельное явление в скриптах Обливиона, об этом позднее, не путайте с обычными кусками скрипта, которые традиционно называют блоками; все, что касается Blocktypes я обозначу полужирным шрифтом – прим. переводчика], используемые командой Begin.Каждый работающий скрипт требует как минимум Scriptname и один «Begin...End» блок, чтобы назначить скрипт объекту и контролировать, когда скрипт будет исполнен.

Конструкции – это Set, If, Return, а также объявления переменных. Конструкции не требуются, чтобы скрипт заработал, однако наиболее простые скрипты используют их, чтобы контролировать, как исполнен скрипт. [Сложно для понимания. Это не я, честно. У авторов тутора какая-то байда в этом месте была, словно печатали с перепоя. А может еще одна непонятная схема буржуйского языка. ИМХО, конструкции не только простые, но и сложные скриты используют. В общем, читайте так: большинство скриптов используют конструкции чтобы контролировать то, каким образом исполняется или исполнился скрипт – Тиберий.]

2. Функции

Функции – это скриптовые операции, которые взаимодействуют со внутриигровым миром. Это наибольшая категория скриптовых операций. Каждая функция обращает значение, которое может быть использовано как условие для «If»-конструкции или чтобы установить значение переменной с помощью «set»-конструкции.
Различают две категории: пассивные и активные функции.

• Пассивные функции проверяют определенные состояния внутри игры и обращают числовое значение, которые представляют их. Например, «GetActorValue», которое обращает конкретное число, или «GetDetected», которое обращает «1», если цель замечена и «0» если нет.

• Активные функции производят изменения во внутриигровом мири и обычно обращают булевые значения («1» или «0»). RemoveSpell, например, удаляет заклинание у цели [объекта скриптовой операции – Тиберий] и обращает «1», если действие было успешным ( то есть у цели было заклинание первоначально [короче говоря, было что отнимать – Тиберий]). PlaceAtMe создает объект в локации вызывающего и становится ссылкой на данный объект. [Вызывающий, ссылки... не паниковать! Читайте дальше, все просто на самом деле. Будут замечания по более точному переводу (термины я подобрал некрасивые) пишите на мыло - Тиберий]

3. Ссылки и Переменные

Функции влияют на вызывающий объект (которым запущен скрипт [я это так понял – в который рука разраба или моддера запихала скрипт и с существованием которого связано исполнение скрипта; как в старом добром Морре]) по умолчанию, однако вы можете перенаправить их на другой объект, используя ссылку на объект. Когда вы хотите, чтобы скрипт подействовал на игрока, например, используйте ссылку на игрока («Player») и «.» (точку), чтобы перенаправить действие ссылки на игрока вместо вызывающего объекта.
player.additem gold_001 100

Чтобы достигнуть большей гибкости, вы можете использовать переменные вместо числового значения, когда бы функция ни требовала такого ввода.

short addgold
set addgold to 100
player.additem gold_001 addgold

Вы можете использовать переменные того же скрипта [запоминайте термины, такая переменная называется локальной - Тиберий] или глобальные. Но невозможно направить локальную переменную на локальную переменную другого скрипта без функции. Только команды If и Set могут достигнуть таких перенаправленных переменных.
player.additem gold_001 otherobject.addgold

Это не будет работать, используйте следующее:

short addgold
set addgold to otherobject.addgold
player.additem gold_001 addgold

Учебник скриптирования: Мой первый скрипт
Из The Elder Scrolls Construction Set Wiki

http://cs.bethsoft.com/constwiki/index.php/Scripting_Tutorial:_My_First_Script

Этот небольшой тутор даст вам краткий инструктаж создания вашего первого скрипта. Это детальное пошаговое описание процесса создания скрипта займет около 5-10 минут.

Итак, приступим.
1. Откройте The Elder Scrolls Construction Set.

2. Выберите File --> Data, откроется окно. Двойным щелчком выберите Oblivion.esm и кликните OK. (Затем подождите пока все загрузится.)

3. В Object Window (Окне объектов), найдите отмычки. Вы найдете их в списке Items --> Misc Item. (Если у вас нет отмычки, подойдет любой обычный предмет, такой как яблоко или еще что-нибудь.) Двойной клик на предмете.

4. Откроется окно со свойствами предмета. Там, где написано Script: NONE, кликните 3 маленькие точки рядом.[Еще точнее: найдите строчку с этим текстом, там выпадающий список, а справа – кнопочка с тремя точками; вот ее-то и жмите; и не говорите, что Тиберий вас не любит – прим. переводчика.]. Это откроет Script Editor (редактор скриптов).

5. Выберите Script --> New, чтобы начать новый скрипт.

6. Вырезаем и вставляем следующее [буржуи, все им резать надо, лучше копируем Ctrl + C и вставляем Ctrl+V; вообще, учитесь все клавой делать, с наименьшим количеством щелчков мыши - Тиберий]:
ScriptName HelloWorld
Begin OnAdd
Message "Hello World!", 10
end
Инфо о данном скрипте:
- Первая строка – это имя скрипта [пресловутое Scriptname - Тиберий]. Убедитесь, что оно уникально[а если не убедитесь, редактор напомнит – начнет материться и взывать ко всем инстанциям – опять тот самый Тиберий].
- "Begin OnAdd" означает, что этот скрипт будет действовать будет исполняться всякий раз, когда вы подберете этот предмет. Команда «end» закрывает ту секцию скрипта, которая связана с «OnAdd». У вас может отдельный begin/end блок для каждого blocktype [помните, я говорил о блоках, которые я буду отмечать полужирным? Так вот, это тот саамы блок – Тиберий.] [Далее авторы предлагают посмотреть часть материала по Begin . Ссылку я оставил, хотя я это тоже переведу. Вообще говоря, свой материал в нете они выложили прегадко. Чтобы хоть о чем-то составить целостную картину, надо изрядно пощелкать мышью по ссылкам. Буржуи, что с них возьмешь - Тиберий]
- И последнее – контроль за строкой сообщения, которая будет отображена с «10», означающей как долго сообщение будет оставаться на экране.Посмотрите больше информации о команде вывода сообщений (message): Message . [Еще одна ссылка. Раз авторы сделали, значит так надо. Это все-таки материал Интернета. Можете полазить там, хотя я постараюсь все это перевести и выложить для русскоязычной аудитории]

7. Сохраните скрипт и затем закройте Редактор скриптов.

8. Вернитесь к свойствам предмета, "HelloWorld" должно появиться как опция в выпадающем списке скриптов. (Возможно, вам нужно закрыть окно свойств объекта и снова открыть его, чтобы «HelloWorld» скрипт появился в выпадающем списке.)

9. Щелкните ok, чтобы сохранить изменения и закройте окно.

10. На панели инструментов выберите File --> Save; в окне сохранения введите имя файла HelloWorld (это будет esp файл [плаг!!! Ваш первый или очередной обливовский плаг!!! - Тиберий], HelloWorld.esp)

11. Откройте стартовое меню Oblivion (splash screen) [вот как это у буржуев, мы-то его OblivionLauncher зовем - Тиберий], и щелкните Data Files.

12. Двойным щелчком подключите свой HelloWorld.esp кликните ok и закроите окно.

13. Теперь запускайте игру, и все должно работать! Бросьте отмычку на землю, подберите ее и должно появиться сообщение "Hello World!". И вместе с этим добро пожаловать в скриптировани!

Категория: TES Construction Set | Добавил : Urkaver

Просмотров: 5322 | Комментарии: 5


Всего комментариев: 5
29.05.2020 Спам
5. Медведева Мария (супер-кошка-2001)
thanks thanks

09.10.2019 Спам
4. Виталий (wisperer)
thanks

25.08.2019 Спам
3. PorousAstarte (PorousAstarte)
Хех

09.08.2019 Спам
2. Ramoniche (Ramoniche)
ay

10.05.2018 Спам
1. Данил (KING)
:D

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Партнеры