<<<Назад <<<

Активный текст

Всем привет.
Наверное, каждый, кто играл в кампанию 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"]
Если у вас возникли вопросы, задавайте их в «Основном» разделе форума или пишите мне: 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;
    };
  };
};

<<<Назад <<<