Четверг, 09.05.2024, 01:43
Under sky of Half-Life
Приветствую Вас Гость | RSS
Главная | Каталог статей | Регистрация | Вход
Меню сайта

Категории каталога
На движке Valve Source [29]
На движке Half-Life 1 [1]

Главная » Статьи » Статьи по мэппингу » На движке Valve Source

Цифровой счетчик

Как всегда начинаем с dev_room. Скачать заготовку

 

Теперь нам нужен браш для белого заднего фона. Ну и конечно же текстура со шрифтом (которую я так же прилагаю). Лепим одно на другое и получаем

Режем браш со шрифтом на отдельные цифры и КАЖДУЮ ИЗ НИХ ОТДЕЛЬНО превращаем в func_movelinear. Настраиваем согласно скрину:

Смысл в том (я про эту дистанцию 16), что мы засунем эти цифры в стену, и чтобы при открывании цифра вылазила со стены\браша и была видна.

Сейчас переименовываем все и делаем префаб! Префаб это когда в конце всех имен энтить стоит приставка _&&i , при таком раскладе система будет сама переименовывать их.

Имена:

num_1_&&i

num_2_&&i

num_3_&&i

...

num_9_&&i

num_0_&&i

 

Цифра соответствует цифре на браше.

Теперь добавляем аутпуты. Кажду брашу свой:

num_1_&&i

OnUser1 -> num_0_&&i -> Open

OnUser2 -> num_2_&&i -> Open

 

num_2_&&i

OnUser1 -> num_1_&&i -> Open

OnUser2 -> num_3_&&i -> Open

 

num_3_&&i

OnUser1 -> num_2_&&i -> Open

OnUser2 -> num_4_&&i -> Open

 

num_4_&&i

OnUser1 -> num_3_&&i -> Open

OnUser2 -> num_5_&&i -> Open

 

num_5_&&i

OnUser1 -> num_4_&&i -> Open

OnUser2 -> num_6_&&i -> Open

 

num_6_&&i

OnUser1 -> num_5_&&i -> Open

OnUser2 -> num_7_&&i -> Open

 

num_7_&&i

OnUser1 -> num_6_&&i -> Open

OnUser2 -> num_8_&&i -> Open

 

num_8_&&i

OnUser1 -> num_7_&&i -> Open

OnUser2 -> num_9_&&i -> Open

 

num_9_&&i

OnUser1 -> num_8_&&i -> Open

OnUser2 -> num_0_&&i -> Open

OnUser2 -> trig_dec_next_digit_&&i -> Enable

 

num_0_&&i

OnUser1 -> num_9_&&i -> Open

OnUser2 -> num_1_&&i -> Open

OnUser2 -> trig_dec_prew_digit_&&i-> Enable

 

Теперь выделяем все и добавляем аутпут всем:

OnUser1 -> !self -> Close

OnUser2 -> !self -> Close

OnFullyOpen -> add_relay_&&i -> Enable

OnFullyOpen -> substract_relay_&&i -> Enable

 

Некоторые аутпуты ссылаются на пока не существующий объект.. это нормально.

 

Собираем все цифры в одну точку. Это удобно делать при помощи спец инст-тав окне 3D вида жмем кнопку X и складываем все в кучу. Чем больше размер сетки тем быстрее и удобнее складывать:

 

Сложили в кучу, после чего засовываем в стену на 16 юнитов:

Создадим такой триггер trigger_multiple

При открытии наши цифры должны коснутся его.

Name: trig_next_digit_&&i

Start Disabled: Yes

Флаги: Everything

Аутпут:

OnStartTouch -> !activator -> FireUser2

OnStartTouch -> trig_next_digit_&&i -> Disable

OnStartTouch -> trig_prew_digit_&&i -> Disable

 

Копируем его и ставим точно так, как предыдущий и переименовываем:

Name: trig_prew_digit_&&i

Аутпут:

OnStartTouch -> !activator -> FireUser1

OnStartTouch -> trig_next_digit_&&i -> Disable

OnStartTouch -> trig_prew_digit_&&i -> Disable

 

 

Теперь добавим два logic_relay.

Первый:

Name: substract_relay_&&i

Аутпуты:

OnTrigger -> trig_prew_digit_&&i -> Enable

OnTrigger -> add_relay_&&i -> Disable

OnTrigger -> substract_relay_&&i -> Disable

 

Второй:

Name: add_relay_&&i

Аутпуты:

OnTrigger -> trig_next_digit_&&i-> Enable

OnTrigger -> add_relay_&&i -> Disable

OnTrigger -> substract_relay_&&i -> Disable

 

Ставим logic_auto.

Аутпут:

OnMapSpawn -> num_0_&&i -> Open

 

В принципе уже сейчас можно протестить поставив  func_buttonи пустив от него аутпут Trigger на триггер add_relay_&&i . Если пустить аутпут на триггер и substract_relay_&&i то счетчик будет отнимать.

 

Теперь сделаем чтобы система могла считать больше 10-ти.

Копируем 2 триггера наших немного левее (в то место где будет десятичные числа):

Переименовываем:

trig_next_digit_&&iв trig_dec_next_digit_&&i

trig_prew_digit_&&iв trig_dec_prew_digit_&&i

В АУТПУТАХ этих 2-х триггеров ИМЕНА ИЗМЕНЯЕМ АНАЛОГИЧНО!

 

Теперь вырезаем всю логику что мы создали на новую карту и располагаем вот так по сетке (размер сетки как и на предыдущей карте):

 

Выделяем все и жмем кнопку справа Createprefab. Называем number_base и сохраняем.

Теперь удаляем от судова два левых триггера и два реле. Сдвинем левее logic_auto чтобы не мешал в будущем. Выделяем все и сохраняем как number_dec :

 

Закрываем эту временную карту не сохраняя.

Ставим на нашу карту с помощью Entity tool префаб number_base

Ставим еще один преваб number_dec как показано на скрине:

 

Как видите все имена энтитей автоматически переименовываются на _&1 \ _&2 благодаря приставке _&&i.

Вот как выглядит система на 1000 значений:

Чтобы добавлять к счетчику подаем аутпут Trigger на реле add_relay_&1. Чтобы отнимать- на substract_relay_&1.

В игре:

Чтобы выделять объекты в группе, а не всю групу, жмем кнопку Objects:

На этом все. Исходник карты, префабы и текстура цифр прилагаются:

Префаб

Исходник карты

Текстура

Заготовка dev_room

Категория: На движке Valve Source | Добавил: stridemann (28.12.2011) | Автор: Stridemann
Просмотров: 2121
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Логин:
Пароль:

Поиск

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

© 2024, MonoLife