Рейтинг@Mail.ru

    Shadow Dragon: АКТИВНЫЙ ТЕКСТ
Часть 1 | Часть 2 | Часть 3 | Часть 4

Наверное, каждый, кто играл в кампанию Resistance, видел, что теперь появилась возможность выводить текст различными цветами и шрифтами.

Однако не так то просто было разобраться в дебрях файла Description.ext. Этой статьей я начинаю новый раздел под названием «Активный текст» Начну с самого простого, постепенно добавляя новые возможности.

Итак, приступим.

Первое что надо сделать, это в папке с вашей миссией создать файл Description.ext и открыть его в блокноте. Что бы Вам было легче разбираться, все замечания я пишу после // Кто знаком с языком программирования C, тот вполне быстро освоится и может попускать некоторые комментарии. А для остальных объясняю.
Строка:

#define CT_STATIC 0
Присваивает константе CT_STATIC значение 0, это нужно для того, чтобы было легче разобраться в программе.
Так, например, если бы было написано:
ВЫРАВНИВАНИЕ = 32
то непонятно, толи по центру, толи по краю и т.п.
А когда:
ВЫРАВНИВАНИЕ = ST_LEFT
сразу все ясно.
Итак
// Определяем управляющий тип.
// в данном случае СТАТИК, поскольку будем выводить СТАТИЧЕСКИЙ текст.
#define CT_STATIC 0
// «Форматирование текста»
#define ST_HPOS 0x0F
#define ST_LEFT 0 // По левому краю
#define ST_RIGHT 1 // По правому краю
#define ST_CENTER 2 // По центру
#define ST_UP 3 // Текст по вертикали (Сверху - вниз)
#define ST_DOWN 4 // Текст по вертикали (Снизу – вверх)
#define ST_VCENTER 5
#define ST_TYPE 0xF0
#define ST_SINGLE 0 // Просто текст
#define ST_MULTI 16 // Текст в рамке
#define ST_TITLE_BAR 32
#define ST_PICTURE 48
#define ST_FRAME 64
#define ST_BACKGROUND 80
#define ST_GROUP_BOX 96
#define ST_GROUP_BOX2 112
#define ST_HUD_BACKGROUND 128
#define ST_TILE_PICTURE 144
#define ST_WITH_RECT 160
#define ST_LINE 176
#define ST_SHADOW 256
#define ST_NO_RECT 512
#define ST_TITLE ST_TITLE_BAR + ST_CENTER
// Перечислим ВСЕ имеющиеся у нас шрифты:
#define FontS "tahomaB24"
#define FontM "tahomaB36"
#define FontHTML "courierNewB64"
#define FontHTMLBold "courierNewB64"
#define FontMAP "courierNewB64"
#define FontMAIN "SteelfishB64"
#define FontMAINCZ "SteelfishB64CE"
#define FontTITLE "SteelfishB128"
#define FontTITLEHalf "SteelfishB64"
#define FontBOOK "garamond64"
#define FontNOTES "AudreysHandI48"
// А так же примерный шаблон для цвета букв
// Значения в квадратных скобках можно варьировать от 0 до 1
#define TextColor 0.08, 0.08, 0.12
// Определим класс, который будет содержать основные установки шрифтов.
class RscText
{
type = CT_STATIC; // Тип СТАТИК, значит исп. Для вывода текста.
idc = -1; // Идентификатор, используется только для элементов управления
// Кнопки, Выпадающие списки и т.п.
style = ST_LEFT; // Выравнивание по левому краю.
h = 0.04; // Точно не знаю.
colorBackground[] = {0, 0, 0, 0}; // Цвет фона.
colorText[] = {TextColor, 0.75}; // Цвет текста,
font = FontS; // Шрифт
sizeEx = 0.02; //
};
// Вот в принципе и все, дальше нам остается только определить, что же выводить на экран и по каким координатам
// Этот класс отвечает за вывод текста.
class RscTitles
{
// Создаем собственный подкласс.
class MainText
{
name = "ColorText"; // Для того чтобы наш класс был виден в редакторе, // присваиваем ему имя
duration = 8; // Это задержка, в течении которой будет отображаться // текст.
idd = -1; // Всегда -1
movingEnable = false; // Нельзя перемещать
controls[]= // А вот здесь перечисляем все классы, которые будут // выводить текст
{
name1,
name2
};
// Этот класс Name1 наследует RscText, то есть ему автоматически добавляются все поля класса
// RscText, так что вам, к примеру, не нужно каждый раз писать цвет текста.
class Name1 : RscText
{
// Задаем стиль текста, как вы видите, стили можно комбинировать.
// смело экспериментируйте !
style = ST_MULTI + ST_CENTER + ST_NO_RECT + ST_SHADOW;
lineSpacing = 2.0;
text = “Shadow Dragon”; // Это собственно строка
x = 0.05; // Координаты для вывода текста
y = 0.1; // означают пропорции экрана.
w = 0.95; // так X = 0 – левый край.
h = 0.3; // X = 1 – правый край.
colorText[] = {0.75, 0.75, 1.0, 1}; // Цвет текста
font = FontNOTES; // Шрифт
sizeEx = 0.5 * 0.05; // ?
size = 2; // Размер букв
};

class Name2 : RscText
{
style = ST_MULTI + ST_CENTER + ST_NO_RECT + ST_SHADOW;
lineSpacing = 1.0;
text = $STR_CREDITS01; // Вы можете задовать строки, находящиеся в файле
// stringtable.csv
x = 0.05; y = 0.70; w = 0.95; h = 0.3;
colorText[] = {1, 0, 0, 1};
font = FontHTML;
sizeEx = 0.5 * 0.05;
size = 1.8;
};
};
};
ВСЕ
Для того чтобы использовать наш текст, можно:
1) Используя триггер. Создайте триггер, Щелкните на кнопку Effect (Эффекты), далее в разделе Titles выберите тип (Type) эффекта – Resource (Ресурсы), а в поле Text(текст) найдите строку CoolText.
Вот и все.
2) А это можно использовать в скрипте: cutRsc ["MainText", "PLAIN"]


Hosted by uCoz