Как в Редакторе создать новый скрипт и добавить его объекту
В Редакторе GECK есть встроенный редактор скриптов, который можно открыть:
1. через Главное меню Gameplay - Edit Scripts. Откроется окно Script Edit
2. через окно настроек объекта (Armor, NPC, Misc Item, door, и тп.) Кнопка открытия Редактора скриптов
находится справа от окна выбора скриптов
в Weapon окно выбора скриптов без названия
Открыв окно Редактора скриптов мы видим Главное меню состоящее из трёх вкладок:
1. Script в нём пункты
New... - Создать новый скрипт
Open... - Открыть скрипт (откроется окно прокрутки со списком всех скриптов игры)
Previous Script - Предыдущий скрипт
Next Script - Следующий скрипт
Save - Сохранить
Recompile ALL - Перекомпилировать все скрипты ( заново компилировать все скрипты)
Delete - Удалить
Exit - Выход из редактора скриптов
2.Edit в нём пункты
Preferences - Настройки ( сменить цвет текста и фона)
Undo - Отменить
Redo - Повторить
Find Text - Найти Текст
Find Next - Искать дальше
Go ti Line - Перейти к строке в скрипте
3. Help - в нём пункты:
Contents - переход по ссылке на сайт The Elder Scrolls Construction Set Wiki в помощь
Commands - ссылка в раздел команды
Functios - ссылка на функции
Ниже Главного меню находятся иконки быстрого запуска для команд
По порядку слева направо - Открыть - Сохранить -Назад - Вперёд - Рекомпилировать - Удалить - Выход
После того как вы создали новый скрипт - выбрав в Главном меню Script - New
Можно вписать текст скрипта или скопировать готовый скрипт из другого источника CTRL - V и вставить CTRL - C
Например такой скрипт на появление объекта, при добавлении в контейнер игрока определённого предмета.
scn AAAKainTableDDD
Short doonce
Begin OnActivate Player
if (doonce ==0)
if (player.GetItemCount AAAKainArmorFiendHelmet > 0)
Set doonce to 1
endif
endif
end
Begin GameMode
if (doonce == 1)
AAAKainAppleRef.Enable
Set doonce to 0
endif
end
Но вы должны помнить о том, что пока не выполнены все условия, требуемые для работы скрипта он не сохраниться.
При выборе Save Редактор скриптов будет выдавать такое сообщение.
Примечание:
В Редакторе скриптов GECKNV есть такой баг - редактор не выводит информацию о месте ошибки, её содержимом.
Как вы видите, по окну сообщения в котором написано "Вы хотите сохранить текущий скрипт" и Current = - не понять почему Редактор не сохраняет скрипт и не закрывает окно.
Что бы исправить этот баг, можно скачать программу Defox ГЛЮКОИСПРАВИТЕЛЬ G.E.C.K. v1.0 (New Vegas Edition), автор Defox.
Скачать можно с сайта автора Глюкоисправитель
Требуемые условия для сохранения скрипта.
1.Должны быть созданы все объекты, сообщения, квесты и тп. чьи ID имена используются в скрипте.
2.Скрипт не должен содержать ошибок в написание команд, функций, переменных, операторов и тп.
В моём примере скрипт не сохраняется потому что объекты AAAKainArmorFiendHelmet - шлем и AAAKainAppleRef - яблоко не созданы.
Давайте создадим и как раз на примере рассмотрим добавление скрипта объекту.
Откроем ветку с бронёй. Окно Object Windows - Item -Armor, затем клик ПКМ (правой кнопкой мышки) в списке брони.
Здесь вы можете создать новый шлем, или отредактировать один из имеющихся.
Я выбрал для редактирования ArmorCombatHelmet и в поле ID изменил имя игрового шлема на имя шлема из скрипта AAAKainArmorFiendHelmet и расположил его в нужной месте локации.
Затем точно также в ветке Clutter -Food изменил ID имя яблока на AAAKainApple, и после расположения его в нужном месте локации присвоил Ref имя Reference Editor ID AAAKainAppleRef и включил галку Persistent Reference.
Примечание: Термин Reference довольно сложен для перевода на русский язык в приложении к играм серии TES. На официальной вики Tes 4 Construction Set этот термин встречается на каждом шагу, и каждый раз его можно перевести по-другому.
Подробней о Ref ссылках вы можете почитать здесь RumorWiki
Все условия для сохранения скрипта мы выполнили - теперь можем закрыть окно Редактора скриптов.
Остаётся только присвоить ("повесить") скрипт на шлем. Для этого открываем окно Armor - выбрав AAAKainArmorFiendHelmet в списке Object Windows - Item -Armor, или кликну по шлему в Рабочем окне.
Затем открыть окно прокрутки Script , выбрать там скрипт AAAKainTableDDD. После чего нажать OK тем самым применив изменения и закрыв окно Armor.
В общем то по добавлению скриптов в игру на этом, в основном, всё!
Осталось только отметить, что скрипты бывают трёх типов. Мы рассмотрели пример добавления на Объектном скрипте Object, которые применяться, как это видно из названия к объектам игры (броня, оружие, предметы и тп.)
Есть ещё два типа, это Квестовые скрипты Ouest и Эффектые скрипты Effect - область их применения понятна из названий.
Поэтому создавая скрипт не забывайте в окне прокрутки Script Type выбирать и назначать им нужный тип.
Часто люди создав Квестовый скрипт потом в окне Квеста Quest Data не могут найти его в поле выбора скриптов, потому что сохранили его как Объектный, который в Редакторе скриптов стоит по умолчанию.
В ходе обсуждения этого ответа мне было сделано правильное замечание - зачем усложнять скрипт, если его можно сделать в одном блоке вот так:
Graf написал(а):scn AAAKainTableDDD
Short doonce
Begin OnActivate Player
if (doonce ==0) && (player.GetItemCount AAAKainArmorFiendHelmet > 0)
Set doonce to 1
endif
if (doonce == 1)
AAAKainAppleRef.Enable
Set doonce to 0
endif
end
На что был добавлен ответ Spalny_Vagon
SpalnyVagon написал(а):Если уж на то пошло, то можно было бы упростить еще больше:
scn AAAKainTableDDD
Begin OnActivate Player
if player.GetItemCount AAAKainArmorFiendHelmet > 0
AAAKainAppleRef.Enable
endif
end
С одной стороны у вас "многоразовый" активатор, а а с другой стороны у вас только одно "каин-яблоко". Это значит, сколько на активатор не жми, второго яблока не будет. Поэтому здесь можно обойтись и вовсе без переменных типа doonce.
Если будете использовать этот ответ для создания сцены в игре, используйте скрипт Spalny_Vagon.
При том, что они все работают, лучше использовать самый простой, во первых вам же удобней и понятней. Во вторых надёжней!