Активный текст
Всем привет.
Наверное, каждый, кто играл в кампанию 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;
};
};
};
ВСЕ
Для того чтобы использовать наш текст, можно:
- Используя триггер. Создайте триггер, Щелкните на кнопку Effect (Эффекты), далее в разделе Titles выберите тип (Type) эффекта – Resource (Ресурсы), а в поле Text(текст) найдите строку CoolText. Вот и все.
- А это можно использовать в скрипте: cutRsc ["MainText", "PLAIN"]
Если у вас возникли вопросы, задавайте их в «Основном» разделе форума или пишите мне: ShadowDragon_Fil@mail.ru
Вот гораздо более простое описание дискрипшена для создания текста.
#define FontHTML "courierNewB64"
#define CT_STATIC 0
#define ST_LEFT 0
#define ST_CENTER 2
#define ST_MULTI 16
#define ST_SHADOW 256
#define ST_NO_RECT 512
class RscText
{
type = CT_STATIC;
idc = -1;
style = ST_LEFT;
h = 0.04;
colorBackground[] = {0, 0, 0, 0};
colorText[] = {1, 0, 1, 0};
font = FontHTML;
size = 1;
};
class RscTitles
{
class r01 // Это класс. Назовите его как хотите.
{
name = "r01"; // Это название будет отображаться в триггере в закладке эффектах (назовите как хотите).
duration = 6;
idd = -1;
movingEnable = false;
controls[]=
{
name1
};
class name1 : RscText
{
style = ST_MULTI + ST_CENTER + ST_NO_RECT + ST_SHADOW;
lineSpacing = 1.0;
text = Ваш текст сдесь;
x = 0.05; y = 0.50; w = 0.95; h = 0.3;
colorText[] = {1, 0, 0, 1};
font = FontHTML;
sizeEx = 1.5 * 0.1;
size = 1.5;
};
};
};