На internetwars.ru |
|
КАК РЕДАКТИРОВАТЬ СКРИПТЫ |
|
Приложение к тутору (33КБ)
Здесь можно задать вопрос по этому тутору. м Активно обсуждаем военные игры, историю, МОДы, и новинки |
Что такое скрип? Скрипт – это набор текстовых команд, которые позволяет вам спланировать, изменить, добавить и т.д. течение игрового процесса на стратегической карте!
Как активировать скрипт? Для активации и написания скрипта вам понадобятся файлы: 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 . |