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

Doom Rate: 2.02

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


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

Рейтинг сообщения: +1, отметил(и): theleo_ua
Void Weaver
UAC Sergeant Major
Next rank: Chief Petty Officer after 70 points
780

Doom Rate: 1.94

Posts quality: +165
Ссылка на пост №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" будет гораздо выше нежели во втором. Поправьте, если не заблуждаюсь.
3 1
Герр Смертоносец
= Master Sergeant =
Next rank: - Sergeant Major - after 59 points
471

Doom Rate: 1.53

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

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

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

Doom Rate: 1.94

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

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

Doom Rate: 1.53

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

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

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

Рейтинг сообщения: +2, отметил(и): MyNameIs, Void Weaver
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 316 pointsМодератор форума
3724

Doom Rate: 1.93

Posts quality: +594
Ссылка на пост №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 184 points
1456

Doom Rate: 1.94

Posts quality: +516
Ссылка на пост №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
Герр Смертоносец
= Master Sergeant =
Next rank: - Sergeant Major - after 59 points
471

Doom Rate: 1.53

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

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

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

Doom Rate: 1.94

Posts quality: +516
Ссылка на пост №3231 Отправлено: 15.05.18 17:48:08
Герр Смертоносец
но ведь суть в том, чтобы давать игроку опыт, если он убил монстра?
иначе халявный опыт выходит
1 1
Void Weaver
UAC Sergeant Major
Next rank: Chief Petty Officer after 70 points
780

Doom Rate: 1.94

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

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

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

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

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

Doom Rate: 1.77

Posts quality: +62
Ссылка на пост №3233 Отправлено: 15.05.18 20:04:36
Как сменить скин игрока когда он подбирает броню?
Void Weaver
UAC Sergeant Major
Next rank: Chief Petty Officer after 70 points
780

Doom Rate: 1.94

Posts quality: +165
Ссылка на пост №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 и т. д. } }

Правда в этом случае наверное придётся накопировать кастомплэйров с разными скинами для разных арморов\итемов.
3 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 316 pointsМодератор форума
3724

Doom Rate: 1.93

Posts quality: +594
Ссылка на пост №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 316 pointsМодератор форума
3724

Doom Rate: 1.93

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

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

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

Doom Rate: 1.53

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

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


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

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

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

Рейтинг сообщения: +1, отметил(и): Void Weaver
Void Weaver
UAC Sergeant Major
Next rank: Chief Petty Officer after 70 points
780

Doom Rate: 1.94

Posts quality: +165
Ссылка на пост №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. Можно ли на уровне декора подправить варп-атаку Арча чтобы враги отвечали ему?
3 1
Страница 162 из 184Перейти наверх Пред.  1, 2, 3 ... 161, 162, 163 ... 182, 183, 184  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!