Оказывается, на весь интернет не было нормальной инструкции, как добавить в игру еще баннеров! Конечно можно редактировать *.dds, но что делать, если хочешь добавить в игру еще пару десятков лордов? Надо больше баннеров! Мне довелось жутко измотаться, пока я выяснил все тонкости. По этому захотелось наконец создать нормальную инструкцию.
На создание этого урока меня толкнул вопрос Swadian Knight (http://rusmnb.ru/index.php?action=profile;u=18262)'а, так что его тоже в каком-то роде можно поблагодарить.
Примечание:
Для удобства я выделяю все по данной схеме:
Синий - искомый текст.
Зеленый - добавленный текст.
Красный - замененный текст.
Серый - исходный текст файла.
Итак:
Добавление новых баннеров
1.134
Добавление баннеров плохо совместимо с сохранениями!
В сохраненной игре новые баннеры могут стать в неожиданном месте (у королей, например).
Так что имейте это ввиду перед добавлением баннеров.
1. Инструментарий
Нам понадобится:
- *.BRF редактор (урок сделан на основе OpenBFR);
- *.DDS редактор (не обязательно, не нужен для создания текстуры, но ее и скачать можно, если лень рисовать);
- Модульная Система;
2. Новые баннеры
В общем как раз на эту тему есть много инструкций, не буду расписывать. Создать свои баннеры можно и просто поставив их поверх уже готовых в редакторе DDS. Особого ничего знать не нужно. Хватит и знаний от пользования paint'ом. А кто знаком с photoshop, так можно даже это не читать.
В общем нам надо создать/скачать баннеры и назвать их "banners_h.dds". Вообще-то название абсолютно ни на что не влияет. Можете назвать хоть "as7bnstydfxr5g.dds", но "banners_h.dds" - простой и удобный вариант.
3. Новая текстура
Вот тут начинается поподробнее...
Итак, запускаем BRF редактор и открываем им файл "...\Mount and Blade. Warband\CommonRes\materials.brf":(http://s45.radikal.ru/i108/1107/97/be9196806596.jpg)
Прокручиваем все ресурсы слева, пока не наткнемся на "banners". Выбираем "banners_g", затем "Import"->"New Material". Жмем Browse и показываем программе наши "bannres_h.dds", которые желательно было закинуть в папку ко всем остальным текстурам.
(http://s51.radikal.ru/i134/1107/6b/d2d124dffda7.jpg)
Теперь мы видим наши новые баннеры в списке. На всякий случай сделайте все настройки (кроме имени текстуры "DiffuseA") в красном прямоугольнике такие же, как у остальных баннеров.
(http://s42.radikal.ru/i097/1107/89/1b0b2dd082f8.jpg)
4. Создание mesh'ей (banners)
Теперь надо добавить в игру все эти баннеры по отдельности... Для этого существуют меши.
Открываем "...\Mount and Blade. Warband\CommonRes\banners.brf". Видим целую кучу баннеров. Прокручиваем до начала "arms":
(http://s19.radikal.ru/i192/1107/3b/077e1e7bb08c.jpg)
Что бы долго не парится, дулаем следующий фокус (пошагово):
а) Выделяем 21 баннер из серии "bannefs_f" и делаем ctrl+C, ctrl+V (копировать - вставить). Видим кучу баннеров banners_f.
(http://s45.radikal.ru/i107/1107/66/39490b3325d9.jpg)
б) Выделяем вставленные (а не оригинальные) баннеры от "banner_f01" до "banner_f21" и жмем ПКМ -> "Group Rename"
(http://s59.radikal.ru/i166/1107/fc/2dcc3499b5db.jpg)
Вводим "banner_h" (без циферок). И та-дам! Все баннеры стали "banner_h" с циферками.
в) Выделяем все "banner_h". И в поле "Material" меняем букву на "h". Все! 21 баннер с новой текстуры готов.
(http://s014.radikal.ru/i326/1107/6f/d35abe52445e.jpg)
Сохраняем наш результат. На заикания программы отвечаем "yes".
Если вам интересно, что за "arms" - это прямоугольные варианты баннеров, у которых внизу вырез. Просто сравните "banner_a01" и "arms_a01" и поймете.
Наши баннеры и так без выреза, по этому arms мы не создаем. Но вы можете сделать себе баннеры с вырезом, путем копирования таковых и прописывания своей текстуры. Но потом придется на баннеры с вырезом создать соответствующие arms. Это точно такие же меши, только с другим названием. У вас должно легко получится это сделать.
4. Создание mesh'ей (map_icons)
Открываем "...\Mount and Blade. Warband\CommonRes\map_flags_c.brf" и делаем точно то же самое, что в п.3.
Можете попробовать и с другими типами флагов (map_flags_a, map_flags_b), то для этого надо иметь побольше знаний о работе с мешами и текстурами (не хватит флагов, что бы только скопировать, надо будет создавать вручную). Вы можете прочитать это в уроках по BRF на этом же форуме. Тут я расписывать это не буду, т.к. это урок по баннерах, а не по BRF.
5. Модульная система
Теперь надо, чтобы игра могла воспринять наши новые баннеры.
А. В module_mesher.py где-то на середине находим баннеры и дописываем новые перед баннерами королевств.
("banner_f18", 0, "banner_f18", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_f19", 0, "banner_f19", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_f20", 0, "banner_f20", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_g01", 0, "banner_f01", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_g02", 0, "banner_f02", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_g03", 0, "banner_f03", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_g04", 0, "banner_f04", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_g05", 0, "banner_f05", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_g06", 0, "banner_f06", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_g07", 0, "banner_f07", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_g08", 0, "banner_f08", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_g09", 0, "banner_f09", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_g10", 0, "banner_f10", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h01", 0, "banner_h01", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h02", 0, "banner_h02", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h03", 0, "banner_h03", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h04", 0, "banner_h04", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h05", 0, "banner_h05", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h06", 0, "banner_h06", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h07", 0, "banner_h07", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h08", 0, "banner_h08", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h09", 0, "banner_h09", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h10", 0, "banner_h10", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h11", 0, "banner_h11", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h12", 0, "banner_h12", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h13", 0, "banner_h13", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h14", 0, "banner_h14", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h15", 0, "banner_h15", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h16", 0, "banner_h16", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h17", 0, "banner_h17", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h18", 0, "banner_h18", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h19", 0, "banner_h19", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h20", 0, "banner_h20", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_h21", 0, "banner_h21", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_kingdom_a", 0, "banner_kingdom_a", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_kingdom_b", 0, "banner_kingdom_b", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_kingdom_c", 0, "banner_kingdom_c", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_kingdom_d", 0, "banner_kingdom_d", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_kingdom_e", 0, "banner_kingdom_e", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_kingdom_f", 0, "banner_kingdom_f", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("banner_f21", 0, "banner_a15", 0, 0, 0, -90, 0, 0, 1, 1, 1),
Второе название (после нолика) - название mesh'а! Запомните это, если будете еще добавлять баннеров.
Можно заметить одну недоработку - 10 продублированных баннеров... Вообще-то на их месте должен был быть 21 баннер из "banners_f.dds"... Но что-то не слиплось... Баннеров из banners_f.dds в игре нет вообще. Для них даже не созданы меши. Не знаю, что думали разработчики, когда прописывали баннеры...
Вы сможете можете исправить это, пользуясь знаниями из этого урока =)
B. Теперь в том же module_mesher.py идем ниже, до точно такой картины, как прежде, но только с "arms". И делаем то же самое:
("arms_f16", 0, "banner_f16", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_f17", 0, "banner_f17", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_f18", 0, "banner_f18", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_f19", 0, "banner_f19", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_f20", 0, "banner_f20", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_g01", 0, "banner_f01", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_g02", 0, "banner_f02", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_g03", 0, "banner_f03", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_g04", 0, "banner_f04", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_g05", 0, "banner_f05", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_g06", 0, "banner_f06", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_g07", 0, "banner_f07", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_g08", 0, "banner_f08", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_g09", 0, "banner_f09", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_g10", 0, "banner_f10", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h01", 0, "banner_h01", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h02", 0, "banner_h02", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h03", 0, "banner_h03", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h04", 0, "banner_h04", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h05", 0, "banner_h05", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h06", 0, "banner_h06", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h07", 0, "banner_h07", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h08", 0, "banner_h08", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h09", 0, "banner_h09", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h10", 0, "banner_h10", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h11", 0, "banner_h11", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h12", 0, "banner_h12", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h13", 0, "banner_h13", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h14", 0, "banner_h14", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h15", 0, "banner_h15", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h16", 0, "banner_h16", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h17", 0, "banner_h17", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h18", 0, "banner_h18", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h19", 0, "banner_h19", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h20", 0, "banner_h20", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_h21", 0, "banner_h21", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_kingdom_a", 0, "banner_kingdom_a", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_kingdom_b", 0, "banner_kingdom_b", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_kingdom_c", 0, "banner_kingdom_c", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_kingdom_d", 0, "banner_kingdom_d", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_kingdom_e", 0, "banner_kingdom_e", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_kingdom_f", 0, "banner_kingdom_f", 0, 0, 0, -90, 0, 0, 1, 1, 1),
("arms_f21", 0, "banner_a15", 0, 0, 0, -90, 0, 0, 1, 1, 1),
Тут (да в общем и везде с баннерами) второе название - тоже mesh. Мы используем для arms меши баннеров, т.к. они и так прямоугольные... Если вы прошли прошлые шаги, то должны понимать о чем речь...
C. Теперь снова надо приписывать каждый баннер!!! На этот раз в module_scene_props.py. Там ну точно то же самое, что и прошлые 2 раза, но искать будем немного другую по структуре строку:
("banner_f17", 0, "banner_f17", "0", []),
("banner_f18", 0, "banner_f18", "0", []),
("banner_f19", 0, "banner_f19", "0", []),
("banner_f20", 0, "banner_f20", "0", []),
("banner_g01", 0, "banner_f01", "0", []),
("banner_g02", 0, "banner_f02", "0", []),
("banner_g03", 0, "banner_f03", "0", []),
("banner_g04", 0, "banner_f04", "0", []),
("banner_g05", 0, "banner_f05", "0", []),
("banner_g06", 0, "banner_f06", "0", []),
("banner_g07", 0, "banner_f07", "0", []),
("banner_g08", 0, "banner_f08", "0", []),
("banner_g09", 0, "banner_f09", "0", []),
("banner_g10", 0, "banner_f10", "0", []),
("banner_h01", 0, "banner_h01", "0", []),
("banner_h02", 0, "banner_h02", "0", []),
("banner_h03", 0, "banner_h03", "0", []),
("banner_h04", 0, "banner_h04", "0", []),
("banner_h05", 0, "banner_h05", "0", []),
("banner_h06", 0, "banner_h06", "0", []),
("banner_h07", 0, "banner_h07", "0", []),
("banner_h08", 0, "banner_h08", "0", []),
("banner_h09", 0, "banner_h09", "0", []),
("banner_h10", 0, "banner_h10", "0", []),
("banner_h11", 0, "banner_h11", "0", []),
("banner_h12", 0, "banner_h12", "0", []),
("banner_h13", 0, "banner_h13", "0", []),
("banner_h14", 0, "banner_h14", "0", []),
("banner_h15", 0, "banner_h15", "0", []),
("banner_h16", 0, "banner_h16", "0", []),
("banner_h17", 0, "banner_h17", "0", []),
("banner_h18", 0, "banner_h18", "0", []),
("banner_h19", 0, "banner_h19", "0", []),
("banner_h20", 0, "banner_h20", "0", []),
("banner_h21", 0, "banner_h21", "0", []),
("banner_kingdom_a", 0, "banner_kingdom_a", "0", []),
("banner_kingdom_b", 0, "banner_kingdom_b", "0", []),
("banner_kingdom_c", 0, "banner_kingdom_c", "0", []),
("banner_kingdom_d", 0, "banner_kingdom_d", "0", []),
("banner_kingdom_e", 0, "banner_kingdom_e", "0", []),
("banner_kingdom_f", 0, "banner_kingdom_f", "0", []),
("banner_f21", 0, "banner_a15", "0", []),
D. И еще раз надо все баннеры прописать (вот же запара с баннерами, да?). Открываем на этот раз module_map_icons.py, чтобы баннеры отображались на карте.
75% этого файла - баннеры, гы-гы :laught:.
Ищем синее, дописываем зеленое, как и всегда:
("banner_124",0,"map_flag_f19", banner_scale,0),
("banner_125",0,"map_flag_f20", banner_scale,0),
("banner_126",0,"map_flag_f01", banner_scale,0),
("banner_127",0,"map_flag_f02", banner_scale,0),
("banner_128",0,"map_flag_f03", banner_scale,0),
("banner_129",0,"map_flag_f04", banner_scale,0),
("banner_130",0,"map_flag_f05", banner_scale,0),
("banner_131",0,"map_flag_f06", banner_scale,0),
("banner_132",0,"map_flag_f07", banner_scale,0),
("banner_133",0,"map_flag_f08", banner_scale,0),
("banner_134",0,"map_flag_f09", banner_scale,0),
("banner_135",0,"map_flag_f10", banner_scale,0),
("banner_137",0,"map_flag_h01", banner_scale,0),
("banner_138",0,"map_flag_h02", banner_scale,0),
("banner_139",0,"map_flag_h03", banner_scale,0),
("banner_140",0,"map_flag_h04", banner_scale,0),
("banner_141",0,"map_flag_h05", banner_scale,0),
("banner_142",0,"map_flag_h06", banner_scale,0),
("banner_143",0,"map_flag_h07", banner_scale,0),
("banner_144",0,"map_flag_h08", banner_scale,0),
("banner_145",0,"map_flag_h09", banner_scale,0),
("banner_146",0,"map_flag_h10", banner_scale,0),
("banner_147",0,"map_flag_h11", banner_scale,0),
("banner_148",0,"map_flag_h12", banner_scale,0),
("banner_149",0,"map_flag_h13", banner_scale,0),
("banner_150",0,"map_flag_h14", banner_scale,0),
("banner_151",0,"map_flag_h15", banner_scale,0),
("banner_152",0,"map_flag_h16", banner_scale,0),
("banner_153",0,"map_flag_h17", banner_scale,0),
("banner_154",0,"map_flag_h18", banner_scale,0),
("banner_155",0,"map_flag_h19", banner_scale,0),
("banner_156",0,"map_flag_h20", banner_scale,0),
("banner_157",0,"map_flag_h21", banner_scale,0),
("map_flag_kingdom_a",0,"map_flag_kingdom_a", banner_scale,0),
("map_flag_kingdom_b",0,"map_flag_kingdom_b", banner_scale,0),
("map_flag_kingdom_c",0,"map_flag_kingdom_c", banner_scale,0),
("map_flag_kingdom_d",0,"map_flag_kingdom_d", banner_scale,0),
("map_flag_kingdom_e",0,"map_flag_kingdom_e", banner_scale,0),
("map_flag_kingdom_f",0,"map_flag_kingdom_f", banner_scale,0),
("banner_136",0,"map_flag_15", banner_scale,0),
Обратите внимание на номера. Последний "banner_136" лучше оставить, как есть, а новые продолжать писать с 137. Это не повлияет на восприятие их игрой, она будет читать все баннеры до "banner_136" независимо от названия (это определяется константами). Но название пригодится игре для иных целей.
Вписывать баннеры закончили. Но это еще не все, нет...
E. Идем в module_constants.py и изменяем количество баннеров в соответствии с добавленными (в данном случае +21):
sarranid_banners_begin_offset = 105
sarranid_banners_end_offset = 125
banners_end_offset = 157
# Some constants for merchant invenotries
merchant_inventory_space = 30
num_merchandise_goods = 40
Теперь настроим цвета фона (цвет спины на геральдических доспехах) баннеров. Идем в module_scripts.py, ищем, дописываем:
(troop_set_slot, "trp_banner_background_color_array", 105, 0xFFc39d31),
(troop_set_slot, "trp_banner_background_color_array", 106, 0xFFcbb670),
(troop_set_slot, "trp_banner_background_color_array", 107, 0xFF394a18),
(troop_set_slot, "trp_banner_background_color_array", 108, 0xFF372708),
(troop_set_slot, "trp_banner_background_color_array", 109, 0xFF9a6810),
(troop_set_slot, "trp_banner_background_color_array", 110, 0xFFb27910),
(troop_set_slot, "trp_banner_background_color_array", 111, 0xFF8c8621),
(troop_set_slot, "trp_banner_background_color_array", 112, 0xFF975a03),
(troop_set_slot, "trp_banner_background_color_array", 113, 0xFF2c2924),
(troop_set_slot, "trp_banner_background_color_array", 114, 0xFFaa962c),
(troop_set_slot, "trp_banner_background_color_array", 115, 0xFFa2822e),
(troop_set_slot, "trp_banner_background_color_array", 116, 0xFF7b8a8c),
(troop_set_slot, "trp_banner_background_color_array", 117, 0xFF3c0908),
(troop_set_slot, "trp_banner_background_color_array", 118, 0xFFFF00FF),
(troop_set_slot, "trp_banner_background_color_array", 119, 0xFF671e14),
(troop_set_slot, "trp_banner_background_color_array", 120, 0xFF103042),
(troop_set_slot, "trp_banner_background_color_array", 121, 0xFF4a4500),
(troop_set_slot, "trp_banner_background_color_array", 122, 0xFF703324),
(troop_set_slot, "trp_banner_background_color_array", 123, 0xFF24293c),
(troop_set_slot, "trp_banner_background_color_array", 124, 0xFF5d6966),
(troop_set_slot, "trp_banner_background_color_array", 125, 0xFFbd9631),
(troop_set_slot, "trp_banner_background_color_array", 126, 0xFFc6b26b),
(troop_set_slot, "trp_banner_background_color_array", 127, 0xFF394918),
(troop_set_slot, "trp_banner_background_color_array", 128, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 129, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 130, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 131, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 132, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 133, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 134, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 135, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 136, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 137, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 138, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 139, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 140, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 141, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 142, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 143, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 144, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 145, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 146, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 147, 0xFF000000),
(troop_set_slot, "trp_banner_background_color_array", 148, 0xFF000000),
#Default banners
(troop_set_slot, "trp_banner_background_color_array", 149, 0xFF212221),
(troop_set_slot, "trp_banner_background_color_array", 150, 0xFF212221),
(troop_set_slot, "trp_banner_background_color_array", 151, 0xFF2E3B10),
(troop_set_slot, "trp_banner_background_color_array", 152, 0xFF425D7B),
(troop_set_slot, "trp_banner_background_color_array", 153, 0xFF394608),
]),
Внимание! Порядковый номер баннеров точно совпадает с их порядковым номером в текстурах! Счет начинается от верхнего левого баннера и идет по строкам (как буквы в книге). Ну а текстуры в таком порядке, как они расположены в materials.brf. Имейте это ввиду!
Внимание еще раз! Цвет определяют только цифры, выделенные фиолетовым:"0xFF000000". Это обычный код цвета в 16-ричной системе исчисления. Его можно узнать, например, в фотошопе, или в интернете по запросу "16-ричные коды цветов"...
Цвета я не устанавливал, они все сброшены на черный.
И о наконец-то! Последний штрих!
F. Идем в module_presentations.py, ищем презентацию баннеров и добавляем новые страницы, чтобы баннеры стали доступны не только ботам, но и самому игроку!
("banner_selection",0,mesh_load_window,[
(ti_on_presentation_load,
[(set_fixed_point_multiplier, 1000),
(str_store_string, s1, "str_banner_selection_text"),
(create_text_overlay, reg1, s1, tf_center_justify),
(position_set_x, pos1, 500),
(position_set_y, pos1, 600),
(overlay_set_position, reg1, pos1),
(overlay_set_text, reg1, s1),
(create_button_overlay, "$g_presentation_obj_banner_selection_1", "@Next Page", tf_center_justify),
(position_set_x, pos1, 500),
(position_set_y, pos1, 50),
(overlay_set_position, "$g_presentation_obj_banner_selection_1", pos1),
(assign, ":x_pos", 150),
(assign, ":y_pos", 575),
(assign, ":try_end", banner_meshes_end_minus_one),
(store_sub, ":num_npc_kingdoms", npc_kingdoms_end, npc_kingdoms_begin),
(val_sub, ":try_end", ":num_npc_kingdoms"), #do not allow kingdom banners to be selected
(store_mul, ":begin_mesh", 16, "$g_presentation_page_no"),
(val_add, ":begin_mesh", banner_meshes_begin),
(store_add, ":try_end_2", ":begin_mesh", 16),
(val_min, ":try_end", ":try_end_2"),
(store_add, "$g_presentation_banner_start", "$g_presentation_obj_banner_selection_1", 1),
(try_for_range, ":cur_banner_mesh", ":begin_mesh", ":try_end"),
(create_image_button_overlay, reg1, ":cur_banner_mesh", ":cur_banner_mesh"),
(position_set_x, pos1, ":x_pos"),
(position_set_y, pos1, ":y_pos"),
(overlay_set_position, reg1, pos1),
(position_set_x, pos1, 100),
(position_set_y, pos1, 100),
(overlay_set_size, reg1, pos1),
(val_add, ":x_pos", 100),
(ge, ":x_pos", 900),
(assign, ":x_pos", 150),
(val_sub, ":y_pos", 250),
(try_end),
(presentation_set_duration, 999999),
]),
(ti_on_presentation_event_state_change,
[(store_trigger_param_1, ":object"),
(try_begin),
(eq, ":object", "$g_presentation_obj_banner_selection_1"),
(val_add, "$g_presentation_page_no", 1),
(val_mod, "$g_presentation_page_no", 12),
(start_presentation, "prsnt_banner_selection"),
(else_try),
(store_sub, ":selected_banner", ":object", "$g_presentation_banner_start"),
(store_mul, ":page_adder", 16, "$g_presentation_page_no"),
(val_add, ":selected_banner", ":page_adder"),
(store_add, ":selected_banner_map_icon", ":selected_banner", banner_map_icons_begin),
(party_set_banner_icon, "p_main_party", ":selected_banner_map_icon"),
(store_add, ":selected_banner_spr", ":selected_banner", banner_scene_props_begin),
(troop_set_slot, "trp_player", slot_troop_banner_scene_prop, ":selected_banner_spr"),
Красное число точно повторяет будущее количество страниц...
Все! Я очень надеюсь, что ничего не упустил. Если все сделали точно как в инструкции, но не получилось, то пишите в тему...
итак ларчик открывался очень просто приношу свои извенения!!! Надо не забыть также сделать файл текстуры тоже с помощью брф он лежил отдельно в том же каммон рес папке
Именно отдельно, после шага материалс брф!!!!!!
мой вариант решения в scenes_props.py ("banner_a",0,"banner_a01","0", []),
("banner_b",0,"banner_a02","0", []),
("banner_c",0,"banner_a03","0", []),
("banner_d",0,"banner_a04","0", []),
("banner_e",0,"banner_a05","0", []),
("banner_f",0,"banner_a06","0", []),
("banner_g",0,"banner_a07","0", []),
("banner_h",0,"banner_a08","0", []),
("banner_i",0,"banner_a09","0", []),
("banner_j",0,"banner_a10","0", []),
("banner_k",0,"banner_a11","0", []),
("banner_l",0,"banner_a12","0", []),
("banner_m",0,"banner_a13","0", []),
("banner_n",0,"banner_a14","0", []),
("banner_o",0,"banner_f21","0", []),
("banner_p",0,"banner_a16","0", []),
("banner_q",0,"banner_a17","0", []),
("banner_r",0,"banner_a18","0", []),
("banner_s",0,"banner_a19","0", []),
("banner_t",0,"banner_a20","0", []),
("banner_u",0,"banner_a21","0", []),
("banner_ba",0,"banner_b01","0", []),
("banner_bb",0,"banner_b02","0", []),
("banner_bc",0,"banner_b03","0", []),
("banner_bd",0,"banner_b04","0", []),
("banner_be",0,"banner_b05","0", []),
("banner_bf",0,"banner_b06","0", []),
("banner_bg",0,"banner_b07","0", []),
("banner_bh",0,"banner_b08","0", []),
("banner_bi",0,"banner_b09","0", []),
("banner_bj",0,"banner_b10","0", []),
("banner_bk",0,"banner_b11","0", []),
("banner_bl",0,"banner_b12","0", []),
("banner_bm",0,"banner_b13","0", []),
("banner_bn",0,"banner_b14","0", []),
("banner_bo",0,"banner_b15","0", []),
("banner_bp",0,"banner_b16","0", []),
("banner_bq",0,"banner_b17","0", []),
("banner_br",0,"banner_b18","0", []),
("banner_bs",0,"banner_b19","0", []),
("banner_bt",0,"banner_b20","0", []),
("banner_bu",0,"banner_b21","0", []),
("banner_ca",0,"banner_c01","0", []),
("banner_cb",0,"banner_c02","0", []),
("banner_cc",0,"banner_c03","0", []),
("banner_cd",0,"banner_c04","0", []),
("banner_ce",0,"banner_c05","0", []),
("banner_cf",0,"banner_c06","0", []),
("banner_cg",0,"banner_c07","0", []),
("banner_ch",0,"banner_c08","0", []),
("banner_ci",0,"banner_c09","0", []),
("banner_cj",0,"banner_c10","0", []),
("banner_ck",0,"banner_c11","0", []),
("banner_cl",0,"banner_c12","0", []),
("banner_cm",0,"banner_c13","0", []),
("banner_cn",0,"banner_c14","0", []),
("banner_co",0,"banner_c15","0", []),
("banner_cp",0,"banner_c16","0", []),
("banner_cq",0,"banner_c17","0", []),
("banner_cr",0,"banner_c18","0", []),
("banner_cs",0,"banner_c19","0", []),
("banner_ct",0,"banner_c20","0", []),
("banner_cu",0,"banner_c21","0", []),
("banner_da",0,"banner_d01","0", []),
("banner_db",0,"banner_d02","0", []),
("banner_dc",0,"banner_d03","0", []),
("banner_dd",0,"banner_d04","0", []),
("banner_de",0,"banner_d05","0", []),
("banner_df",0,"banner_d06","0", []),
("banner_dg",0,"banner_d07","0", []),
("banner_dh",0,"banner_d08","0", []),
("banner_di",0,"banner_d09","0", []),
("banner_dj",0,"banner_d10","0", []),
("banner_dk",0,"banner_d11","0", []),
("banner_dl",0,"banner_d12","0", []),
("banner_dm",0,"banner_d13","0", []),
("banner_dn",0,"banner_d14","0", []),
("banner_do",0,"banner_d15","0", []),
("banner_dp",0,"banner_d16","0", []),
("banner_dq",0,"banner_d17","0", []),
("banner_dr",0,"banner_d18","0", []),
("banner_ds",0,"banner_d19","0", []),
("banner_dt",0,"banner_d20","0", []),
("banner_du",0,"banner_d21","0", []),
("banner_ea",0,"banner_e01","0", []),
("banner_eb",0,"banner_e02","0", []),
("banner_ec",0,"banner_e03","0", []),
("banner_ed",0,"banner_e04","0", []),
("banner_ee",0,"banner_e05","0", []),
("banner_ef",0,"banner_e06","0", []),
("banner_eg",0,"banner_e07","0", []),
("banner_eh",0,"banner_e08","0", []),
("banner_ei",0,"banner_e09","0", []),
("banner_ej",0,"banner_e10","0", []),
("banner_ek",0,"banner_e11","0", []),
("banner_el",0,"banner_e12","0", []),
("banner_em",0,"banner_e13","0", []),
("banner_en",0,"banner_e14","0", []),
("banner_eo",0,"banner_e15","0", []),
("banner_ep",0,"banner_e16","0", []),
("banner_eq",0,"banner_e17","0", []),
("banner_er",0,"banner_e18","0", []),
("banner_es",0,"banner_e19","0", []),
("banner_et",0,"banner_e20","0", []),
("banner_eu",0,"banner_e21","0", []),
("banner_fa", 0, "banner_f01", "0", []),
("banner_fb", 0, "banner_f02", "0", []),
("banner_fc", 0, "banner_f03", "0", []),
("banner_fd", 0, "banner_f04", "0", []),
("banner_fe", 0, "banner_f05", "0", []),
("banner_ff", 0, "banner_f06", "0", []),
("banner_fg", 0, "banner_f07", "0", []),
("banner_fh", 0, "banner_f08", "0", []),
("banner_fi", 0, "banner_f09", "0", []),
("banner_fj", 0, "banner_f10", "0", []),
("banner_fk", 0, "banner_f11", "0", []),
("banner_fl", 0, "banner_f12", "0", []),
("banner_fm", 0, "banner_f13", "0", []),
("banner_fn", 0, "banner_f14", "0", []),
("banner_fo", 0, "banner_f15", "0", []),
("banner_fp", 0, "banner_f16", "0", []),
("banner_fq", 0, "banner_f17", "0", []),
("banner_fr", 0, "banner_f18", "0", []),
("banner_fs", 0, "banner_f19", "0", []),
("banner_ft", 0, "banner_f20", "0", []),
("banner_fu", 0, "banner_f21", "0", []),
("banner_ga", 0, "banner_g01", "0", []),
("banner_gb", 0, "banner_g02", "0", []),
("banner_gc", 0, "banner_g03", "0", []),
("banner_gd", 0, "banner_g04", "0", []),
("banner_ge", 0, "banner_g05", "0", []),
("banner_gf", 0, "banner_g06", "0", []),
("banner_gg", 0, "banner_g07", "0", []),
("banner_gh", 0, "banner_g08", "0", []),
("banner_gi", 0, "banner_g09", "0", []),
("banner_gj", 0, "banner_g10", "0", []),
("banner_gk", 0, "banner_g11", "0", []),
("banner_gl", 0, "banner_g12", "0", []),
("banner_gm", 0, "banner_g13", "0", []),
("banner_gn", 0, "banner_g14", "0", []),
("banner_go", 0, "banner_g15", "0", []),
("banner_gp", 0, "banner_g16", "0", []),
("banner_gq", 0, "banner_g17", "0", []),
("banner_gr", 0, "banner_g18", "0", []),
("banner_gs", 0, "banner_g19", "0", []),
("banner_gt", 0, "banner_g20", "0", []),
("banner_gu", 0, "banner_g21", "0", []),
("banner_ha", 0, "banner_h01", "0", []),
("banner_hb", 0, "banner_h02", "0", []),
("banner_hc", 0, "banner_h03", "0", []),
("banner_hd", 0, "banner_h04", "0", []),
("banner_he", 0, "banner_h05", "0", []),
("banner_hf", 0, "banner_h06", "0", []),
("banner_hg", 0, "banner_h07", "0", []),
("banner_hh", 0, "banner_h08", "0", []),
("banner_hi", 0, "banner_h09", "0", []),
("banner_hj", 0, "banner_h10", "0", []),
("banner_hk", 0, "banner_h11", "0", []),
("banner_hl", 0, "banner_h12", "0", []),
("banner_hm", 0, "banner_h13", "0", []),
("banner_hn", 0, "banner_h14", "0", []),
("banner_ho", 0, "banner_h15", "0", []),
("banner_hp", 0, "banner_h16", "0", []),
("banner_hq", 0, "banner_h17", "0", []),
("banner_hr", 0, "banner_h18", "0", []),
("banner_hs", 0, "banner_h19", "0", []),
("banner_ht", 0, "banner_h20", "0", []),
("banner_hu", 0, "banner_h21", "0", []),
хм но в модуле NMC это пока не срабатывает, точнее срабатывает до модуля ф( модуль г тоже полный!!!) а вот модуль H только по 16 флагам... занятная загадка и полторы последних страницы (по представлению всего 12 страниц из примера) пусты... хм...
Hunterwolf - у меня уже и пэйнт и гимп стоят=)
если верить Каб-адрину всаднику с TW то это нестыковка из-за СС???!!! знать бы еще где убирать=) править?
ок! уберу, если обьяснишь почему авторы скрипта так мудеро его закольцевали. почему они сознательно ограничили себя баннерами по Ф в котором тестура и меши от блока Г. почему Ф закольцован на двойной показ? если поможешь понять логику то с удовольствием и уберу и перераспределю.... хоть и не программист но кажется начинаю складывать мозаику... и самое веселое что не понял пока взаимосвязь флагов королевств с баннерпаками но взаимосвязь по ходу присутствует... пробовал перекинуть на другие варианты но пока глухо.... Эту двойную уже фиксировал и пробовал разные способы переключения...
Добавлено: 23 Мая, 2012, 12:25
да и в целом по логике дефаулт баннер пак должен был бы идти под первыми 6-ю номерами, а не в середине-конце... да еще в невидимке. и кито знаетЪ где это прописали
нестыковку с СС тоже нашел... думаю как исправить. они те же баннеры королевств дублировали и приписали своим бандитским героям... но в остальных частях ничего не добавили и в итоге взаимоблок... осталось понять взаимосвязи чтоб исправить...
Извини за эмоциональность... парадокс достал... не вижу пока логики...
хочу понять где в каком модуле и в какой переменной они привязали а15 к дефаулт баннер паку и потом вынесли его на ф21
все разобрал эту мешанину... Спасибо FInnGall'у, Hunterwolf'у и Arantir'у.
если бы не баннер -1 все встало бы идеально=) но эта переменная записана не только в указанных модулях, как я понял и правильную строку на питоне как написать пока не знаю=)
Добавлено: 23 Мая, 2012, 13:10
результат из сценс_пропс ("banner_a",0,"banner_a01","0", []),
("banner_b",0,"banner_a02","0", []),
("banner_c",0,"banner_a03","0", []),
("banner_d",0,"banner_a04","0", []),
("banner_e",0,"banner_a05","0", []),
("banner_f",0,"banner_a06","0", []),
("banner_g",0,"banner_a07","0", []),
("banner_h",0,"banner_a08","0", []),
("banner_i",0,"banner_a09","0", []),
("banner_j",0,"banner_a10","0", []),
("banner_k",0,"banner_a11","0", []),
("banner_l",0,"banner_a12","0", []),
("banner_m",0,"banner_a13","0", []),
("banner_n",0,"banner_a14","0", []),
("banner_o",0,"banner_a15","0", []),
("banner_p",0,"banner_a16","0", []),
("banner_q",0,"banner_a17","0", []),
("banner_r",0,"banner_a18","0", []),
("banner_s",0,"banner_a19","0", []),
("banner_t",0,"banner_a20","0", []),
("banner_u",0,"banner_a21","0", []),
("banner_ba",0,"banner_b01","0", []),
("banner_bb",0,"banner_b02","0", []),
("banner_bc",0,"banner_b03","0", []),
("banner_bd",0,"banner_b04","0", []),
("banner_be",0,"banner_b05","0", []),
("banner_bf",0,"banner_b06","0", []),
("banner_bg",0,"banner_b07","0", []),
("banner_bh",0,"banner_b08","0", []),
("banner_bi",0,"banner_b09","0", []),
("banner_bj",0,"banner_b10","0", []),
("banner_bk",0,"banner_b11","0", []),
("banner_bl",0,"banner_b12","0", []),
("banner_bm",0,"banner_b13","0", []),
("banner_bn",0,"banner_b14","0", []),
("banner_bo",0,"banner_b15","0", []),
("banner_bp",0,"banner_b16","0", []),
("banner_bq",0,"banner_b17","0", []),
("banner_br",0,"banner_b18","0", []),
("banner_bs",0,"banner_b19","0", []),
("banner_bt",0,"banner_b20","0", []),
("banner_bu",0,"banner_b21","0", []),
("banner_ca",0,"banner_c01","0", []),
("banner_cb",0,"banner_c02","0", []),
("banner_cc",0,"banner_c03","0", []),
("banner_cd",0,"banner_c04","0", []),
("banner_ce",0,"banner_c05","0", []),
("banner_cf",0,"banner_c06","0", []),
("banner_cg",0,"banner_c07","0", []),
("banner_ch",0,"banner_c08","0", []),
("banner_ci",0,"banner_c09","0", []),
("banner_cj",0,"banner_c10","0", []),
("banner_ck",0,"banner_c11","0", []),
("banner_cl",0,"banner_c12","0", []),
("banner_cm",0,"banner_c13","0", []),
("banner_cn",0,"banner_c14","0", []),
("banner_co",0,"banner_c15","0", []),
("banner_cp",0,"banner_c16","0", []),
("banner_cq",0,"banner_c17","0", []),
("banner_cr",0,"banner_c18","0", []),
("banner_cs",0,"banner_c19","0", []),
("banner_ct",0,"banner_c20","0", []),
("banner_cu",0,"banner_c21","0", []),
("banner_da",0,"banner_d01","0", []),
("banner_db",0,"banner_d02","0", []),
("banner_dc",0,"banner_d03","0", []),
("banner_dd",0,"banner_d04","0", []),
("banner_de",0,"banner_d05","0", []),
("banner_df",0,"banner_d06","0", []),
("banner_dg",0,"banner_d07","0", []),
("banner_dh",0,"banner_d08","0", []),
("banner_di",0,"banner_d09","0", []),
("banner_dj",0,"banner_d10","0", []),
("banner_dk",0,"banner_d11","0", []),
("banner_dl",0,"banner_d12","0", []),
("banner_dm",0,"banner_d13","0", []),
("banner_dn",0,"banner_d14","0", []),
("banner_do",0,"banner_d15","0", []),
("banner_dp",0,"banner_d16","0", []),
("banner_dq",0,"banner_d17","0", []),
("banner_dr",0,"banner_d18","0", []),
("banner_ds",0,"banner_d19","0", []),
("banner_dt",0,"banner_d20","0", []),
("banner_du",0,"banner_d21","0", []),
("banner_ea",0,"banner_e01","0", []),
("banner_eb",0,"banner_e02","0", []),
("banner_ec",0,"banner_e03","0", []),
("banner_ed",0,"banner_e04","0", []),
("banner_ee",0,"banner_e05","0", []),
("banner_ef",0,"banner_e06","0", []),
("banner_eg",0,"banner_e07","0", []),
("banner_eh",0,"banner_e08","0", []),
("banner_ei",0,"banner_e09","0", []),
("banner_ej",0,"banner_e10","0", []),
("banner_ek",0,"banner_e11","0", []),
("banner_el",0,"banner_e12","0", []),
("banner_em",0,"banner_e13","0", []),
("banner_en",0,"banner_e14","0", []),
("banner_eo",0,"banner_e15","0", []),
("banner_ep",0,"banner_e16","0", []),
("banner_eq",0,"banner_e17","0", []),
("banner_er",0,"banner_e18","0", []),
("banner_es",0,"banner_e19","0", []),
("banner_et",0,"banner_e20","0", []),
("banner_eu",0,"banner_e21","0", []),
("banner_fa",0,"banner_f01","0", []),
("banner_fb",0,"banner_f02","0", []),
("banner_fc",0,"banner_f03","0", []),
("banner_fd",0,"banner_f04","0", []),
("banner_fe",0,"banner_f05","0", []),
("banner_ff",0,"banner_f06","0", []),
("banner_fg",0,"banner_f07","0", []),
("banner_fh",0,"banner_f08","0", []),
("banner_fi",0,"banner_f09","0", []),
("banner_fj",0,"banner_f10","0", []),
("banner_fk",0,"banner_f11","0", []),
("banner_fl",0,"banner_f12","0", []),
("banner_fm",0,"banner_f13","0", []),
("banner_fn",0,"banner_f14","0", []),
("banner_fo",0,"banner_f15","0", []),
("banner_fp",0,"banner_f16","0", []),
("banner_fq",0,"banner_f17","0", []),
("banner_fr",0,"banner_f18","0", []),
("banner_fs",0,"banner_f19","0", []),
("banner_ft",0,"banner_f20","0", []),
("banner_fu",0,"banner_f21","0", []),
("banner_ga",0,"banner_g01","0", []),
("banner_gb",0,"banner_g02","0", []),
("banner_gc",0,"banner_g03","0", []),
("banner_gd",0,"banner_g04","0", []),
("banner_ge",0,"banner_g05","0", []),
("banner_gf",0,"banner_g06","0", []),
("banner_gg",0,"banner_g07","0", []),
("banner_gh",0,"banner_g08","0", []),
("banner_gi",0,"banner_g09","0", []),
("banner_gj",0,"banner_g10","0", []),
("banner_gk",0,"banner_g11","0", []),
("banner_gl",0,"banner_g12","0", []),
("banner_gm",0,"banner_g13","0", []),
("banner_gn",0,"banner_g14","0", []),
("banner_go",0,"banner_g15","0", []),
("banner_gp",0,"banner_g16","0", []),
("banner_gq",0,"banner_g17","0", []),
("banner_gr",0,"banner_g18","0", []),
("banner_gs",0,"banner_g19","0", []),
("banner_gt",0,"banner_g20","0", []),
("banner_gu",0,"banner_g21","0", []),
("banner_ha",0,"banner_h01","0", []),
("banner_hb",0,"banner_h02","0", []),
("banner_hc",0,"banner_h03","0", []),
("banner_hd",0,"banner_h04","0", []),
("banner_he",0,"banner_h05","0", []),
("banner_hf",0,"banner_h06","0", []),
("banner_hg",0,"banner_h07","0", []),
("banner_hh",0,"banner_h08","0", []),
("banner_hi",0,"banner_h09","0", []),
("banner_hj",0,"banner_h10","0", []),
("banner_hk",0,"banner_h11","0", []),
("banner_hl",0,"banner_h12","0", []),
("banner_hm",0,"banner_h13","0", []),
("banner_hn",0,"banner_h14","0", []),
("banner_ho",0,"banner_h15","0", []),
("banner_hp",0,"banner_h16","0", []),
("banner_hq",0,"banner_h17","0", []),
("banner_hr",0,"banner_h18","0", []),
("banner_hs",0,"banner_h19","0", []),
("banner_ht",0,"banner_h20","0", []),
("banner_kingdom_a", 0, "banner_kingdom_a", "0", []),
("banner_kingdom_b", 0, "banner_kingdom_b", "0", []),
("banner_kingdom_c", 0, "banner_kingdom_c", "0", []),
("banner_kingdom_d", 0, "banner_kingdom_d", "0", []),
("banner_kingdom_e", 0, "banner_kingdom_e", "0", []),
("banner_kingdom_f", 0, "banner_kingdom_f", "0", []),
("banner_h21", 0, "banner_h21", "0", []),
самое смешное что если отодвигать переменную привязку к последнему флагу то паков можно добавить до конца алфавита -так?