Welcome to U.A.C. [O.S.A.]
login / register 
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
MAPINFO - новое руководство
   Список разделов - Местечко мапперов и моддеров - MAPINFO - новое руководствоОтветить
АвторСообщение
ChaingunPredator
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 78 pointsМодератор форума
1362

Doom Rate: 2.44

Posts quality: +174
Ссылка на пост №1 Отправлено: 25.08.15 00:11:55
Создание зачётной темы (+40)
СТАТЬЯ В РАЗРАБОТКЕ

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

Новое руководство (в целом является переводом статьи с ZDoom Wiki)
Скрытый текст:


ПРЕДУПРЕЖДЕНИЕ:
СВОЙСТВА/КОМАНДЫ, ОТМЕЧЕННЫЕ СИНИМ ЦВЕТОМ, СОЗДАНЫ ДЛЯ СОВМЕСТИМОСТИ И НА СВОИХ КАРТАХ ИСПОЛЬЗОВАНИЕ НЕЖЕЛАТЕЛЬНО!


ЧТО ЭТО ТАКОЕ

MAPINFO - ламп, созданный для описания свойств уровней в WAD/PK3 (таких, как имя, музыка, небо, урон от падения и прочее), также позволяющий создавать/изменять уровни сложности, интермиссии (экраны со статистикой после уровней) и игровые настройки.

ФОРМАТ

MAPINFO включает 6 типов записей: игровая информация (game information), описание эпизодов (episode definitions), описание кластеров (cluster definitions), описание уровней сложности (skill definitions) и описание интермиссий (intermission definitions), которые обозначаются ключевыми словами gameinfo, episode, map, cluster, skill и intermission, соответственно. (В скором времени будут доступны (пока лишь в development version) еще: Automap definition, Editor number definition, Spawn number definition, Conversation number definition.)

После вышеобозначенных ключевых слов идет имя или номер описываемого элемента (например, map E1M1), за которым следует блок свойств, заключенных в фигурные скобки ({ }), которые применяются к новому элементу. Свойства могут принимать ноль или более значений и указываются в таком формате:

свойство = значение1, значение2, значение3...


например:

map MAP01 "Snowbreak" 
{
	sky1 = "FROZS1"
	music = "D_ACTION"
	levelnum = 1
}	

skill nightmare //из старой статьи
{
   AmmoFactor = 2
   FastMonsters
   DisableCheats
   RespawnTime = 12
   SpawnFilter = Nightmare
   PicName = "M_NMARE"
   MustConfirm
   Key = "n"
}


В этой статье аргументы свойств, указанные между <> являются обязательными, аргументы же указанные между [ ] являются опциональными.

Если свойство не подразумевает параметров, то требуется указать только имя свойства. Также, все строковые параметры должны быть заключены в кавычки ("").

MAPINFO файлы можно разделить на несколько и инклюднуть их в одном файле с помощью ключевого слова include.

include mapinfo/gameconfig.txt
include mapinfo/skills.txt
include mapinfo/episode1.txt


ZMAPINFO и MAPINFO

Если вы создаете мод, совместимый с другими портами, но хотите, чтобы во время игры в Zdoom использовалось MAPINFO с фичами ZDoom, то вам следует создать ZMAPINFO ламп для ZDoom и MAPINFO ламп для остальных портов. ZMAPINFO обязан быть написан в новом синтаксисе, другой же может использовать старый синтаксис или синтаксис из HEXEN, если мод сделан под него.
Учтите, если присутствует ZMAPINFO, MAPINFO читаться не будет.

СТАРЫЙ И НОВЫЙ СИНТАКСИС

Все, что описано выше, касалось нового синтаксиса. Старый представляет собой устаревший способ записи MAPINFO. Другими словами, синтаксис MAPINFO из Hexen. Крайне не рекомендуется записывать в старом стиле, так как, например, новые функции со списками им не поддерживаются. Полное описание - здесь. Пример записи в таком синтаксисе:

Скрытый текст:

map E1M8 lookup HUSTR_E1M8
levelnum 8
titlepatch WILV07
next EndGame1
secretnext E1M9
sky1 SKY1 0
cluster 1
par 30
nointermission
nosoundclipping
baronspecial
specialaction_lowerfloor
music D_E1M8

clusterdef 1
flat FLOOR4_8
music D_VICTOR
exittext lookup E1TEXT



Описание карт (Map Definition)
Скрытый текст:


http://zdoom.org/wiki/MAPINFO/Map_definition
Описание карты начинается с ключевого слова map. Вы также можете описать стандартные характеристики для последующих карт, использую ключевые слова defaultmap или adddefaultmap.

MAP COMMANDS

1. map <maplump> <name>
map <maplump> lookup <keyword>


Команда, начинающая описание карты.
<maplump> относится к имени маркера-лампа карты (типа MAP99 или E2M8, поддерживаются также любые другие имена лампов, типа C2L8).
<name> предоставляет имя карты, которое будет показываться на автокарте, в консоли при запуске и т.д. Как и любая строка, она должна быть заключена в кавычки если имеет пробелы.
Если же указано lookup, то поиск имени будет произведен в лампе LANGUAGE по слову <keyword>

2. default map { свойства }

Описывает свойства, которые будут использованы по умолчанию в последующих описаниях карт. Оно перезаписывает предыдущие свойства по умолчанию, так что все, что было описано в предыдущем defaultmap, будет потеряно.

3. adddefaultmap { свойства }

Схоже с defaultmap, но эта команда сохраняет текущие настройки по умолчанию, просто добавляя новые.

4. gamedefaults { свойства }

Используется для описания настроек по умолчанию, которые будут применяться к целой игре, даже если PWADы будут загружены сторонние PWADы. В основном используется Hexen-ом и Strife-ом, так что PWADы, которые создают свои defaultmap свойства не смогут перезаписать основные игровые настройки. Имеет ограничения при использовании PWADами.

Дальше приведен список всех свойств карт, спрятано под спойлер из-за огромного количества текста.

СВОЙСТВА КАРТ (MAP PROPERTIES)

Скрытый текст:


* LevelNum = <levelnum>

Идентификационный номер карты, используемый для ее определения при использовании Teleport_NewMap и еще некоторых экшенов. Если имя карты представляет собой MAPxx, то оно автоматически получит LevelNum xx, только если вы не зададите другой. (То есть, у MAP30 levelnum будет 30)

* [Secret]Next = "<maplump>"
[Secret]Next = "<endgame>"
[Secret]Next = endpic, "<lump>"
[Secret]Next = endsequence, "<intermission>"


Задает какая карта или концовка должны следовать за прохождением данного уровня. Next задает следующий уровень после стандартного прохождения уровня (обычное завершение уровня в сингле или достижение time/frag лимита в онлайне). SecretNext задает секретный уровень (при нахождении игроком секретного выхода). Для совместимости с Vavoom MAPINFO существует алиас для SecretNext - Secret. <maplump> должно быть именно названием лампа в WADе/архиве, а не строковым именем уровня.

Про endgame:
Скрытый текст:

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

EndPic, "<lump>" Отображает указанный ламп как картинку.
"EndGame1" Показывает картинку с благодарностями (в Doom после эпизода 1 и в Heretix после эпизодов 1 и 5)
"EndGame2" Показывает картинку, которая отображается в Doom после эпизода 2 (или credits screen Doom)
"EndGameW" Показывает картинку, отображаемую после второго эпизода Heretix.
"EndGame4" Показывает картинку, которая отображается после прохождения Doom и четвертого эпизода Heretic
"EndGameC" Показывает cast finale (можно увидеть после концовки Doom 2)
"EndGame3" Горизонтальный скроллер (справа налево), который можно увидеть после третьего эпизода Doom
"EndDemon" Вертикальный скроллер (снизу вверх) третьего эпизода
"EndGameS" Conditional end game script для Strife
"EndChess" Концовка Hexen
"EndTitle" Возврат к начальному меню
EndSequence, "<intermission name>" Задает кастомную интермиссию после прохождения уровня

Пример использования кастомного endgame:

[secret]next = endgame
{
[pic = "<lump>"] // displays a single image.
[hscroll = "<left>", "<right>"] // scrolls horizontally from left to right.
[vscroll = "<bottom>", "<top>"] // scrolls vertically from bottom to top.
[cast] // Rolls the Doom 2 cast sequence (Same as EndGameC).
[music = "<lump>", [loop]] // Music to play. If none specified, uses the level's music.
// [loop] can be 0 or 1 (default), and specifies whether the music should loop.
}

Учтите, что только один из параметров pic, hscroll, vscroll или cast должен быть использован. Музыка может быть использовано в дополнении к любому из свойств.
Помимо этого, ни одно из этих свойств не напечатает текст. Чтобы вывести текст, используйте exittext в настройках кластера.



* Slideshow = "<intermission>"

Описывает слайдшоу, которое будет проиграно игроку на этом уровне, если игроку будет дан итем SlideshowStarter. Slideshow представляет собой кастомную интермиссию.

* DeathSequence = "<intermission>"

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

* Redirect = "<item>", "<maplump>"

Если игрок имеет хоть один предмет из <item>, то он будет перенесен на карту <maplump> (название ламп-маркера в ваде) вместо обычной Next или SecretNext карты.

* Cluster = <number>

<number> - имя кластера (что это - описано ниже), к которому принадлежит карта.

* Sky1 = "<texture>", [scrollspeed]

<texture> - имя текстуры, которое будет использовано в качестве неба. [scrollspeed] определяет скорость вращения неба. Если требуется статично небо, оставьте значение 0.0 или опустите этот параметр. Чтобы двигать небо влево - используете положительные значения, вправо - отрицательные.

* Sky2 = "<texture>", [scrollspeed]

То же самое, что и sky1, только применяется ко второму слою неба (фону, работает только при указанном DoubleSky свойстве). Может выступать в качестве альтернативного неба, показываемого в определенных секторах.

* Skybox = "<texture>"

То же самое, что и sky1 (просто алиас), однако отсутствует scrollspeed (автоматически ноль). Добавлено для совместимости с Vavoom мапинфо.

* DoubleSky

Команда, активирующая отрисовку обоих небес, Sky1 рисуется перед Sky2. Второе небо будет видно сквозь прозрачные (cyan) пиксели sky1.

* ForceNoSkyStretch

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

* SkyStretch

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

* Fade = "<color>"

<color> - это цвет затуманивания объектов по мере их удаления (проще говоря, цвет тумана). По умолчанию цвет - черный, следовательно, объекты, удаляясь, становятся чернее. Чтобы имитировать туман в стиле Hexen, поставьте серый цвет (grey). <color> может быть именем цвета типа "red" или "cyan" или дескриптором цвета типа "RR GG BB" (в шестнадцатеричном формате).

Пример:

Fade = "red"
Fade = "ff 00 00"

Чтобы найти хороший цвет тумана прямо в игре, можете использовать консольную команду testfade.

* FadeTable = "<colormap>"

Создано для совместимости с Hexen и не должно использоваться на картах. В данный момент времени оно задает колормапу, которая будет использоваться вместо дефолтной (ламп COLORMAP).

* OutsideFog = "<color>"

То же самое, что и Fade, только туман применяется к секторам, у которых на потолке наложена текстура неба.

* TitlePatch = "<patch>", [hideauthorname]

Изображение, которое будет отображаться как название уровня на интермиссии (типа "CWILV00"). Если опущено, будет автоматически сгенерировано здумовским шрифтом из названия карты, указанного в заголовке.
Если hideauthorname присвоено любое ненулевое значение, то имя автора не будет показано на интермиссии.

* Author = "<name>"

Имя автора карты. Будет показано на интермиссии.

* Par = <partime>

Время PAR TIME, которое будет показано на интермиссии около строки PAR

* SuckTime = <value>

Время (в часах), в течении которого игрок должен будет закончить карту, чтобы не получить надпись SUCKS около времени на интермиссии. В Doom это один час. Поддерживаются только целочисленные значения (1, 2, 3...). Если значение 0 или не свойство отсутствует, то просто будет показано время прохождения.

* NoIntermission

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

* Intermission

Перезаписывает значение свойства NoIntermission.

* Music = "<musiclump>", [tracknum]
* Music = "<musiclump[:tracknum]>"

musiclamp - название лампа аудиофайла, который будет играть на протяжении всего уровня. Если требуется отключить музыку, ставьте "".
tracknum - номер дорожки в мультитрековом аудиофайле, по умолчанию 0, если не указано обратного.

* CDTrack = <track>

Номер трека с диска, который будет играться на уровне.

* CDId = <CD>

Позволяет выбрать идентификатор CD-диска в дисководе, с которого будет проигран трек с помощью CDTrack. Стоит заметить, что нет способа определить ID диска, так что скорее всего вам придется писать программу, если вы захотите проигрывать музыку в своем ваде с диска, что делает эту команду несколько бесполезной.

* ExitPic = "<picname>

Задает картинку, которая будет фоном для интермиссии. Если ничего не указано, будет использована стандартная для этой игры (IWADа). Если имя начинается с '$', то ламп будет использован как скрипт интермиссии (Intermission script)

* EnterPic = "<picname>"

Аналогично ExitPic, однако будет показано при экране "Entering level" (при загрузке уровня). Также поддерживаются скрипты интермиссии.

* InterMusic = "<musicname>"

Музыка, которая будет проигрываться во время интермиссии и "Entering level".

* BorderTexture = "<picname>"

Изображение, которое будет использовано для создания границы вокруг видимой (игровой) части экрана, если у пользователя CVAR screenblocks имеет значение меньше 9.

* Lightning

Добавляет грозу на карту. Через случайное время сектора с небом подсветятся и будет проигран звук грома. Пример - Hexen map01.

* EvenLighting

Говоря простыми словами - отключает FakeContrast. Это такая вещь, которая по разному подсвечивает стены в горизонтальном и вертикальном положении (имеется в виду положение при виде сверху, относительно севера).
Учтите, что использование этого свойства равносильно VertWallShade 0 и HorizWallShade 0 (команды ниже).

* SmoothLighting

Смягчает псевдоосвещение, созданное FakeContrast, придавая оттенки стенкам под разными углами (помимо вертикальных и горизонтальных)

* VertWallShade = <amount> / HorizWallShade = <amount>

Определяет, насколько отличаются вертикальные (Северные/Южные, Vert) и горизонтальные (Восток/Запад, Horiz) от обычных стен. Для вертикальных значение по умолчанию = +16, для горизонтальных = -16. Свойство EvenLighting перезаписывает эти два значения нулем.

* TeamDamage = <amount>

Устанавливает множитель урона, получаемого союзниками (игроками) во время игры в DM или Coop. 1 – стандартный множитель, 0.5 – атаки по союзникам будут наносить половину урона, 2.0 – урон в двойном размере. 0 полностью отключает урон союзникам. Учтите, что эта настройка может быть перезаписана CVARом на хосте (сервере).

* Gravity = <amount>

Отвечает за гравитацию/притяжение. Стандартное значение - 800. Меньшие значения ослабляют гравитацию, большие, соответственно, увеличивают. Значение 0 позволяет прыгнуть и продолжать движение по инерции.

* AirControl = <amount>

Отвечает за контроль полета в воздухе (aircontrol). Значение 1 означает, что игрок может передвигаться в воздухе также легко, как и на земле, 0 - aircontrol отсутствует, игрок не может управлять полетом в воздухе. Стандартное значение - 0.00390625.

* AirSupply = <amount>

Время (в секундах), которое игрок может продержаться под водой без получения урона. Стандартное значение - 20 секунд. 0 - игрок может находиться под водой бесконечное количество времени.

* F1 = "<image>"

Включает help-картинки Skulltag по нажатию F1. Указанное изображение <image> будет рисоваться поверх интерфейса.

* MapBackground = "<image>"

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

* Translator = "<lumpname>"

Устанавливает ламп, в котором указаны правила преобразовани лайндефов и секторов Doom-формата в Hexen типы. (Подробнее: Map translator / xlat)

* AllowMonsterTelefrags

Если присутствует, монстры смогут телефрагать друг друга или игрока на уровне (имеется в виду, что если какой-либо живое существо будет препятствовать телепортации на той стороне, то оно будет убито). По умолчанию монстры не могут никого телефрагнуть.

* ActivateOwnDeathSpecials

Если присутствует, то произойдет следующее: когда объект с экшеном умирает и активирует этот экшен, он является активатором этого экшена/скрипта. По умолчанию активатором считается убийца объекта. Этот флаг может быть перезаписан в базе каждого актора с помощью свойства Activation и флагом THINGSPEC_TriggerActs.

* SpecialAction = "<monstertype>", "<action>", [arg1], [arg2], [arg3], [arg4], [arg5]

При смерти всех монстров типа <monsterytype> будет активирован экшен <action> с указанными аргументами.

* Map07Special

Включает поведение уровня как на MAP07. Вкратце: после убийства всех манкубусов откроются двери под тэгом 666, после убийства арахнотронов сектор с тэгом 667 поднимется на высоту своих наиболее нижних текстур (в Doom 2 высота текстуры ступенек - 16). Подобные вещи легко реализуются с помощью ACS, особой надобности использования этих фич сейчас нет (то же самое касается как предыдущего пункта, так и последующих)

* BaronSpecial
CyberdemonSpecial
SpiderMastermindSpecial
IronlichSpecial
MinotaurSpecial
DSparilSpecial


То же самое, что и MAP07SPECIAL, только относится к другим таким же ситуациями из разных игр. (Baron of Hell - Doom E1M8, Cyberdemon - Doom E2M8 и E4M6, Spider Mastermind - Doom E3M8 и E4M8, Iron Lich - Heretic E1M8 и E4M8, Minotaur - Heretic E2M8 и D'sparil - Heretic E3M8). Когда монстры, подразумеваемые экшеном полностью погибнуть, сработает особый экшен.

Только один из предыдущих 6 свойств должно быть использовано одновременно.

* SpecialAction_ExitLevel
SpecialAction_OpenDoor
SpecialAction_LowerFloor
SpecialAction_KillMonsters


После того как определенные монстры убиты, выполнить одно из следующих действие: закончить уровень, открыть все двери с тэгом 666, опустить полы с тэгом 666 до следующего по уровню пола, убить остальных монстеров на уровне.

* ClipMidTextures

Касается лишь Software-режима. По умолчанию мидл-текстуры, заходящие за пол или потолок, не будут обрезаны полом или потолком. Если присутствует, все мидл-текстуры на уровне будут обрезаться полом/потолком. Альтернативой является свойство у лайднефов clipmidtex в UDMF-формате или второй параметр у экшена Line_SetIdentification.

* NoAutoSequences

По умолчанию, звук проигрываемый при движении сектора определяется спешлом, использованным для активации. Если выставить эту настройку, какой бы то ни было звук (sound sequence) с нулевым ID будет использован по умолчанию. В противном случае, звук будет задаваться специальным thing (айди 1400-1409).

* AutoSequences

Включает ZDoom-поведение для выбора sound sequence (звука) для движущегося сектора, основанное на спешле, который использовался для активации. Стандартная настройка.

* StrictMonsterActivation

По умолчанию ZDoom позволяет монстрам использовать определённые спешлы, которые помеченные для использования только игроком (медленные двери, лифты, телепорты). Если вы зададите это свойство, то монстры смогут активировать только спешлы, которые помечены флагами "monster crosses" и "monster can activate" в редакторе карт. Это свойство дает эффективный контроль над действиями монстеров.

* LaxMonsterActivation

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

* MissileShootersActivateImpactLines

Объекты, которое стреляют снарядами, считаются активаторами в случае пересечения снарядом триггера. Стандартная настройка.

* MissilesActivateImpactLines

Когда снаряд пересекает триггер, он считается активатором вместо того, кто стрельнул. Так это работает в Hexen.

* FallingDamage

Включает урон от падения в стиле Hexen. Использует такую же формулу, как в Hexen. Перезаписывает DMflag на хосте/сингле, так что игроки не могут отключить урон от падения на карте. Почитать можно тут.

* OldFallingDamage
ForceFallingDamage


Включает урон от падения в стиле Zdoom. Использует старый здумовский алгоритм, который отличается от алгоритма из Hexen. Различия довольно мелки: минимальная скорость падения с которой вы касаетесь земли ниже и скорость, при которой вы разобьетесь примерно выше. Еще одно различие: при использовании формулы из Hexen, чтобы умереть, игрок должен набрать именно смертельную скорость, что же касается формулы Zdoom, то там можно умереть не набирая ее, если вы уже были хорошенько ранены.

Альтернативное имя сделано ради совместимости со старыми картами из Skulltag, где так называлось данное свойство.

* StrifeFallingDamage

Включает урон от падения в стиле Strife. В отличии от двух предыдущих, этот тип гораздо более жесток: игрок теряет больше HP при падении.

* NoFallingDamage

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

* MonsterFallingDamage

Монстры будут получать урон от падения. Монстры будут всегда умирать от падения, если вертикальная скорость будет достаточна высока, чтобы за нее начислялся урон. Для правильного расчёта урона, также необходимо выставить флаг ProperMonsterFallingDamage

Чтобы некоторые монстры получали/не получали урон от падения, в DECORATE необходимо выставлять флаг FALLDAMAGE для нужных акторов.

* ProperMonsterFallingDamage

Исправляет расчёт урона от падения для монстров. Поведение флага аналогично получения урона от падения для игроков.

* FilterStarts

Фильтрует точки старта игроков, основываясь на настройках сложности и типа игры.

* AllowRespawn

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

* TeamPlayOn / TeamPlayOff

Автоматически выставляет teamplay/отключает его при старте карты. Может быть перезаписано хостом.

* NoInventoryBar

Отключает показ стандартного здумовского инвентаря (полупрозрачная лента с итемами снизу) на карте.

* KeepFullInventory

По умолчанию количество каждого предмета в инвентаре при переходе на другую карту снижается до одного (если карта не в хабе). Это свойство позволяет отключить утрату предметов при переходах.

* InfiniteFlightPowerup

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

* NoJump / AllowJump

Запрещает / разрешает (по умолчанию) прыжки на уровне.

* NoCrouch / AllowCrouch

Запрещает / разрешает (по умолчанию) приседания на уровне.

* NoFreelook / AllowFreelook

Запрещает / разрешает (по умолчанию) фрилук (возможность двигать камерой по вертикали) и вертикальную наводку снарядов.

* NoInfighting

Монстры никогда не будут агриться друг на друга, даже если будут атакованы монстрами другого класса.

* NormalInfighting

Монстры будут агриться на друг друга если попадут под перекрестный огонь. Монстры одного вида не будут злиться друг на друга и получать урон.

* TotalInfighting

Все монстры будут инфайтиться, даже монстры одного вида.

* CheckSwitchRange

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

* NoCheckSwitchRange

Отключает проверку высоты для выключателей. Кнопки может будет нажать вне зависимости от высоты.

* UnFreezeSinglePlayerConversations

Позволяет одиночной игре продолжаться, если открыто окно диалога Strife-типа. Обычно игра замораживается в одиночной игре если идет диалог.

* NoAllies

Превращает союзников во врагов, убирая союзным мобам флаг FRIENDLY.

* ResetHealth

Здоровье восстанавливается до значения свойства Health у актора игрока (дефолт - 100) при вхождении на уровень.

* ResetInventory

Инвентарь возвращается до состояния стартовых итемов актора игрока (дефолт - 50 пуль, пистолет и кулак, т.е. пистолстарт, настраивается у класса игрока).

* Grinding_Polyobj

Полиобъекты будут раздавливать трупы, то есть переводить их в стейт Crushed, если такой имеется. Если нет - будет использован стандартный для этой игры. Тем не менее, итемы не будут раздавлены (в отличие от поведения дверей и давилок).

* No_Grinding_Polyobj

Перезаписывает (отменяет) предыдущий флаг.

* <Compat Option> = [value]

С помощью это флага можно менять настройки совместимости (compatbility options). Задавая настройку без параметров включает её, однако пользователь позже может перезаписывать настройку. Если значение (value) 0, то настройка будет выключена для карты, 1, соответственно, наоборот, несмотря на заданные CVARы. Это позволяет иметь корректное отображение/геймплей с нужными настройками вне зависимости от настроек пользователя.

* DefaultEnvironment = val1[, val2]
DefaultEnvironment = "name"


Задает стандартное звуковое окружение (см. REVERBS). Можно использовать как численные Id, так и имена.

* NoAutosaveHint

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

* UsePlayerStartZ

По умолчанию, z-координата Player Start, заданная в редакторе карт, игнорируется, и игрок будет появляться на полу. Это сделано для совместимости с некоторым картами. При включении этого флага, игроки будут появляться на заданной высоте. Использование этого флага необходимо, например, чтобы игроки спаунились на 3д полу.

* RandomPlayerStarts

По умолчанию, если на карте имеется несколько Player Start одного игрока, при запуске уровня на их местах появятся т.н. voodoo dolls (вкратце: копии тела игрока, разделяющий с ним урон, имеющие возможность поднимать предметы и пересекать экшены, однако не могут управлять игроком). Если включено это свойство, игрок появятся на случайном из установленных стартов.

* PrecacheSounds = "<sound1>", "<sound2>", "<sound3>", ...

Производит предварительное кэширование указанных звуков при загрузке уровня.

* PrecacheTextures = "<texture1>", "<texture2>", "<texture3>", ...

Производит предварительное кэширование указанных текстур при загрузке уровня.

* ForgetState

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

* RememberState

Перезаписывает предыдущее свойство, позволяя сохранять состояние уровня в хабе (нормальное поведение).

* SpawnWithWeaponRaised

Оружие игрока будет сразу же поднято, когда он попадет на этот уровень (не будет анимации доставания оружия).

* ForceFakeContrast

Обычно fake contrast выключен на стенах, принадлежащих сектору с туманом. Если установлен этот флаг, то fake contrast все равно будет установлен.

* ForceWorldPanning

Устанавливает флаг world panning (панорамирование). Все текстуры будут панорамироваться в мировых координатах, а не в текстурных.

* HazardColor = "<color>"
* HazardFlash = "<color>"

This affects Strife's sector damage type that passively builds up over time. HazardColor changes the gradual blend that is used when palette flash is disabled. HazardFlash changes the flashing blend that is used when palette flash is turned on.

* EventHandlers = "<class1>", "<class2>", ...

Добавляет обработчики событий ZScript на карту.

* NeedClusterText

Уровням с этим флагом сохраняют их информационные тексты (кластера) при перезаписи в UMAPINFO.

* NoClusterText

Игнорирует тексты интермиссий для кластеров. Свойство устанавливается, когда UMAPINFO используется для переопределения настроек, в противном случае нет никакой необходимости явно прописывать это свойство.

* EnableSkyboxAO / DisableSkyboxAO

Включает (по умолчанию) / отключает Ambient Occlusion (затемнение на границах соприкосновения полигонов) для скайбоксов.




Описание кластеров (Cluster Definition)
Скрытый текст:


http://zdoom.org/wiki/MAPINFO/Cluster_definition

Кластер/Cluster используется, чтобы писать сообщения после завершения эпизодов, какие мы можем наблюдать почти во всех IWADах.

Описание кластеров начинается со ключевого слова cluster:
cluster <value> { свойства }

value - номер кластера, которые описывает этот блок. 0 не должен использоваться вообще.

Свойства кластеров

* entertext = "<message>"
entertext = lookup, "<keyword>"

<message> - это сообщение, которое будет показано игроку, когда тот только что закончил уровень в другом кластере и входит на уровень в этом кластере. Чтобы сделать сообщение на несколько строчек, выделяйте каждую строчку кавычками и отделяйте запятыми.
Если используете lookup, то будет искаться соответствующий текст, отмеченный <keyword>



Описание эпизодов (Episode definition)
Скрытый текст:


http://zdoom.org/wiki/MAPINFO/Episode_definition

EPISODE COMMANDS

1. clearepisodes

Очищает предыдущие эпизоды. Используется, если в вашем проекте эпизодов меньше, чем в IWADе.

2. episode <maplump> { properties }
episode <maplump> teaser <maplump> { properties }


Substitute the map name of the map that you want the episode to start on for <maplump>. <maplump> can be any lump in the WAD, as long as it is a valid map file. Instead of a map lump, you can also use &wt@01. Using this will make the episode start at the map using warptrans 1 as defined in MAPINFO.
You can also specify a second maplump with the teaser keyword as above to tell ZDoom what map to use if the first is unavailable. This is used by Strife to determine which map to start at based on whether you're playing the Strife demo or the full version. It has limited usage inside PWADs.


РАЗДЕЛ В РАЗРАБОТКЕ



Описание уровней сложности (Skilll definition)
Скрытый текст:


http://zdoom.org/wiki/MAPINFO/Skill_definition

РАЗДЕЛ В РАЗРАБОТКЕ



Описание глобальных игровых (Gameinfo definition)
Скрытый текст:


http://zdoom.org/wiki/MAPINFO/GameInfo_definition

РАЗДЕЛ В РАЗРАБОТКЕ



Настройки MAPINFO для OpenGL-рендера
Скрытый текст:





Руководство только начато, но большая часть работы уже почти выполнена - большинство свойств map описано. Если найдете ошибки - пишите, проверять времени не было.

Рейтинг сообщения: +1, отметил(и): camper
1 2 5
Shadowman
UAC General
Next rank: Unavailable after 0 points
8389

Doom Rate: 2.08

Posts quality: +1986
Ссылка на пост №2 Отправлено: 25.08.15 00:32:28
ChaingunPredator
Сразу такой вопрос. Вот есть например титлмапа, которая загружается вместо стартового экрана. А есть ли такой же аналог для финального экрана, типа эндмапы? Смотрел мапинфо, но не нашел ничего похожего.
Можно создать, конечно, свою эндмапу, но она ничем не будет отличаться от обычной карты, а вот титлмапа имеет свою специфику.
Если конкретно, то мне не нравится хад, который будет на такой эндмапе. На титлмапе никакого хада не показывается.
1 7 2
alekv
- Colonel -
Next rank: = Colonel = after 272 pointsМодератор форума
4168

Doom Rate: 1.87

Posts quality: +949
Ссылка на пост №3 Отправлено: 25.08.15 19:10:59
ChaingunPredator
Да зачетная тема, а есть ли в планах другие lump ?
1 3 1
ChaingunPredator
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 78 pointsМодератор форума
1362

Doom Rate: 2.44

Posts quality: +174
Ссылка на пост №4 Отправлено: 26.08.15 20:28:48
Shadowman
Хад свой? Единственное, что могу предложить, это завести какой-нибудь итем с названием CutScene и дальше в сбаринфо/акс проверять его отсутствие, иначе не рисовать.
alekv
А требуется ли для других? Я начинал писать гайд про особую колдунскую магию в ACS, могу сюда скинуть. (.doc, собирался запилить в HTML)
1 2 5
alekv
- Colonel -
Next rank: = Colonel = after 272 pointsМодератор форума
4168

Doom Rate: 1.87

Posts quality: +949
Ссылка на пост №5 Отправлено: 26.08.15 21:18:01
ChaingunPredator:
А требуется ли для других?

Да по сути все требуется... Например лумп KeyConf, вот мне лично особенно интересно почитать про бинды клавиш, я конечно уже его знаю, но из меня такой читатель англ. текста... Да и другим полезно будет.
ChaingunPredator:
Я начинал писать гайд про особую колдунскую магию в ACS, могу сюда скинуть. (.doc, собирался запилить в HTML)

Особенно надо!!! Такие вещи точно нужны =) Я не знаю что там в HTML, по моему и так удобно (у меня почти вся здум вика на пк сохранена простым ctrl+s =) )

Моя бы воля дак вообще в тему местечко маперов всю вики перенес, только на русском... Жаль англ. не знаю, полюбому всю перевел -_-
1 3 1
DOOMGABR
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 114 points
1176

Doom Rate: 1.87

Posts quality: +773
Ссылка на пост №6 Отправлено: 24.01.16 21:34:36
Ребят, а что означает знак доллара, например, в этой строке

finalemusic = "$MUSIC_READ_M"
[/coub]
SolidJenner
- Master Corporal -
Next rank: = Master Corporal = after 40 points
200

Doom Rate: 1.44

Posts quality: +14
Ссылка на пост №7 Отправлено: 24.01.16 21:56:07
Руководство достойное, даже не новичкам в модинге не помешает перевод некоторых положений и функций.

Shadowman:
Можно создать, конечно, свою эндмапу, но она ничем не будет отличаться от обычной карты, а вот титлмапа имеет свою специфику.

Проще создать эндмапу самому, и, если не хочешь вмешательства игрока, запереть его при спавне в каком нибудь закрытом пространстве, откуда даже его выстрелы слышны не будут. Отключаем хад, затем скриптим с помощью ACS какой-либо сиквенс (какую либо катсцену). Вот тебе и достойная эндмапа.
3
DeXiaZ
- 1st Lieutenant -
Next rank: = 1st Lieutenant = after 138 points
1702

Doom Rate: 2.29

Posts quality: +493
Ссылка на пост №8 Отправлено: 24.01.16 22:11:03

запереть его при спавне в каком нибудь закрытом пространстве, откуда даже его выстрелы слышны не будут.

ОМГ, зачем такие сложности. Просто в ACS заморозить думгая, чтобы любые экшен действия от игрока к герою были проигнорированы. И не надо тогда ничего придумывать с "далекими секторами, где не будет слышно"
1 3 3
StasBFG[iddqd]
-= DoomGod =-
Админ форумаАдмин сайта
3151

Doom Rate: 2.89

Posts quality: +24
Ссылка на пост №9 Отправлено: 25.01.16 00:31:31
Raketa Mjuz:
Ребят, а что означает знак доллара, например, в этой строке

Ссылка на строку из language файла, то есть она может быть разной в зависимости от выбранного языка. По умолчанию это language.enu
1 1 2
alekv
- Colonel -
Next rank: = Colonel = after 272 pointsМодератор форума
4168

Doom Rate: 1.87

Posts quality: +949
Ссылка на пост №10 Отправлено: 03.02.16 11:36:10
Надеюсь статья не заброшена?
1 3 1
ChaingunPredator
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 78 pointsМодератор форума
1362

Doom Rate: 2.44

Posts quality: +174
Ссылка на пост №11 Отправлено: 11.03.21 19:51:59
ВНЕЗАПНО статья обновлена, исправлены надмозгизмы и грамматика, а также добавлены новые свойства. Остальные разделы появятся на днях

Рейтинг сообщения: +4, отметил(и): VladGuardian, Mostcus, Kirov-13, JSO x
1 2 5
Страница 1 из 1Перейти наверх
   Список разделов - Местечко мапперов и моддеров - MAPINFO - новое руководство