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

Doom Rate: 2.01

Posts quality: +81
Ссылка на пост №3221 Отправлено: 11.05.18 21:45:07
theleo_ua:
просто добавляю декорейт


Тогда попробуй обновить версию GZDOOM - помню в одних из недавних "билдах" что-то писалось о фиксах проблем связанных с дехакидом.

Рейтинг сообщения: +1, отметил(и): theleo_ua
Void Weaver
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 94 points
1196

Doom Rate: 1.93

Posts quality: +341
Ссылка на пост №3222 Отправлено: 12.05.18 02:18:01
И снова я с партией вопросов:

1) A_CustomMeleeAttack(random(1, 10) * 6) = A_CustomMeleeAttack(random(6, 60) ), так?
Скрытый текст:

Тогда как точно записывается И считается A_CustomBulletAttack? Вопрос неспроста, ибо звики гласит:
damageperbullet: The amount of damage each bullet does. Unless the NORANDOM flag is set, this is multiplied by a random value between 1 and 3.
Значит ли это что если я записываю:
A_CustomBulletAttack(random(1, 10) * 6)
или
A_CustomBulletAttack(random(6, 60) )
то в реальности калькуляция дамага будет выражена как:
A_CustomBulletAttack(random((1, 10) * 6)*random(1,3))
или
A_CustomBulletAttack(random(6, 60)*random(1, 3) )
если только не прописан "CBAF_NORANDOM" флаг?


Вопрос внезапно стал значим после того как, заменив CMeleeA на CBulletA, но не меняя значения дамага при этом, я обнаружил ЗНАЧИТЕЛЬНОЕ повышение урона. Таки да. Без флага урон каждой пульки множится на random(1, 3).

2) После замены CMeleeA на CBulletA в стэйте мили и смежных с ним, обнаружил что звук мили стэйта стал дублироваться. С чем это может быть связано? Код: Оказывается "AttackSound" независимо активируется как стэйтом так и самой CBulletA.

3) Поскольку в мат-ике и всяких там терверах не шарю, то прошу не лолировать со следующего. ))
Есть ли разница в уроне за условную ед. времени, между выражениями записанными через
random(1, 10) * 6
и
random(6, 60)
? Мне кажется что в первом случае шанс выпадения числа "60" будет гораздо выше нежели во втором. Поправьте, если не заблуждаюсь.
6 1
Герр Смертоносец
- Sergeant Major -
Next rank: = Sergeant Major = after 45 points
555

Doom Rate: 1.57

Posts quality: +310
Ссылка на пост №3223 Отправлено: 12.05.18 04:34:16
Void Weaver:
? Мне кажется что в первом случае шанс выпадения числа "60" будет гораздо выше нежели во втором. Поправьте, если не заблуждаюсь.

В первом случае в рулетке 10 значений, во втором 54. Разумеется, в первом случае шанс на именно "60" будет выше, хотя средний дамаг в обоих случаях примерно одинаковый.

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

Doom Rate: 1.94

Posts quality: +530
Ссылка на пост №3224 Отправлено: 12.05.18 07:23:14
а можно сделать кастомный рюкзак, чтобы он влиял только на максимальность какого-то одного вида патронов?

или хз, может, можно увеличить начальное количество переносимого инвенториитема каким-то другим способом, без переделывания его в патроны
1 1
Герр Смертоносец
- Sergeant Major -
Next rank: = Sergeant Major = after 45 points
555

Doom Rate: 1.57

Posts quality: +310
Ссылка на пост №3225 Отправлено: 12.05.18 07:39:09
MyNameIs:
а можно сделать кастомный рюкзак, чтобы он влиял только на максимальность какого-то одного вида патронов?

Нельзя, ибо количество с рюкзаком/без рюкзака задаётся в Ammo акторе через Ammo.BackpackMaxAmount и Ammo.MaxAmount. Рюкзак тупо показывает движку, что он есть.

Можно костылей нагородить. Задать изначально повышенное максимальное количество и резать скриптом взятый хабар, если в инвентаре нет спец.итема.

Рейтинг сообщения: +2, отметил(и): MyNameIs, Void Weaver
2
DOOMFOREVER
- UAC Gunner -
Next rank: = UAC Gunner = after 4 points
56

Doom Rate: 2

Posts quality: +5
Ссылка на пост №3226 Отправлено: 14.05.18 15:03:10
Хотел задать вопрос, как можно реализовать полосу опыта выпадающего из монстров? То есть убивая монстров игроку дают опыт и как сделать что бы он отображался на экране в виде полосы и доходя до N+10 количества опыта , уровень (значение показываемое выше этой полосы) показывался на один больше?
BlackMetalGuy
Recruit
Next rank: Marine after 10 points
10

Doom Rate: 2

Ссылка на пост №3227 Отправлено: 14.05.18 21:51:55
Порт : GzDoom/QzDoom
В своём моде на тему Вульфенштайна, я решил сделать систему очков. НО! Сделать инвенторку и указать её отображение в SBARINFO - это для меня мало. Но появилось ярое желание сделать так, что бы игрок, при набирании определённого кол-ва очков получал какой-то бонус. Я ПОПЫТАЛСЯ(это важно) написать ACS скрипт этой фичи и столкнулся с одной проблемой - он не работает. Помогите, люди добрые(и не добрые) Ткните носом в ошибку
alekv
Lieutenant Colonel
Next rank: - Colonel - after 242 pointsМодератор форума
3798

Doom Rate: 1.93

Posts quality: +655
Ссылка на пост №3228 Отправлено: 14.05.18 23:58:07
BlackMetalGuy
Script 1 enter //Проблема была в типе скрипта, он срабатывает 1 раз при появлении игрока на карте.
{
//самый не замысловатый способ, сделать цикл что бы условие проверялось постоянно
whie(true)
{
if(CheckInventory("point") >= 10000)//бесконечно будет проверять вещь point.
   {
   //checkInventory(); //тут использовать нет смысла, оно надо для условий.
   GiveInventory("playerBonus", 1);
   }
delay(1);//надо для корректной работы цикла.
 }
}


еще можно сделать цикл к примеру
script 1 enter //скрипт запускается 1 раз при появлении игрока на карте
{
while(CheckInventory("point") < 10000)//попадает в цикл и остается тут до тех пор пока вещь point не станет больше или равно 10 000 единиц
{
delay(1);
}
//когда выйдет из цикла, продолжится выполнение скрипта т.е. игрок получит свою награду.
GiveInventory("playerBonus", 1);
}


Это как вариант.
Думаю есть еще и другие.
Я вообще не любитель когда цикл бесконечно работает в фоне, и стараюсь всегда писать скрипты типа (void) которые надо вызывать самому, но когда не вижу других способов или хочется костылить, то норм =)

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

Doom Rate: 1.94

Posts quality: +530
Ссылка на пост №3229 Отправлено: 15.05.18 09:29:44
DOOMFOREVER
если это не какой-то суперуниверсальный мод, и ты можешь изменять код акторов, то изи

делаешь какой-нибудь инвенториитем,
Actor KilledEnemy : Inventory {inventory.maxamount 100}
Actor playerEXP : Inventory {inventory.maxamount 100}

дописываешь акторам в стейтах смерти
A_GiveToTarget("KilledEnemy", 1)

ну и скриптец какой-нибудь

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

script "CheckKill" enter
{
while (1)
{
if	(CheckInventory("KilledEnemy")>=10)
{
TakeInventory("KilledEnemy",10);
GiveInventory("playerEXP",1);
}

HudMessage(d:CheckInventory("KilledEnemy"), s:" - ",d:CheckInventory("playerEXP");
		HUDMSG_PLAIN, 1, CR_RED, 1.5, 0.1, 5.0);
delay(1);
}
}


Рейтинг сообщения: +1, отметил(и): Void Weaver
1 1
Герр Смертоносец
- Sergeant Major -
Next rank: = Sergeant Major = after 45 points
555

Doom Rate: 1.57

Posts quality: +310
Ссылка на пост №3230 Отправлено: 15.05.18 15:47:25
MyNameIs:
A_GiveToTarget

Слабое место здесь. Не факт, что в момент смерти монстра игрок будет его целью. Например, монстр мог быть убит в тот момент, когда он дрался с другим монстром.

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

Doom Rate: 1.94

Posts quality: +530
Ссылка на пост №3231 Отправлено: 15.05.18 17:48:08
Герр Смертоносец
но ведь суть в том, чтобы давать игроку опыт, если он убил монстра?
иначе халявный опыт выходит
1 1
Void Weaver
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 94 points
1196

Doom Rate: 1.93

Posts quality: +341
Ссылка на пост №3232 Отправлено: 15.05.18 19:13:19
Влезу-ка я со своими 5-ю копейками.

Герр Смертоносец:
Не факт, что в момент смерти монстра игрок будет его целью.
Всё так.

MyNameIs:
Герр Смертоносец
но ведь суть в том, чтобы давать игроку опыт, если он убил монстра?
иначе халявный опыт выходит
С одной стороны ты прав, с другой же будет весьма обидно если в замесе Кибердемона случайно добьёт какой-нибудь левый моб. Или, что ещё хуже, потерять кучу экспы в "групповом" инфайтинге. Имхо, лучше ориентироваться на компромиссный вариант - пенальти. Типа: добивший получает 100% экспы, тогда как остальные игроки получат меньший процент экспы ((50-80)% например).

Офк выбор о награждении побочной экспой придётся делать самому моддеру.

ЕДИТ:
Кстати можно ли какими-нибудь функциями декора съэмулировать код A_BFGSpray, чтобы его можно было свободно юзать, через варп или спаунитем например, без привязки к BFGBall?
6 1
Anto96WS
= Master Corporal =
Next rank: - Sergeant - after 45 points
245

Doom Rate: 1.78

Posts quality: +63
Ссылка на пост №3233 Отправлено: 15.05.18 20:04:36
Как сменить скин игрока когда он подбирает броню?
Void Weaver
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 94 points
1196

Doom Rate: 1.93

Posts quality: +341
Ссылка на пост №3234 Отправлено: 15.05.18 20:58:55
Может через JumpIfInventory из кастомплэйера? Типа кастомигрок спаунится обычным, а после подбора брони (итема) прыгает к стэйтам с альтернативными кадрами:
Скрытый текст:

Actor CustomPlayer : DoomPlayer
{
States
{
Spawn:
PLAY A 1 A_JumpIfInventory("Армор", 1, "АльтСкин")
Loop
АльтСкин:
PLA1 A 1 //Новые фрэймы
Loop
See:
"####" ABCD 4
Loop
и т. д.
}
}

Правда в этом случае наверное придётся накопировать кастомплэйров с разными скинами для разных арморов\итемов.
6 1
BlackMetalGuy
Recruit
Next rank: Marine after 10 points
10

Doom Rate: 2

Ссылка на пост №3235 Отправлено: 16.05.18 18:22:17
alekv
Спасибо! Но появилась ещё одна проблема. При переходе на следующую карту с нужным кол-вом очков,скрипт проигрывается вновь. Что нужно сделать, что бы скрипт запускался только один раз за всю игру?
alekv
Lieutenant Colonel
Next rank: - Colonel - after 242 pointsМодератор форума
3798

Doom Rate: 1.93

Posts quality: +655
Ссылка на пост №3236 Отправлено: 16.05.18 21:23:34
BlackMetalGuy:
alekv
Спасибо! Но появилась ещё одна проблема. При переходе на следующую карту с нужным кол-вом очков,скрипт проигрывается вновь. Что нужно сделать, что бы скрипт запускался только один раз за всю игру?

как вариант:

global int 1:point_off;

script 1 enter //скрипт запускается 1 раз при появлении игрока на карте
{
if(point_off == false)//изначально == 0, по этому скрипт запустится 1 раз и будет висеть в цикле, если выйдет из цикла, плюсанет переменную.
    {
    while(CheckInventory("point") < 10000)//попадает в цикл и остается тут до тех пор пока вещь point не станет больше или равно 10 000 единиц
        {
        delay(1);
        }
    GiveInventory("playerBonus", 1); //когда выйдет из цикла, продолжится выполнение скрипта 1 раз. т.е. игрок получит свою награду.
    point_off++;//глобальная переменная point_off будет больше 0, и на след. карте скрипт пропустит вычисления.
    }
}

Рейтинг сообщения: +1, отметил(и): JSO x
1 3 1
BlackMetalGuy
Recruit
Next rank: Marine after 10 points
10

Doom Rate: 2

Ссылка на пост №3237 Отправлено: 19.05.18 17:52:42
alekv
Спасибо за помощь! А не подскажите, как можно сделать пламя, которое будет гореть определённое время и самое главное - "цепляться" к противнику и наносить ему урон? Например,как в Powerslave.
alekv
Lieutenant Colonel
Next rank: - Colonel - after 242 pointsМодератор форума
3798

Doom Rate: 1.93

Posts quality: +655
Ссылка на пост №3238 Отправлено: 20.05.18 00:30:48
BlackMetalGuy:
А не подскажите, как можно сделать пламя, которое будет гореть определённое время и самое главное - "цепляться" к противнику и наносить ему урон?

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

Время горения пламени это не сложно, заставить пламя прицепиться к врагу в целом тоже не сложно, это делается функцией A_Warp, но вот как заставить актера пламя стрелять в любого монстра который подошел близко хз, может тут кто, что подскажет..
1 3 1
Герр Смертоносец
- Sergeant Major -
Next rank: = Sergeant Major = after 45 points
555

Doom Rate: 1.57

Posts quality: +310
Ссылка на пост №3239 Отправлено: 20.05.18 05:50:25
alekv:
но вот как заставить актера пламя стрелять в любого монстра который подошел близко хз, может тут кто, что подскажет

Ну самый тупой вариант - спаунить одновременно с пламенем невидимого friendly-монстра с крайне малым обзором.
Более изящный вариант - назначение пойнтера по A_CheckBlock, в этом случае надо корректно настроить коллижен, чтобы столкновение детектилось, но пламя при этом было проходимым. Простой ноклип не прокатит.


Void Weaver:
С одной стороны ты прав, с другой же будет весьма обидно если в замесе Кибердемона случайно добьёт какой-нибудь левый моб. Или, что ещё хуже, потерять кучу экспы в "групповом" инфайтинге. Имхо, лучше ориентироваться на компромиссный вариант - пенальти. Типа: добивший получает 100% экспы, тогда как остальные игроки получат меньший процент экспы ((50-80)% например).

Офк выбор о награждении побочной экспой придётся делать самому моддеру.

Ну в самом идеальном случае оружие игрока должно стрелять некими умными снарядами, которые при попадании в цель наносят ей N урона и выдают N итемов такого-то типа в инвентарь, причём тип зависит от номера игрока. В этом случае кибер будет точно знать, кто в него сколько настрелял, и подыхая, сможет воздать каждому по плодам его.
Если вы не делаете мультплеерную Дьяблу-4 на гздумовском движке, то городить такой огород нафиг нужно, ящитаю.

Рейтинг сообщения: +1, отметил(и): Void Weaver
2
Void Weaver
= Warrant Officer =
Next rank: - 2nd Lieutenant - after 94 points
1196

Doom Rate: 1.93

Posts quality: +341
Ссылка на пост №3240 Отправлено: 20.05.18 11:21:23
BlackMetalGuy:
А не подскажите, как можно сделать пламя, которое будет гореть определённое время и самое главное - "цепляться" к противнику и наносить ему урон?
Было бы неплохо если бы ты конкретизировал условия задачи типа:
а) пламя должно быть только визуальным или обязательно иметь DamageType Fire?
б) чем должен быть источник пламени - атакой игрока или атакой моба?
в) мили атакой или дистанционной?
г) цепляться к противнику при прямом попадании или в радиусе?
д) должно ли пламя "поджигать" любую поверхность или только мобов\игроков?

Кроме справедливо советуемого A_Warp также могут помочь:
функции
A_SpawnItemEx //Спаун различных объектов
A_DamageTarget //Может наносить урона не зависимо от видимости или дистанции до цели, с опцией ТипаУрона
A_Explode //Старый добрый урон в радиусе, с опцией ТипаУрона
A_TransferPointer //Эти две могут пригодиться для избирательного нацеливания
A_CopyFriendliness //Эти две могут пригодиться для избирательного нацеливания

свойства актора
PoisonDamage value[, duration[, period]] //Очень простое решение в случае если DamageType для тебя не существенен
PoisonDamageType type

Я например делал мили ДоТ-атаку с заданным DamageType через пауэрап с A_DamageTarget, вызываемый через A_SpawnItemEx.

Герр Смертоносец:
Более изящный вариант - назначение пойнтера по A_CheckBlock, в этом случае надо корректно настроить коллижен, чтобы столкновение детектилось, но пламя при этом было проходимым.
А не проще ли тогда прописать "залупленный" A_Explode с RIPPER и NoExplodeFloor, с варпом в спаун стэйте например? Или даже наоборот... варп (откуда-нибудь) на цель A_Explode'а с RIPPER и NoExplodeFloor.

=========

Герр Смертоносец:
Ну в самом идеальном случае оружие игрока должно стрелять некими умными снарядами, которые при попадании в цель наносят ей N урона и выдают N итемов такого-то типа в инвентарь, причём тип зависит от номера игрока. В этом случае кибер будет точно знать, кто в него сколько настрелял, и подыхая, сможет воздать каждому по плодам его.
Ну вот приблизительно таким образом и работает калькуляция в куче ММОРПГ. :) Красиво офк, но если это не глобальный РПГ-мод, то овчинка выделки не стОит. Бтв, ЕЯПП в DRPG Кайла использовался как раз вариант с пенальти.

=========

1. Ребят, неужели никто не в курсе как съэмулировать код A_BFGSpray? Это вообще осуществимо или нет?
2. Можно ли на уровне декора подправить варп-атаку Арча чтобы враги отвечали ему?
6 1
Страница 162 из 187Перейти наверх Пред.  1, 2, 3 ... 161, 162, 163 ... 185, 186, 187  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!