Сообщество Империал: Редактирование скриптов в Rome Total War - Моддинг Rome: Total War - Rome: Total War - Библиотека Статей - Сообщество Империал

Информация

VIR
  • Автор: VIR
  • Добавлено: 07 июн 2013, 01:25
  • Просмотров: 6 889

Последние Статьи

Актуальные бонусы в казино 888starz
Актуальные бонусы в казино 888starzФонд Игровых · 28 мар 2024, 23:35
World of Infinitas - 2024 Missions (Zero Hour)
World of Infinitas - 2024 Missions (Zero Hour)CountBagaturMonte · 25 мар 2024, 20:18
Онлайн радио и его возможности
Онлайн радио и его возможностиСоциоПат · 18 мар 2024, 22:08

Редактирование скриптов в Rome Total War

Редактирование скриптов в Rome Total War
Автор: VIR VIR
Дата: 07 июн 2013, 01:25 · Просмотров: 6 889

Редактирование скриптов в Rome Total War



Что такое скрип?
Скрипт - это набор текстовых команд, которые позволяет вам спланировать, изменить, добавить и т.д. течение игрового процесса на стратегической карте!
Как активировать скрипт?
Для активации и написания скрипта вам понадобятся файлы:
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), что приводит к зависанию игры. Поэтому будьте готовы к проблемам, если вы захотите сделать скрипты под реббелов!

Все вопросы по данному материалу, задавайте здесь - Моддинг и Тюнинг для RTW


Эта статья впервые опубликована на Сайте Империал 27.09.2009.
    Воспользуйтесь одной из соц-сетей для входа
    РегистрацияВход на форум 
    Сообщество ИмпериалБиблиотека Статей Rome: Total War Моддинг Rome: Total War Редактирование скриптов в Rome Total War Обратная Связь
    Стиль:Language: 
    «Империал» · Условия · Ответственность · Визитка · 20 апр 2024, 02:21 · Зеркала: Org, Site, Online · Счётчики