Welcome to U.A.C. [O.S.A.]
login / register 
Status: Guest
Forum archive | iddqd.ru
Wolf 3D
RulesRules SearchSearch
18+
Тема для новичков. Вопросы по маппингу/моддингу - любые!-2Goto page Previous  1, 2, 3 ... 15, 16, 17 ... 72, 73, 74  Next
   Forum Index - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!-2Post a reply
AuthorMessage
N00b
Chief Petty Officer
Next rank: Chief Petty Officer after 18 points
922

Doom Rate: 2.15

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

This post scores averagely at 2,00 point(s) with 0 commenters.
1 2
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Link to post #302 Posted: 02.10.19 23:01:05
:)
N00b2015 wrote:
Если имелось в виду, что оружие может быть вообще не выбрано, то работать, скорее всего, не будет (поскольку psprite-ов не будет).
Кстати эту проблему давно хотел решить Apeirogon (на здум-форуме) ака Толик (на нашем форуме).
---
Рабочая версия моего предыдущего поста (по команде zoom):
Hidden text:

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}


This post scores averagely at 1,00 point(s) with 0 commenters.
1 9 1
Zeberpal_98
Chief Petty Officer
Next rank: - Warrant Officer - after 87 points
953

Doom Rate: 2.14

Posts quality: +279
Link to post #303 Posted: 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(""); зачем он здесь?

This post scores averagely at 1,00 point(s) with 0 commenters.
1 3
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Link to post #304 Posted: 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! Иначе всё было бы гораздо проще и не понадобилось бы привинчивать зум-оверлэй к каждому оружию. Тупанул-с. )

This post scores averagely at 1,00 point(s) with 0 commenters.
1 9 1
Zeberpal_98
Chief Petty Officer
Next rank: - Warrant Officer - after 87 points
953

Doom Rate: 2.14

Posts quality: +279
Link to post #305 Posted: 02.10.19 23:43:56
Void Weaver
не не, я понял, что для оружия, это просто дамми айтем для FOVhandlera, этакая замена проверки по клавише. Я просто хочу, чтобы вся эта котовасия срабатывала, когда Игрок получает дамми айтем, и ..десрабатывает, когда он его, следовательно, лишается. Спасибо про CountInv, я был не в курсе.
1 3
FoxPlays
= Sergeant Major =
Next rank: UAC Sergeant Major after 36 points
644

Doom Rate: 2.14

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

1 1 1
ZZYZX
- UAC Commissar -
Next rank: = UAC Commissar = after 16 pointsForum moderator
6284

Doom Rate: 1.65

Posts quality: +1633
Link to post #307 Posted: 14.10.19 18:36:27
Вроде бы только с SetHudSize
Но это неточно

This post scores averagely at 2,00 point(s) with 0 commenters.
2 2 1
VladGuardian
- UAC Commissar -
Next rank: = UAC Commissar = after 277 points
6023

Doom Rate: 1.33

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

This post scores averagely at 0,00 point(s) with 0 commenters.
4 17 23
FoxPlays
= Sergeant Major =
Next rank: UAC Sergeant Major after 36 points
644

Doom Rate: 2.14

Posts quality: +371
Link to post #309 Posted: 15.10.19 12:25:16
Спасибо, ZZYZX и VladGuardian. Так работает :D
1 1 1
Hutt
- Sergeant Major -
Next rank: = Sergeant Major = after 18 points
582

Doom Rate: 1.31

Posts quality: +161
Link to post #310 Posted: 16.10.19 16:43:37
Как сделать цветной динамик лайт?
alekv
- Colonel -
Next rank: = Colonel = after 270 pointsForum moderator
4170

Doom Rate: 1.87

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

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


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

Doom Rate: 2.28

Posts quality: +760
Link to post #312 Posted: 16.10.19 20:25:18
Hutt wrote:
Как сделать цветной динамик лайт?

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

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

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

This post scores averagely at 2,00 point(s) with 0 commenters.
2 8 1
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Link to post #313 Posted: 17.10.19 18:57:43
И кстати начиная с 4.2 ввели офигенную функцию A_AttachLight, которая позволяет оперировать параметрами динлайта непосредственно из вызывающего объекта.
1 9 1
Zeberpal_98
Chief Petty Officer
Next rank: - Warrant Officer - after 87 points
953

Doom Rate: 2.14

Posts quality: +279
Link to post #314 Posted: 20.10.19 17:39:49
Возможно ли в Zdoom вызывать terrain splash, только когда Игрок прыгает с определенной высоты, а не когда заходит в сектор? Например, хочу, чтобы брызги/звуки воды не издавались, когда игрок входит в террайн-текстуру (h суши = h воды), а при прыжке бомбочкой - да. Посмотрел вики, такой опции кажется нет, но мало ли я чего-то не знаю.
1 3
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Link to post #315 Posted: 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
}
}

This post scores averagely at 2,00 point(s) with 0 commenters.
1 9 1
Zeberpal_98
Chief Petty Officer
Next rank: - Warrant Officer - after 87 points
953

Doom Rate: 2.14

Posts quality: +279
Link to post #316 Posted: 20.10.19 19:07:49
Void Weaver
Ухухух, как хитро ты придумал, спасибо за солюшн :haha:
к этому методу и думгая надо подготовить)
1 3
Zeberpal_98
Chief Petty Officer
Next rank: - Warrant Officer - after 87 points
953

Doom Rate: 2.14

Posts quality: +279
Link to post #317 Posted: 31.10.19 16:30:43
Можно ли в здуме каким-то образом вот такую "личную" информацию перегнать в стринг?

str STR_IsInStage = GetChar((GetAmmoCapacity("StageStatus")), 0);  //перегнать инфу, касающуюся боеприпасов
str StageIMG = StrParam( s:"ICONST", s: STR_IsInStage );


Я так понял в стринг можно пихать только переменные не так ли?
Например, в STR_IsInStage мне возвращается ни с того ни с сего CVARная информация всякая.

This post scores averagely at 1,00 point(s) with 0 commenters.
1 3
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Link to post #318 Posted: 31.10.19 17:04:16
Если ты хочешь вывести значение максимума боеприпаса то разве не проще выводить значение не стрингом а тупо интом?
1 9 1
Zeberpal_98
Chief Petty Officer
Next rank: - Warrant Officer - after 87 points
953

Doom Rate: 2.14

Posts quality: +279
Link to post #319 Posted: 31.10.19 17:28:45
Void Weaver
В данном случае не могу - онлайн мод. Много параметров, которые у каждого игрока разные. Безусловно у меня есть много способов решить проблему, но желание обойтись 3 строчками кода меня не покидает.

str StageIMG = StrParam( s:"ICONST", c:(GetChar(GetAmmoCapacity("StageStatus"), 0)));
 {
 HudMessageOnActor((GetAmmoCapacity("AreaStatus") + GetAmmoCapacity("StageStatus") + GetAmmoCapacity ("PersonaLuck")), stagerange, StageIMG,"",644);

недавно подумал, что моя ошибка в неправильной букве: но и decimal number и character возвращают дичь.
1 3
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Link to post #320 Posted: 31.10.19 20:27:58
Zeberpal_98 wrote:
В данном случае не могу - онлайн мод.
И как это ограничивает тип вывода данных?

Т. е. ты собираешься выводить ряд статов в виде разновидностей аммо? Если так то делаешь вообще неправильно ибо в таком случае нужно юзать CheckInventory, а не GetAmmoCapacity.

Что такое HudMessageOnActor?
1 9 1
Page 16 of 74Go to topGoto page Previous  1, 2, 3 ... 15, 16, 17 ... 72, 73, 74  Next
   Forum Index - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!-2