Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Тема для новичков. Вопросы по маппингу/моддингу - любые! Пред.  1, 2, 3 ... 339, 340, 341 ... 350, 351, 352  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!Ответить
АвторСообщение
navy_seals
= Lance Corporal =
Next rank: - Master Corporal - after 36 points
164

Doom Rate: 2
Ссылка на пост №6781 Отправлено: 18.05.15 02:33:49
Ребят у меня два вопроса:
1) В zdoom возможно отключить Y-shearing чтобы было полноценное 3д, или y-shearing отключен только в Gzdoom?
2) Как при помощи ini файла или скриптов acs ограничить угол обзора вверх и вниз при free look в zdoom и gzdoom?
LEX SAFONOV
UAC Sergeant Major
Next rank: UAC Sergeant Major after 75 points
685

Doom Rate: 1.49
Ссылка на пост №6782 Отправлено: 18.05.15 09:43:52
alekv :
A_JumIfCloser(...) работает лучше, быстрее и без багов чем A_JumpIf(ACS_NamedExecuteWithResult(...)) сам скрипт проверяет Distance от 1 объекта до другого, это как бы и вопрос для тех кто знает почему так?

Чисто по логике если подумать, то одна функция вызывает другую функцию, а та ещё функцию(и так далее). Вот и вся арифметика. Правда человеческий глаз этого не заметит, совсем. Дело в правильности написания скрипта и выводе результатов в декорейт.
alekv
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 184 points
1456

Doom Rate: 1.68
Ссылка на пост №6783 Отправлено: 18.05.15 10:01:36
LEX SAFONOV :
Чисто по логике если подумать, то одна функция вызывает другую функцию, а та ещё функцию(и так далее). Вот и вся арифметика. Правда человеческий глаз этого не заметит, совсем. Дело в правильности написания скрипта и выводе результатов в декорейт.

Ну вот, не знаю насколько правильно.. и вообще можно ли так делать, вот пример:
Script "sss" (Void)
{
Int Object_TID = UniqueTID();
SetActivator(0,APTR_PLAYER1);
If(Distance(Object_TID,PLAY_TID)>128){SetResultValue(1);Terminate;}
Else{SetResultValue(0);Terminate;}
}

Actor object
{MONSTER+LOOKALLAROUND
States{
Spawn:
TNT1 A 1
TNT1 A 1 A_Look
Loop
See:
//TNT1 A 1 << есть тут кадр или нет, все равно плющит.
TNT1 A 1 A_JumpIf(ACS_NamedExecuteWithResult("sss")==1,"Action") //Вместо JumpIfCloser(...), она все равно работает не так как мен надо.
Loop
Action:
TNT1 A 1 A_PrintBold("1")
Goto See
}
}


Я конечно понимаю что каждый тик вычисляет дистанцию, это нагрузка и все такое, но другого пути симитировать jumpIfCloser не нашел, вот и интересно как она устроена или может есть другой способ получше?
Лаги в небольшом моде наверное видно не будет, в большом моде 3д модели постепенно пропадают, но не тормозит.
1
navy_seals
= Lance Corporal =
Next rank: - Master Corporal - after 36 points
164

Doom Rate: 2
Ссылка на пост №6784 Отправлено: 18.05.15 11:02:27
на свой второй вопрос сам отвечу, мб поможет кому - в ini - maxviewpitch= ставим ограничение на угол обзора. Работает только в Гздум, в здуме не работает.
SAM
= Master Corporal =
Next rank: - Sergeant - after 14 points
276

Doom Rate: 1.78
Ссылка на пост №6785 Отправлено: 18.05.15 12:55:51
alekv :
Ну довольно не простой вопрос... По поводу инвентаря все просто, в каждом итеме, в decorate прописываешь Inventory.InterHubAmount xxx(такое кол. игрок может перенести на другой уровень) и ставишь флаг +HUBPOWER. Еще можно как-то запоминать States в котором игрок закончил hub level и в том же стейте продолжить след. уровень, но забыл чего там надо.
По поводу действий таких как кнопка, тут скорее надо обратиться к acs, или decorate(смотря с помощью какого скрипта был сделан переход или какому отдаешь предпочтения.) Или же на худой конец, замутить разые уровни, в 1 уровне map01 будет открыта дверь телепорт в мап02, в другом уровне map01 будет закрыт переход в мап02.. В общем есть тема для размышлений, но лучше сделать все через acs, будет проще, быстрее и грамотнее, заодно и лишний повод по практиковаться в скриптах\кодах. Ну и прошу заметить, что я не знаю конкретного и простого ответа на твой вопрос.. все что я могу предложить, это обходные пути(костыли) в реализации задумки.. Может и есть путь проще, но я не помню такого, хотя что-то подсказывает что он есть.


спасибо за ответ) я еще по экспериментирую на этим делом и если не получится как я задумал то изменю вид и режим прохождения, пусть уровни останутся пройденными но это на кр. случай.
sanek_47
Marine 1st class
Next rank: - UAC Gunner - after 10 points
30

Doom Rate: 2
Ссылка на пост №6786 Отправлено: 18.05.15 19:43:34
Решил добавить на карту несколько воксельных моделек, но они наполовину проваливаются в землю. Положение спрайтов можно было настроить прямо в SLADE через offsets, а здесь как быть? И еще, не могли бы посоветовать хороший воксельный редактор, пробовал SLAB6 и MagicVoxel, но там ограничение модели 126x126x126, да и не очень они удобные...
LEX SAFONOV
UAC Sergeant Major
Next rank: UAC Sergeant Major after 75 points
685

Doom Rate: 1.49
Ссылка на пост №6787 Отправлено: 18.05.15 20:25:21
sanek_47 :
Решил добавить на карту несколько воксельных моделек, но они наполовину проваливаются в землю. Положение спрайтов можно было настроить прямо в SLADE через offsets, а здесь как быть? И еще, не могли бы посоветовать хороший воксельный редактор, пробовал SLAB6 и MagicVoxel, но там ограничение модели 126x126x126, да и не очень они удобные...

В том же SLAB6 у модели измени "пивот" - Tools -> Adjust Pivots. Как правило по стандарту стоит на середине.

alekv :
Я конечно понимаю что каждый тик вычисляет дистанцию, это нагрузка и все такое, но другого пути симитировать jumpIfCloser не нашел, вот и интересно как она устроена или может есть другой способ получше?

Лаги в небольшом моде наверное видно не будет, в большом моде 3д модели постепенно пропадают, но не тормозит.

Вообще у меня в Dark Forces есть один монстр, который требует проверки дистанции. Вот как реализована проверка у меня:
Это непосредственно скрипт
Script 903 (int KellDistance)
{

int KellX = GetActorX(0) >> 16;
int KellY = GetActorY(0) >> 16;

SetActivatorToTarget(0);

int PlayerX = (GetActorX(0) >> 16);
int PlayerY = (GetActorY(0) >> 16);

int X = KellX - PlayerX;
int Y = KellY - PlayerY;

KellDistance = sqrt(X*X + Y*Y);

SetResultValue(KellDistance);
}
Смысл этого скрипта, что он напрямую кидает нужное расстояние в декорейт через результирующую.

А вот как я проверяю нужное расстояние непосредственно в декорейте:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(903,0,0,0) >= 400, "See")
Смысл: каждый раз вызывая этот скрипт приходит результат с длиной. Если не подходит под выражение - значит не срабатывает)
Работает не хуже A_JumIfCloser(), а местами даже по гибче будет(на сколько я понимаю в декорейтной функции выставляется строго определённое значение, а выражение забить не получается).
sanek_47
Marine 1st class
Next rank: - UAC Gunner - after 10 points
30

Doom Rate: 2
Ссылка на пост №6788 Отправлено: 18.05.15 21:02:32
LEX SAFONOV :
В том же SLAB6 у модели измени "пивот" - Tools -> Adjust Pivots. Как правило по стандарту стоит на середине.

Спасибо, теперь все нормально работает. А что насчет других редакторов, можно ли делать более качественные воксельные модели? Хочу перерисовать все спрайты в модели, но например для того, чтобы всунуть спрайт в тот же MagicVoxel приходится снижать его разрешение, да и цвета искажаются.
alekv
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 184 points
1456

Doom Rate: 1.68
Ссылка на пост №6789 Отправлено: 18.05.15 22:58:44
sanek_47 :
Спасибо, теперь все нормально работает. А что насчет других редакторов, можно ли делать более качественные воксельные модели? Хочу перерисовать все спрайты в модели, но например для того, чтобы всунуть спрайт в тот же MagicVoxel приходится снижать его разрешение, да и цвета искажаются.

Могу посоветовать не мучаться с вокселями!!!
Blender.. иммитация вокселей в данном случае лучший вариант по всем параметрам.. в чем фишка вокселей в гоззе? Они даже не могут разрушаться так как сделанно в том же воксельштейн(можешь погуглить если о таком не слышал) воксели очень ресурсоемки, особенно для такого порта как гозза.. воксельные модели большого разрешения в гоззе.. вообще смешно, 1-2 модели и фпс 5-10.
VOXELDEF почитай тут по поводу манипуляций с воксельными моделями, если еще не читал..
Blender 3д редактор, но в блендере версии 2.63+ точно есть модификатор который переделывает модель в кубикоподобную, от вокселей не отличить, но в разы проще в создании, и требованиям к железу. Научится делать простые 3д модели легко, видео уроков море, если заинтересуешся, спрашивай еще.

LEX SAFONOV :
Вообще у меня в Dark Forces есть один монстр, который требует проверки дистанции. Вот как реализована проверка у меня:
Это непосредственно скрипт
Script 903 (int KellDistance)
{
int KellX = GetActorX(0) >> 16;
int KellY = GetActorY(0) >> 16;
SetActivatorToTarget(0);
int PlayerX = (GetActorX(0) >> 16);
int PlayerY = (GetActorY(0) >> 16);
int X = KellX - PlayerX;
int Y = KellY - PlayerY;
KellDistance = sqrt(X*X + Y*Y);
SetResultValue(KellDistance);
}
Смысл этого скрипта, что он напрямую кидает нужное расстояние в декорейт через результирующую.
А вот как я проверяю нужное расстояние непосредственно в декорейте:
TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(903,0,0,0) >= 400, "See")
Смысл: каждый раз вызывая этот скрипт приходит результат с длиной. Если не подходит под выражение - значит не срабатывает)
Работает не хуже A_JumIfCloser(), а местами даже по гибче будет(на сколько я понимаю в декорейтной функции выставляется строго определённое значение, а выражение забить не получается).


Большое спасибо за пример, попробую примерно так сделать, хотя надежд мало.. мой скрипт по сути почти тоже самое делает, просто вывел проверку дистанции в отдельную функцию.(я не видел твоего мода, но у меня все в 3д моделях, если бы не было 3д моделей, я бы и не заметил такие лаги т.к. сказывается почему-то только на 3д моделях, причем не на всех, они пропадают постепенно.. даже сложилось впечатление что у меня паранойя когда бегал по уровню.. модель проде была минуту назад, а вроде и показалось...) A_JumpIfCloser не подходит для меня потому что объект проверяет дистанцию не только игрока, а почти любого объекта который будет ближе. Пробовал комбинировать с Thing_Hate, но результатов не увидел. В любом случае не попробовав не узнаю, еще раз спасибо.
1
navy_seals
= Lance Corporal =
Next rank: - Master Corporal - after 36 points
164

Doom Rate: 2
Ссылка на пост №6790 Отправлено: 19.05.15 09:15:03
Подскажите кто знает, как реализовать кровь на потолке? На полу объектом сделал, нормально, но вот как заставить объект "прилипать" к потолку? Не понимаю как флаг SPAWNCEILING работает
SAM
= Master Corporal =
Next rank: - Sergeant - after 14 points
276

Doom Rate: 1.78
Ссылка на пост №6791 Отправлено: 19.05.15 10:37:49
navy_seals :
Подскажите кто знает, как реализовать кровь на потолке? На полу объектом сделал, нормально, но вот как заставить объект "прилипать" к потолку? Не понимаю как флаг SPAWNCEILING работает


попробуй приписать +NOGRAVITY
navy_seals
= Lance Corporal =
Next rank: - Master Corporal - after 36 points
164

Doom Rate: 2
Ссылка на пост №6792 Отправлено: 19.05.15 11:05:18
Зависает в воздухе, а надо чтобы была обратная гравитация (на отрицательные значения gravity здум ругается)
В общем, сделал. Если кому поможет - при помощи баунса прожектайла только от стен (1 bounce count) и через A_checkceiling спавна в стейте смерти объекта крови с флагами +SPAWNCEILING
+CEILINGHUGGER и NOGravity
YURA_111
UAC Sergeant Major
Next rank: UAC Sergeant Major after 24 points
736

Doom Rate: 2.17
Ссылка на пост №6793 Отправлено: 19.05.15 20:41:23
navy_seals :
В общем, сделал. Если кому поможет - при помощи баунса прожектайла только от стен (1 bounce count) и через A_checkceiling спавна в стейте смерти объекта крови с флагами +SPAWNCEILING
+CEILINGHUGGER и NOGravity


Вот этим наверное проще:

http://zdoom.org/wiki/ThrustThingZ
TesaQ
= Lance Corporal =
Next rank: - Master Corporal - after 22 points
178

Doom Rate: 1.87
Ссылка на пост №6794 Отправлено: 21.05.15 17:30:36
В общем у меня небольшая проблема возникла с полиобъектами, две двери раздвигаются когда жму на левую дверь, а если на правую, то только 1 раздвигается, может кто в этом разбирается, вот вад - https://yadi.sk/d/s-G7vzG9gnWjN
alekv
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 184 points
1456

Doom Rate: 1.68
Ссылка на пост №6795 Отправлено: 21.05.15 19:16:22
Качай, ты выставил полиобъект 0, этого делать помоему нельзя. Или в чем-то другом проблема.. вобщем щас работает каждая дверь отдельно.
Если надо что бы 2 двери открывались одновременно, выставь в Polyobj Start Line> Mirror Polyobj Number номер противоположного полиобъекта.
Кстати до сих пор обязательно номер полиобъекта присваивать через Angle?

Добавлено спустя 43 минуты 37 секунд:

Есть актор
ACTOR CustomBridge native
У него можно менять radius и height изменяя его аргументы в GZDB, как такие аргументы дать своему thing не прибегая к всяким replace?(тоесть не писать так: Actor box : CustomBridge)
Жаль что нельзя делать так:
Actor Box
{
Height Args[1]
Radius Args[2]
..
}
1
Michael63
- Lance Corporal -
Next rank: = Lance Corporal = after 9 points
151

Doom Rate: 3.28
Ссылка на пост №6796 Отправлено: 21.05.15 20:53:20
Начал делать уровень в формате ZDoom (Doom in UDMF format), а раньше делал просто в Doom 2. Что-то я не понял, как задавать экшены. Допустим, я хочу, чтобы кнопка опускала сектор до самого нижнего из соседних секторов. Вот окно, в котором задаются экшены:


Сверху написана легенда: S = Switch, W = Walk over, и так далее. Но около самих названий экшенов не написано ни S, ни W, и я не знаю, как отличить Switch от Walk over (а в Doom 2 это было написано слева от названия экшена). Как их различить? Или в UDMF это в каком-то другом окне задаётся?

Ещё вопрос: когда я вставляю свою графику через Думбилдер, как сделать так, чтобы картинка была нужного размера (в мапъюнитах)? Допустим, я хочу сделать текстуру для стены размерами 64x128 мапъюнитов. Каким должен быть для этого файл с рисунком? Можно ли сначала загрузить файл (в ресурсы), а потом выставить размеры текстуры?
1
alekv
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 184 points
1456

Doom Rate: 1.68
Ссылка на пост №6797 Отправлено: 21.05.15 22:25:03
Michael63
Зачем тебе Zdoom формат не понимаю.. уже делал бы сразу в GZDoom: Doom2(UDMF), там открывается максимум возможностей, да и все просто и понятно.
1
ZZYZX
UAC Sergeant Major
Next rank: Chief Petty Officer after 29 points
821

Doom Rate: 1.38
Ссылка на пост №6798 Отправлено: 22.05.15 15:44:11
Michael63 :
Сверху написана легенда: S = Switch, W = Walk over, и так далее. Но около самих названий экшенов не написано ни S, ни W, и я не знаю, как отличить Switch от Walk over (а в Doom 2 это было написано слева от названия экшена). Как их различить? Или в UDMF это в каком-то другом окне задаётся?

В том окне, из которого ты открыл этот список, рядом должнен быть список параметров спешиала, а ещё чуть ниже настройки активации. Несколько чекбоксов типа Player presses use, Player walks over.
Легенда видимо просто багнутая и отображается в не-DoomInDoom форматах, хотя не должна )

Michael63 :
Ещё вопрос: когда я вставляю свою графику через Думбилдер, как сделать так, чтобы картинка была нужного размера (в мапъюнитах)? Допустим, я хочу сделать текстуру для стены размерами 64x128 мапъюнитов. Каким должен быть для этого файл с рисунком? Можно ли сначала загрузить файл (в ресурсы), а потом выставить размеры текстуры?

1 пиксель = 1 мапъюнит, если только ты явно не прописываешь текстуре другой размер.

alekv
10/10 ответ. Он тебе "как сделать?" а ты ему "юзай GZDoom". Между прочим разницы в данном случае не будет — активация настраивается так же.
:diatel:
1
alekv
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 184 points
1456

Doom Rate: 1.68
Ссылка на пост №6799 Отправлено: 22.05.15 16:26:09
ZZYZX :
10/10 ответ. Он тебе "как сделать?" а ты ему "юзай GZDoom". Между прочим разницы в данном случае не будет — активация настраивается так же.

Да все равно 99% что рано или поздно перейдет на GZDoom формат, а как обидно будет.. я вот по себе знаю, самому обидно было, так же прыгал с одного формата на другой.. когда попробовал ZDoom, хорошо что не поленился и сразу попробовал GZDoom, столько проектов просто в никуда.. вообще желание пропало их доделывать.
1
LEX SAFONOV
UAC Sergeant Major
Next rank: UAC Sergeant Major after 75 points
685

Doom Rate: 1.49
Ссылка на пост №6800 Отправлено: 22.05.15 18:58:26
Парни, никто не знает как запилить нормальное затемнение-просветление картинки на АЦС? У меня ролик просто покадрово сделан через HudMessage(). Стандартные функции здума затемняют мир, но вот изображения увы не хотят трогать.
Страница 340 из 352Перейти наверх Пред.  1, 2, 3 ... 339, 340, 341 ... 350, 351, 352  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!