Эта статья расскажет вам о том, как сделать систему воскрешения
нейтралов через определённый промежуток времени после их смерти. Чтобы
изучать данную статью, требуются знания основ WE и триггеров, в
частности переменных. Если у вас есть какие-то проблемы с
воскрешением нейтралов или просто хотите узнать, как сделать подобную
систему, внимательно прочитайте и откройте WE - эта статья послужит
вашим помощником в таком деле. Нам потребуются следующие переменные: Creep_X - переменная типа "Реальная", массив размером 1. Creep_Y - переменная типа "Реальная", массив размером 1. Integer - переменная типа "Целочисленная".
Лучший способ инициализации стартовых точек нейтралов - создание
триггера с событием "Иниц. карты" (Map Initialization) и при помощи
ранее созданных нами переменных сохранять данные об этих точках. Нам это
нужно для того, чтобы потом воскресить нейтрала на его изначальной
позиции. "Creep_X" сохраняет координату X точки, где находится
каждый нейтрал, а "Creep_Y" - сохраняет координату Y этой точки. Х и Y
работают, как точки, но не вызывают утечек. "Integer" тоже очень важен. Почему - я скоро объясню.
Итак, откройте Редактор триггеров, создайте триггер под названием
"Creep Revival System Initialization", ну, или подобным, затем добавьте в
него следующее:
Итак, что же мы сделали до этого момента? Мы занесли в отряд всех
нейтралов на карте, задали каждому крипу его Custom Value, равное
целочисленной Integer. Это очень важно для того, чтобы мы могли
обращаться к определённому элементу массива Х или Y. Теперь при помощи Custom Script-кода зададим значения X и Y стартовых точек каждого нейтрала.
После инициализации создадим ещё один триггер, который будет воскрешать
нейтралов. Событие - A unit Dies. В условии мы проверяем, что умирающий
принадлежал Нейтрально-враждебному игроку, владельцу крипов, и ещё, что
он не вызванный. Ведь крипы, которые были вызваны, не были поставлены
на карте, зачем же их воскрешать? Итак, смотрим: (уменьшено в целях того, чтобы не растянуть ваш экран)
Я не использовал Dying Unit, так как эта переменная при каждом запуске
триггера имеет неприятное свойство перезаписывать значение. Я думаю, вы
сможете убрать лёгкую утечку в триггере. Чтобы воскрешать крипа не через 5 секунд, поменяйте значение в Wait. Ну, для того чтобы не потерять Custom Value, задаём его созданному крипу. Собственно, вот и всё. Спасибо за внимание.
by [DUOS]
|