Форум

Уведомления
Очистить все

[MS] Добавление новой секции для юнитов (NW)

 
Джеки Чан
Известный участник Модератор Гильдия переводчиков

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

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

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


- 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 и проверьте, если ли ошибки, если нет ни одной - отличная работа!

ОтветитьЦитата
Автор темы Размещено : 26.01.2022 11:04

Оставьте ответ

Имя автора

Электронная почта автора

Заголовок *

Мы используем cookie-файлы для наилучшего представления нашего сайта. Продолжая использовать этот сайт, вы соглашаетесь с использованием cookie-файлов.
Принять
Политика конфиденциальности