Как сделать таймер варкрафт 3
Как сделать простейший таймер на переменных
В сегодняшней статье я расскажу вам как сделать простой таймер на переменных. Для начала создадим триггер, назовем его, например «Init». Далее действием «Меню паузы» создадим мультиборд с одной колонкой и одним рядом. Создадим еще одно действие, тоже меню паузы – Стиль Отображения Ячейки. Установим значения на Показать текст и Скрыть изображения. Ряд и колонку ставьте ту, в которой будет мультиборд, в данном случае это первый ряд и первая колонка. И установим ширину действием «Меню паузы – Ширина ячейки» на 6%. Все, первый триггер готов. Он должен выглядеть вот так:
Теперь перейдем к созданию непосредственно самого таймера. Сначала создадим переменную – целочисленную и назовем еe «timer» и обязательно сделаем ее «Массивом» поставив галочку на «Массив». Теперь создадим событие «Время – Каждые 1.00 секунд». Теперь каждую секунду значения таймера будут меняться. И добавим действие Установить переменную – timer[1] + (timer[1] + 1). Уясним некоторые аспекты.
Переменная timer[1] будет показывать секунды.
Переменная timer[2] будет показывать минуты.
Переменная timer[3] будет показывать часы.
А значит, что каждую секунду к timer[1] будет прибавляться один, то есть одна секунда. Теперь, что бы наше значение отображалось в мультиборде, сделаем действие «Меню паузы – Изменить текст Ячейки» с следующими функциями:
Установить текст для, (Последняя созданная мультидоска) для ячейки в колонке 1, в ряду 1 на (Строка(timer[1]))
Функцию Строка мы делаем с помощью преобразования целого числа. В итоге мы должны получить такой триггер:
Но, эта доска будет показывать количество пройденного время исключительно в секундах. Для показа минут мы будем использовать ту же переменную, только уже со 2 массивом, то бишь timer[2]. Для насчитывания минут мы не будем использовать новый триггер с событием каждые 60 секунд, а сделаем это в этом же триггере с помощью условий. Создадим событие Если, Тогда, Иначе, функции. Создадим в этом действии условие «Сравнение целых чисел - timer [1] больше или равно 60». Это значит, что действие будет осуществлятся только если переменная будет больше или равна 60.
Следующее действие будет «Установить переменную – timer [1] = 0». Это значит, что каждые 60 секунд переменная будет обнулятся, да бы секунды не перевалили за максимальные для них 60 ед. И последним действием установим переменную минут (timer [2]) + 1 действием «Установить переменную – timer [2] = timer [2] + 1». Почти все. В заключение к этому действию в Иначе добавляем «Ничего не делать».
Т.к мы добавили минуты, нужно изменить действие «Меню паузы». Меняем значение преобразования на «((Строка timer [2])) + (: + (Строка timer [1]))))». Переведя это на русский язык это будет: Значение timer [2] + : + Значение timer [1].
И опять же меняем действие «Меню паузы». Теперь мы кардинально изменим триггерный текст, т.к будем использовать переменную-строку, и ничего преобразовать не нужно. Изменим значения на:
Русский язык: 0 + Строка timer[3] + : + Строка timer[2] + : + Строка timer[1].
Как сделать таймер варкрафт 3
Происходящее здесь напомнило мне один случай из моего далекого прошлого. В те времена я еще только начинал осваивать редактор. Одна из тем, которая меня заинтересовала и по которой мне не удалось найти достаточно полной информации - утечки. Тогда я пошел на один форум и задал простой вопрос о том, как определить наличие и степень серьезности утечек в карте, не перебирая весь код. В результате я получил тонну флуда и "ответ от профи", с которым все в итоге согласились - фрагмент кода с ценным указанием "если это число растет быстро - утечек много, если медленно - мало или нет вовсе". Код представлял из себя таймер с малым периодом, который создавал объект, брал его хендл, писал в чат и удалял объект, но был один нюанс - создаваемый объект утекал на каждой итерации таймера.
Kirill_Wolkov, ну ты редкостный растыка.
Что я вижу в его карте - плоская пустая карта с натыканными рудниками и войсками, что к чему и триггеры на гуях, скопированные откуда то, дальше самое интересное - у чувака расширенное гуи, событие триггера Таймер Истекает( CreateTimer() ) условие нет, дейтсвие создать костяной завод нежити в такой то точки, и таких триггеров с десяток для каждого здания.
Нет рили, это уже зашквар - учить гуишников че им делать, неужели так сложно почитать статьи и подумать?
Чтобы таймер истек его нужно не только создать но еще и запустить, не надо делать 1000 триггеров, можно создать всех юнитов в одном, потом нужно создать переменную типа - таймер, потому что гуи, тут динамического создания триггеров\таймеров нет для вас, забудьте про все рус. и расширенные гуи, на нормальном как делали близзарды научитесь делать мили карты.
Простите, но у меня бомбит.
Потом блин ну вы хоть одну карту из кампании смотрели? кто спауни здания то? Создают изначально всю базу на карте, потом если нужно чтобы она появилась в процессе игры её скрывают и паузят.
Ужас.
Как сделать таймер варкрафт 3
Тема предназначена в основном для новичков, но опытные карто-строители могут тоже почерпнуть для себя что-то новое. Тема будет дополняться по мере новых вопросов.
Здравствуйте. Люди помогите мне.. У меня остались 3 основные проблемы которые я не могу решить. Пожалуйста если не сложно помогите (желательно со скринами). Буду очень благодарен:
1) Как сделать "Многократный таймер", чтоб работал через каждые 360 сек.?
2) Как сделать, что деревья не вырубались?
3) Как и в каком порядке прописать, что бы квест был, активным и после его выполнения квест был завершён?
Как сделать таймер варкрафт 3
-->В категории материалов : 3
-->Показано материалов : 1-3
В этой статье будет подробно описано создание случайного юнита при помощи переменных.
В этой статье я подробно опишу как создать простую таблицу в редакторе карт. В таблице будет система убийств, точнее за каждого убитого война игроку который убил его начисляется по баллу.
Как сделать таймер варкрафт 3
Всем привет! В этой статье я расскажу вам как сделать таймер в мультиборде при помощи переменных. Иногда возникает надобность в таймере, но стандартный таймер вместе с мультибордом будет смотреться громоздко и не очень красиво. Можно легко сделать точно такой же таймер и в мультиборде. Для начала создадим 2 переменные:
Timer[Массив] - Целочисленная. Это будут сами цифры, которые будут отображаться.
Timer_string[Массив] - Строка. Что-бы было легче выводить информацию, мы будем использовать строку.
И вот, начинаем создание триггеров. Для начала создадим триггер инициализации. Это простой триггер, который будет создавать таблицу, в нем всего два действия. Это действия «Меню паузы - Создать Мультиборд» и «Меню паузы - Ширина ячейки».
Здесь делайте все что вам нужно. Я лишь сделал мультиборд исключительно для таймера, но вы можете запихнуть его в любую часть мультиборда. Теперь переходим к созданию основного триггера. Дадим ему название timer . Ну, или любое другое. Для начала рассмотрим как примерно будет работать таймер.
Берется переменная целочисленная ( timer ) с массивом. Как мы знаем, у времени есть единицы измерения (Секунды, минуты, часы, для тех кто не знал :0 ), их роль будет играть эта самая переменная. Роль секунд - timer [1], роль минут - timer [2], роль часов - timer [3]. Для начала создадим самые базовые действия. Это - ежесекундное добавление 1 ед. к переменной timer [1], и перевод секунд в минуты. Выглядеть это будет так:
Действует это так: Каждую секунду к переменной timer [1] добавляется 1 ед, то бишь 1 секунда. Паралельно с этим проверяется условие: Если timer [1] становится больше или равно 60, то переменная timer [1] обнуляется, а к переменной timer [2] прибавляется 1, то бишь 1 минута.
После, переменной timer _ string [1] дается строка: ": + Значение timer [1]”. Эта строка показывает секунды. То же самое дается timer _ string [2], только уже с переменной timer [2], то есть с минутами. Так же к ним приставляется знак двоеточия, который будет разделять еденицы измерения времени. После, в переменной timer _ string [4] создается целостная строка. И в конце для мультиборда дается текст строки timer _ string [4]. Так работает эта система, ничего сложного. То же самое делаем с часами, это уже будет переменная со значением массива 3 в обеих переменных.
Теперь посмотрим на это в игре:
Выглядит не очень красиво, правда? Теперь будем наводить красоту. Вот тут-то нам и пригодится переменная timer _ string . Для создания двух-значных чисел мы будем использовать условия. Условие это очень простое:
Значение переменной timer [1] меньше или равно 9
Установить timer _ string [1] = 0 + Значение timer [1] .
Установить timer _ string [1] = Значение timer [1] .
Вот таким нехитрым способом будем делать значение двух-значным.
Для timer _ string [3] мы этого делать не будем, т.к вряд-ли кто-то будет играть в карту 9 часов подряд :0 . Для часов мы будем просто приставлять «0» к значению timer[3].
В итоге наш триггер должен выглядеть следующим образом:
А в игре вот так:
Спасибо за внимание, автор статьи Владислав Щербаков ( PhantoMasteR ).
Если вы хотите скопировать статью на свой сайт, пожалуйста, не делайте этого. Ведь в этом нет никакого смысла, зачем одна и та же статья на нескольких сайтах? Если хотите поделиться ей - укажите ссылку на эту страницу. Я буду очень вам благодарен J .
Читайте также: