Поковыряв нойс алерт, я понял, что это рудиментальное баганое говнище. Даже не поленился в час ночи видео залить, чтобы местные поглядели на этот пиздец.
Извечный вопрос — что делать?! Это же вообще трэшатина. Мне нужно чтобы монстры триггернулись и ринулись атаковать меня, а они устраивают инфайт непонятным образом. А если монстр один — он вовсе не реагирует.
Мне нужно чтобы монстры триггернулись и ринулись атаковать меня, а они устраивают инфайт непонятным образом.
Ну так бы и написал сразу, тогда нужно NoiseAlert(0, 0) // 0 - игрок, 0 - он же источник звука НА КОТОРЫЙ будут реагировать мобы:
You can specify both the object which is doing this alert and the target which the monsters should attack. If both parameters are 0, the special's activator is both emitter and target.
В скриптах и мапперстве не шарю так что единственное соображение - после активации NoiseAlert моментально кильнуть целеуказатель всем мобам которые не должны проснуться, например "успокоить" вот такой штукой:
Actor ClassSilencer : CustomInventory
{
+INVENTORY.ALWAYSPICKUP
States
{
Pickup:
TNT1 A 0 A_JumpIf(CheckClass("класс_который_должен_'слышать'")==0,"ClearAlert" /*"Pickup2"*/) //"Успокоит" всех кто не подпадает под класс, "Pickup2" - опционально
Stop
/*
Pickup2: //Опционально, если нужна проверка на дополнительный класс
TNT1 A 0 A_JumpIf(CheckClass("класс_который_должен_'слышать2'")==0,"ClearAlert")
Stop
*/
ClearAlert:
TNT1 A 0 A_ClearTarget
Stop
}
}
Оффтоп:
Скрытый текст:
Давно хотел спросить - ребзь, а какого хера текст в "code" тэгах не сохраняет разметку при копировании оного ИЗ поста?!
2. Господа, можно ли сделать такую штуку на декоре, как считаете?
Очевидно, что раз сделали - значит можно.
База наитупейшая: в точке поражения на мгновение рождается friedly-моб, который стреляет в ближайшего моба, и так до бесконечности. Меня больше интересует, чем графически такой красивый луч как в HL1 делается. Для простой цепочки акторов он какой-то слишком ровный и быстрый. На ум разве что растягивание 3д-модели в зависимости от расстояния приходит.
База наитупейшая: в точке поражения на мгновение рождается friedly-моб, который стреляет в ближайшего моба, и так до бесконечности. Меня больше интересует, чем графически такой красивый луч как в HL1 делается.
Видимо я ошибся насчёт рельсы, похоже MyNameIs прав - тут действительно хвост фастпрожектилей, но скорее всего из этих кастомных "пузырьков" нежели плазмаболлов:
Продвинутя версия луча, основанная на кривых Безье. О_О
АЦС-соус луча - строки 1180-1465.
---------------------------
Блин, я конечно подозревал что "None" и "Normal" отличаются но чтоб настолько...
Damage(Type\Factor) "None" - The internal name for generic damage, as in “no special reason”. //Дамаг(тайп\фактор) по-умолчанию, если не указан конкретный Дамаг(тайп\фактор), либо же указанный как "None".
DamageFactor "Normal" is supposed to protect against all types of damage that don't have a specific factor assigned. //Дамагтайп нормал это ЛЮБОЙ дамагтайп к которому НЕ прописан соответствующий дамагфактор (отличный от 1.0)! Т. е. это своеобразная дамагтайп-маска по дамагфактору, и DamageType "Normal" не существует как таковой.
то он будет получать 10-кратный урон от огня и 0 урона от ЛЮБЫХ других типов урона, включая сам None.
---------------------------
Обычно на декоре телепорт мобов прописывают так:
Teleportation:
TNT1 AAAAAAAAAAAAAAAAAAAAAAAAA 0 A_Wander
Goto See
Просто и изящно, но есть один минус - этот "телепорт" секторально ограничен, т. е. моб не сможет портнуться выше высоты шага или через стену, поэтому я записал иначе:
Скрытый текст:
PhaseTeleport:
TNT1 A 0 A_SpawnItemEx("PhaseTeleportPoint",frandom(-256,256),frandom(-256,256),0,0,0,0,0,SXF_ISMASTER) //Спауним собственную точку телепорта
TNT1 A 0 A_JumpIf(CountProximity("PhaseTeleportPoint",256,0,AAPTR_MASTER)==0,"PhaseTeleport") //Если точка не соспаунилась - повторяем
TNT1 A 0 A_Warp(AAPTR_MASTER,0,0,0,0,WARPF_TOFLOOR|WARPF_COPYINTERPOLATION) //Варп в точку
Goto See
Actor PhaseTeleportPoint //Точка телепорта
{
+NOINTERACTION
+DONTTHRUST
+DONTBLAST
Radius 5
ReactionTime 5 //Авто-самоубиение
States
{
Spawn:
TNT1 A 0 NoDelay A_Countdown //Авто-самоубиение
TNT1 A 1 A_JumpIf(CountProximity("DImp",15,0,AAPTR_DEFAULT)==1,"Death") //Самоубиение после успешного телепорта
Loop
Death:
TNT1 A 0 A_Remove(AAPTR_DEFAULT)
Stop
}
}
Всё клёво вот только PhaseTeleport порой переносит моба в стену или другие объекты. Как это можно пофиксить?
Хмм, похоже я действительно изобрёл велосипед.
Вот только проблема остаётся той же - не понятно как спаунить SpecialSpot'ы чтобы они не оказались в препятствии.
ЕДИТ:
Бтв, потестил А_Телепорт и пришёл к выводу что мой вариант таки прогрессивнее нежели штатная ф-ция. В нём в принципе невозможна коллизия типа телепорт нескольких акторов одну точку, ибо каждая персонализирована поинтером.
Кароч буду признателен если подскажете как написать проверку на безопасный спаун.
Видимо у нас с тобой понятия о телепорте несколько отличаются. Технически - да, ты прав, фактически же Варп это разновидность телепорта, разве что напрямую не телефражит и работает по указателям.
как спаунить SpecialSpot'ы чтобы они не оказались в препятствии.
Задавая точные координаты например этих самых спотов...
У себя же я делал так, что споты сами по себе двигаются по карте и их спавнит сам монстр. У спота есть "правильный" радиус - соответственно то что на споте заспавнится - в стене уже не окажется.
Void Weaver:
Видимо у нас с тобой понятия о телепорте несколько отличаются
Я бы сказал сильно отличается, т.к. на мой взгляд (и взгляд разработчиков ДУМ) телепорт это мгновенное перемещение с одной точки в другую, независимо от препятствий (стены, монстры и т.д.) с уничтожением живности (иногда не живности) которая в момент телепорта "удачно"оказалась в точке назначения. У тебя же указан тупо "Вандерный-хренпоймешьчто" который очень любят использовать создатели АЕОД...
От же ж... Т. е. ты всё это время лечил меня по поводу _Вандера, не взглянув на
Void Weaver:
PhaseTeleport:
да?
YURA_111:
Задавая точные координаты например этих самых спотов...
Спасибо, Кэп. Юр, речь шла именно о рандомном спауне. Офк ты чел толковый, и я буду признателен за любые советы, но ты явно не въехал в суть проблемы. И повторяю: использование A_Teleport никак не решает проблему.
YURA_111:
У себя же я делал так, что споты сами по себе двигаются по карте
Не, самоходные споты меня не устраивают. Точки нужны статичные и одноразовые. Я просто не понимаю почему A_SpawnItemEx осмеливается спаунить актор в стену и как это можно пофиксить.
Возник вопрос. Иногда при рендеринге с помощью Software (проверял в OpenGL - там такого нет) некоторые секции стены темнее других. Немного режет глаз.
Пример
Brightness у всего окружения абсолютно одинаковая и равна 192. Что может быть причиной (ну т.е. я понимаю что это особенность рендерера, создания немного "кривоватых" цветов, но большего не знаю) и как возможно пофиксить?
Ребят, у меня новая проблема (блин, я чувствую что скоро всех задолбаю в этой теме).
Как убрать эффект "невидимых врагов"? В ваде такой странный баг: когда враги идут, они исчезают, и только при моем присутствии появляются. Как убрать такой баг?