Руководство по хаммеру

Содержание

  • 1 Сперва прочтите это!
  • 2 Добавление новой Игровой Конфигурации
  • 3 Настройка игровой директории и основных параметров
  • 4 Настройка Build Programs

Сперва прочтите это!

При первом запуске, Hammer не настраивается автоматически после установки Source SDK. Вы можете выполнить следующие шаги, чтобы настроить его вручную. Если вы уже пытались настраивать его, настоятельно рекомендуем вам сперва попытаться исправить конфигурацию, следуя инструкция описанным в статье Сбрасывание Source SDK Game Configuration.

Warning.png Предупреждение: В большинстве случаев, Hammer настроит себя и вам не потребуется выполнять эту процедуру. Если у вас есть проблемы, это намного проще, чем Сбрасывание Source SDK Game Configuration. Однако, это приведет к удалению всех настроек для ваших модов

Добавление новой Игровой Конфигурации

  1. Запустите Hammer через Source SDK Launcher.
  2. Когда вы увидите диалоговое окно First Time Setup, нажмите на кнопку No’:
    Setup NoGameConfig.png
  3. Должен появится диалог Configure Hammer.
    Setup GameConfig 01.png
    Если этого не произошло, выбрите Options из меню Tools, и затем выберите вкладку Game Configurations.
  4. Нажмите на верхнюю кнопку Edit, затем на выпадающий список Configuration . Появится диалоговое окно Edit Game Configurations:
    Setup EditGameConfig.png
  5. Нажмите на кнопку Add. Откроется диалог Add a game :
    Setup AddGame.png
  6. Введите «Counter-Strike», «cstrike», «Half-Life 2», «HL2DM» или эквивалентные названия вашей конфигурации или вашего мода. Это название будет отображаться в Source SDK Launcher в поле Current Game. Точность названия не имеет значения, важно, чтобы оно имело смысл для вас. Нажмите OK, чтобы подтвердить свой выбор и закрыть диалоговое окно.
  7. Нажмите на кнопку Close в диалоге Edit Game Configurations.

Настройка игровой директории и основных параметров

  1. Теперь вы должны вернуться в диалог Configure Hammer с входом в выпадающий лист Configuration:
    Setup GameConfig 02.png
  2. Нажмите Add справа от списка файлов Game Data. Появится диалог Open:
    Setup AddGameOpen.png
  3. Откройте соответствующий .FGD файл для вашей конфигурации:
    • Для конфигурации Counter-Strike: Source выберите cstrike.fgd и нажмите на кнопку Open.
    • Для конфигурации Half-Life 2 выберите halflife2.fgd и нажмите на кнопку Open.
    • Для конфигурации Half-Life 2 Deathmatch выберите hl2mp.fgd и нажмите на кнопку Open.
  4. Вы вернетесь в диалог Configure Hammer с этими заполненными полями:
    Setup GameConfig 03.png
  5. Напишите 0.25 в поле Default texture scale. Напишите toolstoolsskybox в поле Cordon texture.
  6. Под Game Executable Directory, нажмите Browse и укажите путь к игре.
    Для примера:

    C:Program FilesValveSteamSteamAppsusernamecounter-strike source
    Где username — ваш логин в Steam.
    Используйте следующее для модификаций:

    $SteamUserDirhalf-life 2
  7. Скопируйте то, что вы ввели в Game Executable Directory, затем вставьте это в Game Directory, и добавьте игровую директорию в конец. Игровая директория для Counter-Strike — cstrike. Для Half-Life 2 — hl2. Для Half-Life 2 Deathmatch — hl2mp.
    • Пример: Для конфигурации Counter-Strike, ваша Game Directory должна быть:
    C:Program FilesValveSteamSteamAppsusernamecounter-strike sourcecstrike
    • Для Half-Life 2, ваша Game Directory должна быть:
    C:Program FilesValveSteamSteamAppsusernamehalf-life 2hl2
    • Для Half-Life 2 Deathmatch, ваша Game Directory должна быть:
    C:Program FilesValveSteamSteamAppsusernamehalf-life 2 deathmatchhl2mp
    Опять же, где username — ваш логин в Steam.
    • Для Мода, ваша Game Directory будет:
    $SteamDirsteamappsSourceModsMODDIR
    MODDIR это название игровой директории вашего мода.
  8. Под Hammer Map Directory, вы должны ввести путь, где вы храните исходные файл карт .VMF. Используя Source SDK Структура Файлов и Директорий, вам необходимо ввести соответствующую mapsrc директорию:
    • Пример для Counter-Strike:
    C:Program FilesValveSteamSteamAppsusernamesourcesdk_contentcstrikemapsrc
    • Пример для Half-Life 2:
    C:Program FilesValveSteamSteamAppsusernamesourcesdk_contenthl2mapsrc
    • Пример для Half-Life 2 Deathmatch:
    C:Program FilesValveSteamSteamAppsusernamesourcesdk_contenthl2mpmapsrc
    • Пример для Модификации:
    Это директория в которой вы работаете

Настройка Build Programs

  1. Нажмите на вкладку Build Programs:
    Setup BuildPrograms.png
  2. Скопируйте и вставьте в Game executable Directory то, что вы ввели во вкладку Game Configurations ранее, затем добавьте hl2.exe в конец.
    • Пример: Для конфигурации Counter-Strike, ваша Game Executable должна быть:
    $SteamUserDircounter-strike sourcehl2.exe
    • Для Half-Life 2 configuration, ваша Game Executable должна быть:
    $SteamUserDirhalf-life 2hl2.exe
    • Для Half-Life 2 Deathmatch configuration, ваша Game Executable должна быть:
    $SteamUserDirhalf-life 2 deathmatchhl2.exe
  1. Для BSP executable, введите путь к vbsp.exe:
    Orange Box: $SteamUserDirsourcesdkbinorangeboxbinvbsp.exe
    Ep1 Engine: $SteamUserDirsourcesdkbinep1binvbsp.exe
  2. Для VIS executable, введите путь к vvis.exe:
    Orange Box: $SteamUserDirsourcesdkbinorangeboxbinvvis.exe
    Ep1 Engine: $SteamUserDirsourcesdkbinep1binvvis.exe
  3. Для RAD executable, введите путь к vrad.exe:
    Orange Box: $SteamUserDirsourcesdkbinorangeboxbinvrad.exe
    Ep1 Engine: $SteamUserDirsourcesdkbinep1binvrad.exe
  4. Для Place compiled maps in this directory before running the game, добавьте maps в конец Game Directory:
    • Пример для Counter-Strike:
    $SteamUserDircounter-strike sourcecstrikemaps
    • Пример для Half-Life 2:
    $SteamUserDirhalf-life 2hl2maps
    • Пример для Half-Life 2 Deathmatch:
    $SteamUserDirhalf-life 2 deathmatchhl2mpmaps
    • Пример для Модификации:
    $SteamDirsteamappsSourceModsMODDIRmaps

    MODDIR это название игровой директории вашего мода.
  1. Нажмите OK. Hammer настроен для использования.

Valve Hammer Editor (до версии 3.4 — WORLDCRAFT) или создание карт для CS 1.6 (и ниже)

Примечание:

  1. Valve Hammer Editor — далее VHE
  2. С помощью VHE можно создавать карты не только для CS но и для Half-Life и других его модов, а также для игры Quake 2 и 3.

После того, как вы установите и запустите VHE, выскочит окно с просьбой настроить
VHE. Нажимайте OK. Выберите закладку Textures. Там есть окошко, куда при помощи
кнопки ADD можно добавлять библеотеки тесктур (.WAD). Для начала добавьте любую из
библеотек в папке CStrike. (Папка CStrike находится в директории с игрой). К примеру
подключите библеотеку cs_office.wad — для начала вам её хватит, позже вы сможете
добавить нужные библеотеки. Теперь передите к закладке Game Configurations. Нажмите
кнопку Edit потом кнопкой ADD добавьте новую конфигурацию. Название можете дать любое.
Например Half-Life(CS). (Примечание: При наличии нескольких конфигураций VHE при открытии
и создании карт будет спрашивать какую выбрать конфигурацию.) Далее в поле Game Data Files
добавляем кнопкой ADD файл с расширением .FGD . Надо найти файл Halflife-cs.fgd в директории
с VHE. (…Valve Hammer EditorfgdCounter-Strike) Если вы создаёте карту не для CS а для HL
или других модов то выберите не Counter-Strike а папку с соответствующим из модов. Так,
следующие 4 поля оставим без изменения. Далле в поле Game Executable Directory выбераем
путь к папке Counter-Strike. В следующем поле вбиваем путь к папке с модом. (К примеру
D:GamesCS 1.6Cstrike). Понятно что потом надо ввести директорию с Valve (К примеру
D:GamesCS 1.6Valve ) В последнем поле укажите куда VHE по дефолту будет сохранять
файлы карты. Потом нажмём ОК.

После этого выбираем Tools->Options. Здесь вы сможете подключать библеотеки с текстурами и менять прочее настройки. Передём на закладку Build Programs. Выбираем созданую нами конфигурацию. В следующем окне указываем путь к HL.exe (в папке с контрой). В следующих 4 окнах выбираем программы из папки (…Valve Hammer Editortools).
CSG — qcsg.exe
bsp — bsp2.exe
vis — vis.exe
Rad — qrad.exe
Последнее окно заполните путём в папку (…cstrikemaps). Потом ОК. Вот вроде с конфигом всё, теперь непосредственно к VHE.

В VHE как и в любом другом 3D редакторе можно создать простые геометрические формы. Из них собственно и состоит «мир» CS. На любую такую форму (далле буду называть её брашем) можно наложить текстуру. К примеру браш (куб) с тестурой дерева образует ящик. Например как на карте de_dust). Также «простые» браши можно растягивать, обрезать в общем манипулировать.

Текстуры в VHE да и вообще в HL есть нескольких видов.

  1. Clip (в названии присутствует clip) — обычные тестуры, их большинство.
  2. AAATRIGGER — особая тесктура функции которой, я опишу чуть позже. Любой объект с такой тестурой в игре виден не будет, так же через него можно ходить.
  3. ORIGIN — тоже особая текстура, обладает свойствами похожими на свойства AAATRIGGER, но она отличается чем, опять же расскажу позже.
  4. SKY — тестура неба, она будет заменятся небом выбранного образца.
  5. !WATER — тесктура со свойствами воды. (обязательно наличие ! вначале названия)
  6. Анимировая текстура — тесктура с анимацией (например анимация движения воды, в названии у таких тестур стоит +).

Объекты Entity.
Объекты Entity — объекты без которых не возможны взрывы, двери, молнии и т.п. В общем эти объекты (далее просто энтити) помогают делать начинку для карты. Есть два типа энтитей.

  1. Точечные — энтити, кторые создаются специально в отдельной точке. К прмеру место появление терориста и контр-террориста.
  2. Браш-энтити — браш объекты преобразованые в энтити. Грубо говоря браши которым предали специальные свойства. Напрмер, браш — ящик, которому придали свойство разбиваться или свойство, чтобы его можно было толкать/тянуть. Из всех вышеописаных объектов и создаётся карта.

Слева есть панель инструментов. В ней 11 инструментов.

  1. Selection tool — ну думаю назначение этого тула, не надо объяснять… :)
  2. Magnifity — инструмент для приближение/удаления объектов на разных видах. (Помойму инструмент практически безполезный, так как удобнее пользоваться колесиком мыши, но кому как удобней…)
  3. Camera — инструмент предназначен для просмотра карты на 3D виде. Зажимаю левую кнопку мыши тяните камеру в нужном

направлении. (Советую на 3D виде кликнуть на надписи camera и выбрать пункт 3D Textured, для того, чтобы на 3D виде всё показывалось сразу с тесктурами.)

  1. Entity Tool — инструмент для создания точечных энити. (Для создания браш-энтитей, создайте браш нужной формы и нажмите кнопку To Entity справа. Для того, чтобы наоборот сделать браш-энтити обычным брашем нажмите там же To World.)
  2. Block tool — собственно основной инструмент, с помощью него можно создавать браши. Если вы растяните нужным образом пунктирную линию (границу браша), то браш создан не будет. Надо не забыть нажать правой кнопкой на пунктире и выбрать CREATE OBJECT. Изначально можно делать только, «квадратные» формы, то есть с углами 90 градусов. Для создания более «сложных» брашей справа в окошке objects выберите нужную форму.
  3. Toggle Texture Application — тул для работы с текстурами, я подробно опишу его позже.
  4. Apply Current Texture — применяет выбраную текстуру к выбраному объекту. Иначе говоря полностью покрывает объект выбраной текстурой.
  5. Apply Decals — данный тул позволяет применить выбраную текстуру не ко всему брашу, а к конкретному месту. Для изпользования убедитесь, что он нажат, кликните на 3D виде на место куда хотите «приклеить» текстуру.
  6. Clipping Tool — позволяет «отрезать» куски брашей. То есть он делит их нужным образом. У данного тула есть 3 режима, для смены режима просто повторно нажмите на иконку тула.
  7. Vertex Tool — позволяет передвигать в вабранном объекте вершины или ребра. При смещении вершины изменяется только её положение и всё, а при смещении ребра смещаются все связаные с ним вершины, при это они не меняют своего положения, по отношению друг к другу. Полезный тул, но не стоит злоупотреблять, так как иногда вызывает ошибки компиляции.
  8. Path Tool — предназначен для создания путёй для поездов, монстров и т.д. В CS лучше не использовать так как почти всегда работает не корректно, хоты есть карты для CS где пути хорошо реализованы и работают относительно без глюков. Однако новичкам лучше вообще не трогать инструмент Path Tool.

В VHE всё (длина, ширина, высота) измеряется в юнитах. Создатели движка (изначально ID Software) сделали юнит эквивалентным 1 дюйму в реальной жизни. (2,54 см).

Размеры:

Рост игрока — 72 юнита
Максимальная высота объектов, на которую игрок может взойти без прыжка:
Стоя: 18 юнитов
В присяде: 18 юнитов
Минимальная высота объектов над землей, которая необходима для того, чтобы игрок смог пройти под ними:
Стоя: 73 юнита
В присяде: 37 юнитов
Минимальное расстояние между объектами, которое необходимо, для того, чтобы игрок прошёл между ними:
Расстояние: 33 юнита
Максимальная высота объектов, на которую игрок может запрыгнуть:
С прыжка стоя: 44 юнита
В прыжке из присяда: 44 юнита
В прыжке с присядом: 62 юнита
Максимальное расстояние между двумя объектами одинаковой высоты, на которое может прыгнуть игрок:
В прыжке из присяда: 99 юнитов
В прыжке при ходьбе: 109 юнитов
В прыжке с разбега: 239 юнитов
В прыжке с разбега с присядом: 259 юнитов

Верхняя панель.

Инструменты:

  1. Toggle Grid — включение/выключение сетки на трёх видах.
  2. Следующая кнопка — включение/выключение сетки на виде 3D.

3,4) Smaller/Lagrer grid — уменьшение/увеличение размера сетки. Чем меньше ячейки сетки, тем более мелкие фрагменты деталей вы сможете делать. VHE автоматом снапит границы детали к сетке.
5,6) Load/Save Window State — кнопки настройки интерфейса, лучше их не трогать.

  1. Carve with selected objects ( или Tools->Carve) — инструмент для вырезания одним брашем отверстия в другом. Допустим нам надо вырезать в стене отверстие для ока или двери. Мы создаём (кроме стены) браш нужной формы, вставляем его в стену, выделяем только что созданный нами браш и кликаем Carve. Потом удаляем браш которым делали Carve и на его месте в стене отверстие нужной формы. (В стене вырежаться все места, где с ней соприкасался браш.) При использовании Carve, VHE разделяет объект в котором вырезали на более мелкие объекты (на составные части) и группирует их. Carve нормально работает для создания вырезов квадратной формы, но если вы хотите вырезать отверстие цилиндрической формы, Carve не совсем правильно разбивает на объекты, так что пользоваться Carve надо как можно меньше. Пользуйтесь, но не злоупотребляйте.)

8,9) Group/Ungroup позволять объединять объекты в группы/разбивать сгруппированые объекты. Сгруппированые объекты выбираются кликом, как один объект. К ним можно применять общее свойства и прочее.

  1. Toggle Ingrone Groups — игнорировать/неигнорировать группы. (Если включено то будет выбираться каждый объект по отдельности, если нет сгруппированые объекты будут выделяться только вместе.)

11,12,13) Hide selected objects/Hide Unselected Objects/Show All Visible Groups — спрятать все выбраные/невыбраные объекты/показать все объекты.
14,15,16) Cut, Copy, Paste — No Comments

  1. Toggle Cordon State — включить/выключить границу. (При включённом кардоне будет компилироваться только та часть карты которая в пределах кардона.)
  2. Edit Cordon Bounds — редактировать положение границ.
  3. Toggle Select-by-Handles — включить/выключить режим выбора только по центрам фигур (крестик в центре любого браша).
  4. Toggle auto-selection — включить выключить авто выбор.
  5. Texture Lock — если включено, то текстуры при движении браша будут сдвигаться вместе с ним.
  6. Texture Alignment — прикрепить текстуру окончательно. (намертво)
  7. Run Map! — компиляция карты.

Правая панель.

Create Prefab — создать полуфабрикат. Браш сохраняется в папке с VHE как готовая фигура. (Файл — библеотека префабов с расширением .ol В комплекте с VHE идёт несколько базовых библеотек префабов.) Вставить префаб из готовых можно выбрав в окошке Categories название группы, библеотеки) префабов и выбрав нужный объект в окошке Objects. Окно Visgroups — нужно для выбора, редактирования, создания, удаления визуальных групп. (групп брашей.)

Нижняя панель.

For Help Press F1 — No comments
Следующие окно — Информация о выбраном объекте
Далее — Положение курсора (Например: 724,234)
Окно правее — размеры выбраного объекта в юнитах (Например: 704w 64| 512h)
Ещё правее — Текущее увеличение (Например: Zoom: 0,16)
Самое правое окно — текущий размер ячейки (в юнитах) на видах (Например: Snap: On Grid: 64).

При нажатии кнопки Toggle Texture Application появится окно:

Рассмотрим это окно.

  1. Scale — Маштаб. (пример : размер объекта 128 по X а размер текстуры 64 по X, в этом случае надо ставить коэффициент 2.00 )
  2. Shift — Сдвинуть текстуру
  3. Rotation — повернуть текстуру на соответствующий угол
  4. Justify — выровнят текстуру по левому краю объекта (

R — по правому
T — по верхнему
B — по нижнему
C — по центру
Fit — Подогнать размер текстуры под размер объекта.)

  1. Align — Развернуть текстуру.
  2. Texture group — выбрать все текстуры или отдельный WAD.
  3. Current texture — текущая текстура.
  4. Hide mask — позволяет не выделять красным цветом выделеные объекты.
  5. Browse — выбрать текстуру.
  6. replace — заменить все текстуры одного вида на другой.
  7. Mode — режим.

Первая карта. (CS)

Создайте новую карту. (File->New)
Сделайте в ней несколько связаных комнат, в общем сделайте карту -замкнутое помещение. Пока сделайте только стены, проёмы для дверей и т.д. На стенах в карте должны быть текстуры (просто выберите любую из предложеных текстур и при создании браша он автоматом будет покрыт данной текстурой. Пока не используйте энтити или специальные текстуры, просто создайте карту из брашей, используя вышеописаные инструменты и пр.). Сохраните в предложеной вам папке с расширением .map (не .rmf) .

Теперь преступим к оснывным энтити без которых не может существовать карта. Итак, если мы просто скомпилируем карту в таком виде (она вызовет ошибки), то грубо говоря это будет просто пустая конструкция, где некому будет играть. Значит надо создать стартовые позиции.

  1. Создаём точечный объект энтити (энтити тул). выбираем ему место. Это будет точка где будут стартовать CT. Нажмём в подменю (правая кнопка мыши) Create … Вот у нас на карте есть объект энтити. Переместите этот энтити так чтобы он и не висел в воздухе, и не застревал в текстуре. (Немного выше пола.) Далее кликаем правой кнопкой мыши по энтити -> properties. Выскакивает окно. В Верхней строке выбираем нужный нам энтити. (info_player_start — точка появления CT). (Примечание: таких точек надо будет столько, сколько вы захотите чтобы было CT, например: вы хотите, чтобы на карте могло находится до 6 CT, включая ботов => создаёте 6 точек появления CT, тоже с терорристами.) больше там никаких настроек не меняем, закрываем это окошко. Для создания точки появления Террористов делаем все тоже самое только вместо info_player_start выбераем infp_player_deathmatch.

Без осбой функции (по дефолту) места закупки будут вокруг каждой из стартовых точек, соответствующих команд. С этим разобрались.

Если мы сейчас это скомпилируем, мы ничего не увидем в шаге от нас, так как будет очень темно. Какой же выход? Естественно сделать свет. Теперь я расскажу о свете.

Свет на карте.
Есть 3 вида энтити отвечающих за свет.

  1. Light
  2. Light_Spot
  3. Light_environment

Light_environment — солнце, но я объясню как им пользоваться потом так как солнце не будет работать без неба. Light — основной инструмент света. Просто разместитите под потолком эти энтити, желательно почаще. (Создаём точечный энтити и выбераем в верхней строке Light, параметры менять не надо, разве что можете из параметров подобрать другой цвет.) Энтити Light_spot мы тоже пока не рассматриваем. Собственно первая карта готова, только осталось сохранить её.(Сохраняем…)

Компиляция.
Для компиляции нажмите F9 или кнопку на верхней панели. В выскочившем окне нажмите кнопку Expert и выберите в строке выбора название мода для которого вы делаете карту. (Для CS это Half-Life: Counter-Strike (Full)) Ждём, пока комп всё скомпилирует и запустит игру.

Боты. (CS)

Если вы хотите сыграть с ботами, есть два варианта:

  1. Если у вас стандартные боты от Valve то просто нажмите New Game и выберите там свою карту, после чего смело можете вставлять ботов. И подождите пока комп научит ьотов играть на вашей карте :) .
  2. Если у вас стоит Pod Bot и другие то вам надо сделать на карте вэй поинты, как они делаются я напишу в отдельной статье.

Ну вот с основами разобрались. Теперь продолжим.
Начнём с обустройства нашей комнаты.

1. Стёкла и разбиваемые предметы.

Я считаю, что дырки в стенах без стекла, не очень реально, да и не красиво. Попробуем это исправить. Для начала при помощи Carve делаем вырез в стене, потом делаем тонкий браш с текстурой стекла (текстуру стекла можно найти в Half-Life.wad). Потом выбираем наше стекло
и нажимаем To Entity.

Далее есть 3 варианта.
Если мы хотим сделать стекло не разбиваемое, то выбираем func_wall.
Настраиваем его так:
Name — поле нужно для использования в триггерах, несколько разных объектов могут иметь одно и тоже имя, тогда они будут вызываться одним событием. Для начала имя нам не надо, поэтому оставляем поле пустым.
Render FX — параметры отображения, это нам пока не надо -оставляем без изменений.
Render Mode — тоже параметры отбражения. Но тут мы меняем параметры на Texture. (Texture — означает, что браш в игре, при параметрах прозрачности будет отображаться с покрытием текстуры, которые мы выберем в VHE. Color — тоже самое, только вместо текстуры браш будет покрыт цветом выбраным в поле FX Color.)
FX Ammount — степень прозрачности. 0 — полностью прозрачный, 255 — полностью непрозрачный. Для начала поставим 100.
Light Flags и Minimum Light Level — не трогаем. Скажу только, что данные параметры отвечают за отображение тени объекта. (Изначально, объекты энтити не отбрасывают тени и пропускают свет насквозь.)

Если мы хотим сделать стекло разбиваемое и пулями и гранатами, то выбираем func_breakable.
Настраиваем его так:
Name — не ставим.
Render FX — также как ив предидущем случае.
FX Mode — аналогично.
FX Ammount — тоже самое.
Light Flags и Minimum Light Level — также не трогаем.
Material Type — материал из которого будет наш разбиваемый браш.
Возможные Варианты:
Glass — стекло (его и выбираем)
Wood — дерево
Metal — метал
Flesh — мясо
Unbreakable Glass — стекло, которое бьётся только от попадания гранат.
Rocks — камни
Cinder Block — каменные блоки
Computer — платы… (электроника)
Strength — количество hp после которых объект разобъётся. Ставим 100. (Стекло будет разбиваться после 3-4 пуль с глока. Если хотите поставьте меньше.)
Target on break — имя объекта который будет срабатывать после того как данный объект сломается. Используется в триггерах. Поле оставим пустым.
Delay before fire — задержка перед тем как сработает триггер. Относится к предидущему пункту. Оставляем 0.
Gib Model — модель осколкавылетающего при разбивании объекта. По дефолту стоит модель соответствующая модели осколка выбраного материала.
Gib Direction — направление осколков. Оставляем по дефолту.
Random — случайное.
Relative to Attack — направленое на атаку.
Explode Magnitude — мощность взрыва при разбивании объекта. Чтобы не было взрыва ставим 0.

Перед тем как закончим с стёклами скажу пару слов о флагах.
Only Trigger — объект будет ломаться только от триггера.
Touch — объект ломается от прикасновения.
Pressure — объект ломается от давления на него, например если на него встанут.

Со стёклами покончено.

2. Небо и Солнце.
Практически нет карт, в которых нет открытых пространств, поэтому передём к небу.

Чтобы сделать небо, делаем браш куб с текстурой Sky из Half-life.wad, таких размеров, чтобы в этот куб могли поместится все конструкции на вашей карте. Выбираем наш куб и выбираем Tools-> Make Hollow (Ctrl+H). В появившемся окне выбираем 16. (Make Hollow делает объект полым изнутри, а число в окошке — толщина стенок в юнитах.) Выбираем коробку и делаем ungroup. Стены нашей коробки можно покрыть другими текстурами. Под «потолком» делаем точечный энтити light_enveronment — солнце. Такого солнца на карте вполне хватит одного. Однако, время компиляции сильно увеличится. Для уменьшения времени делаем следующее. Делаем точно такую же коробку, но не покрытую текстурой sky. Удаляем у второй коробки пол и потолок. Совмещаем обе коробки так чтобы потолок первой коробки (с текстурой sky) был полом второй коробки. Обобщу — копилятор просто не обсчитывает свет в пространстве с обратной стороны «потолка». Как вы наверно видели на разных картах разное небо. Чтобы выбрать ну жное нам небо заходим в папку …cstrikegfxenv там смотрим какое небо нам нравится. Если выбрали смотрим его название всё, кроме последних 2 букв. Потом в VHE жмём map->map properties и в поле environment map (cl_skyname) вводим название выбраного нами неба, и.. вуаля небо готово.

3. Лестницы.

Лестницы нужны, безусловно.
Делаются они просто.

Рассмотрим 2 случая.

  1. Если нужна лестница которая стоит вплотную к стене.

Делаем тонкий браш около стены с текстурой лестницы. Текстуры есть в Half-Life.wad с названиями ladder и т.п. Наверно вы обратили внимание на то, что в текстуре лестницы есть места синего цвета — это места которые мы впослествии сделаем прозрачными. Кстати приём который я опишу подходит для любых текстур с прозрачными местами. Вернёмся к нашему брашу. Ставим func_illusionary. Render Mode — Solid. FX Ammount — 255. (Вот он наш замечательный способ.) Однако, если мы так всё и оставим, то по нашел лестнице не только лазать нельзя будет, но через неё можно будет ходить… Непорядок. Делаем вплотную к брашу с текстурой лестницы ставим браш с текстурой AAATRIGGER. Браш должен немного выстпать из видимой лестницы. Теперь о текстуре AATRIGGER — текстура особая, она реагирует на движение игрока в пределах в пределах браша с данной текстурой. При этом AAATRIGGER делает браш не видимым и нематериальным. Так вот у браша с текстурой ааатриггер делаем func_ladder. Если хотити чтобы сбоку за лестницу нельзя было зацепится, то надо сделать ещё пару обычных брашей побокам лестницы.

  1. Если лестница нужна двухсторонняя.

Делаем всё также как с односторонней, но браши c func_ladder делаем с обоих сторон.

4. Двери, ну без дверей никуда, имхо «дырки в стенах» без дверей смотрятся плохо.

Есть 2 типа дверей.

  1. Двери отъезжающие.

Делаются просто. Во-первых вырезаем отверстие. Делаем тонкий браш дверь. Текстуру можно найти любую. Делаем эту дверь func_door.
Настраиваем.
Новые параметры.
Speed — скорость отъезжания двери.
Move/Stop sound — звуки при отъезжании/остановке двери.
Target — имя объекта цели (для триггера)
Damage inflicted when Blocked — урон игроку если он помешает открытию/закрытию двери.
Locked/Unlocked Sound — звук запертой/открытой двери
Locked/Unlocked Sentence — сообщение при запертой/открытой двери
Delay before close — время которое дверь стоит перед тем как закрытся. (-1 остаётся стоять открытой. Не используется, если стоит флаг Toggle)
Kill Target — имя объекта который будет уничтожен после открытися двери.
Флаги.
Starts Open — дверь вначале раунда открыта.
Passable — дверь будет нематериальной.
Toggle — дверь при открытии будет оставаться открытой, пока её не закроют.
Use Only — дверь открывается только от юса.

Да ещё, дверь будет отъезжать в торону указаную указателем angle. Кроме градусов, можно выбрать вверх, вниз.

Двери вращающиеся.

Тут сложнее.. Однако приступим. Чтобы дверь вращалась ей нужна ось вращения. Ось вращения в игре делается брашем с текстурой origin из half-Life.wad то есть ось вращения будет проходить через центр браша c текстурой origin. Притом браш с текстурой origin в игре не виден. Делаем
с той стороны где будут «петли» двери делаем в цетре кубик браш с текстурой origin. Потом выбираем браш дверь ВМЕСТЕ с кубиком и делаем из них func_door_rotating.
Новые свойства:
Distance (deg) — угол на который будет открываться дверь
Флаги.
Reverse Dir — при открытии двери дверь будет открываться в сторону с которой её открывают.
One-Way — дверь открывается только с одной стороны.
X Axis, Y Axis — дверь будет вращатся по оси X или соответственно Y.

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

5. Вода.

Во-первых чтобы сделать воду — нужен «сосуд» куда её можно «налить». Делаем углубление. Внутри делаем браш с текстурой воды (начинается на !). Браш отправляем To Entity. func_water.
Опции:
Wave Height — высота волн, на поверхности.
Content — просто вода либо лава либо кислота.

Обратите внимание на схожие опции func_water и func_door — двидение воде затем, чтобы имитировать её поднятие и опускание.
Незабудьте сделать воду полу-прозрачной.

6. Звук.

Звук, достаточно важная вещь на карте. Звук на карте воспроизводится точечным объектом ambient_generic.
Опции:
Path/filename.wav of WAV — звуковой файл (вместе с путём), который будет воспроизведён.
Volume (10 = loudest) — громкость по 10 балльной шкале. (10 самое громкое)
Start Volume — громкость звука когда он только начинает звучать.
Fade in/out time — введения/затухания звука от начальной громкости к конечной. (в секундах)
Флаги:
Play Everywhere — слышно везде на карте.
Small/Medium/Large Radius — радиус звучания.
Start Silent — звук надо активировать
Is Not Looped — если установлен, то звук при активации будет воспроизводится только 1 раз.

Также звук можно воспроизвести энтити env_sound.
Опции:
Radius — радиус звучания
Room Type — тип комнаты, тут советую, поэксперементировать.

Наверняка все играли в cs_mansion и знают что стул (у терроров на 2 этаже) можно двигать. Объясню как сделать такой же, или нечто подобное. Ну рассмотрим на примере ящика, кубической формы. Для того чтобы ящик можно было двигать, надо сделать этот ящик func_pushable.
Рассмотрим новые опции.
Hull Size — размер объекта.
Возможные значения:
Player Duck — ящик будет иметь размер пресевшего игрока
Player Size — ящик будет иметь размер игрока
Big Size — ящик будет иметь большой размер
Point Size — ящик будет иметь размер браша. Собственно это нам и надо, так как ящик будет такого размера как мы его сделали в VHE.
Friction — трение, чем больше, тем сложнее его двигать.
Buoyancy — плавучесть.
Флаги.
Breakable — если установлен, то наш объект будет ещё и ломаться, для настройки есть такие же поля как и func_breakable.

Кнопки широко используются в игре, так как нужны для открывания дверей и прочих действий.
Рассмотрим новые опции.
Targetted object — имя объекта который активируется, после нажатия этой кнопки.
Health (shootable if > 0) — количество hp. Если количество меньше или равно 0, то кнопку можно активировать только дотронувшись либо нажав её. Если Hp >0 то, в кнопку можно стрелять, при превышении значения hp кнопка нажмётся.
Флаги.
Don`t move — если указан, то кнопка при нажатии будет оставаться на месте, иначе конпка будет вдавливатся в направлении указаном в свойстве angle.
Toggle — если выбрано то при однократном нажатии на кнопку в игре она останется нажатой, пока её не нажмут снова.
Sparks — если выбрано то в игре из кнопки будут сыпаться искры.
Touch Activates — кнопка в игре будет активироваться от прикасновения к ней.

По дефолту места закупки располагаются вокруг мест появления, но если использован объект с функцией func_buyzone то места закупки будут ТОЛЬКО в тех местах, где использована эта функция. Единственная опция — team — выбрать команду которая может здесь закупатся.

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

Если на карте есть точечный энтити hostage_entity — то на месте этого энтити в игре будет стоять залог. По дефолту заложники спасаются когда попадают на базу CT, однако если использован энтити info_hostage_rescue — то заложники будут спасаться в ТОЛЬКО в месте этого энтити.

Есть три основных типа карт.

1. CS
Карты где надо спасать золожников.
2. DE
Карты на минирование объектов.
3. ES
Карты где покупать что-либо могут только CT а T должны сбежать.

Также есть ещё один тип карт, на мой взгляд его популярность сейчас растёт. Это карты типа FY (например fy_pool_day, fy_pool_party,fy_stroyka). В этом типе карт никто не может закупаться, но в пределах уровня разбросано огромное кол-во оружия которое можно подбирать.

Ещё есть карты так называемые гибриды, где в одной карте несколько целей, например можно и заминировать и спасать заложников. Такие карты называются например CS/De ***.

Оружие на карте можно сделать точечным энтити armoury_entity. Там есть только 2 параметра item — вид оружия, count — количество.

Также есть ещё один объект, который позволяет одновременно держать в руках несколько основных оружий, но об этом объекте в 3 части стаьи.

Параметры карты настраиваются энтити info_map_parameters. Есть 2 опции.
Weapon_buying — какие команды могут покупать оружие.
Bomb Radius — радиус взрыва бомбы.

Место спасения террористов — определяется func_escapezone.

Продолжу статью.

Продолжим с объектами энтити.

В игре есть два вида ливтов, обчные, которые представляют из себя простую платформу, ездящую вевврх-вниз, а второй тип лифты которые ещё и вращаются на определённый угол. Рассмотрим обе.
A. Лифт обычный.
Делается при помощи брашей, лифт надо создать в верхней позиции. Потом вся конструкция выделяестя и отправляется To Entity, — func_plat где в статах делаем такие настройки:
Name — имя для активации. Напомню если вы будете менять параметры отображения, то они будут применены ко всей конструкции лифта, а не к отдельным его частям. Если хотите сделать окошки то надо сделать отдельные прозрачные части отдельным лифтом, который будет активироваться вместе с первым лифтом. В итоге это должно выглядеть как один лифт.
Travel attitude — длина в юнитах на которую платформа опустится вниз. (Если число меньше 0 то платформа появится выше на указаное кол-во юнитов, но платформа в любом случае будет двигаться вверх.)
Флаги:
Toggle — если включено, то лифт будет по активации ездить вверх/вниз, если не включено то лифт будет двигаться только вверх.
Б.Лифт вращающийся.
Для данного лифта, как и для всех вращающихся объектов, надо предусмотреть ось вращения.
Spin Ammount — угол на который повернётся платформа, можно ставит и более 360 градусов.
Speed of Rotation — скорость вращения.
Флаги:
X Axis, Y Axis — вращение по оси X или Y.

Также лифт можно сделать объектом func_door.

Ну вот.. перейдём к созданию погодных условий… Прежде всего скажу, что если вы хотите создать реалистичную карту то надо подумать а нужны ли молнии на карте вообще? — если все таки нужны, то приступим. Сначала надо подготовить небо. Я слабо представляю себе грозу при абсолютно ясном небе — поэтому настоятельно рекомендую выбрать какое-нибудь пасмурное небо. После этого, необходимо подобрать цвет «солнца». Объекту Light_environment можно настроить цвет. Цвет надо выбрать пасмурный — какой-нибудь серого оттенка. Хорошо подходит следующие значения параметра Brightness = 128 128 128 50. Когда подготовлено небо и «солнце», пора приступать к собственно молнии и грому. Для начала надо выбрать одно или несколько мест куда будут бить молнии. Над каждым из них, делаем точечный объект env_laser, желательно поместить этот объект немного cтороне, чтобы молния била немного под углом. Теперь настраиваем объект env_laser:

Name = Lng1 (для каждой молнии разные имена)
Target of laser = tg1 (объект служащий целью объекта env_laser)
Brightness (1-255) = 255 ставим максимальную яркость
Beam color = 255 255 255 — цвет нашей молнии, в данном случае белый
Width of beam = 80 — ширина луча 8 пикселей
Amount of noise = 100 — степень искривления луча, делаем чтобы было похоже на молнию, 0 — нет искривления.
Sprite name = sprites/lgtning.spr спрайт для молнии.
Texture Scroll Rate = 1 — скорость сдвига текстуры спрайта.
Damage / second = 10000 — повреждения максимальные, при попадании – падает замертво.

Также установите флаг End Sparks для имитации искр при ударе молнии.

Теперь для каждой молнии уставновите объекты в которые эти молнии будут бить. Для этого используется объект info_target которому мы присваиваем имя — tg1. (Опять же для каждой молнии своё имя, совпадающее с именем в поле Target of laser).

Кроме самой молнии, надо сделать вспышку света. Для этого, рядом с местом, куда ударяет молния, на некоторой высоте от земли, разместите объект light, с именем flash и яркостью 255 255 255 10000 (очень яркий). Установите флаг Initially dark, чтобы при запуске карты свет был выключен. Мы будем включать его на мгновение одновременно с лучом молнии.

Теперь гром — гром делается объектом ambient_generic — параметры устанавливаем такие:

Name = tdr1
Path/filename.WAV = ambience/thunder_clap.wav — файл со звуком грома
Volume = 10 — максимальная громкость
Start volume = 10 начинать с максимальной громкостью.

Также установите следующие флаги:

Play everywhere – слышно на всей карте
Start silent – при загрузке карты, не проигрывать
Is NOT Looped – без повторов

Чтобы объединить все вышеописаное в одно событие, используйте объект multi_manager. Разместите где-нибудь рядом и настройте соответствующие свойства:

Name = tdr1 — имя совпадает с именем объекта-звука грома, запустятся одновременно после активации. Таким образом, multi_manager отвечает только за молнию и вспышку. В окне Object Properties для multi_manager отключите режим SmartEdit и добавьте следующие параметры для этого используйте кнопку Add, Key – имя параметра (имя объекта для активации), Value – значение параметра (задержка в секундах перед активацией объекта):

Lng1 = 0 (включить молнию сразу же)
Lng1 = 0.5 (выключить ее через полсекунды)
Flash = 0 (включить вспышку света)
Flash = 0.4 (выключить ее через почти полсекунды)

При добавлении нескольких объектов с одним именем, VHE будет добавлять #1, #2 и т.д. к имени объекта.

Для активации всего вышеописаного создаём trigger_multiple в том месте, проходя по которому вы хотите увидеть молнию. Установите параметры Target = tdr1 (активировать объекты с именем tdr1, в нашем случае – гром и молнию) и Wait before reset = 60 (отключать триггер на 1 минуту, чтобы молния была не постоянной).

Ну, раз уж мы занялись погодными условиями — объяню как делать дождь (или снег и т.д.)…

На карте создайте для каждого потока капель следующие объекты:

  1. объект env_beam
  2. два объекта info_target, один место начала падения капель, второй его конца. Имена соответствующие — start1 и end1.

Объект env_beam настроить надо так:

Start Entity — имена объектов начальной точки падения дождя на start1
Ending Entity — имена объектов конечной точки падения дождя на end1
Life — должен быть равен 0.
Width of beam — где-то от 16 до 32 — это будет длинна капли.
Sprite Name — введите sprites/rain.spr. (Или другую модель в соответствии с тем, что вы хотите сделать.)
Beam Color — значение может быть любым, но лучше ставить 255 255 255 т.е. белый.
Texture scroll — определяет скорость падения капель. Установите этот парметр на -20 (Вы можете увеличить скорость падения или уменьшить изменяя цифру, но она в любом случае должна быть отрицательной).
На вкладке Flags включите Start On и Shade Start.

Также для эффектности можно добавить лужи, объектом func_water а ещё можно сделать звук… (waterfall3.wav)

Ну раз уж заговорили о воде то скажу кое-что о водопадах.

Берем и делаем браш, который и будет нашим водопадом. Покрываем его текстурой +1LASERFALL , находится она в Half-life.wad Теперь отсылаем его to_entity — func_illusionary и ставим:

Render mode — texture
FX Amount — 180
Contents — Empty

Ок, водопад готов. Теперь приблизим его к реальности:

  1. Где-нибудь рядом с ним ставим ambient_generic и дальше в properties:

Имя файла — ambience/waterfall2.wav,
В Флагах ставим medium radius.

  1. Под водопадом ставим env_sprite

Render mode — Additive
FX Amount — 180
Framerate — 10.0
Sprite name — sprites/wsplash3.spr
Scale — 1

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

Если вы захотите сделать лучи света, напимер они падают из фонаря, то сделать их просто… сейчас объясню. Сначала надо сделать объект из которого будет падать свет — в нашем случае фонарь. Затем мы создаём сам луч. Сделайте браш — параллелепипед, у которго все боковые стороны — трапеции. Хотя при желании можно сделать любой другой формы. Затем раскрашиваем браш. Лучше всего подойдёт текстура fade2. Нижнюю сторону закрашиваем текстурой black.
А теперь делаем toEntity :
func_illusionary
Render FX — Normal
Render Mode — Additive
FX Amount (1 — 255) — 25

Вот фонарь и готов… Если надо то можно добавить имя, чтобы можно было активировать триггером.

Для импорта своих тестур в карту вам нужно две программы. Первая — Wally программа создания и редактирования wad библеотек. Вторая — любая программпа для работы с изображениями. Лучше всего подойдет Adobe Photoshop.

Вот операции которые нужно проделать для импорта изображений в Wally. Первое, что нужно сделать — это изменить размеры изображения. Горизонтальный и вертикальный размеры должны делиться на 16. Сделать это можно почти в любом графическом редакторе. Для того чтобы изменить размер картинки в Photoshop достаточно вызвать из меню Image пункт Image Size и в появившемся окне следует ввести новый размер изображения в пикселях. Нежелательно задавать размер больше чем 320 на 320 пикселей, в этом случае компилятор будет выдавать предупреждение. Все текстуры Half-Life могут быть только на палитре из 256 цветов. Wally может сам помещать изображения на палитру, однако
лучше сделать это с помощью Adobe Photoshop. Для этого следует выбрать пункт Indexed Color подменю Mode меню Image. В появившемся окне можно выбрать или создать палитру. Для обычных текстур можно воспользоваться любой палитрой из 256 цветов. При создании decals индекс цвета в палитре определяет его прозрачность (пиксели, закрашенные первой краской палитры полностью прозрачны, пиксели, закрашенные предпоследней краской полностью непрозрачны), а последний цвет задает цвет самой декали (для следов от пуль — черный, для разводов ржавчины — красный). Для текстур с битовой маской последний цвет палитры (обычно синий) является прозрачным. В итоге у вас должно получиться некое изображение. Остается сохранить его в формате bmp. Следующий шаг — это, непосредственно, импорт изображения в wad. Здесь следует воспользоваться Wally. Последовательность действий при импорте текстуры такова:

  1. Запускаем Wally
  2. Откроем рисунок
  3. Создаём или откроем wad

(Для создания wad’а нажмите в меню File на пункт New и выберите из списка Type пункт Half-Life Package [wad3] [.wad]) Скопируйте текстуру в буфер обмена и вставьте текстуру в wad — щелкните правой кнопкой мыши в окне wad’а и выбрать в меню пункт Paste As New присвойте текстуре имя и сохраните wad. Теперь осталось только подключить wad к VHE и использовать свою текстуру. Компилируйте карту с параметром hlcsg -nowadtextures для того, чтобы «вшить» текстуры в свою карту. Еще, при распространении своей карты надо прикреплять к ней использованые вады. (Не стандартные).

  1. Создайте точечный объект trigger_camera там, где будем находиться собственно камера и установите следующие свойства:

Name — camera
Target — camera_target
Не забудьте во флагах поставить галочку напротив Freeze Player если хотите чтобы игрок не мог двигаться при просмотре камеры.

  1. Точечный объект info_target будет местом, куда камера направлена камера. Здесь исправьте лишь один параметр:

Name — camera_target

  1. Теперь нам нужен обычный объект func_button. Он будет играть роль монитора, посему его расположение зависит от вашей фантазии. Ну и опять же установки объекта:

Targetted object — camera
Во флагах пометьте — Dont move

MAX_MAP_HULLS

Карты в Halflife, как и Quake1, имеют 4 замкнутые области (hulls), используемые движком игры: 1 область — видимая (для обрисовки видимых участков карты), и 3 области — ограничительные (для ограничения движения игроков на карте). Максимальное кол-во: 4 Как можно добиться такой ошибки ума не приложу.

MAX_MAP_MODELS

Я знаю только то что:
Максимальное число моделей на карте не должно превышать 400 шт.

MAX_MAP_BRUSHES

Угадайте с трех раз. Для не догадливых поясню: превышено значение допустимого количества брашей на карте. Максимальное число брашей на карте составляет: 8192.

MAX_ENGINE_ENTITIES и MAX_MAP_ENTITIES

Максимальное количество энтитей на карте было превышено. Допустимое количество точечных (MAX_MAP_ENTITIES) или энтитей-брашей MAX_ENGINE_ENTITIES) на карте — 1024. Соответственно в сумме и тех и тех можно наделать — 2048.

MAX_MAP_ENTSTRING (512*1024)
Максимальный размер одной строки в файле *.map был превышен. Максимально допустимый размер: 512 Кб Забейте на эту ошибку, наверное, только у редкостных мапперов возникают такие вот проблемы.

MAX_MAP_PLANES

Допустимое число плоскостей на карте было превышено. Максимальное число плоскостей: 32767

MAX_MAP_NODES и MAX_MAP_CLIPNODES

Превышено число брашей, которые препятствуют перемещению игрока по карте. Максимальное число: 32767. Энтити браши на этот лимит ни как не влияют (func_wall, например).

MAX_MAP_LEAFS

При компиляции карта разбивается на плоскости, доступные игроку. Максимально: 8192 При ошибке, попробуйте упростить вашу карту, уменьшить ее в размере или обратить мелкие предметы в func_wall.

MAX_PATCHES

HLRAD и HLVIS при компиляции делит каждую видимую плоскость браша на отдельные «patches». Позже на них (на «patches») разместится свет (еще называют «картой света»). По умолчанию начальный размер «patches» составляет 64х64 юнита и зависит от размера текстуры, в которую выкрашена эта плоскость. Вы можете уменьшить подсчет каждого patch’а, увеличив размер «patches». Это можно сделать, только увеличив масштаб текстуры (имеется в виду, не увеличить в размере, из 64х64 сделать 128х128, а просто растянуть с помощью VHE). Пример: У вас есть стена размером 128х128. Она выкрашена текстурой, чей размер составляет 64х64. Соответственно, на нашей стене будет четыре таких текстуры или четыре «patches». Таким образом, увеличиваем масштаб текстуры с 1.00 до 2.00 и получаем 1 «patche». Сократили кол-во «patches» на 1/4. Часто такая ошибка бывает, когда новичок создает вокруг своей карты большой блок неба, дабы избежать другой, более противной ошибки “LEAK”. Никогда так не делайте! Во-первых, увеличивается в раз пять работа HLVIS (точно: на 80%). Во-вторых, обрабатывается внешняя часть карты, которую игрок видеть никак не может, да и не должен. Количество «patches» увеличивается вдвое, а то и втрое. И напоследок. Замечали что тени в ХЛ какие-то квадратные? Вот. Используйте команду -chop # (HLRAD) для увеличения «patches». Чем выше параметр, тем хуже (грубее) свет.

MAX_MAP_VERTS и MAX_MAP_FACES и MAX_MAP_MARKSURFACES

Максимальное число этих компонентов было превышено. Максимальное число каждого: 65535

MAX_MAP_TEXTURES

Максимальное число различных текстур на карте было превышено. Максимум используемых текстур на карте не должно превышать лимита в 512. Не путайте «текстура» с «ВАД» файлом.

MAX_MAP_EDGES и MAX_MAP_SURFEDGES

Максимум: MAX_MAP_EDGES: 256 000 и MAX_MAP_SURFEDGES: 512 000

MAX_MAP_MIPTEX
Размер памяти, отведенный под текстуры (Mb) был превышен. Зависит от компиляторов, которыми вы пользуетесь. Стандартные-HL-компиляторы: 2Мб Zhlt v. < 1.2: 4Мб Zhlt v. >= 1.2: Мб (Смотрите файл ZHLTReference)

MAX_MAP_LIGHTING 0x400000

Из-за больших данных при вычислении освещения возникает такая ошибка. Попробуйте уменьшить количество источников света на вашей карте.

MAX_MAP_VISIBILITY 0x200000

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

ReadSurfs (line 73753): 32 > MAXPOINT

Эта ошибка возникает в очень сложных по архитектуре картах.

**HLCSG

**Executing…
**Command: Copy File
**Parameters:
«D:mapname.map»
«D:…..mapname.map»
The command failed.
Windows reported the error:
«File not found»**

или:
**
Error: Error opening
c:………mapname.map
No such file or directory**

  1. В некоторых случаях для компиляции нужен файл mapname.map. VHE по умолчанию сохраняет вашу карту только в формат mapname.rmf. Что бы сохранить в формат *.map следуйте этому пути: «File —> Export to MAP».
  2. Во втором случае, возможно, ваш *.map файл и директория с вашими компиляторами различны.

Token too large on line n

Вы используете слишком много *.WAD файлов на вашей карте Имена ваших ВАД файлов сохраняются в отдельную строку в *.map файл. И если у вас слишком много вадов, то превышается лимит символов на одну строку в вашем *.map файле. Я предполагаю, что максимальное значение символов: 256. Удалите из списка те ВАД файлы, которые вы не используете. Если у вас, например одна текстура из одного вада, другая из другого, третья из третьего, то предлагаю с помощью специальной проги (Wally) создать свой вад со своими текстурами.

Далее, такие вады, как:
cached.wad
pldecals.wad
spraypaint.wad
gfx.wad
fonts.wad

можно убрать из списка. Они вам не понадобятся.

**Entity 10, Brush 0, Side 5:
has a coplanar plane at
(-753, -9, 251), texture CA1X_CON1
BEntity 10, Brush 0, Side 6:
has a coplanar plane at
(-753, -32, 251), texture CA1X_CON1B**

Эта ошибка говорит вам о том, что один браш содержит две плоскости на одной стороне.
Например:
После использования инструмента “vertex tool”, получилось так, что одна сторона квадрата содержит 2! Плоскости. Такое недопустимо!
Что бы избавиться от одной из двух плоскостей, вам естественно придется избавиться от одной из трех белых точек (Белые точки – райние точки плоскости, желтые – середина плоскости). Воспользуемся инструментом “vertex tool” и перетащим белую точку, находящуюся в центре, влево или вправо, так чтобы совпадала с другой точкой. Появится окно с вопросом «Merge vertices?». Нажмите «да».

Entity #, Brush #: plane with no normal

Эта ошибка происходит в том случае, если при использовании «vertex tool» на вопрос «Merge vertices?» вы отвечали «нет». В этом случае происходит образование нулевой области, так как точки не слились в одну. Удалите такой браш и создайте его снова. Эта ошибка может появиться и при использовании инструмента “carve”.

Entity#, Brush#: Outside World At (x,y,z)

Карты в HL не должны превышать определенного размера. Максимальный размер карты это куб со стороной 8192 юнита. В VHE это сетка и ее координаты по оси x, y и z. То есть вы создаете свои карты в координатной плоскости с крайними координатами -4096 до +4096. Эта ошибка обозначает то, что какой либо браш находится за границами допустимой координатной плоскости. Кстати, чтобы быстро найти нужный браш по номеру, нажмите ctrl-shift-G, и введите там номер браша или энтити который вам сообщает компилятор.

Entity#, Brush#: mixed face contents

Texture ROCK_X1 and SKY Один и тот же браш покрашен текстурами разных свойств. В ХЛ Все стороны браша должны быть покрашены текстурами, имеющие одинаковые свойства. Например, если вы красите сторону браша текстурой воды, а остальные стороны обычными текстурами – произойдет вот такая ошибка. Вот текстуры, которые должны покрывать весь браш:
sky
Все виды жидкостей (water, slime, lava)
origin
clip
Нельзя допускать, что бы обычная текстура и выше приведенные текстуры находились на одном браше!

Fatal: Entity #, Brush #: ORIGIN brushes not allowed in entity

Энтити # покрашен в текстуру origin, но такая текстура этому объекту не нужна. Найдите этот энтити и просто удалите или перекрасте, так что бы он не содержал текстуры origin.

Fatal: Entity #, Brush #: ORIGIN brushes not allowed in world

На вашей карте находится origin браш (так называется браш, покрашенный в текстуру origin естественно), не связанный с какой либо энтити (объектом). Найдите такой браш, удалите его или свяжите его с энтити. Такая ошибка возникает при попытке создать дверь. Дверь и origin браш должны быть сгруппированы.

** ********** ERROR **********
Found an entity with ONLY an origin brush near (x,y,z)!**

Эта ошибка похожа на две предыдущие. Исправляется аналогично. Parsing Brush. Эта ошибка возникает по различным причинам: Браш выкрашен простой текстурой и прозрачной (имя такой текстуры начинается на { и чаще всего синего цвета) текстурой одновременно.

Missing «[» in texturedef

Эта ошибка возникает по различным причинам:

  1. Эта ошибка происходит из-за новой версии WC 3.3. Если вы сохраняете *.map файл в WC (WorldCraft) 3.3, а редактируете, изменяете и компилите в WC 2.x, то появляется такая ошибка. Нормальным людям она не грозит. И все же, как избавиться от этой ошибки? Откройте *.map файл в нотпаде и удалите строку «mapversion 220»
  2. Одна или более текстур содержат в имени знаки, не принадлежащие английскому языку. Например: u, a, o и так далее. Просто переименуйте эти текстуры.

**ERRORLOG D:compilingmapname.err detected, hlbsp processing halted>> If you have fixed the problem,
you can delete the file and rerun hlbsp**

Исправьте все ошибки, отмеченные в файле mapname.err (mapname естественно имя вашей карты). Потом просто удалите этот файл.

** ********** ERROR **********
Can`t open c:……mapname.p0**
HLbsp не может открыть или найти файл mapname.p0, который создается Hlcsg. Надо отметить, что HLcsg компилит карту перед HLbsp, так, что ищи проблему там, почему не создался данный файл.

LEAK LEAK LEAK — (Обычные компиляторы)
Warning: === LEAK in hull 0 === Entity capture_point @ (x, y,z) — (Если вы используете zhlt) УУУх!!! Гроза все новичков!!

По этой ошибке можно писать целые статьи. Попробую в вкратце описать эту ошибку. Лик (Leak (англ.) – утечка, проще — дырка) происходит оттого, что ваша карта не герметична. То есть щели в то «никуда», которое вы можете наблюдать в VHE. Стыкуйте браши более внимательно. Если вы так и не нашли Лик, то можно прибегнуть к более сложному способу. При такой ошибке HLbsp создает отдельный файл под названием mapname.pts. Поместите его в папку с картами (чаще всего cstrikemaps) ну и вашу карту то же естественно. К ярлыку контры допишите -particles 10000 (или 50000, если не хватит линии) и загрузите вашу карту. В консоли пишите pointfile. Вы увидите пунктирную линию. Найдите ее начало и следуйте по ней пока линия не выйдет за границу карты. Это и значит, что в этом месте — Дырка.

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

И для чайников: фраза Entity capture_point @ (x, y,z) не означает координаты Лика. Это координаты Энтити, которая среагировала на этот лик.

Примечание — если вы используете VHE 3.4 — можете в целом не обращать внимания на эту ошибку — единственное что может произойти — немного (по-разному) увеличится время компиляции — и если у вас на карте слишком уж большие дырки, которые заметны не вооруженным глазом — уберите их, иначе в игре все это будет очень не красиво — кому интересно глянуть что будет сделайте и посмотрите.

**Warning:
MakeNodePortal: new portal was clipped away from node @(x,y,z)-(x,y,z)**

HLBSP не смог создать некоторую часть пространства. Это вызвано или сложностью стыковок брашей (например: пересекаются) или большим углом наклона между двумя брашами. В результате игрок будет задевать за что-то невидимое. Если ваша карта компилится и «тормоза» в пределах нормы, то можете пренебрегать этим предупреждением. В противном случае найдите браши по данным координатам и упростите или удалите их.

** ********** ERROR **********
Error opening c:………mapname.bsp No such file or directory**

такая ошибка возникает в том случае если произошла другая ошибка при компиляции HLBSP и HLCSG. Так что смотри логи компиляции.

**—- vis —-
1 thread(s)
LoadPortals: couldn`t read c:……..mapname.prt
No vising performed.**

Этот файл нужен визу для вычислений видимости на карте. Как и в прошлой ошибке произошла ошибка в HLBSP и HLCSG. Да спасут нас логи!

Warning: Leaf Portal Saw Into Leaf

Ошибка имеет огромное описание — не буду его тут приводить, как найду рабочую ссылку — выложу.

Max_Leaf_Faces

Слишком много видимых частей брашей. Если ваша карта содержит множество мелких деталей, советую обратить эти детали в func_wall, так как энтити в ХЛ обрабатываются в реальном времени.

Error: Vismap expansion overflow

Аналогичная предыдущему примеру ошибка.

Texture axis perpendicular to face

Какая либо текстура сильно растянута. То есть имеет большой масштаб. Минимальный и максимальный масштаб текстуры: -999 и +999 соответственно.

Дополнительные причины:

  1. Браш вращался, без включенного «Texture Lock».
  2. Из-за неправильного обращения с такими инструментами как: vertex tool и carving tool. Иногда — Clipping tool.

HLRAD

** ********** ERROR **********
Error opening c:……….mapname.bsp
No such file or directory**

такая ошибка возникает в том случае если произошла другая ошибка при компиляции HLBSP и HLCSG. Так что смотри логи компиляции.

Warning: Too Many Direct Light Styles on a Face

Это значит, что более 3 источников света освещают одну плоскость. Все источники света, имеющие разные свойства (цвет, мерцание, яркость, переключение, даже имя и так далее), будут обозначены как совершенно разные источники света. Но если, например, цвет одного совпадает с цветом другого, то эти источники будут считаться одинаковыми. Что бы избежать такой ошибки, вы или удаляйте некоторые источники света или подгоняйте их свойства, так что бы они значились как один свет. Максимальное кол-во различных по свойствам источников света — 3.

Warning: SwapTransfers: Unmatched

Эта ошибка вызвана проблемой в коде HLRAD. Так же она может следовать после предупреждения Leaf_Portal_Saw_Into_Leaf
entity at (x,y,z) has bad `_light` value Эта ошибка вызвана из-за бага в WC 2.1. Что бы исправить эту ошибку просто откройте свойства энтити и щелкните на параметре «brightness». Можете даже не менять цветовой гаммы. Вы должны провернуть такую операцию для КАЖДОГО лайт энтити.

**
Error: No Lights!
Description: lighting of map halted (I assume you do not want a pitch black map!) Howto Fix: Put some lights in the map
**
Судя по последним строкам ошибки (этот эррор характерен только для компиляторов Зонера) на карте не найдено ни одного источника света. Ваша карта будет черной или наоборот — светлой!

MAKE SCALES takes a very long time, the computer seems to be stuck

Причина: недостаток оперативной памяти. Факт, что MAKE SCALES требует немало оперативки. При заполнении всей памяти MAKE SCALES обращается к жесткому диску (своп). Для этого освободите как минимум 800 Мб на вашем Харде. Если MAKE SCALES обращается к диску, то время компиляции может увеличиться в 100 (сто!) раз относительно RAM’а!!!

Если во время компиляции вы нажмете ctrl-alt-del то увидите, что-то типа «HLRAD не отвечает». Вранье! Ваш процессор, жесткий диск и оперативка работают на максимуме. Нарастите память или продеться потерпеть. Кстати, при нажатии трех клавиш во время компиляции HLCSG, HLBSP, HLVIS та же история, так что просто подождите.

Сообщение об ошибке при загрузке карты:
**
map change failed: «mapname» not found on server *.bsp файл не найден в папке для карт (например cstrikemaps)**.

Часто из-за ошибок при компиляции *.bsp просто не создаётся. (Смотрите лог компиляции) или карта очень сложная (для движка ХЛ)
Level changes (trigger_changelevel) are working weird…

….после компиляции в VHE и автоматической загрузки карты в VHE. НЕ ДЛЯ КОНТРЫ!

Выйдите из VHE и вручную запустите карту через консоль ХЛ.

Вопросы по статье или по созданию карт спрашивайте на [email]comtoza@.mail.ru[/email] или на форуме WWW.XGM.RU

Ссылки на утилиты упомянутые в статье и прочие утилиты.

Рекомендую прочитать.

HL_DEAD_LIFE

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

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

Содержание публикации:

  • Две конфигурации окон
  • Виды редактирования
  • Типы 3D-видов редактирования
  • Использование вида 3D textured
  • Направление осей координат в 2D-видах
  • Перемещение по карте в 3D-видах

Конфигурация окон

Существует 2 конфигурации окон:

  • Независимая (1 окно редактирования)
  • Конфигурация с четырмя окошками редактирования

При самом первой загрузке редактора Хаммер перед вами появятся или 4,
или 1 окно редактирования. Это зависит от выбранной конфигурации
(смотрите картинку ниже).

Две различные конфигурации окон редактирования

Конфигурацию окон редактирования можно в любой момент изменить в меню
«ToolsOptionsGeneral». Если флажок «Use independent window
configuration» стоит, то у нас будет 1 окно редактирования, если нет —
4. После того как конфигурация изменена необходимо перезапустить
редактор Хаммер, или можно просто закрыть все открытые уровни и открыть
их снова.

Какая конфигурация удобнее?

Какая конфигурация удобнее для вас, вы сможете определить, чуть-чуть
поработав с VHE. При первой конфигурации (независимой), когда 1-но окно
редактирования, у нас больше рабочего пространства. Поэтому, сугубо с
нашей точки зрения, одно окно редактирования удобнее, хотя при одном
окне мы постоянно вынуждены переключаться между видами редактирования.

С другой стороны, если у вас большой монитор от 19 дюймов, то,
возможно, кофигурация с четырмя окнами редактирования может оказаться
более удобной. Кстати сказать, активным считается окно, в котором
находится курсор. Где находится курсор, там и работают все функции
редактора: приближение, изменение шага сетки и т.д.

Виды редактирования

В редакторе Хаммер всего 6 различных видов редактирования:

  • 2D top (x/y) — 2D-вид сверху
  • 2D front (y/z) — 2D-вид спереди
  • 2D side (x/z) — 2D-вид сбоку
  • 3D wireframe — 3D-вид (показываются ребра объектов)
  • 3D flat — 3D-вид (показываются грани объектов)
  • 3D textured — 3D-вид (затекстурированные объекты)

Типы 3D-видов редактирования

Типы всех трёх 3D-видов (3D wireframe, 3D flat, 3D textured) редактирования показаны на картинке ниже:

3D-виды редактирования: wireframe, flat, textured

В виде 3D wireframe отображаются только рёбра объектов.

В виде 3D flat объекты отображаются незатекстурированными (не
раскрашенными текстурами) и каждый браш или брашевый энтити-объект
имеет свой цвет, отличающийся от расположенных рядом.

В виде 3D textured мы можем видеть, как приблизительно будет
выглядеть наш уровень в игре (заметим, что здесь наша карта отображается
без просчитаннго освещения). Также на этом виде удобно создавать
точечные (point-based) энтити-объекты (смотрите ниже), а также выделять
объекты и передвигать их, используя стрелки клавиатуры.

Использование вида 3D textured

Вид 3D textured, без тени сомнения можно сказать, является
самым часто используемым 3D-видом редактирования, так как именно в это
виде карта раскрашивается текстурами, в нём наносятся декали, также в
нём удобнее, чем в 2D-видах, создавать точечные энтити-объекты
(например, источники света, всевозможные звуки, места рождения контров и
терров и т.п.). Далее мы приводим рисунок и описываем шаги от создания
точечного (point-based) энтити-объекта до вызова ее свойств.

Чтобы создать точечный энтити-объект в 3D-виде надо:

  • Выбрать инструмент «Entity Tool»
  • Указать на панели «New Objects» вид нужного энтити-объекта
  • Кликнуть в 3D-виде на стене или полу

Создание точечного объекта в 3D виде

Для вызова свойств энтити-объекта нужно:

  • Выбрать мышкой энтити-объект
  • Нажать сочетание клавиш «Alt-Enter»
  • В появившемся окошке изменяются как параметры энтити-объекта, так и его тип

Направление осей координат на 2D-видах

При создании вращающихся брашевых энтити-объектов, таких как например:
вентиляторы, двери, платформы, поезда, автомобили) нужно знать
направления осей координат. С вертикальной осью Z все просто; в 3D-виде
она всегда смотрит вверх, перпендикулярно полу. С осями X и Y всё
несколько сложнее.

Картинка ниже показывает направление осей на всех 2D-видах редактирования.

Направление координатных осей

Перемещение по карте в 3D-видах

В каждом из трёхмерных окон редактирования мы можем перемещаться по создаваемуму уровню.

Нажмите кнопку «Z» и вы перейдёте к перемещению по уровню. Нажмите ещё раз и вы выйдете из этого режима;
«W», «S», «A», «D» — вперед, назад, влево, вправо;

Если, при нажатии на кнопку «Z», вы не попадаете в режим перемещения
по уровню, значит у вас включена русская раскладка клавиатуры :-)
Переключитесь на английскую раскладку, и всё должно заработать.

Мы советуем вам прочитать одну из следующих публикаций из этой главы
Учебника о быстрых сочетаниях клавиш редактора Хаммер, так как некоторые
из них значительно ускоряют и облегчают процесс создания уровня.


22 августа 2012


22.08.12

3

3712

Вступление.
Что такое Hammer Editor?

Ответ: Hammer Editor — это программа для создания карт на движке Source. С ее помощью вы можете создать СОБСТВЕННУЮ игровую карту для таких игр как: Half-Life 2, Left 4 Dead 12, Counter-Strike: Source/Global Offensive, Garry’s Mod и так далее.

Где мне взять эту замечательную прогу?

Ответ: В стиме скачать набор «Source SDK» во вкладке ИНСТРУМЕНТЫ.

Уже скачали? Отлично. Теперь запускайте.

Если вашей конфигурации нет в списке, то вам нужно создать ёё самостоятельно. Благо туториалов на эту тему в интернете есть много.

Теперь рассмотрим интерфейс.
Но сначала нажмите на вкладку File и выберите New.

1: Окно 3-D вида: Здесь мы видим карту примерно так как будет в игре. Что-бы управлять ним нажмите кнопку «Z», и летайте кнопками W A S D и крутите мышкой.

2: Вид карты сверху.

3-4: Вид с разных сторон.

5: Selection tool [Shift+S]: Выбирать об’екты, изменять их размер и угол

6: Loop [колесо мышки]: Приблизить, отдалить в окнах 2D вида (2,3,4).

7: Camera: Аналог кнопки «Z» в окне 3D вида.

8: Entity tool [Shift+E]: Создать ентити. Ентити это все что не является брашем.(об этом разкажу потом).

9: Brush/Block tool [Shift+B]: Создать браш. Браш это все что не является ентити.(об этом разкажу потом).

10: Texnure application tool [Shift+A]: Нанесение текстур на одну сторону браша.

11: Apply current texnure [no hotkey]: Нанесение текстур на весь браш.

12: Apply decals [Shift+D]: Добавить декаль на текстуру, например: граффити или плакат.

13: Apply overlays [Shift+O]: Усложненный вариант декалей.

14: Clipping tool [Shoft+X]: Обрезание об’ектов.

15: Vertex tool [Shift+V]: Манипуляции с вершинами об`ектов.

На этом я заканчиваю свой первый титориал.
Спасибо за внимание. Пока.

Ой, ах да чуть не забыл.


Понравилась статья? Поделить с друзьями:
  • Инструкция ибупрофен таблетки 400мг по применению взрослым от чего помогает
  • Mindray bc 5150 руководство пользователя
  • Правила по руководству для руководителя
  • Стимэрект инструкция по применению цена отзывы
  • Альмагель при гастрите желудка инструкция по применению