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

Doom Rate: 2.21

Posts quality: +144
Ссылка на пост №301 Отправлено: 02.10.19 22:33:37
Я делал недавно для тов. Liaslia костыльный бинокль, там можно посмотреть.
Вот последняя версия.
Суть: в начале уровня выдаю игроку вещь, которая контролирует нажатия кнопки по GetPlayerInput и вызывает оверлей. Из него можно менять fov (но только для оружия, находящегося на экране в данный момент; fov для оружия независим). Если не хочется менять существующий код оружия, то это сойдёт. Если имелось в виду, что оружие может быть вообще не выбрано, то работать, скорее всего, не будет (поскольку psprite-ов не будет).
Конечно же, это сделано на zscript.
Edit: Void Weaver успел отредактировать пост раньше.

Рейтинг сообщения: +2, отметил(и): Zeberpal_98, Void Weaver
1 1
Void Weaver
- Captain -
Next rank: = Captain = after 12 points
2328

Doom Rate: 1.8

Posts quality: +739
Ссылка на пост №302 Отправлено: 02.10.19 23:01:05
:)
N00b2015 пишет:
Если имелось в виду, что оружие может быть вообще не выбрано, то работать, скорее всего, не будет (поскольку psprite-ов не будет).
Кстати эту проблему давно хотел решить Apeirogon (на здум-форуме) ака Толик (на нашем форуме).
---
Рабочая версия моего предыдущего поста (по команде zoom):
Скрытый текст:

Actor FOVPistol : Pistol replaces Pistol
{
Weapon.SlotNumber 2
Weapon.SlotPriority 0
States
{
Select:
TNT1 A 0 A_Overlay(2,"FOVHandler")
SelectL:
SPRT A 1 A_Raise
Loop

FOVHandler:
TNT1 A 1
TNT1 A 1
{
If(GetPlayerInput(MODINPUT_BUTTONS)&BT_ZOOM)
    {
		If(CountInv("FoVCounter")==2)
			{
				A_TakeInventory("FoVCounter");
				A_ZoomFactor(1.0);
				Return state("");
			}
		Else If(CountInv("FoVCounter")==0)
			{
				A_GiveInventory("FoVCounter");
				A_ZoomFactor(2.5);
				Return state("");
			}
		Else If(CountInv("FoVCounter")==1)
			{
				A_GiveInventory("FoVCounter");
				A_ZoomFactor(0.75);
				Return state("");
			}
		Else{Return state("");}
    }
Else{Return state("");}
Loop
}
}

ACTOR FoVCounter : Inventory{Inventory.MaxAmount 2}


Рейтинг сообщения: +1, отметил(и): Zeberpal_98
1 8 1
Zeberpal_98
= Sergeant Major =
Next rank: UAC Sergeant Major after 5 points
675

Doom Rate: 1.89

Posts quality: +79
Ссылка на пост №303 Отправлено: 02.10.19 23:09:11
Void Weaver и N00b2015

Спасибо за традиционно развернутые ответы, думаю я поступлю примерно так:



Actor YesChangeFOV: custom inventory



<...>


States
{
Select:
TNT1 A 0 A_Overlay(2,"FOVHandler")
SelectL:
SPRT A 1 A_Raise
Loop

FOVHandler:
TNT1 A 1
TNT1 A 1
{
If(CheckInventory("YesChangeFOV")
    {
        A_ZoomFactor(0.5);  //правда, вот время транзишина видимо менять нельзя
        Return state("");
    }

else if(!CheckInventory("YesChangeFOV")
    {
        A_ZoomFactor(1.0);
        Return state("");
    }
}
Loop

<...>
}

Void Weaver Скажи, selectL - опечатка? Асмысле нельзя ли A_Raise в один стейт с Оверлэй ставить, и в таком случае как ты переходишь в SelectL?

И Return state(""); зачем он здесь?

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

Doom Rate: 1.8

Posts quality: +739
Ссылка на пост №304 Отправлено: 02.10.19 23:18:06
1. Время транзишина можно настроить и на деко\ацс, но код будет массивнее в виду того что "зум" надо будет делать плавным с переменной в A_ZoomFactor.
2. SelectL c Loop - это НЕ опечатка, а замена Select с Goto Select+1. Просто я предпочитаю обосабливать подциклы добавлением буквы "L(oop)" к названию "основного" стэйта. В принципе можно вызывать A_Overlay и прямо в цикле, но лучше перестраховаться.
3. О каком бы Return state(""); не шла речь но это как правило необходимый парсер завершения анон-функции на деко, буквально означает "продолжи выполнение текущего стэйта". Более детально это объяснял алекв в архиве этой темы. Без неё код выдаст ошибку.
4. В твоём варианте отсутствует проверка на конкретную клавишу и механизм выдачи\изъятия зум-токена.
5. CheckInventory НЕ для декора. Именно поэтому надо использовать CountInv.
6. Ещё раз. A_ZoomFactor работает ТОЛЬКО для оружия но никак НЕ для CustomInventory! Иначе всё было бы гораздо проще и не понадобилось бы привинчивать зум-оверлэй к каждому оружию. Тупанул-с. )

Рейтинг сообщения: +1, отметил(и): Zeberpal_98
1 8 1
Zeberpal_98
= Sergeant Major =
Next rank: UAC Sergeant Major after 5 points
675

Doom Rate: 1.89

Posts quality: +79
Ссылка на пост №305 Отправлено: 02.10.19 23:43:56
Void Weaver
не не, я понял, что для оружия, это просто дамми айтем для FOVhandlera, этакая замена проверки по клавише. Я просто хочу, чтобы вся эта котовасия срабатывала, когда Игрок получает дамми айтем, и ..десрабатывает, когда он его, следовательно, лишается. Спасибо про CountInv, я был не в курсе.
1
FoxPlays
- Master Sergeant -
Next rank: = Master Sergeant = after 4 points
456

Doom Rate: 2.36

Posts quality: +178
Ссылка на пост №306 Отправлено: 14.10.19 17:46:04
Вопрос: Есть ли какая нибудь возможность выровнять по сторонам текст в ACS? В HudMessage они выравниваются по центру, но как сделать чтобы их точка шла не с центра, а например - слева?
Знаю, что такая функция есть в SBARINFO, но есть ли в ACS?

1 1 1
ZZYZX
- Commissar -
Next rank: = Commissar = after 116 pointsМодератор форума
5224

Doom Rate: 1.73

Posts quality: +1481
Ссылка на пост №307 Отправлено: 14.10.19 18:36:27
Вроде бы только с SetHudSize
Но это неточно

Рейтинг сообщения: +2, отметил(и): Void Weaver, FoxPlays
2 2 1
VladGuardian
- Colonel -
Next rank: = Colonel = after 189 points
4251

Doom Rate: 1.28

Posts quality: +1190
Ссылка на пост №308 Отправлено: 14.10.19 19:01:12
FoxPlays
С помощью HudMessage точно нельзя, я просмотрел параметры, там и намёка нет на "justification" (выравнивание)
Так что прислушайся к совету ZZYZX. (SetHudSize / Coordinate Behavior)

Рейтинг сообщения: 0, отметил(и): Void Weaver, FoxPlays
3 10 21
FoxPlays
- Master Sergeant -
Next rank: = Master Sergeant = after 4 points
456

Doom Rate: 2.36

Posts quality: +178
Ссылка на пост №309 Отправлено: 15.10.19 12:25:16
Спасибо, ZZYZX и VladGuardian. Так работает :D
1 1 1
Hutt
- Master Sergeant -
Next rank: = Master Sergeant = after 24 points
436

Doom Rate: 1.37

Posts quality: +63
Ссылка на пост №310 Отправлено: 16.10.19 16:43:37
Как сделать цветной динамик лайт?
alekv
Lieutenant Colonel
Next rank: - Colonel - after 100 pointsМодератор форума
3940

Doom Rate: 1.92

Posts quality: +763
Ссылка на пост №311 Отправлено: 16.10.19 18:10:16
FoxPlays пишет:
Вопрос: Есть ли какая нибудь возможность выровнять по сторонам текст в ACS? В HudMessage они выравниваются по центру, но как сделать чтобы их точка шла не с центра, а например - слева?
Знаю, что такая функция есть в SBARINFO, но есть ли в ACS?

VladGuardian пишет:
С помощью HudMessage точно нельзя, я просмотрел параметры, там и намёка нет на "justification" (выравнивание)
Так что прислушайся к совету ZZYZX. (SetHudSize / Coordinate Behavior)


Ну у меня в hudmessage(.... 300.1, 200.1); работало выравнивание по левую сторону.
1 3 1
JSO x
- Sergeant Major -
Next rank: = Sergeant Major = after 32 points
568

Doom Rate: 2.4

Posts quality: +216
Ссылка на пост №312 Отправлено: 16.10.19 20:25:18
Hutt пишет:
Как сделать цветной динамик лайт?

Типы динамического освещения на GZDoom-engine. Если нужно, чтобы они были на карте -- то создаёшь, например, PointLight, и указываешь ему в аргументы Args[ 0 ] == Red intensity, Args[ 1 ] == Green intensity, Args[ 2 ] == Blue intensity, Args[ 3 ] == Global intensity. Первые три аргумента одинаковы у всех типов, четвёртый и возможный пятый разнятся.

Для создания своих, "быстродоступных" из-под Decorate/ZScript точек динамического света, нужно в lump'е "GLDEFS" создать шаблон твоего динамического света. Затем -- связать свой шаблон с объектом.

Примеры есть по ссылкам.

Рейтинг сообщения: +2, отметил(и): VladGuardian, Void Weaver
1 5
Void Weaver
- Captain -
Next rank: = Captain = after 12 points
2328

Doom Rate: 1.8

Posts quality: +739
Ссылка на пост №313 Отправлено: 17.10.19 18:57:43
И кстати начиная с 4.2 ввели офигенную функцию A_AttachLight, которая позволяет оперировать параметрами динлайта непосредственно из вызывающего объекта.
1 8 1
Zeberpal_98
= Sergeant Major =
Next rank: UAC Sergeant Major after 5 points
675

Doom Rate: 1.89

Posts quality: +79
Ссылка на пост №314 Отправлено: 20.10.19 17:39:49
Возможно ли в Zdoom вызывать terrain splash, только когда Игрок прыгает с определенной высоты, а не когда заходит в сектор? Например, хочу, чтобы брызги/звуки воды не издавались, когда игрок входит в террайн-текстуру (h суши = h воды), а при прыжке бомбочкой - да. Посмотрел вики, такой опции кажется нет, но мало ли я чего-то не знаю.
1
Void Weaver
- Captain -
Next rank: = Captain = after 12 points
2328

Doom Rate: 1.8

Posts quality: +739
Ссылка на пост №315 Отправлено: 20.10.19 18:04:35
По удачному стечению обстоятельств буквально сегодня делал кое-что близкое твоему вопросу. :)

Для начала ставим игроку флаг DONTSPLASH, а затем создаём ему оверлэй чекающий высоту игрока относительно поверхности через проверку его VelZ. Т. е. пишем в оверлэе условие If(VelZ<0){} Что означает "если VelZ отрицательная значит игрок падает" и далее оверлэй ЛИБО отключает флаг DONTSPLASH, либо спаунит под игроком снаряды которые и вызовут сплэш по приземлениюводнению.
ACTOR CrusherGuy : DoomPlayer
{
+DONTSPLASH
States
{
Spawn:
PLAY A 1 NoDelay A_Overlay(3,"SplasherOverlay",1)
Loop

SplasherOverlay:
TNT1 A 1
{
If(VelZ<0){A_SpawnItemEx("SplasherBall",0,0,-5,0,0,-5);Return state("");}
Else{Return state("");}
}
Loop
}
}

ACTOR SplasherBall
{
Height 4
Radius 4
Projectile
Damage (0)
States
{
Spawn:
BAL1 AA 1
Death:
TNT1 A 0
Stop
}
}

Рейтинг сообщения: +2, отметил(и): Zeberpal_98, VladGuardian
1 8 1
Zeberpal_98
= Sergeant Major =
Next rank: UAC Sergeant Major after 5 points
675

Doom Rate: 1.89

Posts quality: +79
Ссылка на пост №316 Отправлено: 20.10.19 19:07:49
Void Weaver
Ухухух, как хитро ты придумал, спасибо за солюшн :haha:
к этому методу и думгая надо подготовить)
1
Страница 16 из 16Перейти наверх Пред.  1, 2, 3 ... 14, 15, 16
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!-2