В этой статье мы научимся создавать самые простые объекты на карте, вставлять энтити-объекты, создавать префабы. Статья довольно большая, с большим количеством рисунков, поэтому наберитесь терпения и прочитайте ее внимательно. Как показывает практика, очень много вопросов у начинающих мапперов возникает при создании простых объектов и в самых простых операциях над ними. Данная статья отвечает на многие эти вопросы.

  • Создание браша
  • Создание точечного энтити-объекта (point-based)
  • Создание брашевого энтити-объекта (brush-based)
  • Вставка и создание префабов

1. Создание браша

Чтобы создать обыкновенный браш, нужно выбрать инструмен Block [Shift-B] при этом курсор сменится на рамку (см. рис. ниже)

Выберем вид сверху и, зажав левую кнопку мыши, зададим размер прямоугольника, скажем 256х256 юнитов и отпустим кнопку. Объект пока не готов.

Переключимся на вид сбоку или вид спереди (значения не имеет) и увеличим высоту нашего объекта до 256 юнитов.

10 Дней Выживания в Мире с Длинноногий Страшный майнкрафт (Хардкор)

Теперь когда положение объекта и его размеры заданы, остается навести курсор на объект, нажать правую кнопку мыши и выбрать единственный вариант «Create object».

Посмотрим как это будет выглядеть в игре, для этого выберем вид 3d textured.

Изображение браша в 3-х мерном виде

Браш в виде куба с размерами 256х256х256 юнитов готов. Теперь мы можем заменить и выравнить на нем текстуры, а также переместить в любое место нашей карты, изменить размеры, форму и т.д.

Примечание: размер создаваемого или выбранного объекта отображаются в строке помощи, внизу экрана (см. рис. ниже).

2. Создаем энтити

Все энтити делятся на точечные энтити (point-based), например, источники света и звука, некоторые типы триггеров, места рождения игроков и пр. и брашевые энтити (brush-based), например, триггеры, кнопки, двери, лифты и пр..

Точечные энтити вставляются на карту инструментом Entity Tool [Shift-E]. Для создания брашевого энтити сначала необходимо изготовить браш, а затем превратить его в энтити. Пример, дверь. Создаем браш по форме напоминающий дверь и превращаем его в объект func_door. Превращение осуществляется сочетанием клавиш [Ctrl-T].

Более подробно об энтити-объектах и их свойствах Вы можете прочитать в разделе «Энтити».

Рассморим создание этих двух типов подробнее.

2.1. Создание точеного энтити-объекта (point-based)

Выберем инструмен Entity Tool [Shift-E] при этом курсор сменится на топорик (см. рис. ниже)

Теперь обратим внимание на правую часть рабочего поля редактора. Там находится панель New Object (выделена синей рамкой).

Вы можете вытащить эту и любую другую панель как показано на рисунке справа.

В строке Objects мы выбираем тип точечного энтити-объекта, которую хотим вставить на карту. По умолчанию в списке стоит info_player_start (т.е. место рождения контра). Вы можете изменить тип энтити по умолчанию в меню Tools > Options. > Game Configurations (см. рис. ниже)

В строке Default PointEntity class устанавливается point-based энтити по умолчанию, а в строке справа, Default SolidEntity class устанавливается brush-based энтити по умолчанию.

Далее в списке Objects выбираем необходимый тип энтити, например light (источник света).

И вставляем его на карту.

Читайте также:  Самая высокая точка мира в Майнкрафте

В итоге наш источник света будет изображен в виде небольшого фиолетового прямоугольничка.

Теперь, если понадобится, мы можем переместить нашу энтити в другое место, а также изменить ее свойства. Для этого выделим энтити и нажмем правую кнопку мыши. Появится меню с различными пунктами (рисунок справа): копировать, удалить, группировать и т.д. Нас интересует последняя строчка Properties. Советуем запомнить быстрые клавиши для свойств объектов [Alt-Enter].

2.2. Создание брашевого энтити-объекта

Для создания этого типа энтити сначала нам необходимо изготовить браш, а затем, выделив его, в контекстном меню выбрать Tie to Entity или же нажать сочетание клавиш [Ctrl-T].

Можно превращать браши в брашевые энтити и обратно энтити в браши кнопками на панели «New Object». Кнопка toEntity превращает браш в брашевый энтити-объект, кнопка toWorld превращает брашевый энтити-объект в браш (т.е. обратная операция).

В появившемся оконее мы должны указать тип энтити-объекта (выбираем его в списке), затем мы можем изменить его свойства, то, что идет под словом Attributes.

Выбор типа энтити.

Дополнительные сведения

Необходимо отметить, что в любой момент Вы можете изменить тип той или иной энтити. Для этого выделите ее и нажмите [Alt-Enter] или выбирете в контекстном меню Properties.

Кроме свойств энтити Вы можете выставлять различные флаги (закладка Flags). Для разных энтитей существуют разные флаги. Флагов может и не быть вовсе.

3. Создание и вставка префабов

Как Вы уже знаете, префаб — это заготовка, состоящая из одного или нескольких объектов для быстрой вставки на карту (например, стул, книжная полка, лампа, ящик и т.д.). Хранятся библиотеки префабов в файлах с расширением *.ol в директории «Hammerprefabs».

Вместе с Hammer’ом идут 5 библиотек с префабами: computers (компьютеры), crates (ящики), old stuff (диван, несколько кресел), random objects (мусорка, диваны, сейфы и т.п.), usable objects (прожектор, аптечка и т.д.)

Для того чтобы вставить префаб на карту выберем Block Tool [Shift-B], затем в панели New Objects в строке Categories выберем одну из библиотек префабов, например, computers.

В строке ниже («Objects») мы выбираем уже конкретный экземпляр компьютера, например, Green Computer. Теперь нажимаем на кнопку Insert original prefab.

Префаб

Префаб помещается в начало координат при просмотре в 3d-виде или же в центр экрана при выбранном 2d-виде.

Также Вы можете создавать свои собственные префабы. Для этого выделите все объекты, которые составят будущую заготовку и в панели New Objects нажмите кнопку Create Prefab

В поле Name укажите имя префаба, в поле Description Вы можете написать дополнительную информацию о префабе (например, его размеры), а в поле Create in Вы выбираете библиотеку, в которой следует сохранить заготовку.

Если Вы не хотите сохранять свой префаб в стандартных библиотеках, то можете создать свою. Для этого в меню Tools выберите пункт Prefab Factory.

Затем нажмите кнопку Add Library, укажите имя библиотеки, также Вы можете ввести описание для своей библиотеки.

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

Читайте также:  Кресты в Майнкрафте что они значат

На этом статья, посвященная созданию объектов на карте закончена.

Источник: ds-servers.com

Сообщество игровых серверов NetZONA

Создание собственной энтити (скриптовой энтити, Entity, SEnt)

  • Автор темы Neon
  • Дата начала 23 Окт 2017

Статус В этой теме нельзя размещать новые ответы.

Neon

Создатель

Команда форума

Начнём с того, что любые предметы в игре (и даже сам игрок) являются энтити с различными классами. Разница лишь в классах этих самых энтити.

Пропы имеют класс prop_physics (обычно, но могут быть и prop_physics_multiplayer, prop_static)
Рэгдоллы — класс prop_ragdoll
Оружия, НПС, транспорт имеют каждый свой класс и их бесконечное множество, ибо здесь люди придумывают свои.​

С помощью классов вызываются (спавнятся) энтити.

Перейдем к самому написанию простой энтити. Сначала определимся что и где лежит.
Все энтити лежат в папке entities/, но этих папок, на самом деле много и свою энтити можно положить куда угодно. Например:

garrysmod/lua/entities/ garrysmod/gamemodes/darkrp/entities/entities/ (папки для энтити в модах и аддонах делятся на entities, weapons, effects и важно выбрать нужную папку) garrysmod/gamemodes/sandbox/entities/entities/ garrysmod/addons/itemstore/lua/entities/ и пр.

Далее в одной из этих папок мы видим одну или несколько других папок (реже — файлов) со своими именами. Эти имена являются классами этих энтити.
Создайте свою папку с любым названием (использовать только латинские символы)
Обычно код разделен на 3 файла, но можно сделать и в одном (для более продвинутых, представлю вариант ниже) .
cl_init.lua

include(‘shared.lua’) function ENT:Initialize() end function ENT:Draw() self.Entity:DrawModel() end
init.lua
AddCSLuaFile( «cl_init.lua» ) AddCSLuaFile( «shared.lua» ) include(‘shared.lua’) function ENT:Initialize() self:SetModel( «models/Gibs/HGIBS_spine.mdl» ) — модель энтити self:PhysicsInit( SOLID_VPHYSICS ) — физика энтити self:SetMoveType( MOVETYPE_VPHYSICS ) self:SetSolid( SOLID_VPHYSICS ) — коллизия энтити local phys = self:GetPhysicsObject() if(phys:IsValid()) then phys:Wake() end end function ENT:Think() end function ENT:Use() — функция, вызываемая при взаимодействии с энтити (клавиша Е) end function ENT:OnRemove() — функция, вызываемая при удалении энтити end

shared.lua
ENT.Base = «base_gmodentity» ENT.Type = «anim» ENT.PrintName = «Название энтити» — название энтити в меню Q ENT.Author = «» — автор ENT.Contact = «» — контакты с автором ENT.Information = «» — описание энтити ENT.Category = «Тест» — категория в меню Q ENT.Spawnable = false — разрешается спавнить через спавн-меню Q ENT.AdminSpawnable = false — разрешается спавнить только админам
Спойлер: Сделать энтити одним файлом

Файл располагать в папке entities/ своего аддона (без создания папки, как показано ранее), игрового мода или основной папки lua
yourname.lua // сами выбирайте название. Первая часть файла (без .lua) будет являться классом энтити

ENT.Base = «base_gmodentity» ENT.Type = «anim» ENT.PrintName = «Название энтити» — название энтити в меню Q ENT.Author = «» — автор ENT.Contact = «» — контакты с автором ENT.Information = «» — описание энтити ENT.Category = «Тест» — категория в меню Q ENT.Spawnable = false — разрешается спавнить через спавн-меню Q ENT.AdminSpawnable = false — разрешается спавнить только админам if SERVER then AddCSLuaFile() function ENT:Initialize() self:SetModel( «models/Gibs/HGIBS_spine.mdl» ) self:PhysicsInit( SOLID_VPHYSICS ) self:SetMoveType( MOVETYPE_VPHYSICS ) self:SetSolid( SOLID_VPHYSICS ) local phys = self:GetPhysicsObject() if(phys:IsValid()) then phys:Wake() end end function ENT:Think() end function ENT:Use() end function ENT:OnRemove() end else then function ENT:Initialize() end function ENT:Draw() self:DrawModel() end end

Читайте также:  Как выдать права админа в Майнкрафт

Плюс здесь очевидный, что всё в одном файле и будет проще работать с ним, если код малый.
Минуса сразу два: файл получает клиент и если там важный код, то так лучше не делать; при большом коде будет уже неудобно работать так.

Последнее редактирование: 20 Ноя 2017

Источник: netzona.org

Добавление точечных Entity

Сейчас мы добавим некоторые entities на карту. Энтити — это действующий объект, который (как правило) может взаимодействовать с другими объектами.

Эта страница описывает энтити точки, которые являются одиночными объектами на сетке. Брашовые энтити, описанные в следующей статье, немного отличаются.

Переключитесь на Entity Tool.

  1. Entities создаются с помощью Entity tool . Выберите этот инструмент, нажав на клавиши Shift+E , или на иконку на левой-панели:
  2. Далее мы выбираем, какой объект вставить в карту. Существует список доступных энтитей в Object Toolbar, который находится в правом-нижнем углу окна Hammer’а:

Hammer pickIPD.jpg

Далее идет список энтитей, отвечающих за появляение игрока на карте. Название энтити варьируется в зависимости от мода:

Совет: Вы можете осуществлять поиск по списку, печатая название entity в текстовом поле. Очень редко присутствует необходимость осуществлять ручной поиск, путем прокручивания списка.

Left-click on the floor in the 3D View to place the starting entity.

  • Одиночная игра (Singleplayer): info_player_start
  • Смертельная игра (Deathmatch): info_player_deathmatch
  • Командная игра (Team): info_player_ (red/blue, terrorist/counterterrorist, axis/allies, и т.д.)
  • Теперь мы разместим энтити на карте. Для помещения энтити в соответствии с поверхностью, вы должны щелкнуть где-нибудь на поверхности, используя 3D View. Нажмите где-нибудь на полу комнаты, как это показано на картинке, и энтити будет помещен на место нажатия:
  • Совет: Так же вы можете изменять позицию энтити, кликнув в 2D окне просмотра и перетаскивая объект по пространству. Когда вы остались довольны, нажмите клавишу ↵ Enter , чтобы создать энтити. (Перетаскивание работает, даже после создания объекта!)

  • Большинство Source игр содержат стреляющее оружие, так что давайте сделаем одно. Оружие так же меняется от игры к игре, но оно всегда начинается с » weapon_ «. Вы можете провести поиск по списку энтитей, чтобы посмотреть, какие энтити доступны. Если вы работаете с тем, что связано с Half-Life 2, вы будете иметь возможность создания weapon_357, примерно так: Выберите weapon_357 из списка entity объектов. и расположите его на полу.
  • В зависимости от правил игры, с которой вы работаете, вам потребуется создать аммуницию к оружию еще до того, как игрок сможет стрелять. Не все игры имеют энтити боеприпасы, и не обязательно, что боеприпасы идут совместо с оружием. Попробуйте найти энтити » item_ammo_ «, если вам это не удалось, вы всегда можете использовать консоль разработчика, чтобы включить читы, и дать себе патроны (после поднятия оружия), с помощью команды » givecurrentammo «.
  • Компиляция

    Как только вы поместили точку старта для игрока, вы можете скомпилировать карту и ходить по ней, надеюсь, у вас не появились какие-нибудь странные предупреждения. Если вы хотите сделать это сейчас, забегите вперед для «Сохранения и Компиляции».

    Источник: developer.valvesoftware.com