Практика
Действия я подробно расписывать не буду, т.к. если вы внимательно хотя бы 2
раза прочитали "теорию” у вас не должно возникнуть с этих проблем, и вы должны
постараться справиться сами, т.к. практика учит быстрее теории.
В конце
статьи прикреплен файл, с уже сделанным MultiBoard’ом, о котором будет
идти речь. Вы можете просмотреть его, НО!! Суть практики не в том, чтобы
смотреть уже сделанную работу, а в том, чтобы самим ее сделать. Настоятельно
рекомендуется сначала попробовать самим, хоть даже если это и покажется
сложным.
Рассмотрим создание multiboard’a, который будет отображать, жив юнит
или мертв, и если он мертв, то будет показано, через какое время он
воскреситься.
Сначала попробуйте сделать MultiBoard сами, прочитав
только его описание и руководствуясь этой картинкой (на ней изображено что
должно получится).
если вы сможете его сделать, то читать практику
необязательно, но можете скачать прикрепленный файл для сравнения.
Если не получилось - прочитайте инструкцию. Смысл инструкции в том, что она
не указывает, какие действия надо ставить, а только говорит, каков эффект будет
от данного действия. Вы прочитали теорию, и должны знать, какое действие
поставить. Если все равно не получается - смотрите пример.
Состояние юнита
Создадим простейший MultiBoard
Инструкция
Для начала создадим карту, удалим все действия из триггера
"Initialization”, и первое, что поставим - это "Wait 0.1”. После
этого создаём MultiBoard c 2-я столбцами и 3-я строчками, назовем этот
MultiBoard "Состояние юнита”.
Далее можно
пользоваться циклами, но так как предполагается, что читатель – новичок, будем
делать без циклов - просто по порядку.
(Чтобы было меньше писать столбики и строчки будем обозначать так:
x-y, где X- столбцы, Y – строчки.)
Далее делаем, чтобы в
позициях 1-1, 1-2, 1-3, 2-1, 2-2, 2-3, скрывалась иконка, но показывался
текст.
Далее:
**Событие**
**Generic Unit Event**, !!Юнит умирает!!.
**В действиях**: Создаем 2 действия – **If / Then / Else, Multiple Functions**.
В первом ставим, что:
Если: **Умерший юнит = Артес**
То:
Set OTC4ET (1) = 30
__//Далее без циклов тут не обойтись потому создаем цикл__
**For each (integer B) from 1 to 30, do (Actions)**
**Цикл – Действия**
__//Далее создаём в позиции 2-2 текст, используя пару функций__
__(Делаем действие создание текста с функцией
(Мертв(+((String(OTC4ET(1)))+сек.)))__
__//Что это значит? Это означает что создастся текст "Мертв
(" + "[текущее значение переменной OTC4ET(1)]" + "сек.)”__
__//Далее, конечно же, ставим действие:__
**Set OTC4ET (1) = OTC4ET (1) - 1**
**Wait 1.00 game-time second**
__//На этом цикл закончился.__
(Создаем текст в позиции 2-2 "Жив”)
__//И ставим действие возрождение героя:__
**Герой – Instantly revive (Triggering unit at (Position of (Triggering unit),
Показать revival graphics))**
__//Все__
//(В следующем действии (__If / Then / Else__) ставим ВСЕ ТО ЖЕ САМОЕ только
заменяем в условии **Иллидана** на **Артеса**
//А во всех действиях создания текста в **MultiBoard**’е заменяем 2-2 на 2-3.
И везде используем переменную не **OTC4ET(1)**, а **OTC4ETT(2)**.
|
Теперь запустите карту, и убейте любого юнита другим юнитом и посмотрите на
Multiboardd. Всё отлично!
Надеюсь, вы поняли, как делать
MultiBoard, ниже я выложил его пример.
Примечание: Действие - Wait, очень плохо работает, и если зделать через
него промежуток в 30 сек, то он будет ждать не 30 сек, а совсем другое время но
примерно равное 30, также лучше вместо него использовать таймер.