Скриптовый язык Виктории 2. Основы - Моды и моддинг - Strategium.ru Перейти к содержимому

Скриптовый язык Виктории 2. Основы

Рекомендованные сообщения

Все, что поддается модификации (страны, события, решения и т.п.), создано с помощью языка, который Paradox Interactive разработал для своих игр. Он достаточно прост, но его простота имеет как минусы, так и плюсы: что-то сложное на нем сделать проблематично, зато для типовых задач он вполне годится.

Я попытаюсь максимально просто объяснить структуру данного языка.

Меньше теории, больше примеров.

Структура

Операторы

Есть некие ключевые слова, они же команды, они же операторы. Обозначают много чего, начиная от каких-либо областей воздействия, заканчивая эффектами.

Например, перед каждым событием мы пишем country_event или province_event (в зависимости от цели события). Это дает понять игре, что последующий код будет относиться к событию и позволяет ей правильно его интерпретировать. А id = 999 позволит игре узнать номер (идентификатор) события.

Предлагаю разделить операторы на четыре типа:

1 - условные (возвращают значения "истина" или "ложь" в зависимости от переданного значения)

2 - переменные (получают значения)

3 - фокусные (включают в себя код, который относится к обозначенной этим оператором области)

4 - логические ("не","или","и")

Условные

Условные используются в решениях и событиях, они нужны для проверки условий. Например, нам нужно, чтобы событие происходило лишь у определенной страны.

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Соответственно, событие произойдет лишь когда это выражение станет истинным.

Переменные

Переменные принадлежат разного рода эффектам и модификаторам. Пишется оператор, далее знак "=" и необходимое значение. Переменные могут принимать в качестве значений числа или слова, в зависимости от того что они делают.

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Некоторые эффекты могут включать в себя несколько значений.

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

От чего же тут так много скобок и как их ставить? Давайте рассмотрим поподробнее эту тему и потом вернемся к операторам.

Фигурные скобки

В фигурные скобки заключается код. Ставятся они после соответствующих операторов, вернее после знака "=". Например,

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Обязательное условие, чтобы каждая открытая скобка "{" была в паре с закрытой "}". По сути эти скобки обозначают некий блок кода, который относится к какому-либо оператору.

Блоки кода могут друг в друга вкладываться.

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Как же понять где ставить скобки, а где писать слова или цифры? Чтобы узнать как писать то или иное выражение нужно заглянуть в справку. Ссылка на нее будет дана в конце. К сожалению, она на английском, но зато есть примеры к каждому оператору. Некоторую часть можно найти в этом разделе в уроках. В конце концов, можете посмотреть в файлах игры как сами разработчики реализовали те или иные идеи.

Не забывайте о скобках. Частая причина нерабочих событий и решений - путаница со скобками.

Возвращаемся к операторам

Фокусные

Фокусные указывают на какую-либо область в игре, будь то местность, страна, сословие, провинция. То есть мы ограничиваем область, на которую будет воздействовать код.

Например,

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Тут мы воздействуем на фермеров, давая им +1 к сознательности.

Давайте возьмем что-то посложнее

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Заметили,что не хватает одной фигурной скобки в конце? Если ее не поставить, то работать адекватно это не будет.

random_state - фокус на случайны регион

poor_strata - фокус на бедное сословие

militancy = -0.5 - убрать 0.5 агрессивности

Хоть и "poor_strata" фокус на все население бедного сословия, он ограничен фокусом "random_state", в результате чего эффект произойдет только в одной из случайных провинций.

Логические

Они чем-то похожи на фокусы, т.к. заключают в себя значения с помощью фигурных скобок. Их всего три: AND (логическое И), OR (логическое ИЛИ), NOT (логическое НЕ). Используются с условными операторами, ведь они могут работать только со значениями "истина" или "ложь".

Давайте сразу пример

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Тэг страны не должен быть RUS и страна не должна являться великой державой.

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Должно быть истинным или первое или второе условие.

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Должны быть истинными оба условия.

Ничто не мешает вам вкладывать их друг в друга

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Получается, что оба условия не должны быть истинными.

Комментарии

Комментарий обозначается с помощью знака #. Игра не будет считывать все, что стоит после него. Главное правило, что # распространяется только на строку.

Пример

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

Стиль написания

Есть люди, которые пишут так

Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое.

При увеличении кода это все превращается в непонятную кашу. Особенно критично для новичков, т.к. они начинают путаться в скобках.

Поэтому обязательно делайте отступы, как было на примерах выше. Это поможет не только тем, кто решит вам помочь, но и в первую очередь вам самим. Если хотите удобства, установите ]]>Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. ]]>. Используйте клавишу Tab для отступов и программа будет адекватно делать переносы в соответствии с ними.

Хоть я и приводил примеры больше не основе событий (ивентов), данное руководство применимо ко всему.

На данный момент это пока что все, предлагайте что исправить/добавить или объяснить в рамках данной тематики.

Обещанные ссылки на справкиНажмите здесь!
 

]]>Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. ]]>

]]>Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. ]]>

]]>Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. ]]>

]]>Войдите или зарегистрируйтесь, чтобы увидеть скрытое содержимое. ]]>

[Cкрыть]
Изменено пользователем Stedy
Ссылка на комментарий

Закреплённые сообщения
VikingBes

подскажите, возможно ли путем эвента вызвать дивизии например или корабли?

Ссылка на комментарий

Diplomate
6 часов назад, VikingBes сказал:

подскажите, возможно ли путем эвента вызвать дивизии например или корабли?

У меня есть большие сомнения насчет солдат, поскольку они не из воздуха берутся, а из ПОПа солдат. А корабли технически можно призвать, но гугл что-то по этой теме не дает информации.

Ссылка на комментарий

12 часа назад, VikingBes сказал:

подскажите, возможно ли путем эвента вызвать дивизии например или корабли?

Вот команда из Шведского решения на создание крейсера:

329 = {
                sub_unit = {
                    type = cruiser
                    value = current
                }
            }

где 329 - локация появления

Ссылка на комментарий

VikingBes
6 часов назад, Arktos сказал:

Вот команда из Шведского решения на создание крейсера:

329 = {
                sub_unit = {
                    type = cruiser
                    value = current
                }
            }

где 329 - локация появления

попробовал перенести на вызываемый эвент со сменой провинции на 994 ( Питер ) к сожалению не получилось

Ссылка на комментарий

5 часов назад, VikingBes сказал:

попробовал перенести на вызываемый эвент со сменой провинции на 994 ( Питер ) к сожалению не получилось

Проверил на Пруссии, всё отлично работает, видимо Вы где то допустили ошибку или чего то не учли. Итак:

 скобки всюду расставлены как надо? класс корабля указан правильно?

 сам по себе евент отображается?

 если да, что пишет при наведении курсора на кнопку?

 какой корабль Вы хотели создать и доступен ли он по технологиям?

Изменено пользователем Arktos
Ссылка на комментарий

Присоединиться к обсуждению

Вы можете оставить комментарий уже сейчас, а зарегистрироваться позже! Если у вас уже есть аккаунт, войдите, чтобы оставить сообщение через него.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Ваша ссылка автоматически преображена.   Отображать как простую ссылку

×   Предыдущее содержимое было восстановлено..   Очистить текст в редакторе

×   You cannot paste images directly. Upload or insert images from URL.

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу


Copyright © 2008-2024 Strategium.ru Powered by Invision Community

×
×
  • Создать...