Добро пожаловать на форумы Боевого Народа (бывший форум Live.CNews.ru)!

ВАЖНЫЕ ТЕМЫ: FAQ по переезду и восстановлению учеток | Ошибки и глюки форума.
О проблемах с учетными записями писать СЮДА.
Мануалы по маппингу - Форумы Боевого Народа
IPB

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
Мануалы по маппингу, Наши советы, переводы туториалов, статей
сообщение 4.1.2008, 13:23
Сообщение #21





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Туториалы by Astrol (печатается с его письменного разрешения)

Текстовые листы
Итак в игре мы можем часто увидеть всякие разные таблички, листы которые содержат текст.
Сегодня мы сделаем то же самое.
Итак для начала в Radiante создайте: item --> item_clipboard
В нем пишем следующие ключи:
Сначала ставим галочку в параметре Persistant
Далее пишем: key: popup
Volume: testtext
В этот параметр мы ввели название нашего листка все находятся в ui/clipboard.menu
Теперь заходим туда и копируем любой блокнот я взял вот этот:
Код
//////////////////////////////// abook1 ///////////////////////////////////




itemDef {
group clip_abook1
name clip_abook1
rect 0 0 340 440
style 3
background "gfx/clipboard/letter1.tga"
visible 0
decoration
}



itemDef {
name clip_abook1
rect 18 78 280 322
group clip_abook1
textfile "text/EnglishUSA/abook.txt"
textscale .18
forecolor .1 .1 .1 .9
visible 0
autowrapped
decoration
}



itemDef {
name clip_abook1
rect 18 78 280 322
group clip_gold2
textfile "text/EnglishUSA/abook.txt"
textscale .18
forecolor .1 .1 .1 .6
visible 0
autowrapped
decoration
}


Теперь открываем папку с текстом там создаем блокнот в TXT формате в нем пишем текст любой я напишу ТЕСТ сохраняем, я сохраню как test.txt теперь идем снова в блокноты там заменяем параметр текста

textfile "text/EnglishUSA/abook.txt
на textfile "text/EnglishUSA/test.txt

Так же можно ещё по экперементировать с другими параметрами
Теперь заменяем вот это:
Код
name clip_abook1[/code
на
[code]
name clip_testtext



У нас должно получиться так (исходный скрипт)
Код
//////////////////////////////// abook1 ///////////////////////////////////




itemDef {
group clip_testtext
name clip_testtext
rect 0 0 340 440
style 3
background "gfx/clipboard/letter1.tga"
visible 0
decoration
}



itemDef {
name clip_testtext
rect 18 78 280 322
group clip_abook1
textfile "text/EnglishUSA/abook.txt"
textscale .18
forecolor .1 .1 .1 .9
visible 0
autowrapped
decoration
}



itemDef {
name clip_testtext
rect 18 78 280 322
group clip_gold2
textfile "text/EnglishUSA/test.txt"
textscale .18
forecolor .1 .1 .1 .6
visible 0
autowrapped
decoration
}


Вот так, теперь сохраняем и идем любуемся в игру.

Создаем лестницы (спиральные)

1. Создайте 4 браша и сделайте их как крест. Как показано на рисунке.

2. Выделим все 4 браша и нажмем пробел при копировании они должны были сместиться.
3. Теперь активируй инструмент Free Rotation (клавиша R) и поверни браши, пока у вас не получиться круг как показано на рисунке ниже.

4. Далее выделим один из брашей и спустим его вниз, затем следующий и так по порядку пока у ваc не получиться как на рисунке.


Я инструментом Free Rotation не пользуюсь вообще. Работает он крайне не корректно, браши искажаются, частенько образуются браши не правильной формы при пользовании этим инструментом. Как следствие - на большой карте возникают баги, и найти их потом, когда вся карта постороена подобным образом - крайне сложно. Поэтому лучше ручками порезать брашики и всё сделать ровно и красиво с самого начала. Да, это займёт немного больше времени. Но это не сравнимо с тем, сколько времени потом прийдётся убить на поиски кривых брашей и их исправление.


Создаем огонь от которого отнимаются жизни.

Для начала создайте сам огонь создайте браш затем дайте ему текстуру SFX-->>>flame4
можно и другую у меня получилось так:

2. Теперь создайте ещё один браш сделайте его в огне тоесть засуньте и дайте ему текстуру
common--->trigger.

3. Выделим этот браш и даем ему функцию trigger--->>trigger_hurt.
4. Теперь выделим его и открываем его свойста, там пишем следующие:

Key: dmg
volume: 10 // сколько процентов жизней у вас отнимит после как вы наступите на него.

Все наш огонь наносящий урон готов.

Создаем зеркало

1. Создайте браш который будет вашим зеркалом и дайте ему текстуру common-->>nodraw
2. Выделите одну из сторон браша CTRL+SHIFT которая будет отражать и дайте ей текстуру
common-->>dirtymirror.
3. Теперь щелкните на 2D вид и выберите меню misc--->>misc_portal_surface и поставьте его перед зеркалом как показано на рисунке.

Все зеркало готово.

Создаем секретные комнаты на примере

Итак, для начала создайте саму комнату и возможно где ни будь вход, у меня будет просто дыра
Далее с размером дыры создайте браш и натяните на него текстуру common--->trigger
И задайте ему функцию ai--->>ai_trigger

Далее откройте его свойства и там прописываем следующие:

Key: ainame
volume: player
// это говорит о том, что только player может активировать эту зону

Key: target
volume: secret1
// это название активации он нужен для прописанные в блокноте

Все теперь работа в Rdiante закончена, сохраняем и открываем name_map.ai
Там пишем следующие:


Код
    trigger secret1 \\ название нашего триггера.
    {
        foundsecret \\ функция секрета вам выдаст сообщение при входе, и зачитывают в конце игры.
    }

Все наша секретная комната готова

Создаем конец карты

Конец карты есть на каждой карте без конца мы не сможем попасть в следующий уровень
Итак, приступим.
Сначала создайте место, где будет финишная прямая.
Далее где вы хотите чтобы игрок заканчивал создайте браш с размеров всей ширины и высоты комнаты, либо помещения
толщина здесь не грает роли, и натяните на него текстуру common-->> trigger
Задайте ему функцию ai--->>ai_trigger

Теперь заходим в его свойства и там прописываем следующие:

Key: target
Volume: endmap
\\ можно брать произвольное, это значение нужно для скрипта.

Key: ainame
Volume: player
\\ Это говорит о том, что только player может войти в зону.

Все работа в Rdiante закончена, теперь открываем ваш name_map.ai
Там прописываем:
Код
   trigger endmap \\ название нашего триггера
    {
        changelevel next_map persistent \\ здесь говорится о том, в какой уровень мы переместимся
                                                               \\дальше, тут стоит next_map, bsp не нужно прописывать.
    }

Все конец карты готов

Создаем объект при стрельбе которым шел дым, вода или черный дым (нефть) как в карте xlabs.
Для начала создайте объект в который вы будите стрелять и он будет например дымить.
Просто любой браш, я создал трубу , на него натяните текстуру common-->> trigger
Должно получиться так:

Заметьте что у меня существует ещё одна такая же труба просто я создал ей видимую текстуру, а вторая всегда должна быть тригером.
Теперь на трубу которая с тригером задайте функцию func_leaky
Откройте его свойства и введите следующие:

Key: type
volume: 3

1 - Нефть
2 - Вода
3 - Дым

В моем случаe дым. Все, теперь когда вы будите стрелять в трубу будет звук дыма и конечно он сам.

Сообщение отредактировал WSCreator - 4.1.2008, 13:27
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 4.1.2008, 13:39
Сообщение #22





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Туториалы by Astrol ч.2

Создаем защиту с помощью шутеров.
Такой метод тоже используется в карте xlabs вспомните как электрические лучи не дают пройти нам через дверь, так сейчас мы создадим точно такую же, можно использовать огонь, ракеты, гранаты и т.д место электрических лучей.
Описывать буду только новое, а как создавать кнопки и другое все описано выше.
Итак для начала создайте три шутера shooter--->>>shooter_tesla вы можете выбрать другое.
Так же можете создать и два и один как вам угодно.

Далее создайте info-->>info_notnull тоже три и над каждым шутером как показано на рисунке.

Теперь создаем target-->>target_speaker это делает звук, который мы укажем позже, поставьте его возле ваших шотеров.
И наконец, создайте браш с размером всех трех шотеров и высатой ваших нулов как показазно на рисунке и дайте ему текстуру common-->>trigger. Затем задайте ему функцию trigger-->>trigger_hurt.

Теперь займемся свойствами этих объектов.
Сначала выделите все три шутера и откроем их свойства.

Там вводим следующeе:
Код
Key: targetname
Volume: t1

Key: random \\ случайность лучей.
Volume: 10

Key: sticktime \\ Время паузы лучей. 0.1 - не заметно.
Volume: 0.1

Key: width \\ Ширина лучей, 10 - нормальная.
Volume: 10

Key: count \\ Счет.
Volume: 1

Здесь все. Далее выделяем target speaker, открываем его свойства и вводим:

Key: noise \\ звук воспроизведение лучей (Вкл)
Volume: sound/scenaric/xlabs/tesla_field_loop.wav

Далее выделяем триггер
Открываем свойства и пишем.

Key: dmg \\ Сколько отнимается жизней при столкновении с лучами, 500 - умираешь сразу.
Volume: 500

Все, теперь осталось создать кнопку и соединить все как нужно.

Создайте кнопку (любую) и соедините ее с тригером, тремя шyтерами и спикером.
Далее каждые шyтера соедините с нулами (info_notnull) 1 к 1, 2 к 2, 3 к 3.

Вот все соединения:

Все, теперь при нажатии кнопки вы не сможете пройти будь то там проход, либо дверь.

Вот результат:


Создаем шлагбаум с помощью функции door_rotating
Вообще шлагбаум можно создать много из чего, например через скрипт мувер, но подумайте сколько вам нужно сделать дела, реле, изменения скрипта файла (это не удобный способ).
Итак приступаем к создания шлагбаума.
Для начала создайте палку (тоесть что будет подниматься) и ось тоесть origin примерно вот так должно получиться:

Заметьте я выделил origin браш чтобы вы видели где его нужно располагать.
Теперь создайте обычную кнопку, и займемся свойствами объектов.
Выделите шлагбаум и origin и задайте им функцию door rotating.

Откройте их свойства и введите следующие:
Код
Key: degrees // будет повышаться на 60 градусов.
Volume: 60

Key: type // звук при открытии и закрытие 1- как бы дверь.
Volume: 1

Теперь вкл следующие галочки:
Код
x_axis // будет открываться на ось X
toogle // будет стоять открытым пока вы не нажмете на кнопку.
reverse // перемена.
force // ну тоесть наш шлагбаум откроется даже если ты блокируешь его.

Все. теперь выделяем ваш рубильник и соединяем его со шлагбаумом.
Теперь шлагбаум готов.

target_smoke.

Target_smoke применяется для создания дыма. Например если вы создали печь в доме то в трубе нужна сделать эффект дыма. Итак сейчас мы создадим с вами дым и расмотрим его свойства.
Для начала создайте его.

Target-->>target_smoke

Теперь будем работать и изучать его свойства. Откройте их.

Сначала разберем все галочки:

Black (дым будет идти черный)
White (дым будет идти белый)
smokeon (первоночально дым будет идти)
gravity (Дым будет идти неприрывно)

Теперь разберем все ключи:

Key: delay // Задержка дыма
Valume: 100 - каждую секунду он будет выпускаться. (В милисекундах).

Key: time // Время его нового положения
Valume: 500 - каждые 5 секунд он будет менять положение. (В милисекундах).

Key: duration // продолжительность перед дымом начинается к alpha
Valume: 200 - каждые 2 секунды (В милисекундах).

Key: start_size // Стартовый размер дыма
Valume: 50

Key: end_size // Конечный размер дыма
Valume: 50

Key: wait // Время через которое дым начнет действовать
Valume: 10

Теперь вы сможете создать дым, любых размеров и свойств.

Target_effect
Итак само название говорит что это создает эффект, давайте рассмотрим его.
Его пример можно посмотреть в карте end где генрих, когда сыпатся камни и наносят вам ущерб, это и есть target_effect.
Давайте создадим точно такой же только камни будут сыпаться при включении рубульника.
Для начала создайте его target-->>target_effect
Теперь создайте info-->>info_notnull
И перемистите его, где вы хотите создать точку падения комней.
Теперь создайте target-->target_realy, и рубильник.
А теперь займемся свойствами объектов.
Мы имеем infi_notnull, target_relay, target_effect и рубильник.
Теперь откроем свойства target_effect и разберем их.
Сначала кнопочки.
Эти кнопки указывают какой объект будет сыпаться.

TNT - Типо базуки.
Explode - Граната (обычно этот метод применяется для эксплодирования радио).
Smoke - Дымовой эффект.
Rubbie - Падение камней (Как в карте end).
Gore - Падения крови с костями. (Жуть ).
Lowgrav - Что то плохое.
Debris - эффект взрывной гранаты.


Теперь рассмотрим ключи:

Key: mass // от массы зависит ущерб (Например камни с весов 75 отнимают по 15 жизней)
Valume: 75

Key: dmg // Радиус уничтожения.
Volume: 0 - по умолчанию

Key: Type // какой звук будет издовать при начале падения.
Volume: rock


Glass - Стекло
Wood - Дерево
Metal - Металл
Gibs - Гибс
Rock - Полы
Brick - Кирпичи
Fabric - Стены

Далее нужно связать все правильно.

Выделим target_effect и соединим с info_notnull
Теперь target_relay с target_effect
И ваш рубильник с target_effect.

Все проверьте должно получиться так:

А вот что получилось в игре:


Сообщение отредактировал WSCreator - 4.1.2008, 13:42
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 4.1.2008, 17:04
Сообщение #23





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Спасибо креатор все мои статьи перенес =)
Некоторые советы при маппинге карт:

1. Не используйтесь функции HOLLOW, ROTATING они приводят к мелким брашам, которые замедляют компиляцию и приводят к плохому FPS в игре

FPS - число кадров в секунду.

2. Все невидимые грани поверхности обрисовывайте текстурами сaulk из common-->caulk для улучшения компиляции и FPS в игре.

3. Мелкие браши делайте деталями (Для этого выделите ваш маленький браш и нажмите на правую кнопку там выберите Make detail) для улучшения компиляции и FPS в игре.

Сообщение отредактировал Astrol - 4.1.2008, 17:06
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 4.1.2008, 20:08
Сообщение #24





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Цитата
Спасибо креатор все мои статьи перенес =)

Я еще орфографические и прочие ошибки пофиксил ;)
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 9.1.2008, 11:24
Сообщение #25





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



АИ скриптинг: двойной кольт
Небольшая вводная
На карте sfm нам даются 2 кольта. Суперская вещь, правда? Один мой друган прошел с dual кольтами всю оставшуюсю игру (по крайней мере он мне так сказал). Как же его заскриптить? Давайте вместе разбираться.
Ход работы
Двойной кольт у игрока
Создаем для карты mapa файл mapa.ai (хоть тем же блокнотом). И вводим скрипт:
Код
player
{
    spawn
    {
    }
    playerstart
    {
        mu_fade 0 1500
mu_start sound/music/m_tension
giveinventory key_binocs // [b] бинокль[/b]
        // Weapons
        giveweapon weapon_colt //[B]кольт[/B]        giveweapon weapon_colt // [B]еще один кольт[/B]
        // Ammo
setammo ammo_45cal 300 //[b]патроны 45-го калибра: кольт и томпсон
        setclip weapon_colt 8  // [B]патроны к кольту №1[/B]        setclip weapon_akimbo 8  //[B]патроны в обойме к[/B]
                                                                         // [B] кольту №2[/B]
selectweapon weapon_akimbo //[B]переключение на 2 кольта[/B]
}

Теперь посняю. Согласно даже примитивной логике. Чтобы получить двойной кольт нужно либо найти кольт и еще кольт; либо набрать чит /give colt 2 раза. Чтобы включиить этот двойной кольт, нужно нажать кнопку альт. огня. В аи-скрипте 2-ой кольт называется akimbo.
Т.е. при selectweapon weapon_colt включается один кольт, а при selectweapon weapon_akimbo - двойной кольт. Но может быть такая бяка, что у второго кольта будет 0 патронов в магазине, а у обычного - 8. Тогда дело решается перезарядкой.

Боты
Вообще-то ботам я рекомендую ставить один кольт. Это связано с кривой анимацией с двойным кольтом. Если Вы хотите лично в этом убедиться - пишите:
Код
nazi1
{
    attributes
    {
        aim_accuracy 0.3
        starting_health 30
        fov 120
        aggression 1.6
    }

    spawn
    {
        setammo ammo_grenades 1
        statetype alert

        wait 200
        giveweapon weapon_colt
        giveweapon weapon_colt
        setammo ammo_45cal 999
        selectweapon weapon_akimbo
    }

И далее, какая будет у Вас фантазия. Идем в игру и смотрим

Сообщение отредактировал WSCreator - 9.1.2008, 11:24
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 9.1.2008, 13:43
Сообщение #26





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Ты бы написал что обозначает каждая строка, например:
giveweapon weapon_colt \\ Добавляет указанное оружие
giveweapon weapon_colt \\ Добавляет указанное оружие (В нашем случаи копию надо писать для 2 кольтов)
setammo ammo_45cal 999 \\ Добавляет указанные патроны
selectweapon weapon_akimbo \\ Выделяет указанное оружие (Которое будет стоять первоночально)
Когда я был еще новеньким мапером мне все, что ты там написал было бы непонятно.
Что касается wait 200 совсем ненужно, как и setammo ammo_grenades 1 и statetype alert.
И вообще данная статья неимеет к мапингу никого отношения, все статьи по редактированию и созданию АИ наверху.

Сообщение отредактировал Astrol - 9.1.2008, 13:45
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 9.1.2008, 14:24
Сообщение #27





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Astrol, как раз-таки имеет. Это частный случай АИ-программинга, с которым могут возникнуть трудности.Может быть, кому-то захочется вооружить ботов двойным кольтом. Так что - без претензий.

Сообщение отредактировал WSCreator - 9.1.2008, 14:25
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 13.12.2008, 21:10
Сообщение #28





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Как сделать качественное радио

1.Мы создадим браш более-менее похожий на радио.

2. Поставте брашу радио функция разрушения func_explosive.
Теперь нажмите N (Entity) поставте галочки в окошках noblockaas и useshader, далее пишите:

Key: health
Value: 10

Key: mass
Value: 30

Key: type
Value: metal

Напоминаю что параметр health - это значение жизней ( по умолчанию 100)
Ключ mass - это сколько будет оставаться останков от нашего радио ( по умолчанию 75)
Ключ type - это тип в нашем случае это метал ( по умолчанию дерево)


3. Создайте target_relay и поставте неподалёку от радио ( неважно где оно будет это для удобства)

4.Теперь выделете радио, затем реле и нажмите Ctrl + K, мы связали объекты в такой последовательности: Радио-->Реле. Стрелка должна быть от радио до реле, если у вас наоборот, то вы не правельно связали объекты.

5.Хорошо пол дела мы сделали теперь мы поставим target_effect (поставте рядом с реле), теперь нажмите N и поставте галку в окошке explode (это будет означать что мы поставили эффект взрыва).

6. Последнее наше действие свяжите target_relay-->target_effect. После того как мы связали выделете эффект и поставте его в середину радио.


Если вы хотите более реалистичного радио, тогда выполняйте следущие пункты:

1. Создайте target_speaker, нажмите N и поставте галку looped_on это будет означать что наш звук будет бесконечно повторятся.
Вводите следущее:
Key: noise
Value: sound\world\amb_radio_03.wav

2. Свяжите так: target_relay-->target_speaker.

Теперь у нас получилось радио которое разбивается и взрывается, но пока оно не разбилось издаёт звуки. Идите в игру и любуйтесь!!!

Manual by uXeGen

Сообщение отредактировал uXeGen - 17.5.2009, 22:01
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 11.11.2009, 15:53
Сообщение #29





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Помогите люди плизз !!! У меня в ентити нету таких папок как NPC и FX !
(Тоесть немогу создавать Нпс) Это у меня редактор левый или я что-то не доделал ? cry.gif
Перейти в начало страницы
Вставить ник
+Цитировать сообщение
сообщение 26.11.2009, 21:45
Сообщение #30





Группа:
Сообщений: 0
Регистрация: --
Пользователь №:



Там нет такой штуки. Все npc хранятся в разделе ai
Перейти в начало страницы
Вставить ник
+Цитировать сообщение

2 страниц V  < 1 2
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 16.4.2024, 6:58
Консультации адвоката по уголовным делам. Бесплатно. По всей России