Всё о Multiboard'ах
Содержание:
Практика
Действия я подробно расписывать не буду, т.к. если вы внимательно хотя бы 2 раза прочитали “теорию” у вас не должно возникнуть с этих проблем, и вы должны постараться справиться сами, т.к. практика учит быстрее теории.
В конце статьи прикреплен файл, с уже сделанным MultiBoard’ом, о котором будет идти речь. Вы можете просмотреть его, НО!! Суть практики не в том, чтобы смотреть уже сделанную работу, а в том, чтобы самим ее сделать. Настоятельно рекомендуется сначала попробовать самим, хоть даже если это и покажется сложным.
В конце статьи прикреплен файл, с уже сделанным MultiBoard’ом, о котором будет идти речь. Вы можете просмотреть его, НО!! Суть практики не в том, чтобы смотреть уже сделанную работу, а в том, чтобы самим ее сделать. Настоятельно рекомендуется сначала попробовать самим, хоть даже если это и покажется сложным.
Рассмотрим создание multiboard’a, который будет отображать, жив юнит или мертв, и если он мертв, то будет показано, через какое время он воскреситься.
Сначала попробуйте сделать MultiBoard сами, прочитав только его описание и руководствуясь этой картинкой (на ней изображено что должно получится).
если вы сможете его сделать, то читать практику необязательно, но можете скачать прикрепленный файл для сравнения.
Сначала попробуйте сделать 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, скрывалась иконка, но показывался текст.
Далее:
Далее делаем, чтобы в позициях 1-1, 1-2, 1-3, 2-1, 2-2, 2-3, скрывалась иконка, но показывался текст.
Далее:
**Действия:**
-на позицию 1-1 припишем текст “**Имя**:”
-на позицию 2-1 припишем текст “**Состояние:**”
//Мультиборд у нас будет в виде таблицы, и выше перечисленные тексты будут являться заголовками столбцов.
-на позицию 1-2 припишем текст “**Артес -**”
-на позицию 1-3 припишем текст “**Иллидан -**”
//Эти имена будут стоять в колонке "**Имя**", и они будут неизменны.
-на позицию 2-2 и 2-3 припишем текст “**Жив**”.
//Это будет стоять в колонке "**Состояние**", и они будут меняться по ходу игры.
//Следующее, что надо сделать, это оформить, определим расстояние для каждого текста:
-на позицию 1-1, 1-2, 1-3 делаем расстояние **5%**;
-на позицию 2-1, 2-2, 2-3 делаем расстояние **7%**;
//Сейчас у нас готов **MultiBoard**, но он крайне некрасив - все слова написаны белыми буквами.
//Так что следующий шаг - это !!дизайн!!:
-Цвет названия делаем красным (100%, 0%, 0%)
-Цвет текста (1-1 и 2-1) делаем синим (0%, 0%, 100%)
-Цвет текста (1-2 и 1-3) делаем зеленым (0%, 100%, 0%)
-Цвет текста (2-2 и 3-3) делаем желтым (0%, 100%, 100%)
Первый триггер у нас готов!
Далее поставим 2-х юнитов на карту рядом друг с другом (Артеса и Иллидана).
Создаем переменную-массив integer (целочисленная) OTC4ET.
Далее поставим 2-х юнитов на карту рядом друг с другом (Артеса и Иллидана).
Создаем переменную-массив integer (целочисленная) OTC4ET.
Создаём следующий триггер:
**Событие**
**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, ниже я выложил его пример.
Надеюсь, вы поняли, как делать MultiBoard, ниже я выложил его пример.
Примечание: Действие - Wait, очень плохо работает, и если зделать через него промежуток в 30 сек, то он будет ждать не 30 сек, а совсем другое время но примерно равное 30, также лучше вместо него использовать таймер..
Также советую посмотреть эти наработки:
- Наработку Iron’а "Status Metr на Мультиборде"
- Мою наработку "Система характеристики юнита"
- Мою карту "Мультибордные танчики", правда чуть-чуть недоделанные.
- Мой "Вертикальный прогресс бар" . Он не для использования, а большей частью для примера, как создавать такие вещи... Но плохо в нём то, что расстояние между строчками не изменить.
Содержание
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Но у меня возникли сложности ... Я создаю таймер или же часы в мультиборде, все отображается корректно, но не фиксируется ширина ячеек. Каждый раз когда меняются цифры меняется и ширина до минимума даже если постоянно указывать что ширина таких-то ячеек такая-то.
Как намертво зафиксировать ширину ячеек ?