На сайте онлайн (человек): 91 
|  |
|
 | |
Урок 13. Языковые файлы и новая команда Все вы наверно не раз слышали ... |  |
|  |
 | |
|
Terran Conflict (X3TC) / Форум / Скрипты и моды для X3 Terran Conflict / Учимся простейшим скриптам
|
Урок 13. Языковые файлы и новая команда
Все вы наверно не раз слышали о языковых файлах и новых командах в различных меню...  Здесь я попытаюсь все объяснить. Что и как устроено. Ах да, для правки рекомендую использовать XML Notepad. Итак, начнем!
Для начала рассмотрим языковой файл. Все языковые файлы носят определенный формат имени. Например имя 1234-L007 говорит нам о том, что номер языкового файла 1234, а регион 7-ой (Россия). Т.е. Языковой файл имеет формат ХХХХ-L0YY, где XXXX - ID текстового файла, а YY - язык (07 - Российский, 44 - Английский). Игра в зависимости от локализации сама выберет нужный файл. Рассмотрим структуру языкового файла, открыв его в блокноте:
| Код:- <?xml version="1.0" encoding="utf-8"?>
- <language id="7">
- <page id="1" name="name">
- <t id="1">text</t>
- </page>
- </language>
|
| |
В первой стороке указывается версия xml и кодировка введенного текста. Во 2 и последней теги "языка". Во второй указывается язык., соответствующий названию файла. 3&5 строки - теги страницы. В 3 третьей строки указывается id страницы (pageid). В 4 строке тег текста, где указывается номер текста (textid или просто id). Кол-во страниц и тестов неограниченно (или в крайнем случае достаточно велико). Как видите в XML Notepad'e намного удобнее работать:
 Абсолютно весь текст, включая цифры и символы, хранится в языковых файлах игры. Языковые файлы могут модифицировать друг друга. Если в языковых файлах используются одинаковые страницы, то будет отображаться та страница, которая загрузится позже, однако, если вы не заменяете тексты игры, то можете спокойно создавать страницы, будучи уверенным(ой), что ни с кем в конфликт языковой файл не вступит. Посмотреть список используемых игрой страниц Вы можете, открыв 0001-L007.xml (он запакован в cat/dat).
Для сегодняшнего урока нам понадобятся страницы 2010, 2011 и 2022. ID текстов (они должны совпадать на всех трех страницах) Вы можете выбрать из таблицы:
Раздел | ID страницы | Расположение | Команда (в зависимости от id страницы) | Navigation | 200-261 | Командное меню, Навигация | COMMAND_TYPE_NAV_00 to 61 | Combat | 300-361 | Командное меню, Боевые | COMMAND_TYPE_FIGHT_00 to 61 | Trade | 400-461 | Командное меню, Торговые | COMMAND_TYPE_TRADE_00 to 61 | Special | 500-561 | Командное меню, Специальные | COMMAND_TYPE_SPECIAL_00 to 61 | Piracy | 600-661 | Командное меню, Пиратские | COMMAND_TYPE_PIRACY_00 to 61 | Custom | 700-761 | Командное меню, Выборочные | COMMAND_TYPE_CUSTOM_00 to 61 | General | 800-861 | Командное меню, Общие | COMMAND_TYPE_GENERAL_00 to 61 | Turret | 900-961 | Меню турелей (из основного меню) | COMMAND_TYPE_TURRET_00 to 61 | Station | 1100-1161 | Командная консоль станций | COMMAND_TYPE_STATION_00 to 61 | Ship | 1200-1261 | Дополнительные корабельные команды | COMMAND_TYPE_SHIP_00 to 61 |
|
Я выбрал COMMAND_TYPE_NAV_55. Значит и нужная мне страница будет 255 
Теперь о нужных страницах. Я уже упоминал 2010, 2011 и 2022. Теперь об их назначении:
| 2010 Эта страница содержит текст являющийся длинной версией имени команды. То есть этот текст отражаемся в виде пункта в меню. Также именно этот текст будет отражен в разделе команда информационного экрана и в разделе команда списка вашей собственности (при условии что в теле вызываемого будет присутствовать инструкция set command, иначе во всех информационных окнах вместо имя выполняемой команды будет отражаться «Нет команд») 2011 На этой странице находятся короткие имена команд. Короткие имена отражаются в командном меню справа от длинных имен, тек же короткое имя команды отражается в верхней части экрана также справа от длинного имени в главном окне командного меню . 2022 На этой странице находится краткое описание вашей команды. Это описание не является обязательным, но не забывайте что ваши скрипты будут использовать другие пилоты, и по этому желательно создавая в командном меню новую команду, делать для нее краткое описание. Наличие данного описания на соответствующей странице добавит небольшой значок в виде буквы «i», между длинным и коротким именем команды при отражении меню, а при нажатии на клавишу «i», при курсоре установленном на вашу команду на экране отразиться окно содержащее описание вашей команды. |
| |
Текст можно раскрашивать... Для этого перед текстом укажите соответствующие символы. Вот таблица:
Спецсимвол | Цвет | \033B | Синий | \033C | Голубой | \033G | Зеленый | \033M | Малиновый | \033R | Красный | \033W | Белый | \033X | Ярко-белый (стандарт для меню) | \033Y | Желтый | \033Z | Серый | \n | Перевод строки (форматирующий, не для цвета!) |
|
Итак, редактируем свой языковой файл. Пусть команда будет называться "Первая команда". В блокноте:
| Код:- <?xml version="1.0" encoding="utf-8"?>
- <language id="7">
- <page id="2010" name="name">
- <t id="255">Первая команда</t>
- </page>
- <page id="2011" name="name">
- <t id="255">Перв. ком.</t>
- </page>
- <page id="2022" name="name">
- <t id="255">Это описание моей первой команды.</t>
- </page>
- </language>
|
| |
Попробуем добавить команду всем истребителям за исключением М5, у которых установлен БПМ-1.
Итак, запускаем игру. Заходим в редактор скриптов и создаем скрипт. Желательно с префиксом setup.
Для начала игра должна знать какой файл ей читать. В общих командах находим команду load text: id=<Перем/Число> в ней указываем номер языкового файла. У меня 1234 :) Во второй строке для нашего удобства присваиваем переменной $comand значение COMMAND_TYPE_NAV_55 В третьей мы должны зарегистрировать команду. Общие команды -> Команды/Сигналы -> global script map: set: key=<Перем/Сигнал>, class= <Перем/Класс>, race=<Перем/Раса>, script=<Имя скрипта>, prio=<Перем/Число> Здесь key - переменная $comand, class - Истребител, race - Игрок, скрипт - произвольный (или какой-либо Ваш), prio - Приоритет? Я всегда ставлю 1  Так как мы должны исключить класс М5, в четвертой строке в тех же командах строчкой ниже находим команду global script map: ignore: key=<Перем/Сигнал>, class= <Перем/Класс>, race=<Перем/Раса> все аналогично третьей строке, только в классе надо указать М5 Теперь команда зарегистрирована, но еще не создана. В строке ниже находим команду set script command upgrade: command=<Перем/Сигнал> upgrade=<Перем/Товар> на месте первого значения опять же переменная $comand, а на втором выбираем БПМ-1 (если поставить [TRUE], то команда будет появляться всегда). Вот то, что у меня в скрипте:
 Теперь сохраняем и запускаем его.  Теперь сидя на М4 или М3 и имея БПМ-1, заходим в консоль навигации...  И, преисполняясь радостью, со щенячьим визгом идем рассказывать семье о том, что Вы сделали! 
Удачи!  Урок закончен. |
|
дерево темы → Учимся простейшим скриптам
Учимся простейшим скриптам »
Список игр
|  |
|  |
 |  |  | |
| | | |
|  |