на главную страницу
Крупнейший сайт о стратегиях. Обзоры новинок.Активный ФОРУМ и встречи с разработчиками. Большая качалка МОДов для RTW и не только. Родной дом «Империи» и «Бонапарта».

На internetwars.ru


ЭНЦИКЛОПЕДИЯ МОДЕЛИРОВАНИЯ

 

Вернуться к оглавлению

СКРИПТЫ ДЛЯ НАЧИНАЮЩИХ



НАШ ФОРУМ

Здесь можно задать вопрос по этому тутору. м

Активно обсуждаем военные игры, историю, МОДы, и новинки
игрового мира.

Что такое скрипт?

Скрипты позволяют мододелам изменять механику игры так, как это невозможно сделать иными способами.
Скрипт – это просто текстовый файл, который содержит наборы команд, схожих с теми, что могут быть введены в консоли 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, которая убирает «туман войны» с карты кампании.

 

© Автор перевода Marcus Aemilius Scaurus
©Запрещается любая перепечатка и копирование без согласия  Internetwars.ru .