Автор | Сообщение |
Michael63 Lieutenant Colonel
| 3858 |
Doom Rate: 2 Posts quality: +843 |
Отправлено: 26.08.23 11:34:58 | | | Подскажите, плиз, кто уже проходил, порядок действий для выкладывания вада на DoomWorld. Хочу попробовать запустить свою "Ностальгию", но желательно не сильно отвлекаясь на это. Я пока там не регистрировался. | |
|
1 |
1 |
2 |
|
|
| |
BeeWen Lieutenant Colonel
| | 3456 |
Doom Rate: 1.61 Posts quality: +858 |
Отправлено: 26.08.23 11:55:16 | | | Для начала нужна регистрация, затем создание темы желательно с подробным указанием специфики. И ссылку с общедоступного файлообменника типа гугл-диска. |
|
|
1 |
1 |
1 |
|
|
| |
Michael63 Lieutenant Colonel
| 3858 |
Doom Rate: 2 Posts quality: +843 |
Отправлено: 29.08.23 08:47:20 | | | На всякий случай продублирую здесь вопрос о баге, который не знаю, как исправить. Не уровне есть секрет. Линия, перед которой игрок сейчас стоит, опускает сектор, который прямо за этой линией.
Если нажать, то он опустится, и там будет проход.
Но при опускании правая свечка оказывается почему-то не на том секторе, где её центр, а на том, который опускается. Т.е. в начале опускания свечка мгновенно оказывается наверху и начинает двигаться вниз.
Что это вообще за баг, и можно ли с ним что-то сделать?
Порт - GZDoom. | |
|
1 |
1 |
2 |
|
|
| |
Dron12261 - Warrant Officer -
| 1092 |
Doom Rate: 4.83 Posts quality: +539 |
Отправлено: 29.08.23 09:44:51 | | | Michael63 пишет: | Что это вообще за баг, и можно ли с ним что-то сделать?
Порт - GZDoom. |
Это только на GZDoom или на остальных портах тоже? Или карта на эксклюзивном для гозы UDMF?
Скорее всего просто хитбокс свечки задевает тот сектор опускающийся. В закрытом состоянии сектор прилегает к потолку и там нет места для акторов, как только сектор начинает опускаться, появляется место и актор автоматом отображается на самом высоком секторе, который этот актор задевает. Попробуй отодвинуть свечку немного от этого сектора, чтобы она его не задевала. |
Рейтинг сообщения: +2, отметил(и): JSO x, N00b |
|
1 |
2 |
2 |
|
|
| |
Michael63 Lieutenant Colonel
| 3858 |
Doom Rate: 2 Posts quality: +843 |
Отправлено: 29.08.23 10:42:02 | | | Dron12261, не UDMF, формат Boom (плюс использование GLDDEFSb и пары других гоззовских фич, которые относятся к OpenGl hardware renderer), просто я сейчас играю только в Гозе. Т.е. тестировал только в ней. Но вот что интересно Там левая и правая свечки стоят симметрично, хитбокс у них одинаковый и цилиндрический, но нежелательный эффект происходит только с одной свечкой. | |
|
1 |
1 |
2 |
|
|
| |
Dron12261 - Warrant Officer -
| 1092 |
Doom Rate: 4.83 Posts quality: +539 |
Отправлено: 29.08.23 10:45:38 | | | Michael63 пишет: | но нежелательный эффект происходит только с одной свечкой. |
Попробуй протестировать этот момент на других не ZDoom-овских портах (например DSDA или Woof!). И все же поэкспериментируй с отодвиганием свечки. Не ZDoom, потому что он изменяет поведение думовской физики и иногда изредка ее ломает. | |
|
1 |
2 |
2 |
|
|
| |
HellDoomer 666 = Master Corporal =
| 258 |
Doom Rate: 1.82 Posts quality: +5 |
Отправлено: 01.09.23 12:05:32 | | | Всем привет, давно не заходил сюда, и тут, создавая очередной проект, встрял на следующем моменте. Проект пилю под gzdoom v 3.8 (у меня стабильная) UDMF формат
Миссия игрока:
Для выхода из локации - необходимо провести ключ по скроллу. Ключ спавнится по кнопке (это работает)
Если ключ падает в дырку (то есть игрок не успел изменить поворот скролла(пока не пойму как его сделать правильно), то кнопка его создания блокируется до тех пор, пока не будет убит какой-нибудь монстр) Это первое.
Второе - не понятно, может ли предмет пересекать линию и активировать действие на ней...
А так дальше, по убийству монстра - кнопка спавна ключа - разблокируется и все имеющиеся скроллы (если игрок их успел изменить до этого) - сбрасываются на изначальные позиции | |
|
| |
N00b Chief Petty Officer
| 922 |
Doom Rate: 2.15 Posts quality: +384 |
Отправлено: 01.09.23 12:54:04 | | | HellDoomer 666
Попробовал реализовать, что написано. Сойдёт так? | |
|
| |
HellDoomer 666 = Master Corporal =
| 258 |
Doom Rate: 1.82 Posts quality: +5 |
Отправлено: 01.09.23 17:40:47 | | | Не совсем так, но для практики сойдёт, благодарю.
Если по-этапно, то так:
1. Игрок спавнит ключ
2. Игрок меняет направление скролла у нескольких секторов, с различными направлениями
3. Ловим ключ
Если скролл указан не верно и ключ попал в яму, то спавним монстров и делаем кнопку спавна ключа в исходной позиции блокируемой
4. Убиваем монстров - они разблокируют кнопку и сбросят все скроллы в исходное состояние
Тут я не могу сообразить, как сделать |
Рейтинг сообщения: +1, отметил(и): N00b |
|
| |
N00b Chief Petty Officer
| 922 |
Doom Rate: 2.15 Posts quality: +384 |
Отправлено: 01.09.23 17:53:02 | | | Ну у меня там в каком-то виде есть всё, кроме сбрасывания скроллеров в исходное состояние. Понятно ли, как задавать скорость и направление скролла?
Прямо заблокировать/разблокировать кнопку (а не просто вывести другое сообщение) можно, например, с помощью SetLineSpecial и SetLineTexture. Если монстров несколько, то можно в цикле с Delay(1) проверять ThingCount(T_NONE, tid). | |
|
| |
HellDoomer 666 = Master Corporal =
| 258 |
Doom Rate: 1.82 Posts quality: +5 |
Отправлено: 01.09.23 18:03:08 | | | N00b пишет: | Понятно ли, как задавать скорость и направление скролла? |
Вот это мне не понятно пока, остальное, вроде, можно домыслить. Как знаю, можно тежить кнопку спавна и создать через SetLineSpecial) | |
|
| |
N00b Chief Petty Officer
| 922 |
Doom Rate: 2.15 Posts quality: +384 |
Отправлено: 01.09.23 18:21:48 | | | Скриптовая версия требуемой функции Scroll_Floor принимает 4 аргумента:
Scroll_Floor(tag, x-move, y-move, type)
Тег и тип — понятно, а два средних параметра образуют вектор, параллельно которому будет скроллиться пол, и чем вектор длиннее, тем прокрутка быстрее (пропорционально длине этого вектора). Система координат обычная (как в Doom Builder): ось X направлена на восток, Y на север. Например, Scroll_Floor(tag, 0, -16, SCROLL_AND_CARRY) поведёт текстуру на юг, Scroll_Floor(tag, -16, -16, SCROLL_AND_CARRY) на юго-запад, причём в проекции на "север-юг" у них будет скорость одинаковая. |
|
|
| |
Michael63 Lieutenant Colonel
| 3858 |
Doom Rate: 2 Posts quality: +843 |
Отправлено: 01.09.23 22:12:06 | | | Какой может быть максимальная высота сектора в уровнях следующих форматов:
Limit removing (complevel 2)
Boom (complevel 9)
MBF21 (complevel 21)
чтобы порты нормально проглатывали?
Зависит ли ограничение по высоте одного сектора от каких-то других характеристик геометрии уровня? | |
|
1 |
1 |
2 |
|
|
| |
HellDoomer 666 = Master Corporal =
| 258 |
Doom Rate: 1.82 Posts quality: +5 |
Отправлено: 01.09.23 22:57:33 | | | Кто подскажет, как тут скрипт переправить так, чтобы при изменении скорости движения скролла - спавнил только 1 предмет, а не "мульон", пока не пройдёт время?
Script "FB_RED_CARD" (void)
{
while(1) {
if((GetActorX(666)>=7296.0&&GetActorX(666)<=7552.0)&&(GetActorY(666)>=3328.0&&GetActorY(666)<=3392.0)) OnEscalator=1;
else OnEscalator=0;
if(OnEscalator)
{
second++;
speed=dspeed+dspeed*(((second-second%175)+1)/175*2); //each 5 seconds
if (speed == 112)
{
Thing_Spawn (73,152,0,74); // spawn health bonus
}
if (speed == 240)
{
Thing_Spawn (73,11,0,74); // spawn clip bonus
}
if (speed == 400)
{
Thing_Spawn (73,22,0,74); // spawn armor bonus
}
if (speed == 528)
{
Thing_Spawn (73,86,0,74); // spawn keycard
}
} else {
second=0;
speed=dspeed;
}
Scroll_Floor(194,-speed,0,2);
Scroll_Floor(195,-speed,0,2);
print(d:OnEscalator,s:"\n",d:speed,s:"\n",d:(second%60/10));
delay(1);
}
} | |
|
| |
SilverMiner = Master Sergeant =
| 474 |
Doom Rate: 2.23 Posts quality: +189 |
Отправлено: 01.09.23 23:06:01 | | | Michael63 пишет: | Какой может быть максимальная высота сектора в уровнях следующих форматов:
Limit removing (complevel 2)
Boom (complevel 9)
MBF21 (complevel 21)
чтобы порты нормально проглатывали? |
так как пол и потолок в структуре mapsector_t - шорты, а это другими словами int16_t, то это от -32768 до 32767.
Высота сектора получается 65535.
Но: криспи дум вроде артефачил уже где-то на -16384. Рисовал у меня арахисовую кашу во всём пространстве от пола до потолка (пол был очень низко, а потолок вроде на 128)
Michael63 пишет: | Зависит ли ограничение по высоте одного сектора от каких-то других характеристик геометрии уровня? |
Не должно | |
|
| |
Michael63 Lieutenant Colonel
| 3858 |
Doom Rate: 2 Posts quality: +843 |
Отправлено: 02.09.23 10:40:54 | | | SilverMiner пишет: | Но: криспи дум вроде артефачил уже где-то на -16384. |
Я опытным путём тоже заметил похожую цифру, только даже не в Криспи Дум, а в Гоззе, с картой в формате Бум. И расстояние было по горизонтали. Но цифра была очень похожа. Так что, наверно, поставлю себе рамки от -8192 до 8191, или даже от -8000 до 8000. | |
|
1 |
1 |
2 |
|
|
| |
N00b Chief Petty Officer
| 922 |
Doom Rate: 2.15 Posts quality: +384 |
Отправлено: 02.09.23 11:30:28 | | | HellDoomer 666
А скорость при этом должна меняться рывками, как в скрипте? Можно ввести ещё переменную prevspeed и блок с условиями переписать так (не забывая обнулять prevspeed в блоке else):
if (speed > prevspeed)
{
... //четыре if-а
prevspeed = speed;
}
| |
|
| |
HellDoomer 666 = Master Corporal =
| 258 |
Doom Rate: 1.82 Posts quality: +5 |
Отправлено: 02.09.23 20:08:21 | | | N00b пишет: | А скорость при этом должна меняться рывками, как в скрипте? Можно ввести ещё переменную prevspeed и блок с условиями переписать так (не забывая обнулять prevspeed в блоке else): |
Ага, но кажется ничего не изменится в итоге. Как много итемов спавнил - так и будет их дальше создавать, а так глюк получается | |
|
| |
N00b Chief Petty Officer
| 922 |
Doom Rate: 2.15 Posts quality: +384 |
Отправлено: 02.09.23 21:51:01 | | | HellDoomer 666
Можно посмотреть вад с примером? | |
|
| |
Mikle = Warrant Officer =
| 1223 |
Doom Rate: 1.95 Posts quality: +548 |
Отправлено: 06.09.23 09:55:52 | | | Атрибут "Block Sound".
Подскажите по работе этого атрибута, делаю все стены сектора, где находится монстр, с этим атрибутом, но он всё равно просыпается от выстрела. В чём может быть причина? |
|
|
1 |
3 |
|
|
| |