Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Тема для новичков. Вопросы по маппингу/моддингу - любые!-2 Пред.  1, 2, 3 ... 42, 43, 44 ... 61, 62, 63  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!-2Ответить
АвторСообщение
camper
- Master Sergeant -
Next rank: = Master Sergeant = after 28 points
432

Doom Rate: 1.43

Posts quality: +253
Ссылка на пост №841 Отправлено: 22.05.22 13:58:38
Привет. Где можно посмотреть/почитать как конвертировать мод из wad в pk3?
JSO x
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 10 points
1280

Doom Rate: 2.29

Posts quality: +669
Ссылка на пост №842 Отправлено: 22.05.22 16:17:59
Основная статья -- ZDoom wiki, "Using ZIPs as WAD replacement" (раздел "How to"). Там перечислены директории, в которые нужно закидывать соответствующие ресурсы, а также аналоги этих директорий в WAD. К примеру из статьи: все спрайты, которые в WAD лежали между "S_START" ("SS_START") и "S_END" ("SS_END"), необходимо положить в "sprites/".

Рейтинг сообщения: +1, отметил(и): camper
2 7 1
Well Done Trooper
Recruit
Next rank: Marine after 4 points
16

Doom Rate: 2

Posts quality: +2
Ссылка на пост №843 Отправлено: 22.05.22 23:03:19
Здраствуйте,помогите найти ответы на некоторые вопросы, которые щекочут мой мозг по ночам.
1.Какие пределы по linedef\'ам, сегментам и т.д для ванили? И как все с этим обстоит в наши дни, при каком лимите можно обреченно вздыхать и идти объединять сектора и удалять лишние verticle\'ы?
2.Можно ли как-нибудь в udf или win-7 соместимых мап эдиторах посмотреть количество visplane\'ов? Не то чтобы я забочусь об оптимизации карты, но если бы она неплохо крутилась на 486х и первопнях, да и вообще была бы совместима с оригиналом doom - это было бы неплохо, как минимум. А то вроде бы лимит visplane\'ов с самого бума было пофикшен вроде, да?
3.В half-life при построении уровня советовалось для оптимизации компиляции bsp делать уровни с длинами в степенях двойки, как обстоят с этим дела в doom и его портах?
3.Вопросы есть ещё по работе крашеров
3.1 Как коммьюнити воспринимаются артефакты от отсутствия текстур. Хочется сделать что то типа магнита-убийцы с помощью крашера без текстур по сайдам, но они отливают артефактами типа \"увидел отсутствующую текстуру на стене и там всё плывёт\", но это будет длиться не более полусекунды при высоте сектора 64.
3.2 Еще вопрос стоит касательно коллизии крашера со спрайтом бочки. Делал ее подрыв микрокрашерами(4x4 маппикселя и меньше) с отсутстующей текстурой чтобы имитировать подрыв взрывчаткой и было не так заметно. потолочный крашер работает как часы, но изза звука его работы ломается восприятие подрыва самой бочки. Поэтому было принято решение экспериментировать с напольным крашером, но я заметил, что он срабатывает не всегда, а конкретно - почти никогда. Даже когда он срабатывает, то после перезапуска карты пять раз может не сработать. Я игрался с различными высотами пола и потолка этого крашера, а также с размерами, но не выявил толком ни минимальной высоты сектора для работы данного трюка ни закономерности удачных подрывов. Единственное, что я понял - этим можно оперировать чтобы как то привнести элемент случайности, однако напольный сектор при смыкании имеет непроходимость и выпирает.И юзать такое наверное лучше где то в недосягаемой игроком зоне. Есть ли у кого наблюдения по этому поводу?
Извините за оч длинный вопрос 3.2, но по короче формулировки не пришли в голову
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1630
Ссылка на пост №844 Отправлено: 23.05.22 02:06:15
Well Done Trooper пишет:
1.Какие пределы по linedef\'ам, сегментам и т.д для ванили? И как все с этим обстоит в наши дни, при каком лимите можно обреченно вздыхать и идти объединять сектора и удалять лишние verticle\'ы?

https://doomwiki.org/wiki/Static_limits
В наши дни обстоят дела так, что если ты не под ваниль маппишь, а под бум, то лимитов нет (разве что по линейным размерам карты, там нодбилдер ломается если размеры больше 32767х32767, если ничего не путаю)

Well Done Trooper пишет:
2.Можно ли как-нибудь в udf или win-7 соместимых мап эдиторах посмотреть количество visplane\'ов? Не то чтобы я забочусь об оптимизации карты, но если бы она неплохо крутилась на 486х и первопнях, да и вообще была бы совместима с оригиналом doom - это было бы неплохо, как минимум. А то вроде бы лимит visplane\'ов с самого бума было пофикшен вроде, да?

Visplane Explorer в редакторе UDB (возможно и в других производных). Да, в буме всё в порядке будет.

Well Done Trooper пишет:
3.В half-life при построении уровня советовалось для оптимизации компиляции bsp делать уровни с длинами в степенях двойки, как обстоят с этим дела в doom и его портах?

Никак

Well Done Trooper пишет:
3.1 Как коммьюнити воспринимаются артефакты от отсутствия текстур. Хочется сделать что то типа магнита-убийцы с помощью крашера без текстур по сайдам, но они отливают артефактами типа \"увидел отсутствующую текстуру на стене и там всё плывёт\", но это будет длиться не более полусекунды при высоте сектора 64.

Плохо относятся. Вроде можно сделать крашер без текстуры вообще в виде самозацикленного сектора https://doomwiki.org/wiki/Making_a_self-referencing_sector

А вообще лучше делать в гздуме и удмф. Там можно сделать убивающий 3д-пол с бесцветной текстурой.

Фиг знает про 3.2, я могу только опять послать в удмф и гздум, там если тебе что-то надо ты это сразу делаешь, а не наблюдаешь за движком :oops:

Рейтинг сообщения: +2, отметил(и): JSO x, Well Done Trooper
2 2 1
JSO x
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 10 points
1280

Doom Rate: 2.29

Posts quality: +669
Ссылка на пост №845 Отправлено: 23.05.22 09:51:48
Well Done Trooper пишет:
3.2 Еще вопрос стоит касательно коллизии крашера со спрайтом бочки. Делал ее подрыв микрокрашерами(4x4 маппикселя и меньше) с отсутстующей текстурой чтобы имитировать подрыв взрывчаткой и было не так заметно. потолочный крашер работает как часы, но изза звука его работы ломается восприятие подрыва самой бочки.

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

Предлагаю также заглянуть в тему с трюками под оригинальный Doom.

Well Done Trooper пишет:
3.1 Как коммьюнити воспринимаются артефакты от отсутствия текстур.

Да, лучше не надо.

ZZYZX пишет:
Visplane Explorer в редакторе UDB (возможно и в других производных)

В первообразных, скорее: в Doom Builder, Doom Builder 2 и GZDoom Builder плагин такой был.

Рейтинг сообщения: +1, отметил(и): Well Done Trooper
2 7 1
theleo_ua
= Colonel =
Next rank: - Commissar - after 260 points
4630

Doom Rate: 1.81

Posts quality: +996
Ссылка на пост №846 Отправлено: 23.05.22 20:45:04
camper пишет:
Привет. Где можно посмотреть/почитать как конвертировать мод из wad в pk3?


консольная прога, которая конвертит вад в пк3: https://github.com/coelckers/wadext/releases

Рейтинг сообщения: +1, отметил(и): Well Done Trooper
3 1
Well Done Trooper
Recruit
Next rank: Marine after 4 points
16

Doom Rate: 2

Posts quality: +2
Ссылка на пост №847 Отправлено: 24.05.22 07:20:20
Как убрать отображение оружия в гоззе? Мне хочется скринов наделать своей первой карты(нет, это не две коробки с монстрами :x )
YURA_111
UAC Sergeant Major
Next rank: Chief Petty Officer after 86 points
764

Doom Rate: 1.98

Posts quality: +136
Ссылка на пост №848 Отправлено: 24.05.22 07:46:21
если требуется скрыть Худ весь - то нажать кнопку +
Well Done Trooper
Recruit
Next rank: Marine after 4 points
16

Doom Rate: 2

Posts quality: +2
Ссылка на пост №849 Отправлено: 24.05.22 09:02:12
YURA_111 пишет:
если требуется скрыть Худ весь - то нажать кнопку +


Не-не-не, это я с 9 лет знаю. Мне нужно чтобы не было Худа и оружия, просто летающая камера. Нашёл всё в гоззе, кроме отключения отображения пушки.
Без udmf, если что

Апдейт: нашёл, что искал. По очереди просматривал в консоли команды. Весь Худ и оружие можно скрыть с помощью команды togglehud, даже рамка при смене масштаба исчезает, вместо нее заливка чёрным цветом. Но при возврате в меню или открытии консоли Худ снова виден, так что при постоянном использовании лучше эту команду забиндить
JSO x
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 10 points
1280

Doom Rate: 2.29

Posts quality: +669
Ссылка на пост №850 Отправлено: 24.05.22 10:37:08
Что-то у меня такой команды нет.

В своё время решил задачу по переключению спрайтов оружия следующим образом:
alias toggle_r_drawplayersprites "eval % + $r_drawplayersprites 1 2 r_drawplayersprites"
bind / toggle_r_drawplayersprites 

По нажатию на прямой слэш вызывался алиас "toggle_r_drawplayersprites", который осуществлял переключение переменной "r_drawplayersprites" с нуля до единицы и наоборот (а точнее, через "r_drawplayersprites = ( r_drawplayersprites + 1 ) % 2").

Рейтинг сообщения: +1, отметил(и): Well Done Trooper
2 7 1
Gadavre
Chief Petty Officer
Next rank: - Warrant Officer - after 92 points
948

Doom Rate: 1.15

Posts quality: +189
Ссылка на пост №851 Отправлено: 25.05.22 09:26:05
Какой то программой кроме фотошопа можно понизить цветность текстуры в png с 32 бит до 24 бит? Как это сделать?
1
camper
- Master Sergeant -
Next rank: = Master Sergeant = after 28 points
432

Doom Rate: 1.43

Posts quality: +253
Ссылка на пост №852 Отправлено: 25.05.22 14:06:19
Извините за глупые вопросы. Карта в UDMF это ведь просто текстовый файл? Почему Ultimate DB не загружает карту в виде тектового файла?
И вообще, возможно ли загрузить карту в какой-либо порт не из wad файла, а непосредственно из текстового файла udmf, который размещается в pk3?
lafoxxx [B0S]
= 1st Lieutenant =
Next rank: - Captain - after 118 points
1972

Doom Rate: 1.39

Posts quality: +903
Ссылка на пост №853 Отправлено: 25.05.22 14:28:16
Gadavre
Microsoft Paint.

Рейтинг сообщения: +2, отметил(и): Gadavre, Well Done Trooper
2 2 4
Gadavre
Chief Petty Officer
Next rank: - Warrant Officer - after 92 points
948

Doom Rate: 1.15

Posts quality: +189
Ссылка на пост №854 Отправлено: 26.05.22 13:54:25
lafoxxx [B0S] пишет:
Microsoft Paint.

Есть еще лучше программа. Намного лучше. Бесплатная и на русском. Называется IrfanView. Есть даже портабл.

Ссылка
1
lafoxxx [B0S]
= 1st Lieutenant =
Next rank: - Captain - after 118 points
1972

Doom Rate: 1.39

Posts quality: +903
Ссылка на пост №855 Отправлено: 26.05.22 17:38:54
Gadavre
Знаю её, отличная, расширяемая и т.д., но больше она для просмотра картинок подходит. И её надо скачивать и устанавливать.
2 2 4
Gadavre
Chief Petty Officer
Next rank: - Warrant Officer - after 92 points
948

Doom Rate: 1.15

Posts quality: +189
Ссылка на пост №856 Отправлено: 26.05.22 23:46:01
lafoxxx [B0S] пишет:
Знаю её, отличная, расширяемая и т.д., но больше она для просмотра картинок подходит. И её надо скачивать и устанавливать.
Ты ошибаешься. с ее помощью можно менять цветность картинки, делать все что делает ms paint. Есть и портабл версия.
1
SSV_Victoryan
UAC Sergeant Major
Next rank: Chief Petty Officer after 41 points
809

Doom Rate: 2.18

Posts quality: +276
Ссылка на пост №857 Отправлено: 17.06.22 14:20:19
Привет, сто лет не появлялся.
Вопрос такой, как то давно я спрашивал как создать кошмарного Арча, что бы он мог воскрешать только кошмарных монстров, а простой Арч только простых. Мне подсказали код, поскольку сам не шарю, но вот спустя приличный срок выяснилось, что этот код убивает фпс почти под ноль. Если монстров на карте несколько десятков(любых и простых и кошмарных) и в режиме смерти(пока лежит труп монстра), фпс падает. Каждая смерть монстра подкашивает фпс сильнее и сильнее(одного и того же). Пока монстры живы проблем нет. Думаю проблема где то в Death.Wait или Death.HelpMe но могу ошибаться.

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

Actor HOTDZombieMan : ZombieMan Replaces ZombieMan
{  DropItem "DropPistol" 256
   States
   {     Death:
		POSS H 5 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
		POSS I 5 A_Scream
		TNT1 A 0 A_DropItem( "DropPistol" )
		POSS J 0 A_UnsetShootable
		POSS J 5 A_UnsetSolid
		POSS K 5
	  Death.Wait:
		POSS L 5
		POSS L 0 A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
		Loop
	  Death.HelpMe:
 		POSS L 1 CanRaise A_CheckProximity( "Death.Wait", "NmArchvile", 64 )
		POSS L 0 CanRaise A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
		Goto Death.Wait
	  XDeath:
		 POSS M 5
		 POSS N 5 A_XScream
		 POSS O 5 A_NoBlocking
		 POSS PQRST 5
		 POSS U 77777
		 Wait
      Raise:
		POSS K 5 A_SetScale(1.0)
		POSS JIH 5
		Goto See
	Raise2:
		POSS L -1
		Stop
	Crush:
		POL5 A -1 A_PlaySound ("Misc/Gibbed")
		Stop
   }
}


Кошмарный Зомби:
Скрытый текст:

Actor NmZombieMan 7401
{  SpawnID 1004
   Health 40
   Bloodcolor 0 72 48
   Renderstyle Translucent
   Alpha 0.7
   Radius 20
   Height 56
   Speed 8
   PainChance 200
   Monster
   +FLOORCLIP -COUNTKILL
   Seesound "grunt/sight"
   Attacksound "grunt/attack"
   Painsound "grunt/pain"
   Deathsound "grunt/death"
   Activesound "grunt/active"
   Obituary "%o was killed by a Nightmare Former Human."
   States
   {  Spawn:
		POS2 AB 10 A_Look
		Loop
      See:
		POS2 AABBCCDD 4 A_Chase
		Loop
      Missile:
		 POS2 E 10 A_FaceTarget
		 POS2 F 4 BRIGHT A_CPosAttack
		 POS2 E 6 A_FaceTarget
		 POS2 F 4 BRIGHT A_CPosAttack
		 POS2 E 1 A_CPosRefire
		 Goto See
      Pain:
		POS2 G 3
		POS2 G 3 A_Pain
		Goto See
	  Death:
		 POS2 H 5 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
		 POS2 I 5 A_Scream
 		TNT1 A 0 A_DropItem( "DropPistol" )
		 TNT1 A 0 A_DropItem( "DropPistol" )
		 POS2 J 0 A_UnsetShootable
		 POS2 J 5 A_UnsetSolid
		 POS2 K 5
	  Death.Wait:
		 POS2 L 5
		 POS2 L 0 A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
		 Loop
	  Death.HelpMe:
		 POS2 L 1 CanRaise A_CheckProximity( "Death.Wait", "HOTDArchvile", 64 )
		 POS2 L 0 CanRaise A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
		 Goto Death.Wait
      XDeath:
		POS2 M 5
		POS2 N 5 A_XScream
		POS2 O 5 A_NoBlocking
		POS2 PQRST 5
		POS2 U 77777
		Wait
      Raise:
		POS2 K 5 A_SetScale(1.0)
		 POS2 JIH 5
		Goto See
	  Raise2:
		 POS2 L -1
		 Stop
      Crush:
		PON3 A -1 A_PlaySound ("Misc/Gibbed")
		Stop
   }
}



Ну и общий декорейт со всеми монстрами от куда взял код зомбарей:
Скрытый текст:

Actor HOTDZombieMan : ZombieMan Replaces ZombieMan
{  DropItem "DropPistol" 256
   States
   {  Death:
         POSS H 5 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         POSS I 5 A_Scream
         TNT1 A 0 A_DropItem( "DropPistol" )
         POSS J 0 A_UnsetShootable
         POSS J 5 A_UnsetSolid //A_NoBlocking
         POSS K 5
		 //POSS L -1
		 //Stop
	  Death.Wait:
         POSS L 5
         POSS L 0 A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Loop
	  Death.HelpMe:
         POSS L 1 CanRaise A_CheckProximity( "Death.Wait", "NmArchvile", 64 )
         POSS L 0 CanRaise A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Goto Death.Wait
	  XDeath:
		 POSS M 5
		 POSS N 5 A_XScream
		 POSS O 5 A_NoBlocking
		 POSS PQRST 5
		 POSS U 77777
		 Wait
      Raise:
         POSS K 5 A_SetScale(1.0)
         POSS JIH 5
         Goto See
	  Raise2:
		 POSS L -1
		 Stop
      Crush:
         //POL5 A 0 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         POL5 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor HOTDShotgunGuy : ShotgunGuy Replaces ShotgunGuy
{  States
   {  Death:
         SPOS H 5 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         SPOS I 5 A_Scream
         TNT1 A 0 A_DropItem( "Shotgun" )
         SPOS J 0 A_UnsetShootable
         SPOS J 5 A_UnsetSolid //A_NoBlocking
         SPOS K 5 
         //SPOS L -1
		 //Stop
	  Death.Wait:
         SPOS L 5
         SPOS L 0 A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Loop
	  Death.HelpMe:
         SPOS L 1 CanRaise A_CheckProximity( "Death.Wait", "NmArchvile", 64 )
         SPOS L 0 CanRaise A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Goto Death.Wait
      XDeath:
         SPOS M 5
         SPOS N 5 A_XScream
         SPOS O 5 A_NoBlocking
         SPOS PQRST 5
         SPOS U 77777
         Wait
      Raise:
         SPOS L 5 A_SetScale(1.0)
         SPOS KJIH 5
         Goto See
	  Raise2:
		 SPOS L -1
		 Stop
      Crush:
         POL5 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor HOTDChaingunGuy : ChaingunGuy Replaces ChaingunGuy
{  AttackSound "grunt/attack"
   States
   {  Death:
         CPOS H 5 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         CPOS I 5 A_Scream
         TNT1 A 0 A_DropItem( "Chaingun" )
         CPOS J 0 A_UnsetShootable
         CPOS J 5 A_UnsetSolid //A_NoBlocking //
         CPOS KLM 5 
         //CPOS N -1
		 //Stop
	  Death.Wait:
         CPOS N 5
         CPOS N 0 A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Loop
	  Death.HelpMe:
         CPOS N 1 CanRaise A_CheckProximity( "Death.Wait", "NmArchvile", 64 )
         CPOS N 0 CanRaise A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Goto Death.Wait
      XDeath:
         CPOS O 5 
         CPOS P 5 A_XScream
         CPOS Q 5 A_NoBlocking
         CPOS RS 5
         CPOS T 77777
         Wait
      Raise:
         CPOS N 5 A_SetScale(1.0)
		 CPOS MLKJIH 5
         goto See
	  Raise2:
		 CPOS N -1
		 Stop
      Crush:
         POL5 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor HOTDImp : DoomImp Replaces DoomImp
{  States
   {  Spawn:
         TROO AB 10 A_Look
         Loop
      See:
         TROO AABBCCDD 3 A_Chase
         Loop
      Melee:
      Missile:
         TROO EF 8 A_FaceTarget
         TROO G 6 A_TroopAttack 
         Goto See
      Pain:
         TROO H 2
         TROO H 2 A_Pain
         Goto See
      Death:
         TROO I 8 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         TROO J 8 A_Scream
         TROO K 0 A_UnsetShootable
         TROO K 6 A_UnsetSolid //A_NoBlocking //
         TROO L 6
		 //TROO M -1
		 //Stop
	  Death.Wait:
         TROO M 5
         TROO M 0 A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Loop
	  Death.HelpMe:
         TROO M 1 CanRaise A_CheckProximity( "Death.Wait", "NmArchvile", 64 )
         TROO M 0 CanRaise A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Goto Death.Wait
      XDeath:
         TROO N 5
         TROO O 5 A_XScream
         TROO P 5
         TROO Q 5 A_NoBlocking
         TROO RST 5
         TROO U 77777
         Wait
      Raise:
         TROO M 8 A_SetScale(1.0)
		 TROO LKJI 8
         Goto See
	  Raise2:
		 TROO M -1
		 Stop
      Crush:
         POL5 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor HOTDDemon : Demon Replaces Demon
{  States
   {  Death:
         SARG I 8 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         SARG J 8 A_Scream
		 SARG K 4
         SARG L 0 A_UnsetShootable
         SARG L 4 A_UnsetSolid //A_NoBlocking //
         SARG M 4
         //SARG N -1
		 //Stop
	  Death.Wait:
         SARG N 1
         SARG N 0 A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Loop
	  Death.HelpMe:
         SARG N 1 CanRaise A_CheckProximity( "Death.Wait", "NmArchvile", 64 )
         SARG N 0 CanRaise A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Goto Death.Wait
      Raise:
         SARG N 5 A_SetScale(1.0)
         SARG MLKJI 5
         Goto See
	  Raise2:
		 SARG N -1
		 Stop
      Crush:
         POL5 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor HOTDSpectre : HOTDDemon Replaces Spectre
{  +SHADOW
   RenderStyle Translucent
   Alpha 0.5
   SeeSound "spectre/sight"
   AttackSound "spectre/melee"
   PainSound "spectre/pain"
   DeathSound "spectre/death"
   ActiveSound "spectre/active"
   HitObituary "%o was eaten by a Spectre."
}

Actor HOTDCacodemon : Cacodemon Replaces Cacodemon
{  Bloodcolor 0 0 192
   States
   {  Death:
         HEAD G 8 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         HEAD H 8 A_Scream
		 HEAD I 8
		 HEAD J 0 A_UnsetShootable
		 HEAD J 8 A_UnsetSolid //A_NoBlocking //
         HEAD K 8 A_SetFloorClip
		 //HEAD L -1
		 //Stop
	  Death.Wait:
         HEAD L 1 //A_SetFloorClip
         HEAD L 0 A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Loop
	  Death.HelpMe:
         HEAD L 1 CanRaise A_CheckProximity( "Death.Wait", "NmArchvile", 64 )
         HEAD L 0 CanRaise A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Goto Death.Wait
      Raise:
         HEAD L 8 A_UnSetFloorClip
         HEAD K 8 A_SetScale(1.0)
		 HEAD JIHG 8
         Goto See
	  Raise2:
		 HEAD L -1
		 Stop
      Crush:
         PON1 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor HOTDHellKnight : HellKnight Replaces HellKnight
{  Bloodcolor 32 72 32
   States
   {  Death:
         BOS2 I 8 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         BOS2 J 8 A_Scream
		 BOS2 K 8
		 BOS2 L 0 A_UnsetShootable
		 BOS2 L 8 A_UnsetSolid //A_NoBlocking //
		 BOS2 MN 8
		 //BOS2 O -1
		 //Stop
	  Death.Wait:
         BOS2 O 1
         BOS2 O 0 A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Loop
	  Death.HelpMe:
         BOS2 O 1 CanRaise A_CheckProximity( "Death.Wait", "NmArchvile", 64 )
         BOS2 O 0 CanRaise A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Goto Death.Wait
      Raise:
         BOS2 O 8 A_SetScale(1.0)
         BOS2 NMLKJI  8
         Goto See
	  Raise2:
		 BOS2 O -1
		 Stop
      Crush:
         PON2 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor HOTDBaronOfHell : BaronOfHell Replaces BaronOfHell
{  Bloodcolor 32 72 32
   States
   {  Death:
         BOSS I 8 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         BOSS J 8 A_Scream
		 BOSS K 8
		 BOSS L 0 A_UnsetShootable
		 BOSS L 8 A_UnsetSolid //A_NoBlocking //
		 BOSS M 8
		 BOSS N 8 A_BossDeath
         //BOSS O -1 A_BossDeath
		 //Stop
	  Death.Wait:
         BOSS O 1
         BOSS O 0 A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Loop
	  Death.HelpMe:
         BOSS O 1 CanRaise A_CheckProximity( "Death.Wait", "NmArchvile", 64 )
         BOSS O 0 CanRaise A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Goto Death.Wait
      Raise:
         BOSS O 8 A_SetScale(1.0)
         BOSS NMLKJI  8
         Goto See
	  Raise2:
		 BOSS O -1
		 Stop
      Crush:
         PON2 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor HOTDRevenant : Revenant Replaces Revenant 
{  States
   {  Death:
         SKEL L 7 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)	
         SKEL M 7
         SKEL N 7 A_Scream
         SKEL O 0 A_UnsetShootable
		 SKEL O 7 A_UnsetSolid //A_NoBlocking //
         SKEL P 7
         //SKEL Q -1
		 //Stop
	  Death.Wait:
         SKEL Q 1
         SKEL Q 0 A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Loop
	  Death.HelpMe:
         SKEL Q 1 CanRaise A_CheckProximity( "Death.Wait", "NmArchvile", 64 )
         SKEL Q 0 CanRaise A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Goto Death.Wait
      Raise:
         SKEL Q 5 A_SetScale(1.0)
		 SKEL PONML 5
         Goto See
	  Raise2:
		 SKEL Q -1
		 Stop
      Crush:
         POL5 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor HOTDArachnotron : Arachnotron Replaces Arachnotron
{  States
   {  Death:
         BSPI J 0 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)	
         BSPI J 20 A_Scream
		 BSPI K 0 A_UnsetShootable
		 BSPI K 7 A_UnsetSolid //A_NoBlocking //
		 BSPI LMN 7
		 BSPI O 7 A_BossDeath
		 //BSPI P -1 A_BossDeath
		 //Stop
	  Death.Wait:
         BSPI P 1
         BSPI P 0 A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 128 )
         Loop
	  Death.HelpMe:
         BSPI P 1 CanRaise A_CheckProximity( "Death.Wait", "NmArchvile", 128 )
         BSPI P 0 CanRaise A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 128 )
         Goto Death.Wait
      Raise:
         BSPI P 5 A_SetScale(1.0)
         BSPI ONMLKJ 5
         Goto See+1
	  Raise2:
		 BSPI P -1
		 Stop
      Crush:
         POL5 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor HOTDFatso : Fatso Replaces Fatso
{  States
   {  Death:
         FATT K 6 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)	
         FATT L 6 A_Scream
		 FATT M 0 A_UnsetShootable
		 FATT M 6 A_UnsetSolid //A_NoBlocking //
		 FATT NOPQR 6
		 FATT S 6 A_BossDeath
		 //FATT T -1 A_BossDeath
		 //Stop
	  Death.Wait:
         FATT T 1
         FATT T 0 A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 96 )
         Loop
	  Death.HelpMe:
         FATT T 1 CanRaise A_CheckProximity( "Death.Wait", "NmArchvile", 96 )
         FATT T 0 CanRaise A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 96 )
         Goto Death.Wait
      Raise:
         FATT R 5 A_SetScale(1.0)
         FATT QPONMLK 5
         Goto See
	  Raise2:
		 FATT T -1
		 Stop
      Crush:
         POL5 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor HOTDWolfensteinSS : WolfensteinSS Replaces WolfensteinSS
{  States
   {  Death:
         SSWV I 5 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         SSWV J 0 A_UnsetShootable
         SSWV J 5 A_Scream
         SSWV K 0 A_UnsetSolid //A_NoBlocking
         SSWV KL 5
         //SSWV M -1
         //Stop
	  Death.Wait:
         SSWV M 1
         SSWV M 0 A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Loop
	  Death.HelpMe:
         SSWV M 1 CanRaise A_CheckProximity( "Death.Wait", "NmArchvile", 64 )
         SSWV M 0 CanRaise A_CheckProximity( "Death.HelpMe", "HOTDArchvile", 64 )
         Goto Death.Wait
      XDeath:
		SSWV N 5 
		SSWV O 5 A_XScream
		SSWV P 5 A_NoBlocking
		SSWV QRSTU 5
		SSWV V 77777
		Wait
      Raise:
		SSWV M 5 A_SetScale(1.0)
		SSWV LKJI 5
		Goto See
	  Raise2:
		 SSWV M -1
		 Stop
      Crush:
         POL5 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

//=======NIGHTMARE=================

Actor NmZombieMan 7401
{  SpawnID 1004
   Health 40
   Bloodcolor 0 72 48
   Renderstyle Translucent
   Alpha 0.7
   Radius 20
   Height 56
   Speed 8
   PainChance 200
   Monster
   +FLOORCLIP -COUNTKILL
   Seesound "grunt/sight"
   Attacksound "grunt/attack"
   Painsound "grunt/pain"
   Deathsound "grunt/death"
   Activesound "grunt/active"
   //DropItem "DropPistol" 256
   //DropItem "DropPistol" 256
   Obituary "%o was killed by a Nightmare Former Human."
   States
   {  Spawn:
         POS2 AB 10 A_Look
         Loop
      See:
         POS2 AABBCCDD 4 A_Chase
         Loop
      Missile:
		 POS2 E 10 A_FaceTarget
		 POS2 F 4 BRIGHT A_CPosAttack
		 POS2 E 6 A_FaceTarget
		 POS2 F 4 BRIGHT A_CPosAttack
		 POS2 E 1 A_CPosRefire
		 Goto See//Missile//+1
      Pain:
         POS2 G 3
         POS2 G 3 A_Pain
         Goto See
	  Death:
		 POS2 H 5 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
		 POS2 I 5 A_Scream
         TNT1 A 0 A_DropItem( "DropPistol" )
         TNT1 A 0 A_DropItem( "DropPistol" )
		 POS2 J 0 A_UnsetShootable
		 POS2 J 5 A_UnsetSolid //A_NoBlocking //
		 POS2 K 5
		 //POS2 L -1
		 //Stop
		 Goto Death.Wait
	  Death.Wait:
		 POS2 L 5
		 POS2 L 0 A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
		 Loop
	  Death.HelpMe:
		 POS2 L 1 CanRaise A_CheckProximity( "Death.Wait", "HOTDArchvile", 64 )
		 POS2 L 0 CanRaise A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
		 Goto Death.Wait

      XDeath:
         POS2 M 5
         POS2 N 5 A_XScream
         POS2 O 5 A_NoBlocking
         POS2 PQRST 5
         POS2 U 77777
         Wait
      Raise:
         POS2 K 5 A_SetScale(1.0)
		 POS2 JIH 5
         Goto See
	  Raise2:
		 POS2 L -1
		 Stop
      Crush:
         PON3 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor NmShotgunGuy 7402
{  SpawnID 1001
   Health 60
   Bloodcolor 0 72 48
   Renderstyle Translucent
   Alpha 0.7
   Radius 20
   Height 56
   Mass 100
   Speed 8
   PainChance 170
   Monster
   +FLOORCLIP -COUNTKILL
   Seesound "shotguy/sight"
   Attacksound "weapons/sshotf"
   Painsound "shotguy/pain"
   Deathsound "shotguy/death"
   Activesound "shotguy/active"
   //Dropitem "SuperShotgun" 256
   Obituary "%o was shot by a Nightmare Sargeant."
   States
   {  Spawn:
         SPO2 AB 10 A_Look
         Loop
      See:
         SPO2 AABBCCDD 3 A_Chase
         Loop
      Missile:
		 SPO2 E 10 A_FaceTarget
		 SPO2 F 13 Bright A_CustomBulletAttack(11.2, 7.1, 20, 3, "BulletPuff")//(2, 2, 1, 20)
		 //(11.2, 7.1, 20_shtuk, 5_damage, "BulletPuff")
		 SPO2 E 10 A_FaceTarget
         Goto See
      Pain:
         SPO2 G 3
         SPO2 G 3 A_Pain
         Goto See
      Death:
         SPO2 H 5 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         SPO2 I 5 A_Scream
         TNT1 A 0 A_DropItem( "SuperShotgun" )
         SPO2 J 0 A_UnsetShootable
         SPO2 J 5 A_UnsetSolid //A_NoBlocking //
         SPO2 K 5
		 //SPO2 L -1
		 //Stop
	  Death.Wait:
         SPO2 L 5
         SPO2 L 0 A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
         Loop
	  Death.HelpMe:
         SPO2 L 1 CanRaise A_CheckProximity( "Death.Wait", "HOTDArchvile", 64 )
         SPO2 L 0 CanRaise A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
         Goto Death.Wait
	  XDeath:
		 SPO2 M 5
		 SPO2 N 5 A_XScream
		 SPO2 O 5 A_NoBlocking
		 SPO2 PQRST 5
		 SPO2 U 77777
		 Wait
      Raise:
         SPO2 L 5 A_SetScale(1.0)
         SPO2 KJIH 5
         Goto See
	  Raise2:
		 SPO2 L -1
		 Stop
      Crush:
         PON3 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor NmChaingunGuy 7403
{  SpawnID 1002
   Health 140
   Bloodcolor 0 72 48
   Renderstyle Translucent
   Alpha 0.7
   Radius 20
   Height 56
   Mass 100
   Speed 8
   PainChance 170
   Monster
   +FLOORCLIP -COUNTKILL
   Seesound "chainguy/sight"
   Attacksound "grunt/attack" //"chainguy/attack"
   Painsound "chainguy/pain"
   Deathsound "chainguy/death"
   Activesound "chainguy/active"
   //Dropitem "Chaingun" 256
   //Dropitem "Chaingun" 256
   Obituary "%o was perforated by a Nightmare Chaingun Guy."
   States
   {  Spawn:
         CPO2 AB 10 A_Look
         Loop
      See:
         CPO2 AABBCCDD 3 A_Chase
         Loop
      Missile:
         CPO2 E 10 A_FaceTarget
         CPO2 FE 3 bright A_CPosAttack //4
         CPO2 F 1 A_CPosRefire
         Goto Missile+1
      Pain:
         CPO2 G 3
         CPO2 G 3 A_Pain
         Goto See
      Death:
         CPO2 H 5 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         CPO2 I 5 A_Scream
         TNT1 A 0 A_DropItem( "Chaingun" )
         TNT1 A 0 A_DropItem( "Chaingun" )
         CPO2 J 0 A_UnsetShootable
         CPO2 J 5 A_UnsetSolid //A_NoBlocking 
         CPO2 KLM 5
         //CPO2 N -1
		 //Stop
	  Death.Wait:
         CPO2 N 5
         CPO2 N 0 A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
         Loop
	  Death.HelpMe:
         CPO2 N 1 CanRaise A_CheckProximity( "Death.Wait", "HOTDArchvile", 64 )
         CPO2 N 0 CanRaise A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
         Goto Death.Wait
      XDeath:
         CPO2 O 5 
         CPO2 P 5 A_XScream
         CPO2 Q 5 A_NoBlocking
         CPO2 RS 5
         CPO2 T 77777
         Wait
      Raise:
         CPO2 N 5 A_SetScale(1.0)
		 CPO2 MLKJIH 5
         Goto See
	  Raise2:
		 CPO2 N -1
		 Stop
      Crush:
         PON3 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor NmImp 7404
{  SpawnID 1005
   Health 120
   Bloodcolor 0 72 48
   Renderstyle Translucent
   Alpha 0.7
   Radius 20
   Height 56
   Mass 100
   Speed 8
   PainChance 200
   Monster
   +FLOORCLIP -COUNTKILL
   SeeSound "imp/sight"
   PainSound "imp/pain"
   DeathSound "imp/death"
   ActiveSound "NmMonsters/active"
   MeleeSound "imp/melee"
   Obituary "%o was cursed by a Nightmare Imp."
   HitObituary "%o was touched by a Nightmare Imp."
   MissileType NmImpBall
   States
   {  Spawn:
         TRO2 AB 10 A_Look
         Loop
      See:
         TRO2 AABBCCDD 3 A_Chase
         Loop
      Melee:
      Missile:
         TRO2 EF 8 A_FaceTarget
         TRO2 G 8 A_CustomComboAttack("NmImpBall", 32, 3 * random(1, 8), "imp/melee")
         Goto See
      Pain:
         TRO2 H 2
         TRO2 H 2 A_Pain
         Goto See
      Death:
         TRO2 I 8 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         TRO2 J 8 A_Scream
         TRO2 K 0 A_UnsetShootable
         TRO2 K 6 A_UnsetSolid //A_NoBlocking //
         TRO2 L 6
		 //TRO2 M -1
		 //Stop
	  Death.Wait:
         TRO2 M 5
         TRO2 M 0 A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
         Loop
	  Death.HelpMe:
         TRO2 M 1 CanRaise A_CheckProximity( "Death.Wait", "HOTDArchvile", 64 )
         TRO2 M 0 CanRaise A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
         Goto Death.Wait
      XDeath:
         TRO2 N 5
         TRO2 O 5 A_XScream
         TRO2 P 5
         TRO2 Q 5 A_NoBlocking
         TRO2 RST 5
         TRO2 U 77777
         Wait
      Raise:
		 TRO2 M 8 A_SetScale(1.0)
		 TRO2 LKJI 8
         Goto See
	  Raise2:
		 TRO2 M -1
		 Stop
      Crush:
         PON3 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor NmImpBall
{  SpawnID 1040
   Scale 1.0
   Radius 6
   Height 8
   Speed 15
   FastSpeed 20
   Damage 6
   Projectile
   +RANDOMIZE
   RenderStyle Add
   Alpha 1
   SeeSound "NmBall/attack"
   DeathSound "imp/shotx"
   States
   {  Spawn:
         MAN2 AB 4 BRIGHT
         Loop
      Death:
         BA21 CDE 6 BRIGHT
         Stop
   }
}

Actor NmSpectre 7406
{  SpawnID 1009
   Health 300
   Bloodcolor 0 72 48
   Renderstyle Translucent
   Alpha 0.7
   PainChance 180
   Speed 10
   Radius 30
   Height 56
   Mass 400
   Monster
   +FLOORCLIP -COUNTKILL
   SeeSound "demon/sight"
   AttackSound "demon/melee"
   PainSound "demon/pain"
   DeathSound "demon/death"
   ActiveSound "NmMonsters/active"
   HitObituary "%o was eaten by a Nightmare Spectre."
   States
   {  Spawn:
         SAR2 AB 10 A_Look
         Loop
      See:
         SAR2 AABBCCDD 2 A_Chase
         Loop
      Melee:
         SAR2 EF 8 A_FaceTarget
         SAR2 G 8 A_SargAttack
         Goto See
      Pain:
         SAR2 H 2
         SAR2 H 2 A_Pain
         Goto See
      Death:
         SAR2 I 8 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         SAR2 J 8 A_Scream
		 SAR2 K 4
         SAR2 L 0 A_UnsetShootable
         SAR2 L 4 A_UnsetSolid //A_NoBlocking //
         SAR2 M 4
		 //SAR2 N -1
		 //Stop
	  Death.Wait:
         SAR2 N 1
         SAR2 N 0 A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
         Loop
	  Death.HelpMe:
         SAR2 N 1 CanRaise A_CheckProximity( "Death.Wait", "HOTDArchvile", 64 )
         SAR2 N 0 CanRaise A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
         Goto Death.Wait
      Raise:
         SAR2 N 5 A_SetScale(1.0)
         SAR2 MLKJI 5
         Goto See
	  Raise2:
		 SAR2 N -1
		 Stop
      Crush:
         PON3 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor NmCacodemon 7407
{  SpawnID 1019
   Health 800
   Bloodcolor 0 72 48
   Renderstyle Translucent
   Alpha 0.7
   Radius 31
   Height 56
   Mass 400
   Speed 8
   PainChance 128
   Monster
   +FLOAT +NOGRAVITY -COUNTKILL
   Seesound "caco/sight"
   Painsound "caco/pain"
   Deathsound "caco/death"
   Activesound "NmMonsters/active"
   Attacksound "imp/melee"
   Obituary "%o was smitten by a Nightmare Cacodemon."
   Hitobituary "%o got too close to a Nightmare Cacodemon."
   MissileType NmImpBall
   States
   {  Spawn:
         HEA2 A 10 A_Look
         Loop
      See:
         HEA2 A 3 A_Chase
         Loop
      Melee:
         HEA2 B 5 A_FaceTarget
         HEA2 C 5 A_FaceTarget
	     HEA2 D 5 BRIGHT A_CustomComboAttack("NmImpBall", 16, 10 * random(1, 6))
         Goto See
      Missile:
         HEA2 B 5 A_FaceTarget
         HEA2 C 5 A_FaceTarget
	     HEA2 D 3 BRIGHT A_CustomMissile("NmImpBall", 16, 0, 0) // NmImpBall
	     HEA2 D 3 BRIGHT A_CustomMissile("NmImpBall", 16, 0, -20) // NmImpBall
         HEA2 D 3 BRIGHT A_CustomMissile("NmImpBall", 16, 0, 20) // NmImpBall
         Goto See
      Pain:
         HEA2 E 3
         HEA2 E 3 A_Pain
         HEA2 F 6
         Goto See
      Death:
         HEA2 G 8 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         HEA2 H 8 A_Scream
		 HEA2 I 8
		 HEA2 J 0 A_UnsetShootable
		 HEA2 J 8 A_UnsetSolid //A_NoBlocking //
         HEA2 K 8 A_SetFloorClip
		 //HEA2 L -1
		 //Stop
	  Death.Wait:
         HEA2 L 1 //A_SetFloorClip
         HEA2 L 0 A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
         Loop
	  Death.HelpMe:
         HEA2 L 1 CanRaise A_CheckProximity( "Death.Wait", "HOTDArchvile", 64 )
         HEA2 L 0 CanRaise A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
         Goto Death.Wait
      Raise:
         HEA2 L 8 A_UnSetFloorClip
         HEA2 K 8 A_SetScale(1.0)
		 HEA2 JIHG 8
         Goto See
	  Raise2:
		 HEA2 L -1
		 Stop
      Crush:
         PON3 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor NmBaronofHell 7409
{  SpawnID 1003
   Health 2000
   Bloodcolor 128 0 0
   renderstyle translucent
   Alpha 0.7
   Radius 24
   Height 64
   Mass 1000
   Speed 8
   PainChance 50
   Monster
   +FLOORCLIP +BOSSDEATH -COUNTKILL
   SeeSound "baron/sight"
   PainSound "baron/pain"
   DeathSound "baron/death"
   ActiveSound "NmMonsters/active"
   Obituary "%o was cursed by a Nightmare Baron of Hell."
   HitObituary "%o was touched by a Nightmare Baron of Hell."
   MissileType NmBaronBall
   States
   {  Spawn:
         BOS4 AB 10 A_Look
         Loop
      See:
         BOS4 AABBCCDD 3 A_Chase
         Loop
      Melee:
         BOS4 EF 8 A_FaceTarget
		 BOS4 G 8 A_CustomComboAttack ("NmBaronBall", 32, 10 * random (1, 8), "baron/melee")
		 Goto See
      Missile:
         BOS4 EF 8 A_FaceTarget
		 BOS4 G 8 A_CustomMissile("NmBaronBall", 32, 0, 0)
         BOS4 EF 6 A_FaceTarget
		 BOS4 G 8 A_CustomMissile("NmBaronBall", 32, 0, 0)
         BOS4 EF 4 A_FaceTarget
		 BOS4 G 8 A_CustomMissile("NmBaronBall", 32, 0, 0)
         Goto See
      Pain:
         BOS4 H 2
         BOS4 H 2 A_Pain
         Goto See
      Death:
         BOS4 I 8 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         BOS4 J 8 A_Scream
		 BOS4 K 8
		 BOS4 L 0 A_UnsetShootable
		 BOS4 L 8 A_UnsetSolid//A_NoBlocking //
		 BOS4 M 8
		 BOS4 N 8 A_BossDeath
		 //BOS4 O -1 A_BossDeath
		 //Stop
	  Death.Wait:
         BOS4 O 1
         BOS4 O 0 A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
         Loop
	  Death.HelpMe:
         BOS4 O 1 CanRaise A_CheckProximity( "Death.Wait", "HOTDArchvile", 64 )
         BOS4 O 0 CanRaise A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
         Goto Death.Wait
      Raise:
         BOS4 O 8 A_SetScale(1.0)
         BOS4 NMLKJI  8
         Goto See
	  Raise2:
		 BOS4 O -1
		 Stop
      Crush:
         PON4 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor NmBaronBall
{  SpawnID 1141
   Scale 1.0
   Radius 6
   Height 8
   Speed 20
   Damage 10
   Projectile
   +RANDOMIZE
   RenderStyle Add
   Alpha 1
   SeeSound "NmBall/attack"
   DeathSound "baron/shotx"
   States
   {  Spawn:
         BA27 AB 4 BRIGHT
         Loop
      Death:
         BA27 CDE 6 BRIGHT
         Stop
   }
}

Actor NmHellKnight : NmBaronofHell 7408
{  SpawnID 1113
   Health 1000
   Bloodcolor 0 72 48
   SeeSound "knight/sight"
   PainSound "knight/pain"
   DeathSound "knight/death"
   ActiveSound "NmMonsters/active"
   Obituary "%o was cursed by a Nightmare Hell Knigh."
   HitObituary "%o was touched by a Nightmare Hell Knigh."
   States
   {  Spawn:
         BOS3 AB 10 A_Look
         Loop
      See:
         BOS3 AABBCCDD 3 A_Chase
         Loop
      Melee:
         BOS3 EF 8 A_FaceTarget
         BOS3 G 8 A_CustomComboAttack ("NmBaronBall", 32, 10 * random (1, 8), "baron/melee")
         Goto See
      Missile:
         BOS3 EF 8 A_FaceTarget
         BOS3 G 8 A_CustomMissile("NmBaronBall", 32, 0, 0)
         BOS3 EF 4 A_FaceTarget
         BOS3 G 4 A_CustomMissile("NmBaronBall", 32, 0, 0)
         Goto See
      Pain:
         BOS3 H 2
         BOS3 H 2 A_Pain
         Goto See
      Death:
         BOS3 I 8 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)
         BOS3 J 8 A_Scream
		 BOS3 K 8
		 BOS3 L 0 A_UnsetShootable
		 BOS3 L 8 A_UnsetSolid //A_NoBlocking //
		 BOS3 MN 8
		 //BOS3 O -1
		 //Stop
	  Death.Wait:
         BOS3 O 1
         BOS3 O 0 A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
         Loop
	  Death.HelpMe:
         BOS3 O 1 CanRaise A_CheckProximity( "Death.Wait", "HOTDArchvile", 64 )
         BOS3 O 0 CanRaise A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
         Goto Death.Wait
      Raise:
         BOS3 O 8 A_SetScale(1.0)
         BOS3 NMLKJI  8
         Goto See
	  Raise2:
		 BOS3 O -1
		 Stop
      Crush:
         PON3 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor NmRevenant 7410
{  SpawnID 1020
   Health 600
   Bloodcolor 0 72 48
   Renderstyle Translucent
   Alpha 0.7
   Radius 20
   Height 56
   Mass 500
   Speed 10
   PainChance 100
   Monster
   MeleeThreshold 196
   +FLOORCLIP -COUNTKILL +MISSILEMORE //-MISSILEMORE
   Seesound "skeleton/sight"
   AttackSound "weapons/rbeam"
   Painsound "skeleton/pain"
   Deathsound "skeleton/death"
   Activesound "NmMonsters/active"
   //Damage 15 //RailGun
   Hitobituary "%o was punched by a Nightmare Revenant."
   Obituary "%o was shot by a Nightmare Revenant."
   MissileType NmRevenantTracer
   States
   {  Spawn:
         SKE2 AB 10 A_Look
         Loop
      See:
         SKE2 AABBCCDDEEFF 2 A_Chase
         Loop
      Melee:
         SKE2 G 0 A_FaceTarget
         SKE2 G 6 A_SkelWhoosh
         SKE2 H 6 A_FaceTarget
         SKE2 I 6 A_SkelFist
         Goto See
      Missile:
         SKE2 J 0 BRIGHT A_FaceTarget
         SKE2 J 10 BRIGHT A_FaceTarget
         SKE2 K 10 A_CustomMissile("NmRevenantTracer", 32, 0, 0) //SKE2 K 15 A_MonsterRail
         SKE2 K 10 A_FaceTarget
         Goto See
      Pain:
         SKE2 L 5
         SKE2 L 5 A_Pain
         Goto See
      Death:
         SKE2 L 7 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)	
         SKE2 M 7
         SKE2 N 7 A_Scream
         SKE2 O 0 A_UnsetShootable
		 SKE2 O 7 A_UnsetSolid //A_NoBlocking //
         SKE2 P 7
		 //SKE2 Q -1
		 //Stop
	  Death.Wait:
         SKE2 Q 1
         SKE2 Q 0 A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
         Loop
	  Death.HelpMe:
         SKE2 Q 1 CanRaise A_CheckProximity( "Death.Wait", "HOTDArchvile", 64 )
         SKE2 Q 0 CanRaise A_CheckProximity( "Death.HelpMe", "NmArchvile", 64 )
         Goto Death.Wait
      Raise:
         SKE2 Q 5 A_SetScale(1.0)
		 SKE2 PONML 5
         Goto See
	  Raise2:
		 SKE2 Q -1
		 Stop
      Crush:
         PON3 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor NmRevenantTracer
{  SpawnID 1145
   Renderstyle Translucent //RenderStyle Add
   Alpha 0.7
   Radius 11
   Height 8
   Speed 13 //10
   Damage 10
   Projectile 
   +SEEKERMISSILE +RANDOMIZE
   SeeSound "skeleton/attack"
   DeathSound "skeleton/tracex"
   States
   {  Spawn:
         TRA2 A 2 BRIGHT A_Tracer
         Loop
      Death:
         BA21 C 8 BRIGHT
         BA21 D 6 BRIGHT
         BA21 E 4 BRIGHT
         Stop
   }
}

Actor NmArachnotron 7413
{  SpawnID 1006
   Health 1000
   Bloodcolor 0 72 48
   Renderstyle Translucent
   Alpha 0.7
   Radius 64
   Height 64
   Mass 600
   Speed 12
   PainChance 128
   Monster
   +FLOORCLIP +BOSSDEATH -COUNTKILL
   Seesound "NmArachnotron/sight"
   Painsound "baby/pain"
   Deathsound "NmArachnotron/death"
   Activesound "NmMonsters/active"
   Obituary "%o let an Nightmare Arachnotron."
   //Dropitem "Cell" 256
   //Dropitem "Cell" 256
   MissileType NmArachnotronPlasma
   States
   {  Spawn:
         BSP2 AB 10 A_Look
         loop
      See:
         BSP2 A 20
         BSP2 A 3 A_BabyMetal
         BSP2 ABBCC 3 A_Chase
         BSP2 D 3 A_BabyMetal
         BSP2 DEEFF 3 A_Chase
         goto See+1
      Missile:
         BSP2 A 20 bright A_FaceTarget
         BSP2 G 4 bright A_MissileAttack
         BSP2 H 4 bright
         BSP2 H 1 bright A_SpidRefire
         goto Missile+1
      Pain:
         BSP2 I 3
         BSP2 I 3 A_Pain
         goto See+1
      Death:
         BSP2 J 0 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)	
         BSP2 J 20 A_Scream
         TNT1 A 0 A_DropItem( "Cell" )
         TNT1 A 0 A_DropItem( "Cell" )
         BSP2 K 0 A_UnsetShootable
         BSP2 K 7 A_UnsetSolid //A_NoBlocking //

	     BSP2 L 0 A_CustomMissile("NmArachnotronPlasma", 16, 0, 0)
	     BSP2 L 0 A_CustomMissile("NmArachnotronPlasma", 16, 0, 180)
	     BSP2 L 0 A_CustomMissile("NmArachnotronPlasma", 16, 0, 45)
	     BSP2 L 0 A_CustomMissile("NmArachnotronPlasma", 16, 0, 90)
	     BSP2 L 0 A_CustomMissile("NmArachnotronPlasma", 16, 0, 135)
	     BSP2 L 0 A_CustomMissile("NmArachnotronPlasma", 16, 0, -45)
	     BSP2 L 0 A_CustomMissile("NmArachnotronPlasma", 16, 0, -90)
	     BSP2 L 0 A_CustomMissile("NmArachnotronPlasma", 16, 0, -135)

		 BSP2 LMN 7
		 BSP2 O 7 A_BossDeath
		 //BSP2 P -1 A_BossDeath
		 //Stop
	  Death.Wait:
         BSP2 P 1
         BSP2 P 0 A_CheckProximity( "Death.HelpMe", "NmArchvile", 128 )
         Loop
	  Death.HelpMe:
         BSP2 P 1 CanRaise A_CheckProximity( "Death.Wait", "HOTDArchvile", 128 )
         BSP2 P 0 CanRaise A_CheckProximity( "Death.HelpMe", "NmArchvile", 128 )
         Goto Death.Wait
      Raise:
         BSP2 P 5 A_SetScale(1.0)
         BSP2 ONMLKJ 5
         Goto See+1
	  Raise2:
		 BSP2 P -1
		 Stop
      Crush:
         PON3 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}

Actor NmArachnotronPlasma 
{  SpawnID 1142
   Radius 13
   Height 8
   Speed 25
   Damage 7
   Renderstyle Add
   Alpha 1
   SeeSound "NmArachnotronPlasma/attack"
   DeathSound "baby/shotx"
   Projectile
   +RANDOMIZE
   States
   {  Spawn:
         IFOG ABC 5 BRIGHT
         Loop
      Death:
         IFOG ABCDE 3 BRIGHT
         Stop
   }
}

Actor NmFatso 7414
{  SpawnID 1112
   Health 1200
   Bloodcolor 0 72 48
   Renderstyle Translucent
   Alpha 0.7
   Radius 48
   Height 64
   Mass 1000
   Speed 8
   PainChance 80
   Monster
   +FLOORCLIP +BOSSDEATH -COUNTKILL
   Seesound "fatso/sight"
   Painsound "fatso/pain"
   Deathsound "fatso/death"
   Activesound "NmMonsters/active"
   Obituary "%o was squashed by a Nightmare Mancubus."
   //Dropitem "Cell" 256
   //Dropitem "Cell" 256
   //Dropitem "Cell" 192
   //Dropitem "Cell" 128
   MissileType BFGBall
   States
   {  Spawn:
         FAT2 AB 15 A_Look
         Loop
      See:
         FAT2 AABBCCDDEEFF 4 A_Chase
         Loop
      Missile:
         FAT2 G 2 A_FatRaise
         FAT2 G 30 A_PlayWeaponSound("weapons/bfgf")
         FAT2 H 10 BRIGHT A_MissileAttack // See BFGshot
         FAT2 IG 5 A_FaceTarget
         FAT2 H 10 BRIGHT A_MissileAttack // See BFGshot
         FAT2 IG 5 A_FaceTarget
         Goto See
      Pain:
         FAT2 J 3
         FAT2 J 3 A_Pain
         Goto See
      Death:
         FAT2 K 6 A_SetScale(ScaleX * RandomPick(-1.0, 1.0), ScaleY)	
         FAT2 L 6 A_Scream
         TNT1 A 0 A_DropItem( "Cell" )
         TNT1 A 0 A_DropItem( "Cell" )
         TNT1 A 0 A_DropItem( "Cell" )
		 FAT2 M 0 A_UnsetShootable
		 FAT2 M 6 A_UnsetSolid //A_NoBlocking //
		 FAT2 NOPQR 6
		 FAT2 S 6 A_BossDeath
		 //FAT2 T -1 A_BossDeath
		 //Stop
	  Death.Wait:
         FAT2 T 1
         FAT2 T 0 A_CheckProximity( "Death.HelpMe", "NmArchvile", 96 )
         Loop
	  Death.HelpMe:
         FAT2 T 1 CanRaise A_CheckProximity( "Death.Wait", "HOTDArchvile", 96 )
         FAT2 T 0 CanRaise A_CheckProximity( "Death.HelpMe", "NmArchvile", 96 )
         Goto Death.Wait
      Raise:
         FAT2 R 5 A_SetScale(1.0)
         FAT2 QPONMLK 5
         Goto See
	  Raise2:
		 FAT2 T -1
		 Stop
      Crush:
         PON3 A -1 A_PlaySound ("Misc/Gibbed")
         Stop
   }
}


Рейтинг сообщения: +1, отметил(и): theleo_ua
2
theleo_ua
= Colonel =
Next rank: - Commissar - after 260 points
4630

Doom Rate: 1.81

Posts quality: +996
Ссылка на пост №858 Отправлено: 17.06.22 17:47:01
SSV_Victoryan пишет:
Мне подсказали код


вроде как подсказывал я, но возможно после меня кто-то подсказал вариант лучше, точно не помню уже

SSV_Victoryan пишет:
Если монстров на карте несколько десятков(любых и простых и кошмарных) и в режиме смерти(пока лежит труп монстра), фпс падает.


очень странно, даже 90 монстров это слишком мало чтобы фпс падал. Какое у тебе железо?
3 1
SSV_Victoryan
UAC Sergeant Major
Next rank: Chief Petty Officer after 41 points
809

Doom Rate: 2.18

Posts quality: +276
Ссылка на пост №859 Отправлено: 17.06.22 19:02:26
theleo_ua пишет:
очень странно, даже 90 монстров это слишком мало чтобы фпс падал. Какое у тебе железо?

дело не в железе точно.
Скрытый текст:

2
YURA_111
UAC Sergeant Major
Next rank: Chief Petty Officer after 86 points
764

Doom Rate: 1.98

Posts quality: +136
Ссылка на пост №860 Отправлено: 18.06.22 11:37:29
Доброго времени суток!

В Ультимат Дум Билдере создаем уровень. Он весь 3Д пол. Когда ставишь позицию Player по Z координате (чтобы появлялся на 3д Поле) ничего не происходит - игрок все равно оказывается внизу (где обычный пол).
Вводим чит FLY - проверяем что 3д пол работает - все норм, но именно спавн изначально не работает на нем. Может кто знает как с этим бороться?
Страница 43 из 63Перейти наверх Пред.  1, 2, 3 ... 42, 43, 44 ... 61, 62, 63  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!-2