Сейчас 11:44:22 Пятница, 22 ноября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Статья] Мультибоард и с чем его "едят"
NestrikДата: Понедельник, 07 Февраля 2011, 22:05:29 | Сообщение # 1
4 уровень
Группа: Пользователи
Сообщений: 88
Награды: 0
Репутация: 7
Блокировки:
Заведомом создаю тему не в том разделе, ибо "У вас недостаточно прав для этого действия" в нужном разделе. Надеюсь админ или модер переместить в нужный раздел.
Тема для новичков
Синтаксис: ГУИ
Необходимые материалы: редактор World Editor, базовые знания по редактору WE3, базовые знания английского или умение пользоваться переводчиком (словарем), хотя бы 1 палец на одной руке, клавиатура, мышь, голова неа плечах, терпение и усидчивость.
Описание на базе WE3 Англо-русский вариант - категории в триггерах русские, текст дейсвтий - английские.

Часть первая: Основные понятия и "с чем мы работаем"
Мультибоард (от англ. Multiboard - "много-доска" - таблица) - таблица используемая для отображения практически любых данных во время игры на картах WarCraft III.
Строка - значения в мультибоарде в пределах высоты 1 значения в таблице по горизонтали.
Столбец - значения в мультибоарде в пределах ширины 1 значения в таблице по вертикали.
Ячейка - место пересечения конкретной строки и конкретного столбца, включающее одно значение в таблице.

В редакторе WarCraft III для создания мультибоарда используется общая категория действий "Меню паузы" (в других версиях может отличатся). Выбрав соответсвующую категорию и нажав на строку можно увидеть весь список действий.
http://pikucha.ru/i48Sc

Часть 2. Оипсание основных действий или "да что, черт возьми, происходит!"
В этой части я дам описание всем основным действиям возможным с мультибоардами.
Итак поехали:
Create - создает таблицу с требуемым количеством колонок и строк, и указаным названием.
Destroy - уничтожает указанную таблицу
Show/hide - показывает/прячет указанную таблицу
Show/hide all Multiboards - показывает/прячет все таблицы
Minimize/maximize - сворачивает/разворачивает указаную таблицу
Clear - очищает указаную таблицу (очищает, то есть удаляет все колонки и строки)
Change Title - изменяет название указаной таблицы на "название"
Change Title Color - изменяет цвет названия указанной таблицы на параметры (Красный канал, Зеленый канал, Синий канал) с прозрачность %
Change Number of Rows - изменяет количество строк в указанной таблице на "количество строк"
Change Number of Columns - изменяет количество колонок в указанной таблице на "количество колонок"
Set Item Display Style - изменяет в указаной таблице параметры отображения в указанной колонке и указанной строке текста[вкл/выкл] и иконок[вкл/выкл]. (если указать для колонок значение 0, то ббудет действовать на все колонки, если указать для строк 0 то будет действовать для всех строк)
Set Item Text - изменяет текст в указаной таблице указанной колонке и указаной строке на "текст" (если в строке или в колонке указать 0, то будет действовать для всех строк/колонок)
Set Item Color - в указаной таблице , указаной колонке и строке изменяет цвет на (Красный канал, Зеленый канал, Синий канал) с прозрачность % (указания нуля в колонке или строке переносит дейсвтие на всю колонку/строку)
Set Item Width - изменяет размер в указаной таблице у указной колонки, строки на указаный % от ширины экрана
Set Item Icon - изменяет в указаной таблице в указаной колонке, строке иконку на "указаную"

Что ж, действия все и пояснения по ним, надеюсь, достаточно подробные. Кроме того к таблицам применимы переменные типа "меню паузы", а так же любые другие, которые содержат иконки, которые можно перевести в текстовый формат (интеджер, риал, и др.). Вот теперь, зная все действия можно приступать к созданию мультибоарда.

Часть 3. Создаем мультибоард по типу "Таблица рекордов".
Больше всего данная часть нужна для описания механизма создания, и для того, что бы можно было с чем то сравнить, возможно, кому то более знакомым,чем мультибоард.
И так с чего начать:
Шаг 1: Для начала нужно создать таблицу, содержащую имена игроков, значения их убийств (пусть это будут именно убийства, так проще), ну и в принципе все.
Тут возникает первая проблема: сколько создавать колонок и строк?
Колонок в принципе понятно: имя да убийства - значит 2. А строк?
Здесь есть два варианта реализации: во многих случаях, что бы не мучаться с пересчетом всех активных плееров создают просто таблицу для всех плееров, а на месте не играющих заполняют её прочерками (или нулями, на свой вкус).
Я рассмотрю случай с пересчетом игроков:
И так у нас есть карта, в ней играю максимум 8 игроков, при запуске хост поставил 1 компьютера и к нему зашло еще 2 игрока: всего 4. При этом заняли они места не подряд (то есть, красный, синий, сине-зеленый, фиолетовый), а раскидались по цветам "случайным" порядком.
Для начала нам потребуется переменная целочисленная в которую мы сосчитаем количество игроко, пусть это будет "NumbersOfPlayer"
Создаем триггер с событием :
Time Elapsed 0,01
Условий нет
Действия:
Цикл по "А" от 1 до 8
В цикле проверка на то, что бы игрок был человеком и слот игрока был занят играющим
Если условия выполнились увеличиваем значение переменной NumbersOfPlayer на 1
На нет: "...и суда нет"
http://pikucha.ru/i48Uq

Хорошо, теперь мы получили количество игроков, и смогли записать это количество в переменную. Теперь мы знаем, что количество строк в таблице будет = NumbersOfPlayer (или можно его увеличить еще на 1, и сделать вверху таблицы строку, с надписями "Имя игрока" и "количество убийств")

Теперь можно смело создавать таблицу:
Событие: прошло 0.02 секунды
Действие: Создаем таблицу с 2 колонками и NumbersOfPlayer строками.
http://pikucha.ru/i48UH

Осталось вписать в таблицу имена игроков и начать заполнять колонку с "убийствами". Но как же теперь это сделать? У нас в таблице всего 3 строки, а игрок под номером 8 никак не хочет лезть в тиблцу на строку соответствующую индексу игрока. Да и как же мы будем заполнять колонку убийств?..
Столкнувшись с подобной проблемой, многие наччинающие МэпМэйкеры просто переходят к первому варианту создания таблицы, и заполняют пустые ячейки прочерками. Далее я раскажу вам один из вариантом обойти эту проблему и писать кому нужно, что нужно.

Итак приступим: для того, что бы запомнить какой игрок в какой строке оказался в таблице достаточно создать переменную-массив типа целочисленная на 8 ячеек. В массив, как можно было уже догадаться, будем записывать номера строк, в которой записан конкретный игрок. Скажем пусть наши игроки оказались на цветах Красный(1), Фиолетовый (4) и Розовый(8), компа сразу не учитываем и отбрасываем.
Самый простой вариант заполнить массив "Номеров ячеек" при пересчете игроков.
http://pikucha.ru/i48Vi
Итак, теперь для каждого игрока мы точно знаем его место в таблице и ни за что не перепутаем его :)
Теперь записываем данные в таблицу:
http://pikucha.ru/i48Vp
Наверное не очень хорошо смотрится вся эта конструкция с точки зрения оптимизации (да, по правде говоря я и сам не так делаю) но это нужно, для того, что бы объяснить порядок действий при создании и записи данных в мультибоард.
Итак: мы имеем таблицу, в верху в ней написано "Количество убийств" в ней записаны имена игроков, и в ней (в нашем примере) 3 строки. Она корявая: все колонки одинакового размера, имена игроков не влазят: да и в колонке с килами, вряд ли влезет что то болше 1 цифры.
Избавляемся от этой проблемы:
для этого добавлем действия, для изменения размеров ячейки:
http://pikucha.ru/i48VE

Вот теперь красиво: даже самый длинный ник войдет :)

Решаем следующую задачу: нужно записывать значения килов для каждого игрока. В этой статье я предлагаю использовать еще один массив (вообще очень люблю массивы wizard ), в который мы будем писать наши килы. Итак массив на 8 ячеек, опять таки целочисленный, назовем его Kills.
Далее создадим триггер, в котором будем отслеживать убийства и сразу же записывать их в таблицу:

С. Юнит умирает
Д. Set Kills[(Player number of (Owner of (Killing unit)))] = (Kills[(Player number of (Owner of (Killing unit)))] + 1)
Меню паузы - Set the text for (Last created multiboard) item in column 2, row PlayerMBNumber[(Player number of (Owner of (Killing unit)))] to (String(Kills[(Player number of (Owner of (Killing unit)))]))

http://pikucha.ru/i48W7

Ну вот в общем то и все :) Таблица создана, значения будут заполнятся каждый раз когда кто нибудь из игроков кого нибудь убьет devil

Хм, но у нас еще иконки какие то висят... Пусть в первой колонке будут иконки героя, а во второй колонке их не будет: очень просто доаполняем триггер создания 1 действием:
Меню паузы - Set the display style for (Last created multiboard) item in column 2, row 0 to Показать text and Спрятать icons

Для записи иконок героев нужно будет создать еще один триггер, который будет отслеживать первое вхождение героя в игру, а затем переписывать значение его иконки в таблице действием:

Меню паузы - Set the icon for (Last created multiboard) item in column 1, row "Строка игрока, который получил героя" to "Иконка героя, которого выбрал игрок"
С этим, надеюсь, читатель справится теперь сам :)

Это все, что я хотел сказать по мультибоардам, надеюсь новичку мэпмейкеру она окажется в жилу :)
Хороших мультибоардов и известности вашим проектам :)

Добавлено (07-02-2011, 22:05)
---------------------------------------------
я бы с картинками все вставил да только "Найдены запрещенные BB коды" ...

 

romaN-1998Дата: Понедельник, 07 Февраля 2011, 22:13:45 | Сообщение # 2
10 уровень
Группа: Проверенные
Сообщений: 1368
Награды: 0
Репутация: 10
Блокировки:
Статья для новичков... уж очень новичков...
 

NestrikДата: Понедельник, 07 Февраля 2011, 22:20:14 | Сообщение # 3
4 уровень
Группа: Пользователи
Сообщений: 88
Награды: 0
Репутация: 7
Блокировки:
А их мало?
http://warcraft3ft.info/forum/22-26459-1
http://warcraft3ft.info/forum/22-26440-1
http://warcraft3ft.info/forum/22-26407-1
ну это так: последние пару дней, и то только от тех кто сел и написал свой вопрос ;)

Ну конечно, если админ или модер решит, что "ну нафиг тему в топку, афтора в бан" я ничего против не скажу.

Quote (romaN-1998)
Статья для новичков... уж очень новичков...

я так и указал вначале, что бы те кто хоть как то с триггерами знакомы сюда не совалиь ;) едва ли что-то новое найдут для себя :)
 

DreiiДата: Понедельник, 07 Февраля 2011, 22:37:20 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Nestrik, не в том разделе

 

[DUОS]Дата: Понедельник, 07 Февраля 2011, 22:39:05 | Сообщение # 5
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Dreii,
Quote (Nestrik)
Заведомом создаю тему не в том разделе, ибо "У вас недостаточно прав для этого действия" в нужном разделе.

P.S.: Автор, прочти мою статью про создание CTF-боарда =)


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

DreiiДата: Понедельник, 07 Февраля 2011, 22:40:06 | Сообщение # 6
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
[DUОS], упс,ошибся)

 

NestrikДата: Понедельник, 07 Февраля 2011, 22:51:10 | Сообщение # 7
4 уровень
Группа: Пользователи
Сообщений: 88
Награды: 0
Репутация: 7
Блокировки:
Quote (|DUОS|)
P.S.: Автор, прочти мою статью про создание CTF-боарда =)

Хм, чесно сделал поиск по твоему никнейму по созданым темам - не нашел. Затем просмотрел все 15 страниц "Раздела картостроителя" в поисках статей по мультибордам, нашел только две:
http://warcraft3ft.info/forum/29-22463-1
с убитыми картинками
и http://warcraft3ft.info/forum/29-1681-1
с убитой ссылкой %)

Кинь ссылку на свою статью, тогда просмотрю её :)

 

[DUОS]Дата: Понедельник, 07 Февраля 2011, 22:55:19 | Сообщение # 8
Группа: Заблокированные
Сообщений: 6279
Награды: 9
Репутация: 1708
Блокировки:
Nestrik,
Так ведь Статьи у меня в профиле =)


НУ И ЧТО ТЕПЕРЬ?


Кликайте на дракошку ;)
 

NestrikДата: Понедельник, 07 Февраля 2011, 23:03:43 | Сообщение # 9
4 уровень
Группа: Пользователи
Сообщений: 88
Награды: 0
Репутация: 7
Блокировки:
Quote (|DUОS|)
Так ведь Статьи у меня в профиле =)

оу, я не знал про эту функцию сайта :)
Статейка хорошая, таблица качественная, просмотрел, но все таки, понятна она будет не каждому ;) Слишком уж большой массив информации для совсем новичка
Однако опять же не отслеживается одна деталька, которую я рассмотрел в своей статье, которая будет полезна для создающих кары других типов, где им не нужно будет в таблице держать всех игроков, а нужны будут только активные игроки люди.

Но, если ты не против, я бы вставил ссылку на твою статью сюда, дабы новичок, оценивающий свой уровень знания мультибоардов больше 0,00% обратился к более сложно наработке (статья от [DUОS] ):
http://warcraft3ft.info/board/kak_sdelat_multibord_dlja_kart_tipa_quotzakhvat_flagaquot/17-1-0-1156

 

pirat9629Дата: Понедельник, 07 Февраля 2011, 23:07:00 | Сообщение # 10
7 уровень
Группа: Проверенные
Сообщений: 422
Награды: 0
Репутация: 102
Блокировки:
а помоему не в том разделе.



сделаю минекрафт сервер на заказ. платно
 

NestrikДата: Понедельник, 07 Февраля 2011, 23:07:17 | Сообщение # 11
4 уровень
Группа: Пользователи
Сообщений: 88
Награды: 0
Репутация: 7
Блокировки:
Ладно, дальше защищать не буду статью: админы/модеры решат, что делать со статьей - пойду спать, завтар еще на пары рано утром %)
 

hero564Дата: Понедельник, 21 Февраля 2011, 21:29:14 | Сообщение # 12
7 уровень
Группа: Проверенные
Сообщений: 338
Награды: 0
Репутация: 22
Блокировки:
Nestrik, норм статья ! МОлодец!! ^_^

-ААА! Они убили Кенни!!
-Сволочи!!
 

SkoricДата: Четверг, 01 Сентября 2011, 06:07:52 | Сообщение # 13
Peace, people!
Группа: Проверенные
Сообщений: 633
Награды: 0
Репутация: 425
Блокировки:
Nestrik, Пожалуйста, дай полный код статьи( с картинками и прочим), я размещу у себя на сайте. Естественно с указанием автора.

лимончики
 

DiabfallДата: Четверг, 01 Сентября 2011, 11:53:17 | Сообщение # 14
Группа: Проверенные
Сообщений: 1231
Награды: 0
Блокировки:
Quote (Skoric)
Nestrik, Пожалуйста, дай полный код статьи( с картинками и прочим), я размещу у себя на сайте. Естественно с указанием автора.

Nestrik Дата входа:Суббота, 26 Февраль 2011, 18:21:32

Свяжись с ним через ICQ 557189408
 

Banzay89Дата: Четверг, 01 Сентября 2011, 15:45:53 | Сообщение # 15
9 уровень
Группа: Проверенные
Сообщений: 858
Награды: 1
Репутация: 77
Блокировки:
статьи для новичков пишут сами новички, ибо на большее не способны. та это и не нужно - все велосипеды уже изобретены
 

SkoricДата: Среда, 07 Сентября 2011, 10:51:17 | Сообщение # 16
Peace, people!
Группа: Проверенные
Сообщений: 633
Награды: 0
Репутация: 425
Блокировки:
Banzay89, А не забыл как сам начинал?

лимончики
 

Artem3123Дата: Понедельник, 19 Сентября 2011, 08:09:23 | Сообщение # 17
9 уровень
Группа: Проверенные
Сообщений: 816
Награды: 0
Репутация: 577
Блокировки:
У меня не получилось((( :'(
 

PitFighterДата: Четверг, 12 Апреля 2012, 22:22:53 | Сообщение # 18
8 уровень
Группа: Проверенные
Сообщений: 542
Награды: 0
Репутация: 197
Блокировки:
Artem3123, :D хехехе

 

HexingДата: Пятница, 13 Апреля 2012, 04:38:44 | Сообщение # 19
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
not bad, но текст бы повыделять цветом и прочим, читать неприятно

 

PitFighterДата: Вторник, 17 Апреля 2012, 16:42:14 | Сообщение # 20
8 уровень
Группа: Проверенные
Сообщений: 542
Награды: 0
Репутация: 197
Блокировки:
Просто ради интереса попытался сделать точно такойже мультибоард по твоему способу, при открытии он пуст, и не просто пуст а у него колонок нету

 

Ty3uKДата: Вторник, 17 Апреля 2012, 17:06:54 | Сообщение # 21
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Запилю-ка я статью про мультики на жассе :)

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Вторник, 17 Апреля 2012, 18:34:39 | Сообщение # 22
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (Ty3uK)
Запилю-ка я статью про мультики на жассе

кто знает джасс, обязан знать всё о мб, статья будет бесполезной ;)


 

Ty3uKДата: Вторник, 17 Апреля 2012, 19:09:46 | Сообщение # 23
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Это далеко не так, Лавс тому пример :)

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

HexingДата: Вторник, 17 Апреля 2012, 19:35:26 | Сообщение # 24
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
Quote (Ty3uK)
Это далеко не так, Лавс тому пример

сырок знает jass? сколько его помню, дальше ИИ он не ушёл


 

Ty3uKДата: Вторник, 17 Апреля 2012, 19:57:17 | Сообщение # 25
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Вообще знает, довольно таки хорошо. Ну это не мешало ему помогать тебе сравнительно недавно, если мне память не изменяет

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz