Предоставляю некоторые комментарии перед выполнением сценария, это уже непосредственная подготовка к ОиМовским скриптам.:1) дипломатия. Дипломатия регулируется командой console_command diplomatic_stance sarmatians celts alliedСоответственно в ней указывается две фракции и состояние политики между ними: allied, neutral или warДипломатию обычно выделяют впереди сценария в отдельный монитор. С помощью условия ходов можно оперировать дипломатией. Например:monitor_event FactionTurnStart FactionIsLocaland I_TurnNumber > 10and not I_LocalFaction sarmatiansconsole_command diplomatic_stance sarmatians celts alliedconsole_command diplomatic_stance sarmatians slavs alliedterminate_monitorend_monitorЗдесь по прошествии 10 ходов будет вечный союз фракций, илиmonitor_event FactionTurnStart FactionIsLocaland I_TurnNumber > 10and I_TurnNumber < 40and not I_LocalFaction sarmatiansconsole_command diplomatic_stance sarmatians celts alliedconsole_command diplomatic_stance sarmatians slavs alliedterminate_monitorend_monitorЗдесь союз между фракциями будет на промежутке от 10 до 40 хода.2) Прописывание армий.Армии прописываються блокомspawn_armyfaction vandalscharacter Oim-Kara Oim-Jazydshi, named character, command 5, influence 5, management 1, subterfuge 1, age 35, , x 89 y 32unit Shakh sevan exp 2 armour 0 weapon_lvl 0unit mercs sekban exp 1 armour 0 weapon_lvl 0unit mercs deniz azapi exp 1 armour 0 weapon_lvl 0unit mercs chernay cost archer exp 2 armour 0 weapon_lvl 0unit mercs imereti light mushket exp 2 armour 0 weapon_lvl 0unit mercs chernay cost exp 2 armour 0 weapon_lvl 0unit mercs sekban exp 1 armour 0 weapon_lvl 0unit mercs deniz azapi exp 1 armour 0 weapon_lvl 0unit mercs chernay cost archer exp 2 armour 0 weapon_lvl 0unit mercs imereti light mushket exp 2 armour 0 weapon_lvl 0unit mercs chernay cost exp 2 armour 0 weapon_lvl 0unit mercs sekban exp 1 armour 0 weapon_lvl 0unit mercs deniz azapi exp 1 armour 0 weapon_lvl 0unit mercs chernay cost archer exp 2 armour 0 weapon_lvl 0unit mercs imereti light mushket exp 2 armour 0 weapon_lvl 0unit mercs chernay cost exp 2 armour 0 weapon_lvl 0endСоответственно здесь указываеться фракция, имя персонажа (оно должно обязательно принадлежать фракции, смотреть имена в export_descr_names), координаты и состав армии.В конце обязательно ставить end.Координаты определяются следующим способом: включаем стратегическую карту кампании, наводим курсор на нужное место и пишем в консоли show_cursorstat. Вместо named_character (член семьи) можно прописывать general(обычный командующий).Также, чтобы у появившихся таким образом членов семьи были какие-нибудь показатели, с помощью команды console_command give_trait "Oim-Kara Oim-Jazydshi" Loyal 2 прописываем им черты. Их смотреть в файле export_desc_characters_traits. 3) Передача управления городом фракции. Это весьма важный момент, который часто используется. Выполняется следующим образом: В начале хода создаем считчики и присваиваем им имена каждой фракцииdeclare_counter my_factionif I_LocalFaction hunsset_counter my_faction 1end_ifif I_LocalFaction gothsset_counter my_faction 2end_ifif I_LocalFaction sarmatiansset_counter my_faction 3end_ifif I_LocalFaction vandalsset_counter my_faction 4end_ifif I_LocalFaction franksset_counter my_faction 5end_ifif I_LocalFaction saxonsset_counter my_faction 6end_ifif I_LocalFaction alemanniset_counter my_faction 7end_ifif I_LocalFaction sassanidsset_counter my_faction 8end_ifif I_LocalFaction empire_eastset_counter my_faction 9end_ifif I_LocalFaction empire_westset_counter my_faction 10end_ifif I_LocalFaction celtsset_counter my_faction 11end_ifif I_LocalFaction burgundiiset_counter my_faction 12end_ifif I_LocalFaction lombardiset_counter my_faction 13end_ifif I_LocalFaction roxolaniset_counter my_faction 14end_ifif I_LocalFaction berbersset_counter my_faction 15end_ifif I_LocalFaction romano_britishset_counter my_faction 16end_ifif I_LocalFaction ostrogothsset_counter my_faction 17end_ifif I_LocalFaction empire_west_rebelsset_counter my_faction 18end_ifif I_LocalFaction slavsset_counter my_faction 19end_ifif I_LocalFaction empire_east_rebelsset_counter my_faction 20end_ifif I_LocalFaction slaveset_counter my_faction 21end_ifКогда нам нужно захватить город, используем две команды: console_command control saxons – переход управления для нужной фракцииconsole_command capture_settlement Kotais – непосредственно захват городаconsole_command create_unit Kotais "austria musketeer" – создание гарнизонаconsole_command create_unit Kotais "austria musketeer"console_command create_unit Kotais "austria musketeer"console_command create_unit Kotais "austria musketeer"(можно использовать console_command set_building_health barracks 23 – имитация разрушений построек в городе). И после этого используем эту конструкцию, которая возвращает управление для фракции игрока.if I_CompareCounter my_faction = 7console_command control alemanniend_ifif I_CompareCounter my_faction = 9console_command control empire_eastend_ifif I_CompareCounter my_faction = 10console_command control empire_westend_ifif I_CompareCounter my_faction = 18console_command control empire_west_rebelsend_ifif I_CompareCounter my_faction = 5console_command control franksend_ifif I_CompareCounter my_faction = 1console_command control hunsend_ifif I_CompareCounter my_faction = 3console_command control sarmatiansend_ifif I_CompareCounter my_faction = 8console_command control sassanidsend_ifif I_CompareCounter my_faction = 6console_command control saxonsend_ifif I_CompareCounter my_faction = 4console_command control vandalsend_ifif I_CompareCounter my_faction = 2console_command control gothsend_ifif I_CompareCounter my_faction = 11console_command control celtsend_ifif I_CompareCounter my_faction = 17console_command control ostrogothsend_ifif I_CompareCounter my_faction = 16console_command control romano_britishend_ifif I_CompareCounter my_faction = 19console_command control slavsend_ifif I_CompareCounter my_faction = 15console_command control berbersend_ifif I_CompareCounter my_faction = 20console_command control moorsend_ifif I_CompareCounter my_faction = 14console_command control roxolaniend_ifif I_CompareCounter my_faction = 13console_command control lombardiend_ifif I_CompareCounter my_faction = 12console_command control burgundiiend_ifif I_CompareCounter my_faction = 21console_command control slaveend_ifterminate_monitorend_monitor4) Под сценарием я подразумеваю историческое событие, которое рассматривается в 3 аспектах: 1 – одна фракция находится под управлением игрока, 2 – другая фракция под управлением игрока 3) обе фракции под управлением ИИ. Я стараюсь делать, чтобы активно было задействовано только две фракции.Соответственно вот типичный пример начал мониторов одного из событий: monitor_event FactionTurnStart FactionType empire_west_rebelsand I_TurnNumber = 1and not I_LocalFaction empire_west_rebelsand I_LocalFaction alemannimonitor_event FactionTurnStart FactionType empire_west_rebelsand I_TurnNumber = 1and I_LocalFaction empire_west_rebelsand not I_LocalFaction alemannimonitor_event FactionTurnStart FactionType empire_west_rebelsand I_TurnNumber = 1and not I_LocalFaction empire_west_rebelsand not I_LocalFaction alemanniЗадания: 1) Придумать несколько своих триггеров дипломатических отношений между фракций с разными условиями (можно использовать, что владелец города определенная фракция. Определенный персонаж погиб и т. д. см. список условий).2) Оформить пару полных стеков разного состава армий фракции vandals (Сефевиды).Одной армией командует генерал, другой член семьи (ему прописать несколько черт, имена и самих юнитов использовать из ОиМа). Также они доlys по координатам появляться около Карса (см. карту кампании ОиМа).3)предоставить любой свой пример захвата города фракцией по образцу в третьем пункте с разрушением построек и гарнизоном.4) Написать полный скрипт ходов: начало – 1624 ход, до 1645 хода два хода в год, с 1645 – 4, конечный год – 1670. Две зимы и два лета в годе.Это задание уже непосредственно для ОиМа. Его оформить отдельным файлом как рабочий скрипт. P. S. Имена персонажем прописывать умеешь? (export_descr_names и т. д.)Сегодня план сценария начал разрабатывать, завтра предоставлю.
Сообщение отредактировал hick09: 29 января 2009 - 00:56