- •Скрипты Морровинда для чайников
- •Предисловие к восьмому изданию
- •Вступление Как использовать это руководство.
- •Что такое скрипт?
- •Что могут скрипты?
- •Чего не могут скрипты:
- •Обучающий курс
- •Поехали!
- •Окно редактора скриптов
- •Чего мы хотим?
- •Написание скрипта
- •Имя для скрипта: Begin и End
- •Обнаружение действий игрока
- •Вывод текста и получение решений игрока
- •Как выполняются локальные скрипты
- •Ваш первый баг
- •Наложение заклинания на игрока
- •Как узнать больше?
- •Синтаксис
- •Начало и завершение скриптов
- •Общий синтаксис функций:
- •Общий синтаксис: запятые, скобки и пробелы.
- •Комментарии
- •Отступы / использование табуляторов
- •Переменные Типы переменных
- •Локальные переменные
- •Глобальные переменные
- •Использование переменных в других локальных скриптах и объектах
- •Использование переменных в функциях
- •Операторы / математические расчеты
- •Проверка условий Использование условий if… elseif
- •Условия While
- •Создание булевых операторов в скриптах tes
- •Список функций tes Объяснение формата
- •Работа с объектами Работа с вещами в инвентаре Добавление и удаление вещей из инвентаря
- •Сброс предмета на пол
- •Отслеживание активности инвентаря: Добавление, сброс и использование камней душ
- •Надевание предметов
- •Отслеживание, был ли надет предмет
- •Выключение возможности надеть предмет
- •Проверка присутствия предметов в инвентаре
- •Починка предметов
- •Информация о надетых объектах
- •Функция UsedOnMe
- •Движение и создание объектов
- •Движение вдоль оси объекта
- •Движение вдоль оси мира
- •Установка позиции (другой путь, чтобы сгенерировать движение)
- •Позиционирование объектов в мире или во внутренних ячейках
- •Перемещение объекта в его оригинальную позицию
- •Помещение предмета рядом с игроком
- •Создание предметов рядом с объектом
- •Создание копий объектов с помощью PlaceItem
- •Вращение и углы
- •Вращение объектов
- •Установка углов
- •Функции размеров
- •Определения локации, относительного положения и движения Определение нахождения игрока в интерьере или в экстерьере
- •Определения ячейки игрока
- •Расстояние от одного объекта до другого
- •Определяем позицию и поворот объекта
- •Линия видимости
- •Определяем, замечен ли один актер другим
- •Определяем, когда игрок покинул ячейку
- •Определяем, путешествует ли игрок
- •Триггеры для актеров, стоящих на объектах
- •Повреждение актера, стоящего на объекте
- •Функции сталкивания объектов
- •Проверка активации предмета и его активация
- •Запирание и отпирание дверей или сундуков
- •Анимирование объектов
- •Доступные и недоступные объекты
- •Полное удаление копии
- •Не сохранять изменений объекта
- •Скрипты для npc: ии и движение npc идет в новую локацию
- •Проверка, завершил ли npc свое движение
- •Поворачиваем актера в нужном направлении
- •Задание случайного перемещения Актера
- •Актеры активируют объекты
- •Следование и эскорт
- •Определение текущего пакета ии
- •Заставляем актера красться
- •Заставляем актера бегать и прыгать: Движения в Трибунале
- •Проверка действий игрока: бежит, прыгает, крадется?
- •Определение готовности к бою
- •Заставляем кого-то падать
- •Доля в экипировке и другие функции компаньонов
- •Раса, Фракция и Ранг Определение расы
- •Определение статуса игрока во фракции
- •Изменение реакции и положения во фракции
- •Определение и изменение реакции
- •Функции для оборотней Установка атрибутов оборотня
- •Специальные глобальные переменные для оборотней
- •Текст и Диалог Краткая инструкция по диалогам
- •Концепция диалогов в Морре
- •Как работает диалог
- •Несколько золотых правил
- •Диалог 101
- •Функции для диалогов
- •Показ сообщений
- •Показ переменных и предопределенного текста в окне сообщения
- •Пример: Дурацкий простой скрипт, демонстрирующий весь возможный синтаксис:
- •Добавление темы для диалога
- •Начало и окончание диалога
- •Инициация диалога с оборотнем (Bloodmoon)
- •Множественный выбор – как задавать вопросы
- •Добавление записей в журнал и тест записей журнала
- •Специальные диалоговые функции
- •Изменение значения Hello
- •Полезные диалоговые переменные
- •Изменяем и проверяем Навыки, Атрибуты и другие характеристики Get, Set, and Mod Stats – общие замечания
- •Определение и изменение характеристик игрока и актеров: Определение и изменение атрибутов:
- •Определение и изменение Здоровья, Магии и Усталости:
- •Определяем и изменяем скиллы:
- •Определение и изменение уровня
- •Начало и конец боя
- •Обнаружение атак
- •Функции Get/Mod/Set ии для Боя: Fight, Flee, Alarm
- •Отслеживание убийств и нокаутов
- •Воскрешение мертвого Актера
- •Преступления Определение и изменение уровня преступлений
- •Заключение игрока в тюрьму
- •Очистка игрока от преступлений
- •Уровень преступления игрока
- •Полезные глобальные переменные
- •Магия Ограничение на телепортацию
- •Ограничение левитации
- •Проверка и работа с душами и камнями душ
- •Id камней душ:
- •Добавление и удаление заклинаний и проклятий
- •Кастование заклинаний
- •Управление и тестирование заклинаний
- •Управление и тестирование эффектов заклинаний
- •Тестирование болезней
- •Функции Get/Mod/Set для магии:
- •Звук Пусть актеры говорят
- •Проигрывание музыки
- •Проигрывание звуков
- •Управление звуком
- •Форматы звуковых файлов:
- •Следим за временем
- •Глобальные переменные, зависящие от времени
- •Течение дней
- •Фазы лун
- •Погода Изменение погоды
- •Изменение установок погоды для региона
- •Определение текущей погоды
- •Определение скорости ветра
- •Средства управления игрока Игрок спит
- •Включение и выключение средств управления и интерфейса Отключение средств управления
- •Включение средств управления
- •Проверка статуса средств управления
- •Переключение в вид от первого и от третьего лица
- •Функции для меню генерации персонажа
- •Определение открыл ли игрок меню
- •Использование MenuTest, чтобы открыть и закрыть меню
- •Различные функции и переменные Прерывание выполнения скрипта
- •Управление глобальными скриптами
- •Уменьшение и увеличение яркости
- •Добавление локации на карту
- •Присваивание случайных значений переменным
- •Проигрывание видео
- •Функции Уровневых Списков
- •Квадратный корень
- •Функции уровня воды
- •Советы и трюки Маленькие помощники: поиск, копирование и вставка текста
- •Альтернативные скриптовые редакторы
- •Используйте стиль для написания нормальных скриптов
- •Чистка вашего мода
- •Ограничения редактора скриптов
- •Сохранение процессорного времени
- •Нацеленные скрипты: запуск «глобальных» скриптов, привязанных к объекту
- •Проверяем, когда игрок загружает игру
- •Использование переменной CharGenState – отключение сохранения и меню
- •Обнаружение использования свитков или книг
- •Заставляем Актеров переключать оружие
- •Магические и механические ловушки
- •Скриптовая телепортация
- •Тестируем на присутствие другого мода
- •Безопасный старт глобальных скриптов — избегая скрипт main
- •Использование звука для обнаружения событий
- •Большие сражения
- •Руководство по созданию объектов для езды
- •Выбор объектов
- •Создание/Удаление объектов
- •Падение с объектов
- •Обнаружение столкновений
- •Проблема с сохранением
- •Скрипт по тригонометрии – быстрый синус и косинус
- •Манекены
- •Она на меня смотрит?
- •Кинематическая последовательность
- •Решение проблем Основные советы
- •Консоль Использование консоли для проверки переменных:
- •Использование консоли для быстрой проверки скриптов:
- •Сообщения об ошибках, неправильная работа и обычные причины в игре, когда исполняется скрипт: в редакторе
- •Внутриигровые сообщения:
- •AiTravel не работает
- •Вылет при исполнении скрипта
- •Вылет при загрузке плагина
- •Приложение Новые функции Трибунала
- •Изменения / исправления скриптов Морровинда:
- •Список новых функций Трибунала:
- •Новые функции Бладмуна
- •Список новых функций и переменных Бладмуна:
- •Ранее недокументированные функции
- •Единицы измерения:
- •Список магических эффектов
- •Список консольных команд
- •Игровые установки
- •Алфавитный указатель
Список консольных команд
Консоль (только внутриигровые команды). Большинство из них полезно только при отладке / тестировании, но некоторые (отмеченные *) МОГУТ быть использованы в скриптах. Для функций, возвращающих значение в консоль: можно продолжать играть с открытой консолью, если кликнуть правой кнопкой вне окна консоли.
Команда |
Кратко |
Описание |
*CenterOnCell, "Cell_ID" |
COC |
Помещает игрока в ячейку. Очень полезно для тестирования модов.
|
*CenterOnExterior, X, Y |
COE |
Помещает игрока в указанный экстерьер.
|
CreateMaps "Filename.esp" |
|
Создает карту для XBox-a. Согласно UESP, формат вывода можно изменить через установку Create Maps Enable в файле Morrowind.INI. Если она равна 1 (XBox), будет создан файл неизвестного формата FILENAME.ESP.MAP в подкаталоге Data Files. Если значение установлено в 2 (Exterior Cell Maps), и вы создадите директорию Maps в главном каталоге Морровинда, эта команда создаст карты в формате BMP 256х256 High Color для каждой ячейки карты. Это занимает очень много времени, поскольку нужно загрузить и обработать каждую ячейку.
|
|
BC |
Бета комментирование: Отредактируйте morrowind.ini,что бы задать файл для бета комментирования: Beta Comment File=BetaComment.txt После этого можно использовать команду BC, чтобы писать комментарии об объектах в игре. Вы открываете консоль, кликаете на что-то и пишите комментарий, например: BC "Корень не прикреплен." А в BetaComment.txt получается: 6/20/2004 (21:02) Morrowind.esm 5/8/2003 (21:07) Paul ex_t_root_03 Tel Vos (10,14) 85078 118468 4111 "Корень не прикреплен." Время создания комментария, файл, где находится объект, время изменения этого файла, мое имя (имя пользователя Windows), ячейка, X, Y и Z координаты объекта, и конечно, сам комментарий (информация с форумов/ ManaUser). |
FillJournal |
|
Добавляет все записи в журнал, долго
|
*FillMap |
|
Показывает все ячейки с уникальными именами на карте. Занимает несколько секунд. Не рекомендуется для скриптов.
|
*FixMe |
|
Перемещение на 128 ед. от текущего местоположения игрока. Для того, что «выпутаться».
|
GetFactionReaction, "factionID", "factionID", amount |
|
The faction ID's are not optional, works in Console window only. Not sure about the actual meaning of the output. показать отношение одной фракции к другой. Работает только в окне консоли.
|
Help |
|
Lists, and shows shorthand for most commands Выдает список основных команд |
MoveOneToOne
|
MOTO |
Эта команда изменяет скорость, с которой игрок (возможно, другие актера) БЕГАЮТ. При включении скорость бега и ходьбы одинакова, и проигрывается одна анимация (IndigoRage). |
ObjectReferenceInfo |
ORI
|
Выдает информацию по выбранному объекту: ячейку, файл, где находится объект, Полезно, чтобы определить, какой мод добавил определенный предмет. |
OutputObjCounts |
|
Считает все объекты по разным категориям. Вывод в окно консоли. |
OutputRefCounts |
|
Считает все копии по разным категориям. Вывод в окно консоли. |
|
PT |
«Очистка текстур» заставляет движок перезагрузить все текстуры. Если вы играете в окне, то можно тестировать текстуры в игре, одновременно редактируя их в другом приложении. |
Show global_var |
|
Показывает значение указанной глобальной переменной в консоли. |
ShowVars |
SV |
Список глобальных переменных и переменных в глобальных скриптах, или же локальных переменных для скрипта на определенном объекте, выделенном заранее. Вывод в консоль. |
StopCellTest |
SCT |
Остановка проверки ячеек, игрок остается в текущей ячейке |
TestCells |
|
Загружает все ячейки в алфавитном порядке (при тестировании это были только интерьеры – не уверен, есть ли отличие от TestInteriorCells) |
TestInteriorCells |
|
Загружает все интерьеры в алфавитном порядке |
TestThreadCells |
|
Загружает все экстерьеры в (случайном?) порядке |
TestModels |
T3D |
Тест всех объектов и сообщения об отсутствующих файлах .nif. |
*ToggleAI |
TA |
Отключает ИИ, в том числе и бой. Полезно для тестирования. |
ToggleBorders |
TB |
Показывает границы экстерьеров |
ToggleCombatStats |
TCS |
Позволяет отслеживать статистику боя в реальном времени. Чтобы наблюдать ее в консоли, после введения команды кликните правой кнопкой мыши вне окна консоли для продолжения игры с открытой консолью. Примечание: когда я тестировал, вывод также осуществлялся в .txt – не уверен, что это так по умолчанию. |
*ToggleCollision |
TCL |
Включает и выключает взаимодействие объектов в игре. Вы сможете двигаться сквозь стены. Актеры также смогут проходить сквозь стены и двери. |
ToggleCollisionBoxes |
TCB |
Показать отображение границ взаимодействия для всех моделей |
ToggleCollisionGrid |
TCG |
Выводит матрицу на экран, которая, возможно, показывает текущую ситуацию с взаимодействием – я не смог понять. Очень тормозит игру. |
ToggleDebugText |
TDT |
Выводит некоторую отладочную информацию на экран. Анимация игрока, скорость, направление, положение, FPS и др. |
ToggleDialogueStats |
TDS |
Вывод результатов попыток убеждения (и может других диалоговых результатов) в консоль. |
*ToggleFogOfWar |
TFOW |
Позволяет видеть всю локальную карту. |
ToggleFullHelp |
TFH |
Показывает хозяина и скрипт для каждого объекта при наведении мыши, когда открыта консоль и окно сообщений. Также показывает информацию, как ига заполняет уровневые списки (в ячейке или контейнере) в консоли. |
*ToggleGodMode |
TGM |
Делает тебя неуязвимым. |
ToggleGrid |
TG |
Показывает координаты текущей ячейки, и сетку загруженных ячеек на экране, плюс активность Морра по кэшированию ячеек. |
ToggleKillStats |
TKS |
Когда убивают актера, имя убитого, общее количество убийств и (с Бладмуном) количество убийств оборотня показываются в консоли. |
ToggleLights |
|
Неизвестно, никакого эффекта |
ToggleLoadFade |
|
Неизвестно. |
ToggleMagicStats |
TMS |
Показывает информацию по активному заклинанию в консоли. Выдает номера эффектов, имя заклинания и статистическую информацию. |
*ToggleMenus |
TM |
Отключает все меню (включая главное!). Меню не видны, пока консоль не вызывается снова (тильда два раза). Не рекомендуется в скриптах – если игрок использует консоль, скрипт может полностью остановить выключение меню! |
ToggleScripts |
|
Предположительно останавливает выполнение скриптов.
|
ToggleScriptOutput |
TSO |
Неизвестно, никакого эффекта.
|
ToggleStats |
TST |
Активирует все отладочные режимы. (ToggleCombatStats, ToggleMagicStats, ToggleDialogueStats, ToggleKillStats). |
*ToggleSky |
TS |
Выключает небо, наступает ночь. |
ToggleTextureString |
TTS |
Неизвестно, никакого эффекта. |
ToggleWater |
|
Неизвестно, никакого эффекта. |
*ToggleWorld |
TW |
Отключает отрисовку всех объектов, кроме неба и воды. Больше ничего не затрагивает, то есть все объекты активны, просто невидимы. |
ToggleWireframe |
TWF |
Показывает каркас вместо текстур.
|
TogglePathGrid |
TPG |
Включение/отключение показа сетки ИИ |
*ToggleVanityMode |
TVM |
Переключение на вид от третьего лица, игрок не может переключиться обратно, пока эта команда не вызвана снова. Полезно для роликов. |
|
SA |
"Показать Анимацию" Показывает статус и информацию по анимации выделенного актера. Готовое заклинание, оружие, был ли атакован, группа анимации. |
ShowGroup |
SG |
Показывает ID текущей группы актеров + количество копий в консоль. Для игрока это PlayerSaveGame. |
|
ST |
«Показать группу цели» Показывает ID группы актеров + количество копий группы оппонентов (в бою) выделенной группы актеров в консоль. |
ShowScenegraph
|
SSG |
Открывает новое окно, которое иерархически (я думаю) отображает структуру данных текущей отрисовывающейся сцены. Используйте TAB, чтобы добраться до этого окна. Морр не будет исполнятся, пока это окно открыто. |