Как сделать таймер при помощи переменных

Всем привет! В этой статье я расскажу вам как сделать таймер в мультиборде при помощи переменных. Иногда возникает надобность в таймере, но стандартный таймер вместе с мультибордом будет смотреться громоздко и не очень красиво. Можно легко сделать точно такой же таймер и в мультиборде. Для начала создадим 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.

Статья была перепечатана 17 августа 2012 года.

Категория: Триггеры | Добавил: Leophan (21.01.2012)
Просмотров: 7918 | Комментарии: 5 | Теги: как сделать, варик, при помощи, варкрафт 3, переменных, сделать, как, таймер, warcraft 3, war 3 | Рейтинг: 4.0/4
Всего комментариев: 5
5 Андрей  
Спасибо, но как сделать так что бы таймер шёл в обратную сторону???
Ответ: Сделай триггер наоборот, вместо плюса ставь минус в переменных, и в инициализации установи нужные числа на переменных.

4 Андрей  
Блин я тоже сделал всё правильно, ничего не получается, пожалуйста создай карту с таймером.
Ответ: В общем, это скорее всего получается из за того что вы не создаете таймер, и устанавливаете текст для несуществующего таймера, я думал уж это вы сами додумаете. Ну да сам виноват, плохо разжевал статью. После если не забуду перепечатаю.
Вот ссылка на карту: Timer.rar
Я сделал там малясь по другому, но принцип тот же.

2 Moddy  
пожалуйста помогите, мое мыло Vlad.Moddy@yandex.ru, в заранее спасибо

3 Leophan  
Статья написана правильно, может ты что-то не так сделал? Перечитай статью, и попробуй все с начала. Если не сможешь, сделаю пустую карту с этим таймером. smile

1 Moddy  
я сделал все как надо, но таймера нет, помогите пожалуйста!!

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]