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

На internetwars.ru


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

 

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

КАК РЕДАКТИРОВАТЬ СКРИПТЫ


Источник

форум Империал



НАШ ФОРУМ

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

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

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

Скрипт – это набор текстовых команд, которые позволяет вам спланировать, изменить, добавить и т.д. течение игрового процесса на стратегической карте!

 

Как активировать скрипт?

Для активации и написания скрипта вам понадобятся файлы:

data\ export_descr_advice.txt

data\scripts\show_me\ (имя вашего файла)

 

Активация скрипта осуществляется с помощью триггера в файле export_descr_advice.txt

Дело в том, что в игре не предусмотрено автоматического запуска скриптов, поэтому вам нужно сделать это самим!

Самый распространенный способ активации через панель управления советником на стратегической карте:

Это делается при помощи клавиши F1 (вызов меню помощи), в появившемся окне кликаем на знаке вопроса – появляется панель управления советником! Там, в случае присутствия скрипта, горит зеленая кнопка (называется - покажи мне как), кликаем по ней и скрипт запускается!!!

Технически это осуществляется следующим образом:

В файле export_descr_advice.txt имеется Trigger 2137 – этот триггер отвечает за кнопку помощи, он активирует команду advice thread, которая выглядит следующим образом:

;------------------------------------------

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

 

Для того, что бы наш скрипт можно было активировать, мы добавляем в этот блок свою команду Script scripts\show_me\mo_money.txt, после строчки Title Help_Campaign_Keyboard_Shortcuts_Scroll_Text_01_Title и это должно выглядеть теперь так:

 

;------------------------------------------

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

 

Поле этого у нас готова команда для запуска нашего скрипта, теперь нам остается написать сам скрипт по указанному в стоке команд адресу и с соответствующем именем.

Идем в папку data\scripts\show_me\ и в ней создаем текстовой файл mo_money.txt! И уже в этом файле пишем наш скрипт!

 

 

Форма написания скрипта:

 

У скрипта есть начало и конец (script end_script) – я не буду описывать варианты написания нала и конца скриптов, а просто приведу пример того, что использовал я сам:

 

script

declare_counter loop

set_counter loop 1

Блок команд – их может быть столько, сколько вам их требуется!

while I_CompareCounter loop = 1

end_while

end_script

 

Блок команд:

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

Например самый простой блок команд для добавления денег:

 

monitor_event FactionTurnStart FactionIsLocal

console_command add_money 1000

terminate_monitor

end_monitor

 

Общая форма блока команд:

monitor_event FactionTurnStart (наименование фракции для которой используется/предназначен скрипт)

Условия необходимые для работы скрипта

Команды скрипта

terminate_monitor

end_monitor

В наименование может быть любая «живущая» в игре фракция, но не реббелы! Либо это может быть команда FactionIsLocal указывающая на то, что это условие применимо к фракции, за которую играет игрок, и не имеет значение как она называется! Либо это может быть команда not FactionIsLocal, которая применима ко всем фракциям, но не к той за которую играет игрок! Это может быть комбинированное использование названий!

Например:

 

monitor_event FactionTurnStart FactionType sassanids

and FactionIsLocal

эта команда будет задействована, только тогда когда за фракцию Сасанидов играет игрок!

 

Или:

monitor_event FactionTurnStart FactionType sassanids

and not FactionIsLocal

эта команда будет задействована, только тогда когда за фракцию Сасанидов не играет игрок!

Неприменимо к реббелам!!!

 

 

Примеры возможных условий для написания блоков команд:

 

monitor_event FactionTurnStart FactionType FactionIsLocal

and I_TurnNumber = х (х – обозначает номер хода от начала игры)

Команды скрипта

terminate_monitor

end_monitor

 

monitor_event FactionTurnStart FactionIsLocal

and not LosingMoney

and Treasury > х (х-сумма денег в казне на конец хода)

Команды скрипта

terminate_monitor

end_monitor

 

monitor_event FactionTurnStart FactionIsLocal

and I_NumberOfSettlements britons < х (х-колличество провинций находящихся во владении игрока или фракции)

and RandomPercent < 15 (вероятность исполнения команды, можно и без нее)

Команды скрипта

terminate_monitor

end_monitor

 

monitor_event FactionTurnStart FactionType sassanids

if I_SettlementOwner у  = sassanids (у – наименование города – именно города, а не провинции)

Команды скрипта

end_if

terminate_monitor

end_monitor

 

 

 

monitor_event FactionTurnStart FactionIsLocal

and DiplomaticStanceFromFaction (фракция)  < AtWar

and DiplomaticStanceFromFaction (фракция) = Allied

Команды скрипта

terminate_monitor

end_monitor

 

 

monitor_conditions Carthago SettlementPopulationMaxedOut

if (наименование города) SettlementPopulationMaxedOut

Команды скрипта

end_if

terminate_monitor

end_monitor

 

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

 

 

Команды скрипта:

Собственно сами команды просты в написании, и вы можете их посмотреть в приложении, которое находиться на том же сайте что и этот тутор!

Здесь я приведу пример написания команд:

console_command add_money 1000 –команда по добавлению денег всем фракциям

 

console_command add_money sassanids, 1000 –команда по добавлению денег только указанной фракции

console_command capture_settlement Semender – команда передачи определенного города для указанной в условии фракции, не действует на реббел.

console_command add_population Sugdea 800 команда увеличения(с минусом для уменьшения) населения в указанном городе на определенное количество.

console_command create_unit Saksin "horse hazar archer" 1 – команда добавления войск в определенном городе или вместо города можно вписать определенного члена семьи, тогда армия будет добавлена ему!

console_command create_building Sugdea muster_field – команда добавления определенного здания(это может быть несколько одинаковых зданий – игра не ругаеться) в определенный город!

 

console_command date -220

console_command season summer

это команды переноса времени в определенный год и время года. Но основе этих команд создан многоходовый скрипт.

 

Есть один комплекс скриптовых команд, которые добавляют целую армию в строгоуказаном месте:

 

spawn_army

faction romans_julii

character Flavius Julius, general, command 0, influence 0, management 0, subterfuge 0, age 20, x 180, y 5

unit roman generals guard cavalry, soldiers 20 exp 9 armour 1 weapon_lvl 0

unit roman legionary first cohort ii, soldiers 40 exp 0 armour 0 weapon_lvl 0

unit roman legionary cohort ii, soldiers 60 exp 0 armour 0 weapon_lvl 0

unit roman praetorian cohort i, soldiers 60 exp 0 armour 0 weapon_lvl 0

end

Видимо, он применим, только к оригиналу РТВ!? Потому что, сколько я не пытался его запустить – у меня ничего не вышло. Но делал я это на БИ. Может у вас получиться??? Попытайте счастье!

 

Внешний вид скрипта:

Собственно, полностью собранный скрипт выглядит так,

 

script

 

monitor_event FactionTurnStart FactionIsLocal

console_command add_money 1000

terminate_monitor

end_monitor

 

end_script

 

Это самый простой скрипт, и он только добавляет деньги при его активации!

 

А это,

 

script

 

monitor_event FactionTurnStart FactionType sassanids

and not FactionIsLocal

and I_TurnNumber = 1

console_command create_unit Semender "horse hazar archer" 3

console_command create_unit Itil "hazar warrior" 3

terminate_monitor

                        end_monitor

 

monitor_event FactionTurnStart FactionType sassanids

and FactionIsLocal

and I_TurnNumber = 5

console_command add_population Itil -900

console_command add_population Sugdea -800

console_command add_money sassanids, -1000

terminate_monitor

end_monitor

 

end_script

 

это уже скрипт поболее, и выполняет несколько действий при определенных условиях!

 

Все дальнейшее зависит только от вышей фантазии и смекалки!!!

 

Примечание: многие скрипты не работают с реббелами(slave), что приводит к зависанию игры. Поэтому будьте готовы к проблемам, если вы захотите сделать скрипты под реббелов!

 

© Автор тутора - VIR
©Запрещается любая перепечатка и копирование без согласия  Internetwars.ru .