НАШ ФОРУМ
Здесь можно задать вопрос по этому тутору. м
Активно обсуждаем военные игры, историю, МОДы, и новинки
игрового мира.
|
Что такое скрипт?
Скрипты позволяют мододелам изменять
механику игры так, как это невозможно сделать иными способами.
Скрипт – это просто текстовый файл, который содержит наборы команд,
схожих с теми, что могут быть введены в консоли RomeShell.
Существуют два типа скриптов, называемые «скрипты Кампании»( Campaign
scripts) и «скрипты Покажи мне как»( Show Me scripts).
Campaign scripts - это скрипты, запускаемые в самом начале новой
кампании – самый известный пример (и единственный, представленный в
оригинальной игре) – это скрипт Пролога, который работает в течение
практически всей кампании Сыны Марса – кампании Пролога, и контролирует
большую часть автоматических действий в ней.
Show Me scripts - это скрипты, которые активируются игроком с помощью
кнопки «Покажи мне как» на портрете советника. Они были предназначены
для демонстрации, как проделывать простейшие действия в игре, но
запустят любой скрипт, и могут быть использованы для личных злобных
целей мододела (*демонический смех ]:-> ).
Из-за ограничений, наложенных на Campaign scripts (они активируются
только на старте кампаний, и игрок не может сохраниться, пока скрипт
работает), в них очень мало пользы для мододела и, таким образом,
наиболее распространенный вид скрипта – Show Me script.
Наиболее серьезное ограничение, накладываемое Show Me scripts, это то,
что они не могут быть запущены без действий игрока (то есть, если он не
нажмет на кнопку «Покажи мне как», скрипт не запустится). Но в таком
случае, какого черта он садится играть в скриптованный мод, не
подготовившись сначала запускать скрипт?!
В это руководстве мы пройдемся по простому скрипту Show Me (скрипт Mo
Money), чтобы познакомиться с частями скрипта и терминологией.
Компоненты скрипта «Show Me script»
Show Me script – всего лишь текстовый файл,
находящийся по адресу data\scripts\show_me\ folder , однако нужны и
другие компоненты:
- Trigger – содержится в export_descr_advice.txt
- Advice Thread – также лежит в export_descr_advice.txt
- Script – сам текстовый файл, содержащийся в data\scripts\show_me\
folder
Trigger сообщает игре, какие действия или события она должна искать для
исполнения, когда должен появиться советник.
The Advice Thread – управляющий элемент, который устанавливает
количество раз, когда Trigger может быть активирован и другие параметры
до появления значка Советника.
Script – это набор команд, которые запускаются на выполнение, когда
игрок нажимает «Покажи мне как» на портрете Советника.
Шаг 1 - The Trigger
Trigger’ы находятся в нижней части файла
export_descr_advice.txt. Там можно найти 1019 Trigger’ов из ванильной
игры. Большинство из них для нас абсолютно бесполезны, и мы можем
определить свои собственные. В данном случае мы используем Trigger, уже
находящийся там:
Code:
;------------------------------------------
Trigger 2137_Help_Campaign_Keyboard_Shortcuts_Scroll_Trigger
WhenToTest ScrollAdviceRequested
Condition ScrollAdviceRequested help_scroll
AdviceThread
Help_Campaign_Keyboard_Shortcuts_Scroll_Thread 0
Это – только для примера; не нужно в принципе ничего добавлять,
поскольку Trigger уже существует. Мы рассмотрим, что собственно означают
конкретные строки, в другой раз. Достаточно сказать, что должно быть
очевидным, что этот Trigger активируется, когда игрок нажимает кнопку
для получения совета на Свитке помощи (Help Scroll), который может быть
вызван в игре нажатием F1.
Trigger 2137 очень полезен для тестирования других компонентов поскольку
он слегка «припрятан» и поэтому вряд ли будет запущен в течение игры и,
таким образом, полностью под контролем игрока. Если нажать Просьбу о
совете один раз – и один раз будет активирован скрипт – так что мододел
может судить, правильно ли работают остальные компоненты игры.
Шаг 2 – Advice Tread
Advice Tread’ы содержатся в верхней части
export_descr_advice.txt. Они предоставляют связь между Trigger’ом и
Script’ом, который мы хотим запустить и определяет, является ли
результатом запуска Trigger’а появление Советника.
Вот нормальная версия advice thread’а, связанного с trigger 2137
Code:
;------------------------------------------
AdviceThread Help_Campaign_Keyboard_Shortcuts_Scroll_Thread
GameArea Campaign
Item
Help_Campaign_Keyboard_Shortcuts_Scroll_Text_01
Uninhibitable
Verbosity 0
Threshold 1
Attitude Normal
Presentation Default
Title
Help_Campaign_Keyboard_Shortcuts_Scroll_Text_01_Title
Text
Help_Campaign_Keyboard_Shortcuts_Scroll_Text_01_Text1
Посмотрим эту запись построчно. Вещи, которые стоит отметить – строчка
Advice Tread сверху – так Advice Tread связан с Trigger, и строчки
внизу, которые относятся к аннотации, содержащейся в файле
export_descr_advice_enums.txt
Но сейчас тут не содержится ссылки на скрипт, и поэтому мы сейчас её
добавим.
Вот новая версия
Code:
;------------------------------------------
AdviceThread Help_Campaign_Keyboard_Shortcuts_Scroll_Thread
GameArea Campaign
Item Help_Campaign_Keyboard_Shortcuts_Scroll_Text_01
Uninhibitable
Verbosity 0
Threshold 1
Attitude Normal
Presentation Default
Title
Help_Campaign_Keyboard_Shortcuts_Scroll_Text_01_Title
Script scripts\show_me\mo_money.txt
Text
Help_Campaign_Keyboard_Shortcuts_Scroll_Text_01_Text1
Единственная строчка, которую мы добавили – это та, что запускает скрипт
и ссылается на наш текстовый файл скрипта, который мы сейчас поместим в
папку show_me.
Шаг три – The script
Создаём новый текстовый файл в папке data\scripts\show_me\
и скопируем туда это
Code:
script
console_command add_money 1000
campaign_wait 5
console_command add_money 1000
end_script
Потом сохраняем его как mo_money.txt.
Если не очевидно, мы запускаем скрипт, добавляющий 1000 денариев в казну
игрока, затем ждёт 5 секунд и добавляет ещё 1000. Пока негусто, но это
позволяет легко определить, когда скрипт активирован, и, опять же,
полезе для тестирования других компонентов.
Поздравляем! Вы только что сделали свой первый скрипт. Запускайте
кампанию, как обычно, затем жмите F1, чтоб вызвать настройку клавиш,
жмите Попросить совета. Когда появится советник, жмите Покажи мне как, и
скрипт должен сработать, как описано.
NB: полная запись команды add_money выглядит так
Code:
add_money (opt:faction) (amount)
Так что можно конкретизировать фракцию, которой хотите дать деньги, если
пожелаете использовать это как вознаграждение за миссию (как задания
Сената), или как дань вассалов, или как помощь союзников в тяжелые
времена.
Как: создать идеального шпиона
Одна из команд, которые нас разочаровали, была
toggle_perfect_spy. Обещалось, что её можно будет использовать в консоли
RomeShell, но, оказалось, нельзя.
К счастью, она превосходно работает в скрипте. Вставьте то, что написано
ниже вместо скрипта mo_money в шаге три а предыдущем описании.
Code:
script
console_command toggle_perfect_spy
end_script
Эта команда очень полезна мододелам, которые хотят узнать, как
реагирует ИИ на их изменения. toggle_perfect_spy позволяет посмотреть
каждый флажок войск, каждое поселение и получить информацию о составе
войск и персонажах. Лучше всего эту команду использовать вместе с
toggle_fow, которая убирает «туман войны» с карты кампании. |