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

Doom Rate: 1.91

Posts quality: +21
Ссылка на пост №3641 Отправлено: 15.10.18 09:44:31
Void Weaver :
Полагаю речь идёт о Wailer, да? У тебя в коде все ф-ции каждого выстрела "упакованы" в 1 тик анонимной ф-ции, из-за этого пуха дико скорострельна. А ты не думал пойти несколько иным путём - чуток снизить скорострельность (повысив дамаг и\или ко-во пуль) вместо просто снижения потребления аммо?

Главная фишка этого оружия - бешеная скорострельность. Именно она выделяет этот ствол на фоне остальных. Я не хочу жертвовать скорострельностью.
Anto96WS
= Master Corporal =
Next rank: - Sergeant - after 45 points
245

Doom Rate: 1.78

Posts quality: +62
Ссылка на пост №3642 Отправлено: 15.10.18 10:02:32
Может просто на один патрон сделать допустим десять выстрелов (непрерывно)?
Примитивным способом повторения кадра (не бейте)
nailzx128
- Corporal -
Next rank: = Corporal = after 10 points
90

Doom Rate: 1.91

Posts quality: +21
Ссылка на пост №3643 Отправлено: 15.10.18 10:39:44
В общем, ладно. Эта проблема с потреблением патронов решена. Но вернёмся к вопросу, который я задавал ранее. Товарищ Void Weaver помог мне с решением бага с 10-ти кратным поднятием. Большое ему спасибо за это. Однако, остался другой баг. Первое поднятие предмета даёт НИ-ЧЕ-ГО. Только пикапмэсседж в логе высвечивается.
nailzx128 :
Возникла небольшая проблема. Вот скрипт для увеличения максимального кол-ва переносимых патронов. Он не работает корректно.
Если заспавнить мой AmmoExtender через консоль, всё работает хорошо. НО! Суть в том, что этот предмет заменяет оригинальный Backpack. На некоторых картах, при самом первом подборе предмета, ничего не происходит. А вот к примеру на седьмой карте Doom 2, этот предмет вообще поднимается максимальное кол-во раз! Итак, вопрос знатокам. Что я сделал не так?
Ниже публикую код, если это что-то даст.

ACS скрипт
Скрытый текст:

bool playerbackpack[8] = { FALSE };

script 123 (void)
{
if (playerbackpack[PlayerNumber()])
{
if (GetAmmoCapacity("energyammo") < 1000)
{
SetAmmoCapacity("energyammo", GetAmmoCapacity("energyammo") + 100);
giveinventory("energyammo",100);
SetAmmoCapacity("tracerbulletsammo", GetAmmoCapacity("tracerbulletsammo") + 100);
giveinventory("tracerbulletsammo",100);
SetAmmoCapacity("petroleumammo", GetAmmoCapacity("petroleumammo") + 100);
giveinventory("petroleumammo",100);
SetAmmoCapacity("missileammo", GetAmmoCapacity("missileammo") + 100);
giveinventory("missileammo",100);
SetAmmoCapacity("meatballsammo", GetAmmoCapacity("meatballsammo") + 100);
giveinventory("meatballsammo",100);
}
}
else
playerbackpack[PlayerNumber()] = TRUE;
}

script 124 ENTER
{
if (GetAmmoCapacity("energyammo") >> 0)
playerbackpack[PlayerNumber()] = true;
}

script 125 RESPAWN
{
playerbackpack[PlayerNumber()] = FALSE;
}



Код предмета

actor ammoextender : custominventory replaces backpack
{
inventory.pickupmessage "$ammo_ext"
inventory.pickupsound "pickup" //оригинально...
scale 0.7
states
{
spawn:
tnt1 a 0 acs_namedexecutealways("harpplay",0,0,0) //тут проигрывается музон
aful abcdefghijklmnop 2
loop
pickup:
tnt1 a 0 acs_execute(123,0,0,0,0)
stop
}
}


DOOMGABR
Chief Petty Officer
Next rank: - Warrant Officer - after 68 points
972

Doom Rate: 1.9

Posts quality: +528
Ссылка на пост №3644 Отправлено: 15.10.18 16:09:24
Насчёт ракеты Рева ну вообще не вкурил. :diatel: Смотрите, фича в том, что правая ракетная установка должна выпускать обычные снаряды, а левая — самонаводящиеся. Как это реализовать непосредственно в коде? спрайты уже готовы
MyNameIs
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 182 points
1458

Doom Rate: 1.94

Posts quality: +517
Ссылка на пост №3645 Отправлено: 15.10.18 16:23:17
DOOMGABR
короче говоря, рандомность выбора между самонаводкой и обычностью вкодена в A_Tracer.
можешь юзать A_Tracer2, он почти такой же

что-то типа этого
ACTOR RevenantTracerTheSeekerOne : RevenantTracer { +SEEKERMISSILE States { Spawn: FATB AB 2 Bright A_Tracer2 Loop } } ACTOR RevenantTracerTheNormalOne : RevenantTracer { -SEEKERMISSILE States { Spawn: FATB AB 2 Bright Loop } }

Рейтинг сообщения: +2, отметил(и): DOOMGABR, Void Weaver
1 1
DOOMGABR
Chief Petty Officer
Next rank: - Warrant Officer - after 68 points
972

Doom Rate: 1.9

Posts quality: +528
Ссылка на пост №3646 Отправлено: 15.10.18 16:49:16
MyNameIs
Благодарю! А как это присвоить спрайтам правой и левой ракетницы. Я окончательно запутался, пусть и понял механизм этих двух акторов. Вот код ревенанта:

ACTOR Rev : Revenant replaces Revenant { Speed 12 States { Spawn: REVA AB 10 A_Look Loop See: SKEL AABBCCDDEEFF 2 A_Chase Loop Melee: SKEL G 0 A_FaceTarget SKEL G 6 A_SkelWhoosh SKEL H 6 A_FaceTarget SKEL I 6 A_SkelFist Goto See Missile: SKEL J 0 Bright A_FaceTarget SKEL J 10 Bright A_FaceTarget SKEL K 10 A_SkelMissile SKEL K 10 A_FaceTarget Goto See Pain: SKEL L 5 A_Pain SKEL L 5 Goto See Death: TNT1 A 0 A_Scream SKEL LM 5 // 7-> SKEL N 5 SKEL O 4 A_NoBlocking SKEL P 4 SKEL Q -1 Stop Raise: SKEL Q 5 SKEL PONML 5 Goto See } }
Void Weaver
Chief Petty Officer
Next rank: Chief Petty Officer after 38 points
902

Doom Rate: 1.96

Posts quality: +221
Ссылка на пост №3647 Отправлено: 15.10.18 17:41:05
nailzx128
Блин, тут нет телепатов, я хз что в твоём случае значит "Первое поднятие предмета даёт НИ-ЧЕ-ГО". Не увеличивает лимит аммо? Не прибавляет аммо? Не делает ни то ни другое?
Если не прибавляет аммо, то попробуй перенести все giveinventory("---ammo",100) из скрипта в стэйт Pickup.
-------------------------
DOOMGABR :
А как это присвоить спрайтам правой и левой ракетницы.
Строку с A_SkelMissile заменяешь на две строки с A_SpawnProjectile, типа:
SKEL K 5 A_SpawnProjectile("RevenantTracerTheSeekerOne",32.0,-10) //Залп с "левой"; допустим что SKER и SKEL - твои новые спрайты SKER A 5 A_SpawnProjectile("RevenantTracerTheNormalOne",32.0,10); //Залп с "правой"; допустим что SKER и SKEL - твои новые спрайты
В данном случае будет очерёдный выстрел с двух ракетниц сразу.

ИЛИ

Missile: SKEL J 0 Bright A_FaceTarget SKEL J 10 Bright A_FaceTarget TNT1 A 0 A_Jump(128,3) SKEL K 10 A_SpawnProjectile("RevenantTracerTheSeekerOne",32.0,-10) //Залп с "левой"; допустим что SKER и SKEL - твои новые спрайты TNT1 A 0 A_Jump(256,2) SKER A 10 A_SpawnProjectile("RevenantTracerTheNormalOne",32.0,10); //Залп с "правой"; допустим что SKER и SKEL - твои новые спрайты SKEL K 10 A_FaceTarget Goto See
В данном случае с шансом 50% будет выстрел либо с правой, либо с левой.

Непонятно только чем тебя не устраевает A_SeekerMissile.

Рейтинг сообщения: +1, отметил(и): DOOMGABR
4 1
nailzx128
- Corporal -
Next rank: = Corporal = after 10 points
90

Doom Rate: 1.91

Posts quality: +21
Ссылка на пост №3648 Отправлено: 15.10.18 18:09:22
Void Weaver :
Блин, тут нет телепатов, я хз что в твоём случае значит "Первое поднятие предмета даёт НИ-ЧЕ-ГО". Не увеличивает лимит аммо? Не прибавляет аммо? Не делает ни то ни другое?

Чёрт, моя неконкретность когда-нибудь меня убьёт. :diatel: Первый подбор не прибавляет патронов и не увеличивает их максимальное кол-во. :bitsa:
Anto96WS
= Master Corporal =
Next rank: - Sergeant - after 45 points
245

Doom Rate: 1.78

Posts quality: +62
Ссылка на пост №3649 Отправлено: 15.10.18 18:43:52
В скрипте 123 первый раз ты просто меняешь переменную с FALSE на TRUE. И ничего не прибавляешь.

Скрытый текст:

bool playerbackpack[8] ={ FALSE };
script 123 (void){
if(playerbackpack[PlayerNumber()]){
if(GetAmmoCapacity("energyammo") <1000){ SetAmmoCapacity("energyammo", GetAmmoCapacity("energyammo") +100); giveinventory("energyammo", 100); SetAmmoCapacity("tracerbulletsammo", GetAmmoCapacity("tracerbulletsammo") +100); giveinventory("tracerbulletsammo", 100); SetAmmoCapacity("petroleumammo", GetAmmoCapacity("petroleumammo") +100); giveinventory("petroleumammo", 100); SetAmmoCapacity("missileammo", GetAmmoCapacity("missileammo") +100); giveinventory("missileammo", 100); SetAmmoCapacity("meatballsammo", GetAmmoCapacity("meatballsammo") +100); giveinventory("meatballsammo", 100); } }
else playerbackpack[PlayerNumber()] =TRUE;
}



А в ENTER скрипте неверное условие.
>> это оператор битового сдвига. Зачем? Вероятно опечатка.
Предполагаю что из-за этого косяка все работает не так как надо.

Скрытый текст:

script 124 ENTER {
if(GetAmmoCapacity("energyammo") >>0)
playerbackpack[PlayerNumber()] =TRUE; }


Рейтинг сообщения: +1, отметил(и): Void Weaver
MyNameIs
= 2nd Lieutenant =
Next rank: - 1st Lieutenant - after 182 points
1458

Doom Rate: 1.94

Posts quality: +517
Ссылка на пост №3650 Отправлено: 15.10.18 19:19:46
DOOMGABR
ты про смещение места выстрела?
A_SpawnProjectile умеет в оффсеты

а еще можно глянуть код дарк инквизитора, там тоже такое есть
1 1
DOOMGABR
Chief Petty Officer
Next rank: - Warrant Officer - after 68 points
972

Doom Rate: 1.9

Posts quality: +528
Ссылка на пост №3651 Отправлено: 16.10.18 20:47:59
Во́йду спс. Всё прекрасно работает. :haha:
Вопрос. Как сделать, чтобы буллетпаффы SSG разносили монстра в XDeath, в зависимости от того, сколько урона нанесли в сумме все попавшие в тушку дробинки? Как параметр есть в Smooth Doom "ssg gibs monsters", нужно такую же бойду реализовать.

Добавлено спустя 5 минут 17 секунд:

MyNameIs
Не-а. Void уже полностью исчерпал мой вопрос.
Chaingunner
- Warrant Officer -
Next rank: = Warrant Officer = after 47 points
1093

Doom Rate: 1.96

Posts quality: +191
Ссылка на пост №3652 Отправлено: 16.10.18 21:26:26
Формат: UDMF
Как задать звук полиобъекту?
1 2 1
DOOMGABR
Chief Petty Officer
Next rank: - Warrant Officer - after 68 points
972

Doom Rate: 1.9

Posts quality: +528
Ссылка на пост №3653 Отправлено: 16.10.18 22:27:13
Chaingunner
https://zdoom.org/wiki/SNDSEQ
Вот статья. А в идеале скачать это, вытащить map.wad, подгрузить pk3, который скачал, как ресурс и начинать учиться по этому ваду.
В данном ваде используются полиобъекты. Пусть он в формате Hexen, но и для UDMF подходит. Там на полиобъектах висят скрипты, в которых раскрываются экшены, которые, в свою очередь, ищешь на ZDoom Wiki и начинаешь понимать. На заметку, я по новичковости очень быстро это смог освоить, тебе, думаю будет раз плюнуть. Единственный нюанс — звук открытия=звук закрытия. SNDSEQ не имеет обратного вектора на звук закрытия двери. Но это можно обойти. В ваде Revenge Of Evil сделаны полиобъекты со звуком закрытия. Если я не поленюсь изучить — поделюсь инфой.

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

Как сделать, чтобы фрейм кровоточил обычной думовской кровью? В моем случае, хочется сделать всем фреймам XDeath анимаций интенсивный спаун обычной думовской крови.

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

Как сделать кровь, чтобы на каждое ранение хитсканом рандомно спаунился либо один спрайт, либо другой? Я хочу реализовать маловероятный спаун буллетпаффа вместо крови (типа, имитация попадания по металлу) у арахнотрона, манкубуса, мастермайнда и кибердемона.

Рейтинг сообщения: +1, отметил(и): Chaingunner
Void Weaver
Chief Petty Officer
Next rank: Chief Petty Officer after 38 points
902

Doom Rate: 1.96

Posts quality: +221
Ссылка на пост №3654 Отправлено: 17.10.18 09:37:03
DOOMGABR :
Как сделать, чтобы буллетпаффы SSG разносили монстра в XDeath, в зависимости от того, сколько урона нанесли в сумме все попавшие в тушку дробинки?
Мэйби я чего-то не догоняю, но по-моему параметры пухи тут несколько вторичны, ибо за гибсы прежде всего отвечает GibHealth свойство; по-умолчанию в Думе оно равно для каждого актора отрицательному значению SpawnHealth. Т. е. для импа оно равно 60, для барона - 1к. Если же выставить барону GibHealth 1, то он может быть гиббнут даже пистолем, офк при наличии XDeath стэйта.
Ещё можно задавать gibfactor = <value> в gameinfo.
Если же прописать пуффу +EXTREMEDEATH, то будет всегда рвать в мясо.

DOOMGABR :
Как сделать кровь, чтобы на каждое ранение хитсканом рандомно спаунился либо один спрайт, либо другой? Я хочу реализовать маловероятный спаун буллетпаффа вместо крови (типа, имитация попадания по металлу) у арахнотрона, манкубуса, мастермайнда и кибердемона.
Та ещё задачка. Ну вот как-то так:
Скрытый текст:

Actor MyChaingun : Chaingun //Пулемётик на поиграться.
{
States
{
Fire:
CHGG A 0 A_PlaySound("weapons/chngun", CHAN_WEAPON)
CHGG A 0 A_GunFlash
CHGG A 4 A_FireBullets(5.6, 0, 1, 5, "MyPuff")
CHGG B 0 A_PlaySound("weapons/chngun", CHAN_WEAPON)
CHGG B 0 A_GunFlash("Flash2")
CHGG B 4 A_FireBullets(5.6, 0, 1, 5, "MyPuff")
CHGG B 0 A_ReFire
Goto Ready
Flash:
CHGF A 4 Bright A_Light1
Goto LightDone
Flash2:
CHGF B 4 Bright A_Light2
Goto LightDone
}
}


Actor MyPuff : BulletPuff //Это если тебе нужен пуфф от пуль, так-то можно от любого другого
{
+PUFFONACTORS //Собс-но флаг позволяющий отображать пуфф на "мясном" акторе
+HITTRACER //Флаг "маркирующий" акторы для дальнейшей проверки
States
{
Crash: //Если выстрел не в моба
PUFF A 4 Bright
PUFF BCD 4
Stop
Spawn:
Melee:
TNT1 A 1 NoDelay A_SpawnItemEx("BlankPuff",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION|SXF_TRANSFERPOINTERS) //Спауним псевдо-пуфф
Stop
}
}

Actor BlankPuff //Будет спауниться с шансом если чек на принадлежность к классу пройден
{
Height 5
Radius 4
Scale 1.4
+NOGRAVITY
States
{
Spawn:
TNT1 A 0 NoDelay A_JumpIf(CheckClass("Cyberdemon",AAPTR_TRACER,1)==0,"SpiderMastermindCheck") //Проверка на Кибердемонов
TNT1 A 0 A_Jump(256,"CyberdemonPuff")
SpiderMastermindCheck:
TNT1 A 0 A_JumpIf(CheckClass("SpiderMastermind",AAPTR_TRACER,1)==0,"FatsoCheck") //Проверка на СМастермайндов
TNT1 A 0 A_Jump(256,"SpiderMastermindPuff")
FatsoCheck:
TNT1 A 0 A_JumpIf(CheckClass("Fatso",AAPTR_TRACER,1)==0,"ArachnotronCheck") //Проверка на Манкубусов
TNT1 A 0 A_Jump(256,"FatsoPuff")
ArachnotronCheck:
TNT1 A 0 A_JumpIf(CheckClass("Arachnotron",AAPTR_TRACER,1)==0,"Death") //Проверка на Арахнотронов
TNT1 A 0 A_Jump(256,"ArachnotronPuff")
CyberdemonPuff:
TNT1 A 0 A_Jump(171,"Death") //~33% шанс на спаун пуффа вместо крови, в принципе ради зрелищности можно и выше
PUFF A 4 Bright A_Warp(AAPTR_TRACER,0,frandom(-10,10),frandom(27,77),0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE) //Варпы под габариты Кибердемона
PUFF BCD 4 A_Warp(AAPTR_TRACER,0,frandom(-10,10),frandom(27,77),0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
Goto Death
SpiderMastermindPuff:
TNT1 A 0 A_Jump(171,"Death")
PUFF A 4 Bright A_Warp(AAPTR_TRACER,0,frandom(-32,32),frandom(25,75),0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE) //Варпы под габариты СМастермайнда
PUFF BCD 4 A_Warp(AAPTR_TRACER,0,frandom(-32,32),frandom(25,75),0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
Goto Death
FatsoPuff:
TNT1 A 0 A_Jump(171,"Death")
PUFF A 4 Bright A_Warp(AAPTR_TRACER,0,frandom(-12,12),frandom(16,48),0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE) //Варпы под габариты Манкубуса
PUFF BCD 4 A_Warp(AAPTR_TRACER,0,frandom(-12,12),frandom(16,48),0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
Goto Death
ArachnotronPuff:
TNT1 A 0 A_Jump(171,"Death")
PUFF A 4 Bright A_Warp(AAPTR_TRACER,0,frandom(-16,16),frandom(16,48),0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE) //Варпы под габариты Арахнотрона
PUFF BCD 4 A_Warp(AAPTR_TRACER,0,frandom(-16,16),frandom(16,48),0,WARPF_NOCHECKPOSITION|WARPF_INTERPOLATE)
Death:
TNT1 A 0
Stop
}
}

Если что, под Ревенанта и сам теперь сделаешь.
----------------------------
ЭДИТ:
Пофиксил в коде варп-оффсеты, теперь норм.
4 1
DOOMGABR
Chief Petty Officer
Next rank: - Warrant Officer - after 68 points
972

Doom Rate: 1.9

Posts quality: +528
Ссылка на пост №3655 Отправлено: 17.10.18 16:05:17
Void Weaver :
за гибсы прежде всего отвечает GibHealth свойство; по-умолчанию в Думе оно равно для каждого актора отрицательному значению SpawnHealth. Т. е. для импа оно равно 60, для барона - 1к. Если же выставить барону GibHealth 1, то он может быть гиббнут даже пистолем, офк при наличии XDeath стэйта.

Это срабатывает на проджектайлах. Но на хитсканах не работает :с

Добавлено спустя 17 минут 36 секунд:

зы: эммм, работает, но как то через жопу. У меня значение gibfactor = 0.1, так даже с таким значением с SSG проблематично разнести монстра на куски. А с проджектайлами проще простого.

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

Код с паффами не сработал вообще.
Void Weaver
Chief Petty Officer
Next rank: Chief Petty Officer after 38 points
902

Doom Rate: 1.96

Posts quality: +221
Ссылка на пост №3656 Отправлено: 17.10.18 16:47:24
DOOMGABR :
Это срабатывает на проджектайлах. Но на хитсканах не работает
Прекрасно работает с хитсканом, этого импа рвёт в кашу даже пистолем, попробуй:
Actor DImp : DoomImp
{
GibHealth 1
}

DOOMGABR :
У меня значение gibfactor = 0.1
0.1 от 60 хп импа это 6, дамаг ссг пульки 5*1d3. Попробуй gibfactor = 0.05

DOOMGABR :
Код с паффами не сработал вообще.
Хз, у меня всё работает, пуффы периодически спаунятся только на этих 4 мобах. Стрелял из этого чейна и из ссг. Выложи свой код что ли.

Добавлено спустя 6 часов 13 минут 16 секунд:

DOOMGABR
Блин, да, у псевдо-пуффа были неправильные варп-z-оффсеты. Пофиксил код:
4 1
Anto96WS
= Master Corporal =
Next rank: - Sergeant - after 45 points
245

Doom Rate: 1.78

Posts quality: +62
Ссылка на пост №3657 Отправлено: 18.10.18 20:06:51
Есть вопрос, не знаю задавался или нет - как изменить высоту актора на ходу? Например чтобы изобразить приседание
YURA_111
= Master Sergeant =
Next rank: - Sergeant Major - after 30 points
500

Doom Rate: 2.02

Posts quality: +70
Ссылка на пост №3658 Отправлено: 18.10.18 20:12:21
Anto96WS :
как изменить высоту актора на ходу?


Функция A_SetSize позволяет изменять высоту и радиус:
( https://zdoom.org/wiki/A_SetSize )

ну а визуально ты должен спрайтами конечно...

Рейтинг сообщения: +2, отметил(и): Anto96WS, Void Weaver
Anto96WS
= Master Corporal =
Next rank: - Sergeant - after 45 points
245

Doom Rate: 1.78

Posts quality: +62
Ссылка на пост №3659 Отправлено: 18.10.18 20:14:08
Нужно было именно технически. Со спрайтами проблемы не было. thx
DOOMGABR
Chief Petty Officer
Next rank: - Warrant Officer - after 68 points
972

Doom Rate: 1.9

Posts quality: +528
Ссылка на пост №3660 Отправлено: 18.10.18 23:50:16
Void Weaver
Значение гибфактора мне не подходит. Не подскажешь как создать кастомный пафф для SSG, чтобы только это оружие так кромсало в мясо. А остальное осталось кромсать по прежнему. Это в Смут Думе реализовано с помощью кастомного паффа.

и подскажи плез варпы для ревенанта.

спасибо всё прекрасно работает! осталось только порешить SSG gibs monsters :o
Страница 183 из 185Перейти наверх Пред.  1, 2, 3 ... 182, 183, 184, 185  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!