Всадники Кальрадии

Модификации => Обмен опытом: Mount&Blade => Обмен опытом (в помощь мододелу) => Инструкции и уроки по созданию модификаций => Тема начата: Ivkolya от 29 Марта, 2015, 15:24

Название: [MS] Добавление новой секции для юнитов (NW)
Отправлено: Ivkolya от 29 Марта, 2015, 15:24
Ссылка на оригинальный туториал (http://www.fsegames.eu/forum/index.php?topic=20540.0)

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

Это результат, которого мы будем добиваться в этом уроке:

Файлы, которые мы будем изменять (выделены зеленым цветом):

- module_strings
- module_presentations
- module_constants
- module_scripts

Название раздела

Мы назовем наш новый раздел, например, "Bydanders". Вы можете изменить имя вашего раздела на какое вам заблагорассудится. Для этого вам придется везде заменить "bydanders" на Ваше название.

Начало работы

Давайте начнем с module_strings, так как мы должны начать с создания нового string, который будет использоваться в презентации.
Это будет название раздела.
Найдите ("cavalry", "Cavalry"),Поместите под этим:
  ("bydanders", "Bydanders"),
Теперь мы направимся в module_presentations, чтобы создать новый раздел.
 
Найдите         (create_mesh_overlay, reg0, "mesh_white_plane").
        (Overlay_set_color, REG0, 0x000000),
        (Overlay_set_alpha, REG0, 0xD0),
        (Position_set_x, Pos1, 370),
        (Position_set_y, Pos1, 660),
        (Overlay_set_position, REG0, Pos1),
        (Position_set_x, Pos1, 5500),
        (Position_set_y, Pos1, 1600),
        (Overlay_set_size, REG0, Pos1),

Поместите под этим (при этом оставьте одну строку между этими блоками текста):
        (create_mesh_overlay, reg0, "mesh_white_plane"),
        (overlay_set_color, reg0, 0x000000),
        (overlay_set_alpha, reg0, 0xD0),
        (position_set_x, pos1, 370),
        (position_set_y, pos1, 610),
        (overlay_set_position, reg0, pos1),
        (position_set_x, pos1, 5500),
        (position_set_y, pos1, 1600),
        (overlay_set_size, reg0, pos1),

Найдите         (create_button_overlay, "$g_presentation_obj_select_cavalry", "str_cavalry", 0),
        (try_begin),
          (eq, "$g_multiplayer_select_presentation_unit_type", troop_select_type_cavalry),
          (overlay_set_color,"$g_presentation_obj_select_cavalry",0xECEB82),
        (else_try),
          (overlay_set_color,"$g_presentation_obj_select_cavalry",0xFFFFFF),
        (try_end),
        (position_set_x, pos1, 255),
        (position_set_y, pos1, 660),
        (overlay_set_position, "$g_presentation_obj_select_cavalry", pos1),
        #(position_set_x, pos1, 1500),
        #(position_set_y, pos1, 1500),
        #(overlay_set_size, "$g_presentation_obj_select_cavalry", pos1),
        (troop_set_slot,"trp_x_pos","$g_presentation_obj_select_cavalry",250),
        (troop_set_slot,"trp_y_pos","$g_presentation_obj_select_cavalry",660),
        (troop_set_slot,"trp_x_size","$g_presentation_obj_select_cavalry",1000),
        (troop_set_slot,"trp_y_size","$g_presentation_obj_select_cavalry",1000),

Под этим, (пропустив одну строку) разместите следующее:
        (create_button_overlay, "$g_presentation_obj_select_bydanders", "str_bydanders", 0),
        (try_begin),
          (eq, "$g_multiplayer_select_presentation_unit_type", troop_select_type_bydanders),
          (overlay_set_color,"$g_presentation_obj_select_bydanders",0xECEB82),
        (else_try),
          (overlay_set_color,"$g_presentation_obj_select_bydanders",0xFFFFFF),
        (try_end),
        (position_set_x, pos1, 370),
        (position_set_y, pos1, 610),
        (overlay_set_position, "$g_presentation_obj_select_bydanders", pos1),
        #(position_set_x, pos1, 1500),
        #(position_set_y, pos1, 1500),
        #(overlay_set_size, "$g_presentation_obj_select_bydanders", pos1),
        (troop_set_slot,"trp_x_pos","$g_presentation_obj_select_bydanders",300),
        (troop_set_slot,"trp_y_pos","$g_presentation_obj_select_bydanders",660),
        (troop_set_slot,"trp_x_size","$g_presentation_obj_select_bydanders",1000),
        (troop_set_slot,"trp_y_size","$g_presentation_obj_select_bydanders",1000),

Найдите:       (else_try),
          (eq,":object","$g_presentation_obj_select_cavalry"),
          (assign, "$g_multiplayer_select_presentation_unit_type",troop_select_type_cavalry),
          (presentation_set_duration, 0),
          (start_presentation,"prsnt_multiplayer_item_select"),

Под этим поместите
        (else_try),
  (eq,":object","$g_presentation_obj_select_bydanders"),
          (assign, "$g_multiplayer_select_presentation_unit_type",troop_select_type_bydanders),
          (presentation_set_duration, 0),
          (start_presentation,"prsnt_multiplayer_item_select"),
(убедитесь, что между новым разделом и началом раздела артиллерии есть (else_try))

Следующий файл: module_constants

Найдите troop_select_type_artillery
Под этим поместите:troop_select_type_bydanders = 4
Теперь мы идем в последний файл, module_scripts для того, чтобы назначить юнитов для нового раздела.
Найдите:
(assign,":unit_type",troop_select_type_artillery),
Между этим и (try_end) поместите следующее:
(else_try),
  (is_between, ":troop_no", "trp_british_infantry2","trp_british_highlander"), # Brits

      (assign,":unit_type",troop_select_type_bydanders),

(Вы можете разместить тут тех юнитов, которые захотите. На данный момент в нашем новом разделе размещены british_infantry2 и british_highlander) [не знаю, почему у меня только один юнит получился в разделе, может где-то когда-то поменял порядок войск англичанам, не помню, но скрипты рабочие]

Запустите build_module.bat и проверьте, если ли ошибки, если нет ни одной - отличная работа!


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

Если есть какие-либо вопросы, не стесняйтесь задавать их!

Удачи,
Gokiller
Название: Re: [MS] Добавление новой секции для юнитов (NW)
Отправлено: Кавир от 14 Апреля, 2015, 11:22
Спасибо, отличный туториал! :)