Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
Тема для новичков. Вопросы по маппингу/моддингу - любые! Пред.  1, 2, 3 ... 169, 170, 171 ... 174, 175, 176  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!Ответить
АвторСообщение
MyNameIs
- 2nd Lieutenant -
Next rank: = 2nd Lieutenant = after 20 points
1420

Doom Rate: 1.94

Posts quality: +502
Ссылка на пост №3381 Отправлено: 23.06.18 18:56:10
Void Weaver
да не особо жестко, NOSWITCH не отключает смену оружия, он ее паузит
это DISABLESWITCH отключает

DOOMGABR
а в чем некорректность? вроде все, как ты описал
1 1
Void Weaver
= Sergeant Major =
Next rank: UAC Sergeant Major after 78 points
602

Doom Rate: 1.91

Posts quality: +110
Ссылка на пост №3382 Отправлено: 24.06.18 00:40:53
Void Weaver :
YURA_111 :
3) PowerUp regeneration который для игрока также должен действовать и на монстров, т.к. невидимость действует (я это здесь недавно демонстрировал) - https://zdoom.org/wiki/Classes:PowerRegeneration
Да, помню, клёво сделал. ) Вот только мне казалось что PowerRegeneration не пашет на мобах... ок, попробую снова.
Да, на мобов действует вот только либо я где-то накосячил, либо этот метод не годится для регулирования регена, ибо выдать-то получается а вот забрать - никак:
Скрытый текст:

Actor MImp : DoomImp { Health 1000 States { See: //В "See" прыгает из остальных стандартных стэйтов TNT1 A 0 A_JumpIf ((CountInv("RegenUP") >=1) && (health>750),"TakeRegen") //Должно прыгать в "TakeRegen" но не прыгает... :( TNT1 A 0 A_JumpIfHealthLower (500,"Regen") SeeRegen: TROO AABBCCDD 3 A_Chase Loop Regen: TNT1 A 0 A_SetTranslucent (0.5, 1) //Для заметности эффекта TNT1 A 0 A_JumpIfInventory ("RegenUP",1,"SeeRegen") //Проверка во избежание вечной петли TNT1 A 0 A_GiveInventory ("RegenUP",1) Goto SeeRegen TakeRegen: TNT1 A 0 A_SetTranslucent (1, 0) //Для заметности эффекта TNT1 A 0 A_TakeInventory ("RegenUP",9999) Goto See } } Actor RegenUP : PowerupGiver //Собс-но лекарство { Inventory.MaxAmount 1 Powerup.Duration 0x7FFFFFFD +Inventory.AutoActivate +Inventory.AlwaysPickup Powerup.Type "Regeneration" Powerup.Strength 25 }

=======
YURA_111 :
Void Weaver :
Хочу мобу сделать станящую (оглушающую) атаку, и если движение запросто стопить выдачей игроку speed пауэрапа со значением 0, то насчёт того как на декоре временно запретить атакустрельбу соображений нет никаких. Есть идеи?


Если через декор только, то выдаешь игроку некий инвентори - а в каждом оружии в стейте READY делаешь Check этого инвентори. Если присутствует - то прыжок в стейт ReadyNoFire (например) с заLOOPливанием на стейт Ready

Но если честно я бы так не делал, если имеется большое количество пушек (как у меня или как в АЕОД)
Я тоже не делал бы... Вот и ОН делает иначе... таки да, ТаймИмп существует! Блин, пацаны, это просто маленький декор-ШЕДЕВР из спичек и желудей!
=======
MyNameIs, ну да, обознатушки. ) Бтв, вот тоже интересно что там ДУМГАБРу не по нраву.
=======
Вопросы 2, 5 и 6 по-прежнему актуальны; кстати кто-нибудь может объяснить как прописывать PoisonDamage value, duration, period? Что там исчисляется в тиках а что в секундах? Если мне допустим нужен яд длящийся 10 сек с интервалом в 2 сек, то нужно записывать "PoisonDamage 0, 10, 70", так?
1 1
MasterMind
= 1st Lieutenant =
Next rank: - Captain - after 177 points
1913

Doom Rate: 1.84

Posts quality: +267
Ссылка на пост №3383 Отправлено: 24.06.18 12:12:05
Void Weaver :
Хочу мобу сделать станящую (оглушающую) атаку, и если движение запросто стопить выдачей игроку speed пауэрапа со значением 0, то насчёт того как на декоре временно запретить атакустрельбу соображений нет никаких. Есть идеи?


YURA_111 :
Если через декор только, то выдаешь игроку некий инвентори - а в каждом оружии в стейте READY делаешь Check этого инвентори. Если присутствует - то прыжок в стейт ReadyNoFire (например) с заLOOPливанием на стейт Ready


Ну вы блин даете. Пошли в какие-то дебри. SetPlayerProperty не пробовали? Эта штука как в ACS, так и в декоре работает. Можно и через CustomInventory активировать. У этого способа замораживать игрока борода отросла. Какие-то повер-апы и скачки придумали...

Void Weaver :
таки да, ТаймИмп существует!

Этот имп там уже несколько лет существует.

Void Weaver :
Можно ли (и как) прописать актор-мобу в декоре зависимость DamageFactor от skill (сложности)? Ну типа чтобы на первой сложности резистов (DamageFactor) не было, а на 4-5 например включался иммун к огню (DamageFactor Fire, 0.0).

Если только скриптами.
Void Weaver :
пробовал health и GetActorProperty(0,APROP_Health), но выдаёт исключительно текущие и вроде всегда владельца функции.

Нужно было прописывать APROP_SpawnHealth. И да, функция проверяет только здоровье активатора. К тому же вопрос - для чего именно максимальное здоровье?

Рейтинг сообщения: +1, отметил(и): Void Weaver
1 3
mutator
- Sergeant Major -
Next rank: = Sergeant Major = after 66 points
534

Doom Rate: 1.76

Posts quality: +3
Ссылка на пост №3384 Отправлено: 24.06.18 14:59:31
Liaslia
that sounds interesting, so are you combining d4t weapons with brutal doom? i like that idea to be honest
Void Weaver
= Sergeant Major =
Next rank: UAC Sergeant Major after 78 points
602

Doom Rate: 1.91

Posts quality: +110
Ссылка на пост №3385 Отправлено: 24.06.18 17:41:46
MasterMind :
Ну вы блин даете. Пошли в какие-то дебри. SetPlayerProperty не пробовали? Эта штука как в ACS, так и в декоре работает. Можно и через CustomInventory активировать. У этого способа замораживать игрока борода отросла. Какие-то повер-апы и скачки придумали...
О как! Я даже советовал кому-то этот способ в этой теме... думал что только для скриптов.

MasterMind :
Этот имп там уже несколько лет существует.
Ну ясен пень, раз аплоад 2012, видимо я такой "внимательный" раз только что заметил.

MasterMind :
Нужно было прописывать APROP_SpawnHealth. И да, функция проверяет только здоровье активатора. К тому же вопрос - для чего именно максимальное здоровье?
О, слона-то и не приметил, спасибо! А можно ли как-то получать _SpawnHealth по указателю? Макс. здоровье для фиксированного сбалансированного хила\регена. А вызов через поинтеры нужен для разных мобов, через _трасер например для трупоеда: "съел" труп импа - похилился на 6 хп, барона ада - на 100.
1 1
Liaslia
Recruit
Next rank: Marine after 8 points
12

Doom Rate: 2

Ссылка на пост №3386 Отправлено: 25.06.18 23:22:42
mutator
I won't lie to you.I'm not a developer,more like a Ripper.)) Make builds from favorite resources of different mods.Authorship do not claim,as just a hobby for fun.In General, the Assembly is almost ready, it remains to correct the little things. :pc:
DOOMGABR
UAC Sergeant Major
Next rank: Chief Petty Officer after 8 points
842

Doom Rate: 1.9

Posts quality: +500
Ссылка на пост №3387 Отправлено: 14.07.18 20:18:30
Как назначить функцию актору, чтобы он наносил дамаг по 20 хелсов в секунду, например? Чтобы чем ближе подходил игрок, тем сильнее у него отнимались жизни (максимум, 20 хп).
Код актора:
Скрытый текст:

Actor FireSpawner : SwitchableDecoration 15099 { //$Category Effects Height 40 Radius 30 +ClientSideOnly +NoClip +NoBlockMap +NoGravity +NoSector +NoInteraction States { Spawn: Active: TNT1 A 0 TNT1 A 0 A_JumpIf(Args[1] > 0, 2) TNT1 A 0 A_PlaySoundEx("SFX/FireStart", "SoundSlot7", 0) TNT1 A 0 A_JumpIf(Args[0] == 1, "Medium") TNT1 A 0 A_JumpIf(Args[0] > 1, "Large") TNT1 A 0 A_JumpIf(Args[1] > 0, 2) TNT1 A 0 A_PlaySoundEx("SFX/FireLoop1", "SoundSlot6", 1) TNT1 A 0 A_SpawnItemEx("SmallFlame", 0, 0, 0, 0, 0, 0, 0, 128) TNT1 A 0 A_Jump(216, 3) TNT1 A 1 A_SpawnItemEx("Flame1A", 0, 0, 0, 0, 0, 0, 0, 128) TNT1 A 0 A_SpawnItemEx("Ember1", 0, 0, 0, 0, 0, 0, 0, 128) Loop TNT1 A 0 A_Jump(176, 2) TNT1 A 1 A_SpawnItemEx("Flame1B", 0, 0, 0, 0, 0, 0, 0, 128) Loop TNT1 A 0 A_Jump(136, 2) TNT1 A 1 A_SpawnItemEx("Flame2A", 0, 0, 0, 0, 0, 0, 0, 128) Loop TNT1 A 0 A_Jump(96, 2) TNT1 A 1 A_SpawnItemEx("Flame2B", 0, 0, 0, 0, 0, 0, 0, 128) Loop TNT1 A 0 A_Jump(56, 2) TNT1 A 1 A_SpawnItemEx("Flame3A", 0, 0, 0, 0, 0, 0, 0, 128) Loop TNT1 A 1 A_SpawnItemEx("Flame3B", 0, 0, 0, 0, 0, 0, 0, 128) Loop Medium: TNT1 A 0 A_JumpIf(Args[1] > 0, 2) TNT1 A 0 A_PlaySoundEx("SFX/FireLoop2", "SoundSlot6", 1) TNT1 A 0 A_SpawnItemEx("MediumFlame", 0, 0, 0, 0, 0, 0, 0, 128) TNT1 A 0 A_Jump(216, 3) TNT1 A 1 A_SpawnItemEx("Flame4A", 0, 0, 0, 0, 0, 0, 0, 128) TNT1 A 0 A_SpawnItemEx("Ember2", 0, 0, 0, 0, 0, 0, 0, 128) Loop TNT1 A 0 A_Jump(176, 2) TNT1 A 1 A_SpawnItemEx("Flame4B", 0, 0, 0, 0, 0, 0, 0, 128) Loop TNT1 A 0 A_Jump(136, 2) TNT1 A 1 A_SpawnItemEx("Flame5A", 0, 0, 0, 0, 0, 0, 0, 128) Loop TNT1 A 0 A_Jump(96, 2) TNT1 A 1 A_SpawnItemEx("Flame5B", 0, 0, 0, 0, 0, 0, 0, 128) Loop TNT1 A 0 A_Jump(56, 2) TNT1 A 1 A_SpawnItemEx("Flame6A", 0, 0, 0, 0, 0, 0, 0, 128) Loop TNT1 A 1 A_SpawnItemEx("Flame6B", 0, 0, 0, 0, 0, 0, 0, 128) Loop Large: TNT1 A 0 A_JumpIf(Args[1] > 0, 2) TNT1 A 0 A_PlaySoundEx("SFX/FireLoop3", "SoundSlot6", 1) TNT1 A 0 A_SpawnItemEx("LargeFlame", 0, 0, 0, 0, 0, 0, 0, 128) TNT1 A 0 A_Jump (216, 3) TNT1 A 1 A_SpawnItemEx("Flame7A", 0, 0, 0, 0, 0, 0, 0, 128) TNT1 A 0 A_SpawnItemEx("Ember2", 0, 0, 0, 0, 0, 0, 0, 128) Loop TNT1 A 0 A_Jump (176, 2) TNT1 A 1 A_SpawnItemEx("Flame7B", 0, 0, 0, 0, 0, 0, 0, 128) Loop TNT1 A 0 A_Jump (136, 2) TNT1 A 1 A_SpawnItemEx("Flame8A", 0, 0, 0, 0, 0, 0, 0, 128) Loop TNT1 A 0 A_Jump (96, 2) TNT1 A 1 A_SpawnItemEx("Flame8B", 0, 0, 0, 0, 0, 0, 0, 128) Loop TNT1 A 0 A_Jump (56, 2) TNT1 A 1 A_SpawnItemEx("Flame9A", 0, 0, 0, 0, 0, 0, 0, 128) Loop TNT1 A 1 A_SpawnItemEx("Flame9B", 0, 0, 0, 0, 0, 0, 0, 128) Loop Inactive: TNT1 A 0 A_JumpIf(Args[1] > 0, 2) TNT1 A 0 A_PlaySoundEx("SFX/FireDie", "SoundSlot7", 0) TNT1 A -1 A_StopSoundEx("SoundSlot6") Goto Inactive+2 } }

JSO x
- Master Sergeant -
Next rank: = Master Sergeant = after 44 points
416

Doom Rate: 2.45

Posts quality: +141
Ссылка на пост №3388 Отправлено: 14.07.18 23:33:49
Так A_Expolde обычный нужен. Запускаешь его каждые 35 тиков, и всё. На крайний случай вводишь свою переменную или итем-счётчик.

Var int user_Counter; States { <...> TNT1 A 0 A_SetUserVar( "user_Counter", user_Counter + 1 ) TNT1 A 0 A_JumpIf( user_Counter < 35, 3 ) TNT1 A 0 A_Expolde( 20, 64 ) TNT1 A 0 A_SetUserVar( "user_Counter", 0 ) TNT1 A 0 <...> // Это всё можно записать в "TNT1 A 0 { <here> }", если не нужна совместимость с ZDoom/Zandronum. // В твоём проекте, насколько я знаю, именно так.


Только код актора у тебя непонятный. "Loop" перезапускает код, начиная с ближайшей предыдущей метки. Поэтому у тебя здесь каждый раз делаются несколько лишних проверок на Arg'и.

Рейтинг сообщения: +1, отметил(и): Void Weaver
5
Void Weaver
= Sergeant Major =
Next rank: UAC Sergeant Major after 78 points
602

Doom Rate: 1.91

Posts quality: +110
Ссылка на пост №3389 Отправлено: 15.07.18 03:21:48
DOOMGABR :
Чтобы чем ближе подходил игрок, тем сильнее у него отнимались жизни (максимум, 20 хп).
Задать несколько А_Эксплодов с разным радиусом - по мере приближения игрок будет попадать под действие нескольких А_Эксплодов сразу, и соответственно коцаться сильнее.

JSO x :
Только код актора у тебя непонятный. "Loop" перезапускает код, начиная с ближайшей предыдущей метки. Поэтому у тебя здесь каждый раз делаются несколько лишних проверок на Arg'и.
Да вроде там всё норм... или ты о второй строке TNT1 A 0 A_JumpIf(Args[1] > 0, 2) в Active стэйте?

Рейтинг сообщения: +1, отметил(и): JSO x
1 1
JSO x
- Master Sergeant -
Next rank: = Master Sergeant = after 44 points
416

Doom Rate: 2.45

Posts quality: +141
Ссылка на пост №3390 Отправлено: 15.07.18 12:56:26
Да не только о ней. Там есть несколько строк, которые вполне можно проверять всего один раз (если я правильно понял суть актора). Однако в этом коде они будут проверяться каждый цикл:
DOOMGABR :
<...> Spawn: Active: TNT1 A 0 TNT1 A 0 A_JumpIf(Args[1] > 0, 2) TNT1 A 0 A_PlaySoundEx("SFX/FireStart", "SoundSlot7", 0) TNT1 A 0 A_JumpIf(Args[0] == 1, "Medium") TNT1 A 0 A_JumpIf(Args[0] > 1, "Large") TNT1 A 0 A_JumpIf(Args[1] > 0, 2) <...>


Например и кстати, здесь "SFX/FireStart" будет играть каждый раз (!) при входе в цикл, если второй Arg == 0. Если понадобится, есть функция A_SetArg.

Void Weaver :
Задать несколько А_Эксплодов с разным радиусом - по мере приближения игрок будет попадать под действие нескольких А_Эксплодов сразу, и соответственно коцаться сильнее.

Тоже вариант. Просто у A_Explode при удалении от вызывающего актора снижается и урон. Логично, что если стоишь рядом с ракетой, будет куда больнее, чем, например, если стоишь в паре Doom-метров от эпицентра. Так и я здесь предлагаю: более точно урон по радиусу рассчитываться будет, если, конечно, не нужна нелинейная зависимость.
5
Void Weaver
= Sergeant Major =
Next rank: UAC Sergeant Major after 78 points
602

Doom Rate: 1.91

Posts quality: +110
Ссылка на пост №3391 Отправлено: 15.07.18 14:32:10
JSO x :
Например и кстати, здесь "SFX/FireStart" будет играть каждый раз (!) при входе в цикл
А ты не допускаешь что оно так и задумано? :|

JSO x :
Тоже вариант.
В смысле "тоже"? Это не вариант, а всего-лишь конкретизация твоего предложения юзать _Эксплод ф-цию, DOOMGABR же интересовался ещё и корреляцией урона от дистанции. В любом случае _Эксплод позволяет задать точное распределение урона в радиусе: либо урон снижается по периферии, либо наносится в полную силу по всему радиусу.

Ну например так:

Actor Flame1A { DamageType Fire Var int user_Counter; States { Spawn: <...> SpawnFireTimer: TNT1 A 1 A_SetUserVar( "user_Counter", user_Counter + 1 ) TNT1 A 0 A_JumpIf( user_Counter < 35, 12 ) TNT1 A 0 A_Expolde( 2, 192, 0, 0, 96 ) TNT1 A 0 A_Expolde( 2, 172.8, 0, 0, 86.4 ) TNT1 A 0 A_Expolde( 2, 153.6, 0, 0, 76.8 ) TNT1 A 0 A_Expolde( 2, 134.4, 0, 0, 67.2 ) TNT1 A 0 A_Expolde( 2, 115.2, 0, 0, 57.6 ) TNT1 A 0 A_Expolde( 2, 96, 0, 0, 48 ) TNT1 A 0 A_Expolde( 2, 76.8, 0, 0, 38.4 ) TNT1 A 0 A_Expolde( 2, 57.6, 0, 0, 28.8 ) TNT1 A 0 A_Expolde( 2, 38.4, 0, 0, 19.2 ) TNT1 A 0 A_Expolde( 2, 19.2, 0, 0, 9.6 ) TNT1 A 0 A_SetUserVar( "user_Counter", 0 ) TNT1 A 0 A_Jump (256, "SpawnFireTimer") <...> Goto Spawn } }
Плавное увеличение Fire дамага от 1 до 20 в радиусе от 192 до 9.6 с интервалом в секунду.
1 1
DOOMGABR
UAC Sergeant Major
Next rank: Chief Petty Officer after 8 points
842

Doom Rate: 1.9

Posts quality: +500
Ссылка на пост №3392 Отправлено: 15.07.18 14:58:40
Большое спасибо за помощь. Только вот как мне ваши предложения вставить в текущий код? Актор взят с реалма. Актор Огня.
Void Weaver
= Sergeant Major =
Next rank: UAC Sergeant Major after 78 points
602

Doom Rate: 1.91

Posts quality: +110
Ссылка на пост №3393 Отправлено: 15.07.18 16:06:48
Ctrl+C => Ctrl+V, не?

Ну а если серьёзно, то какой огонь тебе нужен и куда? Одиночный, массовый? В атаку монстра, в пуху или в декорацию-ловушку?
Ибо судя по реалмовскому коду за ним в оригинале может скрываться всё что угодно - от скромной жаровни до адского Везувия в зависимости от того что из себя представляют акторы "Flame" и "Ember".
1 1
DOOMGABR
UAC Sergeant Major
Next rank: Chief Petty Officer after 8 points
842

Doom Rate: 1.9

Posts quality: +500
Ссылка на пост №3394 Отправлено: 15.07.18 17:04:35
Void Weaver
я так и не понял куда именно надо вставить ваш код в исходный :) Уж пардоньте, в моддинге я — нубито
YURA_111
= Master Sergeant =
Next rank: - Sergeant Major - after 52 points
478

Doom Rate: 2.02

Posts quality: +61
Ссылка на пост №3395 Отправлено: 15.07.18 17:15:30
Void Weaver :
Задать несколько А_Эксплодов с разным радиусом - по мере приближения игрок будет попадать под действие нескольких А_Эксплодов сразу, и соответственно коцаться сильнее.


А через это не проще?
https://zdoom.org/wiki/A_JumpIfTargetInLOS
Void Weaver
= Sergeant Major =
Next rank: UAC Sergeant Major after 78 points
602

Doom Rate: 1.91

Posts quality: +110
Ссылка на пост №3396 Отправлено: 15.07.18 21:11:08
DOOMGABR, смотри, если брать предельно простую ситуацию, то дамажную функцию логично следует прописывать в актор который должен коцать. В твоём случае Actor FireSpawner не является непосредственным источником урона, а только посредником (причём хитрожопой ДЕКОРАЦИЕЙ, т. е. никак не взаимодействующей с физ. объектами напрямую). Судя по коду, источником урона должны быть отдельные акторы типа "Flame" и\или "Ember", а соответственно в них и нужно прописывать А_Эксплод в какой-нибудь стэйт (Spawn и\или Death).

Но поскольку причина выбора столь комплексного актора как FireSpawner совсем не очевидна, то возникает закономерный вопрос: а что соб-сно тебе надо? Именно огонь или как? Ядовитое облако, травящее например через равные промежутки времени, можно прописать вообще без _Эксплод. Для кастомных типов урона можно воспользоваться связками типа A_GiveRadius+A_DamageTarget\A_DamageSelf.

Если же ты сам ещё не определился что тебе нужно, то я порекомендовал бы тебе взять один "Flame" актор и поэкспериментировать на нём для начала. Причём наиболее вероятно что во "Flame" и\или "Ember" уже присутствует А_Эксплод.

YURA_111, можно ЕЯТПП. Но если источником урона будет Эксплод, то какая разница?

Рейтинг сообщения: +1, отметил(и): JSO x
1 1
Shadowman
= Commissar =
Next rank: - UAC Commissar - after 49 points
5751

Doom Rate: 2.32

Posts quality: +259
Ссылка на пост №3397 Отправлено: 16.07.18 17:14:10
Тему про скриптинг никто не смотрит, дублирую вопрос сюда.
Может ли гздум выдавать переменную - текущее состояние брони игрока? Чтобы можно было чинить броню, и взимать с игрока плату в зависимости от разницы между макс. значением брони (например, для зеленой брони это 100 ед.) и ее текущим значением (от 1 до 99)?
1 7 2
YURA_111
= Master Sergeant =
Next rank: - Sergeant Major - after 52 points
478

Doom Rate: 2.02

Posts quality: +61
Ссылка на пост №3398 Отправлено: 16.07.18 17:54:11
Void Weaver :
можно ЕЯТПП. Но если источником урона будет Эксплод, то какая разница?


Ну если прочитать внимательно вопрос, то урон должен наносить актор игроку. А конкретно A_Explode и его радиусы я так понимаю будут повреждать все живое рядом стоящее с игроком. Не уверен что это есть хорошо.

DOOMGABR :
Как назначить функцию актору, чтобы он наносил дамаг по 20 хелсов в секунду, например? Чтобы чем ближе подходил игрок, тем сильнее у него отнимались жизни (максимум, 20 хп).
Void Weaver
= Sergeant Major =
Next rank: UAC Sergeant Major after 78 points
602

Doom Rate: 1.91

Posts quality: +110
Ссылка на пост №3399 Отправлено: 16.07.18 22:03:14
YURA_111
Ааа, ну если трактовать так, то да, лучше. Но что-то мне подсказывает что камрад не подразумевал под областью воздействия урона только игрока. ;)

что_хотел_заказчик.жпег, классика.

Shadowman
А ты не пробовал получить текущее значение ко-ва армора через CheckInventory("GreenArmor") например?

Если вариант выше не работает, то можно попытаться опосредованно "вынуть" текущее значение через класс-"счетовод" Classes:BaseStatusBar

int GetArmorAmount() { let armor = CPlayer.mo.FindInventory("BasicArmor"); return armor? armor.Amount : 0; } int, int GetAmount(class<Inventory> item) { let it = CPlayer.mo.FindInventory(item); int ret1 = it? it.Amount : 0; int ret2 = it? it.MaxAmount : GetDefaultByType(item).MaxAmount; return ret1, ret2; }


Вот вроде пример использования GetArmorAmount() в кастом статусбаре для отображения текущего ко-ва
// Draw armor amount let armor = CPlayer.mo.FindInventory("BasicArmor"); if (armor != null && armor.Amount > 0) { DrawInventoryIcon(armor, (4, 184), DI_ITEM_OFFSETS); DrawString(mHUDFont, FormatNumber(GetArmorAmount(), 3), (52, 185), DI_TEXT_ALIGN_RIGHT); DrawString(mHUDFont, "%", (65, 185), DI_TEXT_ALIGN_RIGHT); }
1 1
Shadowman
= Commissar =
Next rank: - UAC Commissar - after 49 points
5751

Doom Rate: 2.32

Posts quality: +259
Ссылка на пост №3400 Отправлено: 16.07.18 23:33:54
Void Weaver
ЧекИнвентори не работает, т.к. показывает наличие брони как айтема, а не ее % повреждений.
Void Weaver :
int GetArmorAmount()

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

То, что статус бар умеет отображать наличное количество брони, я знаю. Но это статус бар, а не актор и не переменная.
1 7 2
Страница 170 из 176Перейти наверх Пред.  1, 2, 3 ... 169, 170, 171 ... 174, 175, 176  След.
   Список разделов - Местечко мапперов и моддеров - Тема для новичков. Вопросы по маппингу/моддингу - любые!