Ничего смешного там нет, формат нодов и формат карт — немного разные вещи. Уже даже GZDoom всё считает в флоатах, а ноды как были с этим ограничением, так и остались. (хотя вообще надо будет потом попробовать потыкать GZDB и сделать карту вне этих рамок, может и работает уже...)
вместо слотов этого звука пишу (в конфигах оружия например) CHAN_AUTO, как положено. В игре самого этого звука нет при пинании. Делаю все обратно, как было, звук есть. В чем проблема?
+Ku6EPyXOBEPTKA+ нет. в "действии" проигрывание музыки ссылается на кик. в соиндинфо рандом пишется на кик. я так переделывал средний палец, который глушился через пол секунды. Чтобы вук полностью прошел.
Доброго всем! как прописать предмету простенький спавн? Перековырял спавны предметов, толком не разобрался. (проект бруталити). Можно спавн рандомный, но главное, чтобы он был) Заранее спасибо.
GoldWave однозначно. Не бесплатная, но ведь это для нас не проблема, не так ли ?
Скрытый текст:
Меня бесит, что мало того, что во всех текущих аудио редакторах, так еще и в будущих версиях голдвейва тоже так сделали, что нельзя левой мышью двигать/фокусить начало выделения, а правой конец (имею в виду, чтобы для изменения позиции начала тебе достаточно было нажать ЛКМ на новой позиции, а для изменения позиции конца тебе достаточно нажать ПКМ на новой позиции)
По этой причине я до сих пор пользуюсь древней версией 4.26 (а актуальная 6.х стоит только для тех случаев, когда 4.22 не сможет в какой-то конкретный функционал)
Меня бесит, что мало того, что во всех текущих аудио редакторах, так еще и в будущих версиях голдвейва тоже так сделали, что нельзя левой мышью двигать/фокусить начало выделения, а правой конец (имею в виду, чтобы для изменения позиции начала тебе достаточно было нажать ЛКМ на новой позиции, а для изменения позиции конца тебе достаточно нажать ПКМ на новой позиции)
По этой причине я до сих пор пользуюсь древней версией 4.26 (а актуальная 6.х стоит только для тех случаев, когда 4.22 не сможет в какой-то конкретный функционал)
Сорри за оффтоп
Только что еще раз попробовал - все можно. Версия 6.24. Только я не понял что означает "фокусить", но двигать проблем не составляет...
Keilin Fox Для начала тебе нужно заменить предмет который лежит и превратить его в спавнер
Новое имя предмета: custominventory replaces Имя итема
Далее идёт сам спавнер. Обрати внимание. В коде используется стейт Drop. Пишется примерно так (всякие саунды и прочее убрано, ибо олно нам не нужно)
Скрытый текст:
Это пример кода который заменяет пилу на рандомное оружие
ACTOR ChanesawReplacer: custominventory replaces Chainsaw
{
states
{
Spawn:
TNT1 A 0
goto Drop
Drop:
TNT1 A 0 A_Jump(128,2)
TNT1 A 0 A_SpawnItem("ShotGun",0,0,0,0)
Stop
TNT1 A 0 A_Jump(128,2)
TNT1 A 0 A_SpawnItem("ChainGun",0,0,0,0)
Stop
TNT1 A 0 A_Jump(128,2)
TNT1 A 0 A_SpawnItem("SuperShotgun",0,0,0,0)
Stop
TNT1 A 0 A_Jump(128,2)
TNT1 A 0 A_SpawnItem("RocketLauncher",0,0,0,0)
Stop
TNT1 A 0 A_Jump(128,2)
TNT1 A 0 A_SpawnItem("PlasmaRifle",0,0,0,0)
Stop
TNT1 A 0 A_SpawnItem("BFG9000",0,0,0,0)
}
}
Как видишь, стейт спавн имеет нулевой кадр и сразу отправляется на Drop (в принципе можно всякие эффекты прикрутить, но оно не нужно). В самом стейте Drop есть куча остановок. Это и должно быть так.
Теперь спавн. Тут есть 2 случая, то есть можно идти по списку сверху вниз, как увеличение редкости, так и наоборот. Лучше всего делать увеличение редкости спавна с каждой новой строкой, так как не нужно будет читать лишние строки (каждая строка имеет мизерную, но задерку, поэтому сотни таких итемов могут существенно влиять на фпс при старте).
Что в спавне. Самой первой строкой идёт шанс того, что заспавнится не дробовик, а следующее по списку оружие. Пишем A_jump(шанс,2). В шансе от 0 до 256 (256 - всегда). Я задал 128, то есть в половине случаев будет следующее оружие. Цифра 2 говорит о том, что мы проскакиваем по коду поределённое кол-во строк и упираемся в следующий шанс. Если же трюкач был пьян и прыжок не удался, то спавнится просто шотган через A_SpawnItem и далее по коду идёт остановка stop.
Аналогично идут и другие пушки, за исключением BFG9000, так как она последняя и дальше прыгать уже не нужно. Там будет отсутсвовать строка A_Jump. То есть, в половине случаев от половины случаев спавна шотгана, будет спавниться пулемёт, а в половине случаев от половины случаев в половине случаев шотгана - ССГ, ну и так далее.
К слову, в данном коде нет пилы. Чтобы её добавить, например первой (то есть в половине случаев не будет вообще заменяться), то нужно запихнуть кусок с A_jump, A_Spawnitem, stop в самом начале стейта Drop. НО! В таком случае пилу придётся предварительно клонировать и впихивать клон, чтобы спавнился не рандомный спавнер, а сама пила (по крайней мере раньше так было).
И да, BFG в данном случае будет ооооочень редко спавниться. Если пушек много, то последние пушки будут иметь реально редкий шанс выпадения. Это можно поправить поигравшись с значениями Chance в A_Jump
B вот ещё важное дополнение: в коде НЕ должно быть никаких задержек. Все кадры нулевые, а спрайты TNT A (то есть никаких спрайтов)
___________
Вообще, вариантов очень много как сделать. И через ACS, можно при поднятии предмета или при его активации. В общем, это нужно реально смотреть как да что.
P.S: К слову, в Project Brutality не простой спавнер. Насколько помню, там есть фитча, зависимость спавна оружия и монстров от уровня, то есть на первых уровнях ты никогда не найдёшь некоторых пушек и не встретишь некоторых монстров, они спавняться только начиная с определённых уровней, что намекает на ACS.
+Ku6EPyXOBEPTKA+ у меня имеется мод, который делает не только рандомный спавн мобов, но и предметов. например эти строки:
Скрытый текст:
Actor BulletClipAmmoReplacer replaces Clip
{
//+NOTDMATCH
States
{
Spawn:
TNT1 A 1
TNT1 A 3 A_JumpIf(ACS_NamedExecuteWithResult("CheckTraditional")==1,"ReplaceTraditional")
TNT1 A 2 ACS_ExecuteAlways(796, 0, 0, 0, 0)//Check if Vanilla Mode is activated
TNT1 A 1 ACS_NamedExecuteAlways("StarterPackDynamicProgressionFix",0)
TNT1 A 1 ACS_NamedExecuteAlways("SpawnerScript",0)
TNT1 A 1 A_Jump(256,"Deciding")
Deciding:
TNT1 A 1
loop
ReplaceVanilla:
TNT1 A 3
TNT1 A 3 A_JumpIf(ACS_NamedExecuteWithResult("CheckTraditional")==1,"ReplaceTraditional")
TNT1 A 3
TNT1 A 0 A_SpawnItemEx("NewClip",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
ReplaceTraditional:
TNT1 A 0 A_SpawnItemEx("NewClip",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
Spawner1:
Spawner2:
Spawner3:
Spawner4:
Spawner5:
Spawner6:
Spawner7:
Spawner8:
Spawner9:
Spawner11:
TNT1 A 0 A_Jump(64, 2)
TNT1 A 0 A_SpawnItemEx("NewClip",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 ACS_ExecuteAlways(796, 0, 0, 0, 0)//Check if Vanilla Mode is activated
TNT1 A 0 A_SpawnItemEx("BulletCartridge",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
Spawner10:
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("newclip",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("newclipboxbig",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("bulletkit",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("hegrenadebox",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("specialgrenadebox",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("newrocketbox",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("newrocketammo",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("newshellbox",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("newshell",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("bulletcartridge",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("newclipbox",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("newcell",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("newcellpack",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(250, 2)
TNT1 A 0 A_SpawnItemEx("combatbackpack",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("stimpack2",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("healthplus",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("armorshard",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("medikit2",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 1 A_Jump(235, 2)
TNT1 A 0 A_SpawnItemEx("newmedipack",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
TNT1 AAA 0
TNT1 A 0 A_SpawnItemEx("newclip",0,0,0,0,0,0,0,SXF_TRANSFERSPECIAL | SXF_TRANSFERAMBUSHFLAG | SXF_TRANSFERPOINTERS | 288)
Stop
}
}
Мне остается их только дополнить тем, что я хочу ставить на спавн?
Попробуй эти спейшелы, они вроде должны работать в буме тоже:
286: -- Translucent Line (25% opaque) - еле еле видно.
284: -- Translucent Line (50% opaque) - серидина.
285: -- Translucent Line (75% opaque) - плотная.
287: -- Translucent Line (50% opaque, additive) - добавляет белизну и полупрозрачность текстуре (стекло).
412: -- Translucent Line (20% opaque) - еле еле видно.
411: -- Translucent Line (40% opaque) - видно, но слабо.
410: -- Translucent Line (60% opaque) - чуть выше среднего.
409: -- Translucent Line (80% opaque) - очень плотная.
Мне остается их только дополнить тем, что я хочу ставить на спавн?
Ну фактически похожая система тут, как и у меня (тоже через A_jump), только прыгает не на следующую строку прыжка, а на стоп с шансом 235. Смотри по строкам, там просто добавляй внутри стейта spawner TNT AAA 0, TNT A 1 a_jump, затем TNT A 0 a_spawnitemex (со своим предметом) и stop. ACS на ванильный мод вроде проверяется раньше. Поэтому впихивай где-то между предметов, которые считаешь менее редким, чем твой и более редкий, чем твой.
Те, которые 28х -- только в Легаси и ЗДуме, 4хх вроде бы только в 3dge. В Буме не будут работать, насколько я знаю.
@doomgabr
Для регулирования нужно в вад вложить свои TRANMAP лампы для каждой отдельной степени прозрачности. Т.е. отдельный транмап для 25%, 35% прозрачности итд. Несколько таких есть в сс4-тех, посмотри.
Потом с помощью этих транмапов регулируешь прозрачность, подробно описано здесь. Существует простой способ для создания транмапов, я о нём читал где-то, но забыл, где и что. Сорри.