Итак, для начала, надо поставить два объекта - модель трона, и самого Хнума. Модель трона можно найти в models\levels\egypt\architecture. Хнума надо ставить не как legged character, a Khnum puppet.
Получилось, вроде, как-то так!
Теперь, после того, как вы расположили невероятно ювелирно Хнума, пора сделать несколько изменений в этом милейшем создании. Дело в том, что заставить простого Хнума спать, не заглянув в параметры его entity - довольно муторное дело, и поэтому, настроим изначально некоторые параметры этого существа. Обратите внимание на State и Threat sensitivity!
Заметьте, что таким образом, мы... Всё сделали. Тогда зачем вообще статью писали? А затем, что теперь, мы его поднимем на ноги. Дело в том, что в уровне "Мощь подземного царства" используется еще и спаунер, и второй детектор, чтобы заспаунить хнума (просто затем, чтобы всё было очень "гладко"), а затем еще и наслать десять килотонн клиров, которые называются не клирами, а какими-нибудь "spawn_tomb_sleepram", хотя под таким же названием можно подозревать и нашего сидящего товарища (хотя, довольно странно он сидит, скорее уснул на своем же плече О.о)
Я бы не советовала вам копировать все скрипты оттуда на его пробуждение, потому что:
-Вы можете случайно забыть о том, что у вас в окне скрипт из того уровня, а не ваш, и испортить себе уровень
-Вы можете неправильно задать переменные (зеленые штучки), и у вас будет просыпаться что-нибудь невидимое.
Итак, расположим теперь два корневых предмета - детектор, и скрипт.
Детектор надо расположить в том месте, где при переходе данного, хнум среагирует на вас и проснется.
В личном, в моей карте всё расположено вот так, т.к. я хочу сделать пробуждение не обязательным, а условным (игрок хочет обнять хнума).
Не волнуйтесь о параметрах детектора, он не должен быть ни на что направлен. Это могущественнейшая магия скрипта.
Итак, мы перешли к самому главному - скрипту. Я покажу вам, как выглядит скрипт, а затем объясню, что есть что.
spawnedKhnum - это ваш хнумик. Просто кликните на него, и зажав ctrl+shift+alt, "перетащите" его в это непонятное словцо.
report damage - какой бы ни был урон (даже пули), сообщить при получении урона скрипту о том, что это всё же совершенное покушение (!), и одно из условий (хнума пнули) выполнено. Но, это просто делается заранее, так что пока вы в него не выстрелите, он не среагирует только при этом эвенте.
Но, мы же хотим еще и чтобы никто не подходил ко хнуму во время его отдыха!
Wait(Any(Event(detector_close.Activated), Event(spawnedKhnum.Damaged))) - очень длинная и страшная строка, которая отвечает за все начинающие действие события.
Wait(Any(Event(detector_close.Activated) - Хнум начинает просыпаться при переходе на детектор, поэтому detector_close (или любое название, вы можете дать переменной название хоть serioussite!) мы назначаем тем детектором, который вы поставили для активации.
Кстати, приставка (Any - это значит, что хнум проснется только при одном из этих условий!
Event(spawnedKhnum.Damaged) - это событие, если хнум получит урон.
)) - это закрывающие скобки скобок прошлого события, а не траллинг)0)))0)0
SetThreatSensitivity("Standard") - мы назначаем хнуму забросить с отдыхом, и наконец-то дать игроку по роже, т.е. мы включаем его реакцию на всех окружающих его персонажей. Тот прошлый "dead horse" параметр - это значит, что Хнум реагирует как дохлая лошадь, т.е. никак, только воняет. А стандарт - это другое дело!
Однако, мы хотим чтобы хнум не просто быстро начал бегать, даже ничего не сделав, мы хотим чтобы он встал действенно, как босс.
WakeUpFromSleeping() - это и есть анимация для него. Вы можете ее найти, как только введете двоеточие перед этой переменной, это же khnum puppet, а не legged character!
Теперь, пора проверить это в игре. У меня всё получилось О_О
Если мы подойдем к нему, он проснется, и побежит на нас (чтобы надавать по роже, естественно)!
Ну вот и все! Можете сделать целую семью хнумов, только помните, что трон тоже надо делать под задницу этой очаровашки.
Это моя первая статья, надеюсь, всё не настолько ужасно)
Комментарии