Cinema - маппинг / скрипт туториал

Cinema - маппинг / скрипт туториал

FGD для Hammer Editor Для корректного маппинга вам понадобится fgd файл для Hammer Editor.Скачать можно по этой ссылкеКак подключить - курите мануалы, здесь я объясню только метод расстановки нужных энтитей на карте, хотя если вы будете писать только lua для уже существующей карты вам это вряд ли понадобится.

Описание энтитей theater_screen (Point entity) Эта энтити используется для создание экрана кинотеатрта. Её надо расположить в верхнем левом углу экрана, на расстоянии как минимум в 1 юнит о него.

Параметры"Theater Name" (name) - Имя показываемое по TAB и на мини превью экранах."Flags" (flags) - Тип кинотеатра"Screen Width" (width) - ширина экрана в юнитах (еденицы hammer)"Screen Height" (height) - высота экрана в юнитах (еденицы hamemer)"Thumbnail" (target) - Имя энтити "theater_thumbnail" для создания превью экрана что показывают в кинотеатре.

theater_thumbnail (Point entity)

К каждому экрану кинотеатра можно добавить превью-экраны для информирования посетителей где и что показывают. Желательно распологать эти экраны за пределами самого зала кинотеатра, внутри они будут мягко говоря бесполезны.

Параметры"Name" (targetname) - Имя которое указывается в параметрах theater_screen

theater_door (Point entity)

На карте может использоваться система телепортаций в определённые локации-кинотеатры с помощью дверей. Система работает по принципу обычной телепортации на карте через info_teleport_destination как точка назначения, но место триггера выступает дверь.Обратите внимание что телепортация односторонняя и в зоне куда игрок телепортируется надо создать аналог для обратной телепортации.

Создание кастомных сидений Копипаст без разрешений не приветствуется ! Это моя личная догадка, про создание своих сидячих мест не описали даже авторы этого режима !

Итак для сидячего места вам дужен prop_dynamic энтия с указанной любой модели не важно пусть это будет хоть монтировка, главное что динамическая моделька на карте.prop_physics и prop_static не подходят для этой задачи. Статик просто не работает, а физикс берётся в руки и чаще всего игрок просто оказывается в неопределённой позе приаттаченный к физическому объекту. Т.е. нужен только динамический меш.

Остальное прописывается в *.lua файле который прилагается к вашей карте.В самом верху файла перед всеми локациями и кинотеатрами прописываем что опеределённые модели могут быть сидячими местами для игроков.

1я строка указывает полный путь к модели2я строка указывает положение игрока и угол поворота. Данные координаты вы можете подбирать прямо сидя в игре т.к. lua автоматически перезагружается как-только файл изменяется. Строчек с позицией может быть более 1й, например диваны, а не 1 стул.

Официально поддерживаемые модели (прописаны в гейм моде)(т.е. они будут работать сразу без прописывания их в вашем персональном lua файле, при учёте что они будут на карте prop_dynamic)

models/sunabouzu/lobby_chair.mdlчто-то вроде тумбочки, встречаются в гейм модах Cinema и Elevator.

models/gmod_tower/theater_seat.mdlКлассическое красное кресло кинотеатра, использующиеся на оф. карте синемы. Имеет несколько боди групп (сменные подлокотники).

models/sunabouzu/theater_curve_couch.mdlДиван полукругом. Можно увидеть на оф. карте в приватных кинотеатрах.

models/sunabouzu/theater_sofa01.mdlВесьма угловатый диван на 2 места, приимущественно красного цвета. Есть на оф. карте

models/props_trainstation/traincar_seats001.mdlБлок сидений из вагона с 1й карты Half-Life 2

models/props_c17/furniturechair001a.mdlХлипкий старый деревянный стул встречающийся в Half-lIfe 2

models/props_combine/breenchair.mdlКресло брина с последней карты Half-Life 2

models/props_warehouse/office_furniture_couch.mdlСиний диван из игры Sin Episodes: Emergence. Встречается на картах theater_nexmultiplex и Theater_GCinema

Создание локаций на картеЗагрузив карты вы получите сообщение об ошибке что данная карта не поддерживается режимом Cinema. Нажмите F1 бла бла бла.

Ничего страшного т.к. для полноценной работы карте ещё нужен lua скрипт где прописываются локации кинотеатра.

Для создания локаций надо летать в режиме noclip (возможно понадобится включение режима читов sv_cheats 1).Локация представляет из себя зону-куб строящуюся на основе 2х координат 3D пространства.

Встаём в 1ю точку и пишем в консоль: cinema_loc_start после чего под ногами появится что-то вроде лучей которые при движении игрока образуют тот самый куб.Летим в 2ю противоположную точку (по диогонали) создаваемой локации и пишем в консоль cinema_loc_end.

В итоге получается заветная локация. Как сообщает консоль получаемые координаты и то что надо вписать в lua файл уже скопировано в буфер обмена.

Создаём заготовку. Открываем любой текстовый редактор и вставляем сдедущее:

hook.Add( "InitPostEntity", "theater_gcinema", function()Место "theater_gcinema" надо вписать название вайшей карты.

Как пример можете посмотреть / скачать lua файл для карты theater_nexmultiplex_1m

Повторяем пункт с cinema_loc_start / cinema_loc_end для получения координат других локаций. Пример lua с локациями:

Сами экраны кинотеатров должны обязательно находится в какой-либо локации по 1 на локацию. Без локации режим не понимает что надо включать тот или иной экран и в итоге ничего не заработает.

Куда и как сохранить получившийся lua ?Сохраните получившийся файл в формате *.lua по адресу:

Имя *.lua файла должно совпадать с именем карты.

Создание кинотеатра без маппингаРежим Cinema может работать на любой карте не зависимо построены ли на ней двери, экраны и прочее.

Для этого немного изменим наш *.lua файл.Место просто локации, внутри неё прописывается точка спавна экрана и превью кинотеатра

Min = Vector / Max = Vector - координаты локации из консоли Name / Flags / Pos / Ang / Width / Height - аналоги параметров в этити (см. выше). ThumbInfo - координы превью экрана и его угол поворота

THEATER_REPLICATED : Публичный кинотеатр. Только админы могут им управлять. Такой кинотеатр продолжает работать даже когда управляющий игрок уже вышел из пределов локации кинотеатра. THEATER_PRIVATE : Приватный кинотеатр, кто успел так сказать ). Вы теряете управление кинотеатром как только выходите за пределы локации кинотеатра. THEATER_PRIVILEGED : Что-то связанное с VIP игроками, не разобрался. THEATER_NONE : Что-то вроде публичного-скрытого кинотеатра который не отображается по TAB_у.

Помните - Указанный кинотеатр будет автоматически начинать работать как только игрок заходит в пределы координат локации. Это относится как к экрану на карте, так и к прописанному в lua.- Garrys Mod поддерживает авто перезагрузку lua скриптов, поэтому даже в режиме мультиплеера вы можете видеть все изменения координат, новых локаций и положений экранов в реальном времени. - Для получения координат игрока предусмотрена команда cinema_loc_vector. Угол приходится подбирать.- Только 1 кинотеатр может находиться в 1 локации

📎📎📎📎📎📎📎📎📎📎