Главная » Файлы » Платформа для создания SP миссий » Полезная справочная информация

#define как способ избежать переломов пальцев



Информация приведенная ниже рассчитана на людей освоивших базовый уровень картостроения и разбирающихся в description.ext файлах по крайней мере настолько, насколько необходимо для интеграции в игру своих звуков и музыки.

 

Изначально данный метод разработали DenVdmj, Vova_fox и Lost за что им огромное спасибо!

Активно он применяется пока только в нашей команде (ОТК), но тем не менее, это очень удобно и сокращает количество писанины во много раз. Судя по тому что никто кроме нас этим не пользуется, можно сделать логичный вывод что данный метод неизвестен широкой общественности ни у нас, ни на официальном форуме. К примеру, на официале, разработчик одной программы для написания и контроля скриптов и конфигов был сильно удивлен что такие конструкции работают в ArmA 2 и долго в это не верил 

Итак.

 

пажелеем пальцы зачем писать всёвремя одно и тоже (c) Vova_fox

Код:

#define arg(i) (_this select (i))

 

_entry = arg(0);

_depth = arg(1);

_indent = arg(2);

в данном примере вместо i подставляется нужный номер.

 

ЗВУКИ

Код:

class CfgSounds

{

   sounds[] = {};

   #define dialog(n) \

   class dialog##n \

   {  \

      name = "sound"; \

      sound[] = {dialog##n.ogg, db+0, 1.0}; \

      titles[] = {0, $STR_dialog##n}; \

   }; \

dialog(1);

dialog(2);

};

Каждый из этих звуков имеет свой номер (1,2,3,4) который вставляется в ##, соответственно первый звук имеет имя dialog1, имя звука dialog1.ogg и титры STR_dialog1, второй - dialog2, dialog2.ogg, STR_dialog2 и т.д

Вызываем звуки как обычно - player say "dialog1\dialog2" и т.д

N это закрывающая буква. Вот на это (##n) подставляется номер.

 

пример с двумя дефайнами

Код:

    class CfgSounds

    {

       sounds[] = {};

       #define Tarasov(a) \

       class Tarasov##a \

       {  \

          name = "sound"; \

          sound[] = {Tarasov##a.ogg, db+0, 1.0}; \

          titles[] = {0, $STR_Tarasov##a}; \

       }; \

 

    Tarasov(1);

    Tarasov(2);

    Tarasov(3);

 

       #define Kopitkin(b) \

       class Kopitkin##b \

       {  \

          name = "sound"; \

          sound[] = {Kopitkin##b.ogg, db+0, 1.0}; \

          titles[] = {0, $STR_Kopitkin##b}; \

       }; \

 

    Kopitkin(1);

    Kopitkin(2);

    Kopitkin(3);

    };

 

Звуки имеют имена: Tarasov1, Tarasov2, Kopitkin1, Kopitkin2 ... и т.д...

 

Заменили имя дефайна, заменили содержимое, самое главное во втором дефайне в скобках (b) и по всему классу идёт так же b. Т.е какую ты переменную вставишь в дефайн, вот той ты и должен закрыть.

 

РАДИО

Код:

class CfgRadio

{

   sounds[] = {};

   #define radio(n) \

   class radio##n \

   { \

      name="Radio"; \

      sound[] = {radio##n.ogg, db+0, 1.0}; \

      title = $STR_radio##n; \

   }; \

radio(1);

radio(2);

};

Теперь в миссии будут определены 2 радио - radio1 и radio2, которые имеют звуки radio1.ogg, radio2.ogg соответственно и титры STR_radio1 и STR_radio2 так же

 

Помимо этого, можно пользоваться этим методом при написании bikd файлов

Код:

class Sentences

{

      #define TEXT(I,N) \

      class Player_##I##_##N \

      { \

            text = $STR_Player_##I##_##N##; \

            speech[] = {\sound\PLAYER\Player_##I##_##N##.ogg}; \

            class Arguments {}; \

      };

 

      TEXT(Tr1,1)

      TEXT(Tr2,1)

      TEXT(Tr2,2)

      TEXT(Tr2,3)

      TEXT(Tr1,01)

      TEXT(Tr1,02)

      TEXT(Tr1,03)

      TEXT(Tr1,04)

      TEXT(Tr1,05)

      TEXT(Tr1,06)

      TEXT(Vid1,1)

      TEXT(Vid1,2)

      TEXT(Vid1,3)

      TEXT(Vid2,1)

      TEXT(Vid2,2)

};

 

 

class Arguments{};

class Special{};

startWithVocal[] = {hour};

startWithConsonant[] = {europe, university};

кроме того, есть метод замены множества иных значений, но об этом чуть позже.

 

З.Ы. Это все будет форматироваться, дополняться и в конечном итоге окажется в H&T

 

Источник





Размер файла на сервере: 40.5 Kb



Хотите еще больше новостей? Подпишитесь на рассылку

Введите e-mail адресс:

Похожие материалы
Дата добавления: 27.11.2010, 13:48
Категория: Полезная справочная информация | Добавил: PIONEER | Теги: Справочник
Автор:
Версия:
Источник:
Просмотров: 1573 | Загрузок: 105 | Всего Комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Верстка by ArmA-2