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

Doom Rate: 0.54

Posts quality: +411
Ссылка на пост №421 Отправлено: 18.02.20 23:45:43
Каким образом в вад можно добавить новый статичный объект декорации (то же дерево), что бы тот же гздумбёлдер/слэйд его видел (в случае со слйэдом можно через файл конфигурации, но сам гздум актора почему-то "цеплять" отказывается, и вылазит <i>). На тех же здумфорумах как ни странно ничего внятного на эту тему не нашёл.

Рейтинг сообщения: +1, отметил(и): VladGuardian
Герр Смертоносец
Chief Petty Officer
Next rank: Chief Petty Officer after 63 points
877

Doom Rate: 1.29

Posts quality: +785
Ссылка на пост №422 Отправлено: 19.02.20 11:50:34
SLON
Editor number-то прописан? Ни с чем не конфликтует?
2
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1630
Ссылка на пост №423 Отправлено: 19.02.20 12:40:02
SLON
Кидай вад и тебе сразу дадут список статей на здумвики которые ты не прочитал :x

Рейтинг сообщения: +2, отметил(и): VladGuardian, N00b
2 2 1
MAN_WITH_GUN
Chief Petty Officer
Next rank: Chief Petty Officer after 90 points
850

Doom Rate: 2.53

Posts quality: +529
Ссылка на пост №424 Отправлено: 20.02.20 19:58:29
У меня есть весьма странный вопрос, на который в 90% случаев не получу ответ: У меня есть карта под бум с множеством детайла, есть одно место, из-за которого у меня в последнее время начались появляться HOM'ы в тех местах, где их никогда не было и не могло быть, а также ломались другие куски карты, превращая их в неразборчивое месиво, как и мой вопрос. И причём это происходит не только в самом буме, а и в остальных портах. Я всю карту пронюхал и до сих пор не понял каким раком она резко искривилась? Есть предположения, что всё из-за большого кол-ва мидл-текстур, разбросанных в небе, но блин, всё равно не понимаю в чём проблема.
Может и выглядит как обычная болтовня нежели на чётко поставленный вопрос, но мне нужны советы на этот счёт. Сталкиваюсь с этим впервые.
1 1
YURA_111
UAC Sergeant Major
Next rank: Chief Petty Officer after 86 points
764

Doom Rate: 1.98

Posts quality: +136
Ссылка на пост №425 Отправлено: 20.02.20 20:35:06
MAN_WITH_GUN

А размер карты часом не превышает допустимый максимум?
MAN_WITH_GUN
Chief Petty Officer
Next rank: Chief Petty Officer after 90 points
850

Doom Rate: 2.53

Posts quality: +529
Ссылка на пост №426 Отправлено: 20.02.20 23:56:21
YURA_111 пишет:
А размер карты часом не превышает допустимый максимум?


Есть определённый лимит? У меня локация примерно 10000 маппикселей в длину и в ширину.
1 1
YURA_111
UAC Sergeant Major
Next rank: Chief Petty Officer after 86 points
764

Doom Rate: 1.98

Posts quality: +136
Ссылка на пост №427 Отправлено: 21.02.20 11:11:10
Насчет BOOM не могу сказать - но вот конкретно в GZDOOM это -16384 и 16383 по обеим осям (хотя пишут что якобы -32767 и 32767 ). В этих пределах работает корректно. Если вылезать за эти пределы - начинаются фокусы, причем некоторые увидешь не сразу...
MAN_WITH_GUN
Chief Petty Officer
Next rank: Chief Petty Officer after 90 points
850

Doom Rate: 2.53

Posts quality: +529
Ссылка на пост №428 Отправлено: 21.02.20 12:52:23
YURA_111
Постарался убрать пару деталей и урезать саму локацию ,блин, помогло действительно. Но лишился множества красивых мест. . .
Возможно из-за самих размеров карта выдавала глюки, т.к не может сразу много деталей прогружать. Очень странно, т.к я уже подобное делал и Boom не выдавал никаких багов.
1 1
Never
Recruit
Next rank: Recruit after 8 points
2

Doom Rate: 2

Ссылка на пост №429 Отправлено: 22.02.20 19:14:19
играя на старом ноуте, заметил такую проблему, при выходе из gzdoom выдает ошибку, также не сохраняются настройки
*** Fatal Error ***
Address not mapped to object (signal 11)
Address: 0x60
система: linux mint 19.2
gzdoom version g3.8.1_legacy
SAM
= Lance Corporal =
Next rank: - Master Corporal - after 1 points
199

Doom Rate: 1.86

Posts quality: +17
Ссылка на пост №430 Отправлено: 02.03.20 01:16:58
ребята всем привет! всех с первым днем весны) в общем у меня редкая и странная проблема, назвал я ее "вирус в вадах" короче говоря добрался я до своего очень старого мода "smod.wad" сделан он мной по мотивам мода для халфы но очень прост и банален... Проблема с этим вадом такова, внутри имеются разноименные текст-файлы для каждой модели (монстра) по отдельности так вот двое из этих файлов перестали быть текстовыми (исправление и копирование текста в новый "тхт" не помогают) соответственно randomspawner их не видит, в dcorate листе они прописаны ....что это может и как лечить???
qwe8013
= Corporal =
Next rank: - Lance Corporal - after 14 points
116

Doom Rate: 1.93

Posts quality: +41
Ссылка на пост №431 Отправлено: 08.03.20 19:48:47
Приветствую всех. Некоторое время назад выкладывал wad с одним уровнем на данном форуме, собирался продолжить, но по некоторым причинам, к сожалению, не мог. Сейчас работаю над вторым уровнем, и тут появилась проблема: в одной из комнат второго уровня в игре начинаются тормоза, как лучше всего это побороть?
Вад: https://dropmefiles.com/Dbxmo (тормоза в комнате с деревянным ящиком, окружённым свечами).
Если что, то работаю под Arch Linux, память 12 GB, процессор Intel® Pentium(R) CPU G620 @ 2.60GHz × 2, порт -- gzdoom
nailzx128
- Lance Corporal -
Next rank: = Lance Corporal = after 24 points
136

Doom Rate: 1.43

Posts quality: +97
Ссылка на пост №432 Отправлено: 09.03.20 20:08:59
Йоу, народ. Хелпуйте, пжлст, молодому быдлокодеру) Очень хочу замутить фичу с динамическим звуком шагов. Типа, зависящий от скорости ГГ.
Написал код, но при запуске уровня, меня кидает в консоль и пишет, что мол VM execution aborted: tried to read from address zero. Где у меня ошибки, где я уже усрал код?
class step : eventhandler
{
	override void worldtick()
	{
		int spd;
		playerpawn pl;

		spd = clamp(sqrt(pl.vel.x * pl.vel.x + pl.vel.y * pl.vel.y),
								0.0,16.666667);
		if(spd = 0.8)
		{
			for (int i = 0; i = 50; i++)
			pl.a_playsound("game/playerstep",56,128);
		}
		if(spd = 0.4)
		{
			for (int i = 0; i = 80; i++)
			pl.a_playsound("game/playerstep",56,128);
		}
		super.worldtick();
	}
}
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1630
Ссылка на пост №433 Отправлено: 09.03.20 20:43:20
Ты не назначаешь pl. Ты же не думаешь, что он сам появится?

Как-то так:
playerpawn pl = playerpawn(players[consoleplayer].mobj)


Ещё я бы на твоём месте не сравнивал напрямую через ==, а сравнивал через < (т.е. меньше)

Рейтинг сообщения: +1, отметил(и): VladGuardian
2 2 1
nailzx128
- Lance Corporal -
Next rank: = Lance Corporal = after 24 points
136

Doom Rate: 1.43

Posts quality: +97
Ссылка на пост №434 Отправлено: 09.03.20 21:03:42
ZZYZX пишет:
Ты не назначаешь pl. Ты же не думаешь, что он сам появится?

Как-то так:
playerpawn pl = playerpawn(players[consoleplayer].mobj)

Благодарствую за опертаивный ответ. Однако, теперь Гоззо ругается на .mobj и отказывается стартовать. Я всё правильно делаю, или я опять что-то недопонимаю?
class step : eventhandler
{
	override void worldtick()
	{
		int spd;
		playerpawn pl;

		spd = clamp(sqrt(pl.vel.x * pl.vel.x + pl.vel.y * pl.vel.y),
								0.0,16.666667);
		if(spd = 0.8)
		{
			for (int i = 0; i = 50; i++)
			playerpawn pl = playerpawn(players[consoleplayer].mobj);
			pl.a_playsound("game/playerstep",56,128);
		}
		if(spd = 0.4)
		{
			for (int i = 0; i = 80; i++)
			playerpawn pl = playerpawn(players[consoleplayer].mobj);
			pl.a_playsound("game/playerstep",56,128);
		}
		super.worldtick();
	}
}
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №435 Отправлено: 09.03.20 21:16:37
nailzx128
Раз вылезает ошибка, значит, по крайней мере, этот код находится в правильном месте (lump ZSCRIPT). Это уже неплохо :-)
Когда ты пишешь "playerpawn pl", виртуальная машина zscript понятия не имеет, какого playerpawn-а ты имеешь в виду. Их вообще может быть несколько на уровне (если это мультиплеер, например). Нужно уточнять, какой именно объект тебе нужен (инициализировать переменную). Кстати, почему spd целого типа, а не double? Это пережиток ACS, где вещественные числа с фиксированной точкой представлены в памяти как int?
Почему использован EventHandler? Он предназначен для других вещей, более того, замена WorldTick() может быть весьма ресурсоёмкой даже в таком простом случае. Я бы реализовывал такое либо переопределением класса игрока, либо инвентарной вещью, отслеживающей перемещение.
Далее, в ZScript есть методы Length() и LengthSquared() для классов Vector2 и Vector3. Вместо sqrt(pl.vel.x * pl.vel.x + pl.vel.y * pl.vel.y) можно написать pl.vel.xy.Length().
Ещё ты путаешь присваивание (i = 14 --- присвоить i значение 14) и сравнение (j == 32 --- равно ли j 32?). Это два разных оператора. Все сравнения в коде написаны неправильно, а некоторые дважды неправильно: ну не бывает такого, чтобы скорость игрока была точно равна 0.8 или 0.4. Нужно как-то использовать операторы "меньше/больше"; это и лучше согласуется с интуицией.
Что ты хотел сказать циклами, я вообще не понимаю. Проиграть одновременно 50 или 80 одинаковых звуков --- это уже терривад какой-то (хотя, на самом деле, больше семи и не получится).

Поднимаю вопросы SAM и qwe8013.

Рейтинг сообщения: +2, отметил(и): VladGuardian, JSO x
1 2
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsМодератор форума
6284

Doom Rate: 1.65

Posts quality: +1630
Ссылка на пост №436 Отправлено: 09.03.20 21:44:46
nailzx128
Простите, mo, а не mobj

Рейтинг сообщения: +1, отметил(и): VladGuardian
2 2 1
VladGuardian
= Commissar =
Next rank: - UAC Commissar - after 263 points
5537

Doom Rate: 1.28

Posts quality: +1899
Ссылка на пост №437 Отправлено: 10.03.20 15:12:32
N00b2015 пишет:
ну не бывает такого, чтобы скорость игрока была точно равна 0.8 или 0.4. Нужно как-то использовать операторы "меньше/больше"; это и лучше согласуется с интуицией.

Нужно как-то использовать операторы "меньше/больше";

Обычно для веществ. чисел делают некий "зазор толерантности":
(написано в псевдокоде, ну типа язык C)
const float TOLERANCE = 1e-5; //регулируем это значение по усмотрению, в зависимости от выполняемых задач
bool ApproxEqual( float x, float y )
{
	return (Abs(x - y) <= TOLERANCE);
}

Таким образом, вместо крайне ненадёжного
if(spd == 0.8)

пишем "помехоустойчивый" аналог, мягкого сравнения
if ApproxEqual( spd, 0.8 )

Я в первый раз столкнулся с этой хренью лоб-в-лоб (то есть, нельзя уже было обойти),
когда программировал свою 3D-графику, кажется в функции проекции вектора на плоскость, или чем-то подобным,
где никогда не получалось ровных значений 8.0, 5.0, а только 7.99996, 5.000001 и всё в этом духе.
4 10 23
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №438 Отправлено: 10.03.20 20:05:15
VladGuardian
Да, если нужно равенство, то делают обычно так. Но в данном случае по смыслу более подходит неравенство.
1 2
Xtor
= Lance Corporal =
Next rank: - Master Corporal - after 38 points
162

Doom Rate: 1.95

Posts quality: +18
Ссылка на пост №439 Отправлено: 01.04.20 21:01:38
Доброго вечера, уважаемые думеры!
Была идея - реализовать возможность рандомайзера музыки прямо во время игры подобию DOOM (2016) - во время боёв музыка становится напряжённой, а во время исследования уровней (без боёв) - спокойной.
Однажды наткнулся на один файл, суть которого сводилась к следующему:
ввести параметр, по которому задаётся количество монстров, которые обращают внимание на игрока, после чего музыка уровня меняется на "напряжённую". После того, как монстры, следующие за игроком ликвидированы, возвращается музыка уровня, которая прописана в MAPINFO.
Я решил немного модифицировать данный "рандомайзер" и сделал два скрипта:
1-ый возвращает стандартную музыку уровня;
2-ой переключает музыку на напряжённую и при помощи рандома выбирает одну из семи имеющихся треков в архиве. В этом же скрипте указываются названия музыки.
Первая проблема возникает в том, что когда явно задано количество монстров (что через CVAR, что через меню), который обратили внимание на игрока, в этот момент на экране высвечивается P_Startscript Unknown Script. Не знаю, как её побороть.
Вторая кроется в том, что я желаю, чтобы эта вещь работала на любых уровнях в принципе, а не только на первом, который явно задаётся в ZSCRIPT-файле в виде следующей строки:
Скрытый текст:

ACS_Execute(10, 1, 0, 0, 0); //где 10 - номер скрипта, 1 - номер карты


Я попробовал этот момент изменить на следующую строку:
Скрытый текст:

CallACS("SetCombatMapMus.o");


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

#include "zcommon.acs"

str songs_name[7] = { "SFX_Music_Combat_01", "SFX_Music_Combat_02", "SFX_Music_Combat_03", "SFX_Music_Combat_04", "SFX_Music_Combat_05", "SFX_Music_Combat_06", "SFX_Music_Combat_07"};
int pick_what_song_play;
    
script 10 open
{
pick_what_song_play = random(1, 7);
SetMusic(songs_name[pick_what_song_play]);
}


2 (возвращение стандартной музыки):
Скрытый текст:

#include "zcommon.acs"

script 11 (VOID)
{
SetMusic("*");
}


Благодарю за внимание.
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №440 Отправлено: 01.04.20 21:39:25
Xtor
Нельзя ли было перед отправкой хотя бы заменить музыку на думовские midi? Хоть и 2020 год, не у всех соединение быстрое, а тут 40 Мб минут десять пришлось качать с mediafire.
Если что, вот сразу ссылка на всякий случай, может, пригодится (там тоже mediafire, но уже 70 Мб :oops:)

Что нужно поменять:
дописать в начало обоих ACS-исходников (а лучше собрать их в один)
#library "SetCombatMapMus"
и
#library "RestoreDefMapMus"
соответственно;
в loadacs убрать .o;
поменять массив songs_name на такой (ты же переименовывал музыку):
str songs_name[7] = { "music/CombatSequence_01_long", "music/CombatSequence_02_long", "music/CombatSequence_03_short", "music/CombatSequence_04_short", "music/CombatSequence_05_short", "music/CombatSequence_06_long", "music/CombatSequence_07_long"};

в zscript вернуть все ACS_Execute и удалить все вызовы CallACS (это то же самое, но почему-то в CallACS ты пытаешься вызывать не скрипт, а целый объектный файл, что не имеет смысла).

По второй проблеме --- у меня вроде нормально работает при переходе с уровня на уровень, но, если что, советую ознакомиться со следующей страничкой и поменять PlayerEntered на какой-нибудь другой handler (по ситуации).

Рейтинг сообщения: +1, отметил(и): JSO x
1 2
Страница 22 из 63Перейти наверх Пред.  1, 2, 3 ... 21, 22, 23 ... 61, 62, 63  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!-2