Welcome to U.A.C. [O.S.A.]
login / register 
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Тема для новичков. Вопросы по маппингу/моддингу - любые! Пред.  1, 2, 3 ... 189, 190, 191 ... 198, 199, 200  След.
   Список разделов - Флуд и устаревшие темы - Тема для новичков. Вопросы по маппингу/моддингу - любые!Ответить
АвторСообщение
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №3781 Отправлено: 01.03.19 07:30:54
Void Weaver
В ACS дробные значения хранятся в int-ах. Плавающей точки нет, используется фиксированная арифметика. 1.0 = 2^16 = 65536. Если хочешь возвращать дробь, передавай ее как int, но обрабатывай как fixed. Почитать про это можно на wiki.

Рейтинг сообщения: +1, отметил(и): Void Weaver
1 2
Doomgay1999
- Corporal -
Next rank: = Corporal = after 4 points
96

Doom Rate: 2

Ссылка на пост №3782 Отправлено: 01.03.19 07:50:40
А можно как-то отзеркалить уровни DOOM?
JSO x
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 106 points
1334

Doom Rate: 2.26

Posts quality: +726
Ссылка на пост №3783 Отправлено: 01.03.19 08:00:22
Есть утилита "Зазеркаленный Doom".

Рейтинг сообщения: +1, отметил(и): Void Weaver
2 7 1
Doomgay1999
- Corporal -
Next rank: = Corporal = after 4 points
96

Doom Rate: 2

Ссылка на пост №3784 Отправлено: 01.03.19 08:02:17
Эта программа отзеркаливает уровни?

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

А эта программа хоть работает?
JSO x
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 106 points
1334

Doom Rate: 2.26

Posts quality: +726
Ссылка на пост №3785 Отправлено: 01.03.19 08:06:43
Да. Отзеркаливает, насколько я понял, относительно той оси, по которой изначально смотрит первый игрок.

Да, у меня работает.

Рейтинг сообщения: +1, отметил(и): YURA_111
2 7 1
YURA_111
UAC Sergeant Major
Next rank: Chief Petty Officer after 82 points
768

Doom Rate: 1.98

Posts quality: +136
Ссылка на пост №3786 Отправлено: 01.03.19 08:23:01
Doomgay1999 пишет:
А эта программа хоть работает?


Работает! Проверено и даже с некоторыми "портовыми", хоть и написано в описание что не поддерживает

Рейтинг сообщения: +1, отметил(и): Void Weaver
Doomgay1999
- Corporal -
Next rank: = Corporal = after 4 points
96

Doom Rate: 2

Ссылка на пост №3787 Отправлено: 01.03.19 08:44:42
А как мне сделать чтобы у работало
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Ссылка на пост №3788 Отправлено: 01.03.19 13:36:00
N00b2015 пишет:
В ACS дробные значения хранятся в int-ах. Плавающей точки нет, используется фиксированная арифметика. 1.0 = 2^16 = 65536. Если хочешь возвращать дробь, передавай ее как int, но обрабатывай как fixed.
Оке...

Сам скрипт
Script "LostSoulRenderAlpha" (void)
{
int myCoolInteger = GetCVar("transsouls");
int myCoolFixedPointValue = myCoolInteger << 16;
SetResultValue(myCoolFixedPointValue);
}

Соул актор
Actor Soul1 : LostSoul
{
  RenderStyle Translucent
  Alpha 0.75  
}

Кастоминвентори "затемнитель"
Actor FaderIn : CustomInventory
{
+INVENTORY.ALWAYSPICKUP
Inventory.MaxAmount 0
States
{
Pickup:
TNT1 A 0 A_JumpIf(CheckClass("Soul1",AAPTR_DEFAULT)==1,2)
TNT1 A 0 A_FadeTo(0.00,0.0120,0)
Stop
TNT1 A 0 A_FadeTo(0.00,(ACS_NamedExecuteWithResult("LostSoulRenderAlpha")>>16)/84,0) //Не работает - альфа не меняется
//TNT1 A 0 A_FadeTo(0.00,0.0090,0) //С этой строкой сдвиг альфы идёт плавно - альфа снижается каждый раз на шаг при получении итема
Stop
}
}

Кастоминвентори "проявитель"
Actor FaderOut : FaderIn
{
States
{
Pickup:
TNT1 A 0 A_JumpIf(CheckClass("Soul1",AAPTR_DEFAULT)==1,2)
TNT1 A 0 A_FadeTo(1.00,0.0120,0)
Stop
TNT1 A 0 A_FadeTo((ACS_NamedExecuteWithResult("LostSoulRenderAlpha")>>16),(ACS_NamedExecuteWithResult("LostSoulRenderAlpha")>>16)/84,0) //Не работает - альфа не меняется
//TNT1 A 0 A_FadeTo(0.75,0.0090,0) //С этой строкой сдвиг альфы идёт плавно - альфа повышается каждый раз на шаг при получении итема
Stop
}
}

Где косяк?
1 9 1
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №3789 Отправлено: 01.03.19 20:18:37
Void Weaver
Я впихнул отладочный вывод в скрипты и декорейт. По всей видимости, проблема в getcvar: он мне сначала вернул -2^30 (причём тогда скрипт правильно разделил на 65536 :x ), потом после перезапуска 0. Заменил на getusercvar --- опять ноль.
Кажется, это ограничение было зашито ещё в zdoom. Через zscript его, скорее всего, можно обойти.
1 2
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Ссылка на пост №3790 Отправлено: 01.03.19 22:33:13
Не, зскрипт мне пока рано.
Выходит что гет(юзер)ЦВар багнутые или как? И что за ограничение такое, это получается что цвар не достать кроме как зскриптом?
1 9 1
Doomgay1999
- Corporal -
Next rank: = Corporal = after 4 points
96

Doom Rate: 2

Ссылка на пост №3791 Отправлено: 02.03.19 02:35:23
Как мне с конвертировать вот это: http://www.iddqd.ru/utils?file=UDMF+Convert
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

Posts quality: +384
Ссылка на пост №3792 Отправлено: 02.03.19 10:14:08
Doomgay1999
Если ты имеешь в виду "запустить программу и сконвертировать карту", то через командную строку.
Пример команды на zdoom.org.
Void Weaver
Они не багнутые. Это сделано специально. Доступ к клиентским цварам приводит к десинхронизации в мультиплеере.
А вообще, по-моему, в zscript-овом коде переменная transsouls не используется (все вхождения только в рендерере), поэтому получить к ней доступ не удастся.
Так ли нужно использовать именно эту переменную?
1 2
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Ссылка на пост №3793 Отправлено: 02.03.19 14:28:52
Да в принципе нет, просто это был хороший повод впервые повозиться с цварами и казалось что особых проблем быть не должно.

Внезапно нашёл очень интересную темку в которой таки показано как вытаскивать и оперировать transsouls:

The Spectre always has a default alpha of 0.5 and the Lost Soul can vary depending on the transsouls CVAR. These scripts take both into consideration.
, но я нифига не понял. ((

Кто-нибудь может объяснить почему у автора всё работает и можно ли использовать этот механизм в моём случае?
1 9 1
Doomgay1999
- Corporal -
Next rank: = Corporal = after 4 points
96

Doom Rate: 2

Ссылка на пост №3794 Отправлено: 02.03.19 15:03:37
Где достать текстуры египта?
Anto96WS
= Master Corporal =
Next rank: - Sergeant - after 9 points
281

Doom Rate: 1.77

Posts quality: +88
Ссылка на пост №3795 Отправлено: 02.03.19 17:27:20
Doomgay1999 пишет:
Где достать текстуры египта?

Мне кажется запрос не в той теме, но ладно.
Можешь выпотрошить Epic 2

Рейтинг сообщения: +1, отметил(и): Void Weaver
Mud
- Warrant Officer -
Next rank: = Warrant Officer = after 58 points
1082

Doom Rate: 1.97

Posts quality: +700
Ссылка на пост №3796 Отправлено: 02.03.19 19:58:28
Возможно ли сделать так, чтобы на полу или стене с определенной текстурой BulletPuff не спавнился?
3 1
Anto96WS
= Master Corporal =
Next rank: - Sergeant - after 9 points
281

Doom Rate: 1.77

Posts quality: +88
Ссылка на пост №3797 Отправлено: 02.03.19 20:21:24
Serious_MOod пишет:
на полу или стене с определенной текстурой BulletPuff не спавнился

Пол под BulletPuff'ом можно проверить, и если текстура нужная - деспавн.
Хотя это костыль на DECORATE+ACS, должны быть решения получше

https://zdoom.org/wiki/CheckActorFloorTexture

Рейтинг сообщения: +1, отметил(и): Void Weaver
Mud
- Warrant Officer -
Next rank: = Warrant Officer = after 58 points
1082

Doom Rate: 1.97

Posts quality: +700
Ссылка на пост №3798 Отправлено: 02.03.19 20:23:15
Anto96WS
Тоже про этот вариант подумал, но решил спросить, вдруг кто-то предложит вариант получше. Тем более, что это всё касается только пола с потолком.
3 1
Anto96WS
= Master Corporal =
Next rank: - Sergeant - after 9 points
281

Doom Rate: 1.77

Posts quality: +88
Ссылка на пост №3799 Отправлено: 02.03.19 20:24:18
Serious_MOod пишет:
вариант получше

В ZScript точно должно быть решение, но я его не знаю
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Ссылка на пост №3800 Отправлено: 03.03.19 01:30:45
Serious_MOod пишет:
Тоже про этот вариант подумал, но решил спросить, вдруг кто-то предложит вариант получше. Тем более, что это всё касается только пола с потолком.
Касаемо чека текстур стен, да и вообще универсального механизма, похоже что зскриптовая LineTrace подходит тебе идеально.
Вот кстати шаблон скрипта по чеку текстур ЕЯПП.

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

Господа, объясните плиз синтаксис записи джампов из анонимных функций. Читал вику но нифига не понял. ((
Когда и где надо ставить return, null, ещё какую-нибудь хрень, для чего нужна A_State?

Вот например есть такой "осторожный" имп:
Скрытый текст:

Actor DImpA : DoomImp
    {
    +AVOIDMELEE
    {
    See:
       TROO A 0 A_JumpIfCloser(Radius+256,"Avoid")
       TROO A 2 A_Chase
       TROO A 0 A_JumpIfCloser(Radius+256,"Avoid")
       TROO A 2 A_Chase
       TROO B 0 A_JumpIfCloser(Radius+256,"Avoid")
       TROO B 2 A_Chase
       TROO B 0 A_JumpIfCloser(Radius+256,"Avoid")
       TROO B 2 A_Chase
       TROO C 0 A_JumpIfCloser(Radius+256,"Avoid")
       TROO C 2 A_Chase
       TROO C 0 A_JumpIfCloser(Radius+256,"Avoid")
       TROO C 2 A_Chase
       TROO D 0 A_JumpIfCloser(Radius+256,"Avoid")
       TROO D 2 A_Chase
       TROO D 0 A_JumpIfCloser(Radius+256,"Avoid")
       TROO D 2 A_Chase
       Loop
       Melee:
    Missile:
       TROO EF 8 A_FaceTarget
       TROO G 6 A_TroopAttack
       goto See
    Avoid:
       TROO A 0 A_JumpIf(GetDistance(1)>Radius+272,"Missile")
       TROO A 0 A_FaceTarget
       TROO A 2 A_Wander(CHF_NODIRECTIONTURN) //A_Chase(0,"Missile",CHF_NODIRECTIONTURN)
       TROO A 0 A_JumpIf(GetDistance(1)>Radius+272,"Missile")
       TROO A 0 A_FaceTarget
       TROO A 2 A_Wander(CHF_NODIRECTIONTURN) //A_Chase(0,"Missile",CHF_NODIRECTIONTURN)
       TROO B 0 A_JumpIf(GetDistance(1)>Radius+272,"Missile")
       TROO B 0 A_FaceTarget
       TROO B 2 A_Wander(CHF_NODIRECTIONTURN) //A_Chase(0,"Missile",CHF_NODIRECTIONTURN)
       TROO B 0 A_JumpIf(GetDistance(1)>Radius+272,"Missile")
       TROO B 0 A_FaceTarget
       TROO B 2 A_Wander(CHF_NODIRECTIONTURN) //A_Chase(0,"Missile",CHF_NODIRECTIONTURN)
       TROO C 0 A_JumpIf(GetDistance(1)>Radius+272,"Missile")
       TROO C 0 A_FaceTarget
       TROO C 2 A_Wander(CHF_NODIRECTIONTURN) //A_Chase(0,"Missile",CHF_NODIRECTIONTURN)
       TROO C 0 A_JumpIf(GetDistance(1)>Radius+272,"Missile")
       TROO C 0 A_FaceTarget
       TROO C 2 A_Wander(CHF_NODIRECTIONTURN) //A_Chase(0,"Missile",CHF_NODIRECTIONTURN)
       TROO D 0 A_JumpIf(GetDistance(1)>Radius+272,"Missile")
       TROO D 0 A_FaceTarget
       TROO D 2 A_Wander(CHF_NODIRECTIONTURN) //A_Chase(0,"Missile",CHF_NODIRECTIONTURN)
       TROO D 0 A_JumpIf(GetDistance(1)>Radius+272,"Missile")
       TROO D 0 A_FaceTarget
       TROO D 2 A_Wander(CHF_NODIRECTIONTURN) //A_Chase(0,"Missile",CHF_NODIRECTIONTURN)
    Loop
    }
    }
так всё работает

но стоит "упаковать" строки в анон ф-цию и джампы не выполняются:
Actor DImpA : DoomImp
{
+AVOIDMELEE
{
See:
TROO AABBCCDD 3 
{
A_JumpIfCloser(Radius+256,"Avoid");
A_Chase;
}    
Loop
Melee:
Missile:
TROO EF 8 A_FaceTarget
TROO G 6 A_TroopAttack
goto See
Avoid:
TROO AABBCCDD 2 
{
A_JumpIf(GetDistance(1)>Radius+272,"Missile");
A_FaceTarget;
A_Wander(CHF_NODIRECTIONTURN); //A_Chase(0,"Missile",CHF_NODIRECTIONTURN)
}
Loop
}
}

Рейтинг сообщения: +1, отметил(и): Mud
1 9 1
Страница 190 из 200Перейти наверх Пред.  1, 2, 3 ... 189, 190, 191 ... 198, 199, 200  След.
   Список разделов - Флуд и устаревшие темы - Тема для новичков. Вопросы по маппингу/моддингу - любые!