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

Doom Rate: 1.98

Posts quality: +130
Ссылка на пост №761 Отправлено: 04.09.21 13:49:36
Всем привет. A_ChangeFlag("NOCLIP", 1) - кто может подсказать, почему такая штука не работает у игрока ?
qwe8013
= UAC Gunner =
Next rank: - Corporal - after 14 points
66

Doom Rate: 2

Posts quality: +22
Ссылка на пост №762 Отправлено: 05.09.21 21:28:14
Хотелось бы спросить по поводу шейдеров в UDMF картах.
Есть Lump GLDEFS следующего содержания:
HardwareShader Texture CRATE2
{
	Shader SHADER1
}

и Lump SHADER1 следующего содержания:
uniform float timer;
vec4 Process(vec4 color)
{
  return color;
}


При попытке запустить GZDOOM пишет: "Unable to load SHADER1" В чём может быть проблема (не считая мозга)?
HellDoomer 666
- Master Corporal -
Next rank: = Master Corporal = after 20 points
220

Doom Rate: 1.79

Posts quality: +4
Ссылка на пост №763 Отправлено: 07.09.21 12:50:03
Всем привет. Как заставить монстра проходить сквозь "портал" (line_setportal)? Если монстр находится в секторе рядом с порталом, то должен срабатывать некий триггер, указывающий монстру на проход через портал (портал интерактивный). Порт gzdoom 3.8
qwe8013
= UAC Gunner =
Next rank: - Corporal - after 14 points
66

Doom Rate: 2

Posts quality: +22
Ссылка на пост №764 Отправлено: 07.09.21 14:11:39
В общем сам отвечу на свой вопрос, надо пихать wad в pk3 архив, и шейдер тоже в pk3 архив, но не в wad, тогда всё работает, можно ли обойтись без pk3 архива я так и не понял.

Рейтинг сообщения: +3, отметил(и): VladGuardian, RastaManGames, JSO x
JSO x
UAC Sergeant Major
Next rank: UAC Sergeant Major after 46 points
714

Doom Rate: 2.25

Posts quality: +301
Ссылка на пост №765 Отправлено: 07.09.21 14:43:57
Кто работал с цветовыми картами -- как свои FIXEDCOLORMAP создавать? По умолчанию их около тридцати двух штук (чёрно-белая инвертированность для неуязвимости из Doom, в Strife экран вроде как в жёлто-чёрную палитру перекрашивался, и подобное), но я так и не понял, где же находится их объявление: в (g-/q-/l-)zdoom.pk3 и в zd_extra.pk3 их будто нет.

* * *

На вопрос Юрия ответ уже был, но не на форуме. Чтобы кто-либо не запаривался с ответом ещё раз, приведу его под спойлером:
Скрытый текст:



"bNOCLIP" устанавливается игроку принудительно каждый такт:
virtual void CheckCheats() {
		let player = self.player;
		// No-clip cheat
		if ((player.cheats & (CF_NOCLIP | CF_NOCLIP2)) == CF_NOCLIP2)
		{ // No noclip2 without noclip
			player.cheats &= ~CF_NOCLIP2;
		}

    // Here:
		bNoClip = (player.cheats & (CF_NOCLIP | CF_NOCLIP2) || Default.bNoClip);
		if (player.cheats & CF_NOCLIP2)
		{
			bNoGravity = true;
		}
		else if (!bFly && !Default.bNoGravity)
		{
			bNoGravity = false;
		}
}


Переменная читов игрока сама по себе ни на что не влияет, но её состояние проверяется/может проверяться в других местах. В данном случае она и только она является источником информации для принудительного изменения (именно изменения, не сохранения) "bNOCLIP" актора игрока. Та самая строчка, исполняемая каждый такт, в переводе на русский звучит так:

"ЕСЛИ у игрока в переменной читов установлен один из двух флагов "Cheat_NOCLIP[2]" ИЛИ ЕСЛИ у игрока ещё с default-блока (со свойств актора) установлен флаг "bNOCLIP", ТО устанавливаем ему фактический флаг прохождения сквозь плотные объекты "bNOCLIP", ИНАЧЕ -- снимаем последний".

Из этого следует, что каждую 1/35 секунды флаг НЕпривязки актора к твёрдому миру либо остаётся взведённым, если изначально он таким был, либо форсированно и по-любому будет изменён в зависимости от читов, но не от предыдущего состояния фактического "bNOCLIP".


Для решения этого можно либо менять флаг внутри "player.cheats", либо переписать виртуальную функцию.

Если первое -- следует дописать в код ZScript-игрока следующее:
action void A_ChangePlayerNoclip( bool set = false ) {
    if ( set )
        player.cheats |= CF_NOCLIP;
    else
        player.cheats &= ~CF_NOCLIP;
}

После этого функцию можно будет использовать в наследованном Decorate-классе игрока, например. Если то же нужно для оружия/инвентаря -- добавляешь ещё проверку на владельца ("if ( PlayerPawn( owner ) ) { <…> }").

Второй вариант мне как-то меньше нравится.

(P. S.: есть ещё третий, через морф в игрока с уже предустановленным флагом "+NOCLIP", но с ним есть проблема -- оставить то же количество жизней, что было у предыдущей формы).



Добавлено спустя 1 день 1 час 57 минут 50 секунд:

* * *

Дополню свой вопрос.

Не один раз наблюдал, что в старых *.WAD существуют колормапы определённого цвета а-ля "GRAYMAP", "REDMAP", "GREENMAP", "BLUEMAP", "YELLOMAP" и другие, однако же я ни разу не видел, чтобы они хоть как-то использовались -- вижу, что всё-таки они полезны в каком-то случае, но на картах такого не замечал. И, в любом случае, это немного не то, что требуется -- мне нужна именно перекраска экрана, а не текстуры/сектора, под иную палитру/под иной COLORMAP.

NB ADD: на LZDoom, GL-рендерер, изменение значения "int16 player.fixedcolormap" показывает следующие результаты:
-1) Стандартный COLORMAP;
0) Инверсия (== бессмертие в Doom);
1) Жёлто-чёрный;
2) Красно-чёрный;
3) Зелёно-чёрный;
4) Сине-чёрный (== WATERMAP?);
Любой другой в диапазоне [-32768; -2] ∪ [5; 32767]) Обычный COLORMAP без затемнения, то есть отсутствие такой "постобработки".

Этот список соответствует предсозданным значениям из "Powerup.Color", и, собственно, его-то я и хочу расширить, добавив в него дополнительные blend-карты (вернее, поставить свои COLORMAP или их ZDoom-аналоги в доступ для "player.fixedcolormap").

P. S.: команды "testcolor", "testblend" и "testfade" отчего-то не действует в OpenGL-рендерере. Надеюсь, это не зависит от того, что OpenGL в целом не способен поддерживать подобное -- цветные сектора-то отрисовывает.

Рейтинг сообщения: +3, отметил(и): VladGuardian, YURA_111, RastaManGames
1 5
qwe8013
= UAC Gunner =
Next rank: - Corporal - after 14 points
66

Doom Rate: 2

Posts quality: +22
Ссылка на пост №766 Отправлено: 12.09.21 16:55:05
Ещё один дурацкий вопрос. Скачал с realm667 evil eyes различных цветов, закинул в pk3-архив рядом с wad-ом, проставил в DECORATE Actor-ам номера. Всё вроде-бы нормально... в редакторе:

Но вот в игре (gzdoom) всё выглядит так:

WTF?
VladGuardian
= Commissar =
Next rank: - UAC Commissar - after 431 points
5369

Doom Rate: 1.28

Posts quality: +1753
Ссылка на пост №767 Отправлено: 12.09.21 17:19:10
qwe8013 пишет:
закинул в pk3-архив рядом с wad-ом,

В строке запуска, файл монстрика тоже нужно подключать:
gzdoom.exe -iwad doom2.wad -file <твой_вад> <монстр_1> <монстр_2> ...
(он НЕ подключится автоматически, если явно не указать)
4 10 22
ChaingunPredator
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 122 pointsМодератор форума
1318

Doom Rate: 2.48

Posts quality: +132
Ссылка на пост №768 Отправлено: 12.09.21 19:42:33
qwe8013
Как правило, в таких случаях неплохо бы посмотреть ошибки в консоли гздума
1 2 5
qwe8013
= UAC Gunner =
Next rank: - Corporal - after 14 points
66

Doom Rate: 2

Posts quality: +22
Ссылка на пост №769 Отправлено: 13.09.21 18:51:07
Поместил все данные на злые глаза в wad (а не рядом -- в pk3 архив), всё работает.

Рейтинг сообщения: +2, отметил(и): VladGuardian, RastaManGames
qwe8013
= UAC Gunner =
Next rank: - Corporal - after 14 points
66

Doom Rate: 2

Posts quality: +22
Ссылка на пост №770 Отправлено: 17.09.21 21:17:25
Пишу я тут PostProcess шейдер (UDMF). Сделал так:
layout(binding=0) uniform sampler2D tex;
vec4 pixelpos;

void main()
{
	FragColor = texture(tex, pixelpos.xy);
}

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

Что я делаю не так?
Страница 39 из 39Перейти наверх Пред.  1, 2, 3 ... 37, 38, 39
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!-2