В этом туторе я расскажу о том, как можно перемещать, менять местами или удалять кнопки из меню Rome Total War, а также некоторые детали интерфейса. Тутор подходит и к редактированию меню Medieval 2 Total War. Это бывает жизненно необходимо для вашего мода в случае, к примеру, когда какая-то из функций оригинальной игры им не поддерживается (распространённый пример: многими модами для Рима не поддерживается режим "быстрой битвы" или "имперской кампании".
Итак, нам понадобятся две вещи: достаточная доля терпения и внимательность. В самой работе нет ничего сложного и из ряда вон выходящего, достаточно немного попрактиковаться, и результат будет отличным.
Для работы рекомендую программку Araxis Merge (сравнение текстовых и других файлов, выделение измененных фрагментов), хотя она не обязательна.
1) В первую очередь мы должны чётко представлять, что мы хотим увидеть. Не будет лишним нарисовать простенькое древо меню игры, чтобы наглядно увидеть, какая кнопка на какую ссылается и какие кнопки на какой странице расположены. Это самая простая часть.
Итак, нам понадобятся две вещи: достаточная доля терпения и внимательность. В самой работе нет ничего сложного и из ряда вон выходящего, достаточно немного попрактиковаться, и результат будет отличным.
Для работы рекомендую программку Araxis Merge (сравнение текстовых и других файлов, выделение измененных фрагментов), хотя она не обязательна.
1) В первую очередь мы должны чётко представлять, что мы хотим увидеть. Не будет лишним нарисовать простенькое древо меню игры, чтобы наглядно увидеть, какая кнопка на какую ссылается и какие кнопки на какой странице расположены. Это самая простая часть.
В моём случае подопытными кроликами послужили зарубежные моды The New Shadow и End Of Days II: Lycan Rising.
2) Как же нам добиться такого расположения кнопок? Ищем файл ....\menu\Rome.lnt и открываем с помощью текстового редактора. К сожалению, файл весьма неудобен по структуре, напоминает XML, но XML - редакторы его не берут, в общем, прийдётся редактировать его вручную, благо, изменения не так уж глобальны.
Структура документа следующая: последовательно, страница за страницей, описывается всё меню и детали интерфейса игры.
- так размечаются начало и конец страницы в меню. Будьте внимательны!
Дальше для удобства я не буду указывать закрывающие теги.
- так обозначается навигационный элемент интерфейса, т.е. кнопка, переносящая нас в новую страницу меню
- команда, выполняющаяся при нажатии кнопки
- координаты. Соответственно X и Y. О них чуть позже.
, - соответственно ширина и высота кнопки. Об этом тоже чуть позже.
- уникальное имя объекта интерфейса. Это нам не понадобится.
- очень полезное поле! С помощью него можно найти соответствия между кнопками и их переводом в файлике ....text\menu_english.txt
Остальное нам тоже не понадобится. Итак, перейдём к кнопкам.
3) Ниже приведён для примера отрывок кода страницы меню, содержащей три кнопки. Я выделил красным шрифтом то, на что нам нужно обратить внимание.
new_game
...........
new_game_provincial_campaign
UIP_PROVINICIAL_CAMPAIGN
256
280
512
38
.........
new_game_historical_battles
UIP_HISTORICAL_BATTLES
256
319
513
38
.........
new_game_custom_battle
UIP_CLEAR_MENU_BUTTON
255
380
512
38
..........
Я выделил координаты кнопок и их параметры (ширина, высота). В чём особенность? Координаты рассчитываются из условия минимального разрешения экрана: 1024*768 - представьте себе, что мы нанесли сетку, по горизонтали значения которой варьируются от -256 до 768, а по вертикали от 0 до 768. Но! Важно! Обратите внимание, как на кнопке расположена координатная точка, к которой она привязана:
Структура документа следующая: последовательно, страница за страницей, описывается всё меню и детали интерфейса игры.
- так размечаются начало и конец страницы в меню. Будьте внимательны!
Дальше для удобства я не буду указывать закрывающие теги.
- так обозначается навигационный элемент интерфейса, т.е. кнопка, переносящая нас в новую страницу меню
- команда, выполняющаяся при нажатии кнопки
- координаты. Соответственно X и Y. О них чуть позже.
, - соответственно ширина и высота кнопки. Об этом тоже чуть позже.
- уникальное имя объекта интерфейса. Это нам не понадобится.
- очень полезное поле! С помощью него можно найти соответствия между кнопками и их переводом в файлике ....text\menu_english.txt
Остальное нам тоже не понадобится. Итак, перейдём к кнопкам.
3) Ниже приведён для примера отрывок кода страницы меню, содержащей три кнопки. Я выделил красным шрифтом то, на что нам нужно обратить внимание.
new_game
...........
new_game_provincial_campaign
UIP_PROVINICIAL_CAMPAIGN
256
280
512
38
.........
new_game_historical_battles
UIP_HISTORICAL_BATTLES
256
319
513
38
.........
new_game_custom_battle
UIP_CLEAR_MENU_BUTTON
255
380
512
38
..........
Я выделил координаты кнопок и их параметры (ширина, высота). В чём особенность? Координаты рассчитываются из условия минимального разрешения экрана: 1024*768 - представьте себе, что мы нанесли сетку, по горизонтали значения которой варьируются от -256 до 768, а по вертикали от 0 до 768. Но! Важно! Обратите внимание, как на кнопке расположена координатная точка, к которой она привязана:
Большая красная точка вверху посередине и обозначает эту точку привязки. Теперь вы видите, что значение координат по Y мы не можем взять больше чем 768 минус (высота кнопки), иначе элемент меню попадёт за край экрана.
Поэкспериментируйте с перемещением кнопок и настройте меню так, как вам подскажет ваша фантазия) Высоту и ширину лучше не менять, но всякое бывает - может вы нарисуете собственные кнопки на фоновом рисунке и вам понадобится поменять границы текущих.
Как удалить кнопку?
Допустим, вы хотите, чтобы в меню вашего мода не было кнопки "исторические битвы". Тогда надо удалить из документа (стандартный для других файлов Рима значок ";" не поможет) вот этот фрагмент:
new_game_historical_battles
UIP_HISTORICAL_BATTLES
256
319
513
38
historical_battle
UI_NEW_GAME_HISTORICAL_BATTLE
arial_split_CAF
centre
UI_NEW_GAME_HISTORICAL_BATTLE_INFO
empty_push_button
Аналогично с любой желаемой кнопкой. Только не удалите случайно кнопку "новая игра"/ Значения, которые прописаны в поле UI_text, как я уже говорил, можно сверять со значениями в левой части текстовика ....data\text\menu_english.txt
Поэкспериментируйте с перемещением кнопок и настройте меню так, как вам подскажет ваша фантазия) Высоту и ширину лучше не менять, но всякое бывает - может вы нарисуете собственные кнопки на фоновом рисунке и вам понадобится поменять границы текущих.
Как удалить кнопку?
Допустим, вы хотите, чтобы в меню вашего мода не было кнопки "исторические битвы". Тогда надо удалить из документа (стандартный для других файлов Рима значок ";" не поможет) вот этот фрагмент:
new_game_historical_battles
UIP_HISTORICAL_BATTLES
256
319
513
38
historical_battle
UI_NEW_GAME_HISTORICAL_BATTLE
arial_split_CAF
centre
UI_NEW_GAME_HISTORICAL_BATTLE_INFO
empty_push_button
Аналогично с любой желаемой кнопкой. Только не удалите случайно кнопку "новая игра"/ Значения, которые прописаны в поле UI_text, как я уже говорил, можно сверять со значениями в левой части текстовика ....data\text\menu_english.txt