Welcome to U.A.C. [O.S.A.]
login / register 
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Тема для новичков. Вопросы по маппингу/моддингу - любые! Пред.  1, 2, 3 ... 161, 162, 163 ... 198, 199, 200  След.
   Список разделов - Флуд и устаревшие темы - Тема для новичков. Вопросы по маппингу/моддингу - любые!Ответить
АвторСообщение
Герр Смертоносец
- Warrant Officer -
Next rank: = Warrant Officer = after 97 points
1043

Doom Rate: 1.38

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

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

Рейтинг сообщения: +1, отметил(и): Void Weaver
5
MyNameIs
= 1st Lieutenant =
Next rank: - Captain - after 36 points
2054

Doom Rate: 2.04

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

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

Doom Rate: 1.38

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

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

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

Рейтинг сообщения: +2, отметил(и): MyNameIs, Void Weaver
5
DOOMFOREVER
Marine
Next rank: Marine 1st class after 2 points
28

Doom Rate: 0.97

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

Doom Rate: 2

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

Doom Rate: 1.87

Posts quality: +949
Ссылка на пост №3226 Отправлено: 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
= 1st Lieutenant =
Next rank: - Captain - after 36 points
2054

Doom Rate: 2.04

Posts quality: +893
Ссылка на пост №3227 Отправлено: 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 1
Герр Смертоносец
- Warrant Officer -
Next rank: = Warrant Officer = after 97 points
1043

Doom Rate: 1.38

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

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

Рейтинг сообщения: +1, отметил(и): Void Weaver
5
MyNameIs
= 1st Lieutenant =
Next rank: - Captain - after 36 points
2054

Doom Rate: 2.04

Posts quality: +893
Ссылка на пост №3229 Отправлено: 15.05.18 17:48:08
Герр Смертоносец
но ведь суть в том, чтобы давать игроку опыт, если он убил монстра?
иначе халявный опыт выходит
1 1 1
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

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

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

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

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

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

Doom Rate: 1.77

Posts quality: +88
Ссылка на пост №3231 Отправлено: 15.05.18 20:04:36
Как сменить скин игрока когда он подбирает броню?
Void Weaver
= Captain =
Next rank: - Major - after 144 points
2496

Doom Rate: 1.82

Posts quality: +808
Ссылка на пост №3232 Отправлено: 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
и т. д.
}
}

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

Doom Rate: 2

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

Doom Rate: 1.87

Posts quality: +949
Ссылка на пост №3234 Отправлено: 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

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

Doom Rate: 1.87

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

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

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

Doom Rate: 1.38

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

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


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

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

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

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

Doom Rate: 1.82

Posts quality: +808
Ссылка на пост №3238 Отправлено: 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. Можно ли на уровне декора подправить варп-атаку Арча чтобы враги отвечали ему?
1 9 1
BlackMetalGuy
Recruit
Next rank: Marine after 10 points
10

Doom Rate: 2

Ссылка на пост №3239 Отправлено: 20.05.18 13:52:36
Void Weaver
Источником пламени должен быть игрок.Атака дистанционная, ибо игрок вооружён огнемётом.Пламя должно цепляться к противнику при прямом попадании и дамажить только игроков и мобов. Какую функцию выполняет A_Warp?
Герр Смертоносец
- Warrant Officer -
Next rank: = Warrant Officer = after 97 points
1043

Doom Rate: 1.38

Posts quality: +854
Ссылка на пост №3240 Отправлено: 20.05.18 15:26:43
Void Weaver:

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

Это тут при чём? Тебе надо, чтобы пламя при прохождении рядом монстра цепляло на него прикреплённый актор. Для этого пламя и монстр должны вступить в сношения на уровне Pointer-ов, поскольку именно Pointer-ами управляется A_Warp. Pointer-ы это как брачный статус между акторами, только бывает трёх видов и не требует взаимности, лол.

Void Weaver:
1. Ребят, неужели никто не в курсе как съэмулировать код A_BFGSpray? Это вообще осуществимо или нет?

БФГспрей это тупо очень толстый дробовик, который стреляет в очень широкий сектор. Прикол в том, что активирует этот дробовик не игрок, а шар в момент подрыва. Вот такая дебильная система. Представь, что у тебя ружьё бенелли, но стрелять ты из него не можешь, зато к ружью привязана рогатка. Ружьё выстрелит само, когда выстреленный из рогатки помидор ударится о препятствие. Причём угол выстрела определяется углом вылета шара.

Соответственно, чтобы имитировать эту фигню, надо чтобы снаряд при подрыве запускал скрипт и заставлял игрока испустить пульки. Облегчает ситуацию то, что с точки зрения pointer-ов снаряд игрока уже "знает" (игрок является target-ом снаряда). Поэтому самый тупой вариант будет:
{
SetActivatorToTarget();
SpawnProjectile(0,"пулька", дальше пишем все настройки); 
}


Void Weaver:
2. Можно ли на уровне декора подправить варп-атаку Арча чтобы враги отвечали ему?

Одновременно с A_VileAttack поставить слабую атаку типа зомбименской, злящую монстра маленькой пулькой. (Только точность сделать идеальную, зомбимен часто промахивается.)

Рейтинг сообщения: +1, отметил(и): Void Weaver
5
Страница 162 из 200Перейти наверх Пред.  1, 2, 3 ... 161, 162, 163 ... 198, 199, 200  След.
   Список разделов - Флуд и устаревшие темы - Тема для новичков. Вопросы по маппингу/моддингу - любые!