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


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Отслеживание маны в любой момент времени для любого здания
Отслеживание маны в любой момент времени для любого здания
NerobrineДата: Воскресенье, 13 Апреля 2014, 11:02:06 | Сообщение # 1
7 уровень
Группа: Проверенные
Сообщений: 336
Награды: 0
Репутация: 102
Блокировки:
Мне нужно сделать так, чтобы когда мана здания становилась равна 1, то делались нужные мне действия, здания строятся во время игры и в любом количестве. До этого пытался делать через корявый метод с периодическим событием, но в итоге она не подходит под парочку зданий.

"Хаос — не пропасть. Хаос — это лестница. Многие пытались взобраться по ней, но оступились и уже не пытались вновь — падение ломало их. У других был шанс взойти наверх, но они отказывались, продолжая цепляться за государство, за богов или за любовь. Всё это иллюзии. Реальна лишь лестница, и важен лишь подъем наверх."
Петир Бейлиш - Игра престолов
 

SirNikolasДата: Воскресенье, 13 Апреля 2014, 14:46:45 | Сообщение # 2
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Есть же специальное событие, разве нет?

 

NerobrineДата: Воскресенье, 13 Апреля 2014, 14:54:53 | Сообщение # 3
7 уровень
Группа: Проверенные
Сообщений: 336
Награды: 0
Репутация: 102
Блокировки:
SirNikolas, оно работает только на заранее поставленных юнитах, а у меня они по ходу игры появляются

"Хаос — не пропасть. Хаос — это лестница. Многие пытались взобраться по ней, но оступились и уже не пытались вновь — падение ломало их. У других был шанс взойти наверх, но они отказывались, продолжая цепляться за государство, за богов или за любовь. Всё это иллюзии. Реальна лишь лестница, и важен лишь подъем наверх."
Петир Бейлиш - Игра престолов
 

kapa6acvlkДата: Воскресенье, 13 Апреля 2014, 15:34:48 | Сообщение # 4
Группа: Проверенные
Сообщений: 612
Награды: 0
Репутация: 361
Блокировки:
Цитата Nerobrine ()
оно работает только на заранее поставленных юнитах, а у меня они по ходу игры появляются

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



Как говориться, не обязательно есть всю кучу говна, чтобы понять, что она однородна.
© Александр Зорич
 

OverkillsДата: Воскресенье, 13 Апреля 2014, 15:39:41 | Сообщение # 5
Группа: Проверенные
Сообщений: 1785
Награды: 0
Репутация: 880
Блокировки:
Периодическое событие - единственный вариант, наверное.

 

NerobrineДата: Воскресенье, 13 Апреля 2014, 15:46:06 | Сообщение # 6
7 уровень
Группа: Проверенные
Сообщений: 336
Награды: 0
Репутация: 102
Блокировки:
kapa6acvlk, чем же отличается от периодического события?

"Хаос — не пропасть. Хаос — это лестница. Многие пытались взобраться по ней, но оступились и уже не пытались вновь — падение ломало их. У других был шанс взойти наверх, но они отказывались, продолжая цепляться за государство, за богов или за любовь. Всё это иллюзии. Реальна лишь лестница, и важен лишь подъем наверх."
Петир Бейлиш - Игра престолов
 

kapa6acvlkДата: Воскресенье, 13 Апреля 2014, 15:48:07 | Сообщение # 7
Группа: Проверенные
Сообщений: 612
Награды: 0
Репутация: 361
Блокировки:
Nerobrine, тем что у каждого здания будет персональный таймер, а это дает огромное количество возможностей.


Как говориться, не обязательно есть всю кучу говна, чтобы понять, что она однородна.
© Александр Зорич
 

NerobrineДата: Воскресенье, 13 Апреля 2014, 16:21:02 | Сообщение # 8
7 уровень
Группа: Проверенные
Сообщений: 336
Награды: 0
Репутация: 102
Блокировки:
kapa6acvlk, расскажи тогда поподробнее, можешь привести пример такого триггера?

Добавлено (13 Апреля 2014, 16:21:02)
---------------------------------------------
Например у меня есть здание Таймер, ему можно задать значение времени через команду, я задал значение 2, запустился многократный таймер на 2 секунды, каждые две секунды он должен выбирать все здания в округе и устанавливать значение их маны на 1 на 0.75 секунд и затем отключать, как обратиться к событию окончания таймера?


"Хаос — не пропасть. Хаос — это лестница. Многие пытались взобраться по ней, но оступились и уже не пытались вновь — падение ломало их. У других был шанс взойти наверх, но они отказывались, продолжая цепляться за государство, за богов или за любовь. Всё это иллюзии. Реальна лишь лестница, и важен лишь подъем наверх."
Петир Бейлиш - Игра престолов
 

SirNikolasДата: Воскресенье, 13 Апреля 2014, 17:02:17 | Сообщение # 9
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата Nerobrine ()
оно работает только на заранее поставленных юнитах, а у меня они по ходу игры появляются
Добавляй его для каждого построенного здания.


 

NerobrineДата: Воскресенье, 13 Апреля 2014, 18:47:31 | Сообщение # 10
7 уровень
Группа: Проверенные
Сообщений: 336
Награды: 0
Репутация: 102
Блокировки:
SirNikolas, подобное я кажется пробовал, и это не помогло, меня заинтересовал вариант с таймерами, они могут стать решением моей проблемы

Добавлено (13 Апреля 2014, 18:47:31)
---------------------------------------------
/summon Bibo


"Хаос — не пропасть. Хаос — это лестница. Многие пытались взобраться по ней, но оступились и уже не пытались вновь — падение ломало их. У других был шанс взойти наверх, но они отказывались, продолжая цепляться за государство, за богов или за любовь. Всё это иллюзии. Реальна лишь лестница, и важен лишь подъем наверх."
Петир Бейлиш - Игра престолов
 

BiboДата: Воскресенье, 13 Апреля 2014, 19:13:53 | Сообщение # 11
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Цитата Nerobrine ()
/summon Bib


Цитата SirNikolas ()
Есть же специальное событие, разве нет?

Если речь о событие Боевая единица - Mana, то оно некорректно работает.
Цитата Nerobrine ()
Мне нужно сделать так, чтобы когда мана здания становилась равна 1, то делались нужные мне действия, здания строятся во время игры и в любом количестве. До этого пытался делать через корявый метод с периодическим событием, но в итоге она не подходит под парочку зданий.

Создаем группу.
Каждое построенное здание, имеющее ману, добавляем в эту группу.
Делаем периодический триггер(или таймер) с интервалом 0.05 сек.
В действиях триггера пикаем всех юнитов в группе.
Если мана пикнутого юнита == 1, выполняем нужные действия.

Добавлено (13 Апреля 2014, 19:13:53)
---------------------------------------------
Если я правильно понял задачу.

 

NerobrineДата: Воскресенье, 13 Апреля 2014, 19:17:24 | Сообщение # 12
7 уровень
Группа: Проверенные
Сообщений: 336
Награды: 0
Репутация: 102
Блокировки:
Bibo, периодическое событие мне не подойдет, так как с ним я не смогу сделать пару очень важных штук, но как говорил kapa6acvlk, можно сделать каждой постройке свой личный таймер и потом его уже поменять, мне как раз таки это подойдет, немного выше я описал один из таких механизмов, каждый таймер имеет свою уникальную частоту.

"Хаос — не пропасть. Хаос — это лестница. Многие пытались взобраться по ней, но оступились и уже не пытались вновь — падение ломало их. У других был шанс взойти наверх, но они отказывались, продолжая цепляться за государство, за богов или за любовь. Всё это иллюзии. Реальна лишь лестница, и важен лишь подъем наверх."
Петир Бейлиш - Игра престолов
 

BiboДата: Воскресенье, 13 Апреля 2014, 19:25:08 | Сообщение # 13
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Ровным счетом это будет тоже самое
Цитата Nerobrine ()
событие мне не подойдет, так как с ним я не смогу сделать пару очень важных штук

Может нечто конкретное? Иначе получается "сделай то, не зная чего, туда, не зная куда".
 

NerobrineДата: Воскресенье, 13 Апреля 2014, 19:32:41 | Сообщение # 14
7 уровень
Группа: Проверенные
Сообщений: 336
Награды: 0
Репутация: 102
Блокировки:
Например у меня есть здание Таймер, ему можно задать значение времени через команду, я задал значение 2 и это значит, что конкретно этот таймер каждые 2 секунды будет делать что-нибудь. Второй такой же ставлю, даю значение 3, значит у меня есть два таймера, один срабатывает каждые 2 секунды, второй каждыу 3, и таких таймеров очень много может быть.

"Хаос — не пропасть. Хаос — это лестница. Многие пытались взобраться по ней, но оступились и уже не пытались вновь — падение ломало их. У других был шанс взойти наверх, но они отказывались, продолжая цепляться за государство, за богов или за любовь. Всё это иллюзии. Реальна лишь лестница, и важен лишь подъем наверх."
Петир Бейлиш - Игра престолов


Сообщение отредактировал Nerobrine - Воскресенье, 13 Апреля 2014, 19:35:00
 

BiboДата: Воскресенье, 13 Апреля 2014, 19:42:06 | Сообщение # 15
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Здание - Таймер?
 

NerobrineДата: Воскресенье, 13 Апреля 2014, 19:50:29 | Сообщение # 16
7 уровень
Группа: Проверенные
Сообщений: 336
Награды: 0
Репутация: 102
Блокировки:
Bibo, Да

"Хаос — не пропасть. Хаос — это лестница. Многие пытались взобраться по ней, но оступились и уже не пытались вновь — падение ломало их. У других был шанс взойти наверх, но они отказывались, продолжая цепляться за государство, за богов или за любовь. Всё это иллюзии. Реальна лишь лестница, и важен лишь подъем наверх."
Петир Бейлиш - Игра престолов
 

BiboДата: Воскресенье, 13 Апреля 2014, 22:17:40 | Сообщение # 17
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Тогда да, подходит вариант kapa6acvlk-а. Использовать параллельные массивы.
Один массив - здания.
Второй массив - сами таймеры.
Третий массив - хранитель ID каждого запущенного таймера, необходимый, чтобы узнать какой именно таймер истек и с каким зданием его ассоциировать.
 

NerobrineДата: Воскресенье, 13 Апреля 2014, 22:32:43 | Сообщение # 18
7 уровень
Группа: Проверенные
Сообщений: 336
Награды: 0
Репутация: 102
Блокировки:
Bibo, и каким образом все это соединять?

"Хаос — не пропасть. Хаос — это лестница. Многие пытались взобраться по ней, но оступились и уже не пытались вновь — падение ломало их. У других был шанс взойти наверх, но они отказывались, продолжая цепляться за государство, за богов или за любовь. Всё это иллюзии. Реальна лишь лестница, и важен лишь подъем наверх."
Петир Бейлиш - Игра престолов
 

BiboДата: Понедельник, 14 Апреля 2014, 12:23:26 | Сообщение # 19
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Цитата Nerobrine ()
Bibo, и каким образом все это соединять?

Я не смог придумать внятного объяснения, посему вот пример с комментариями. Для наглядности разделил триггер Use spell на 3 триггера Use spell, New timer и Restart timer.


Сообщение отредактировал Bibo - Понедельник, 14 Апреля 2014, 12:31:08
 

SirNikolasДата: Понедельник, 14 Апреля 2014, 15:55:17 | Сообщение # 20
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата Bibo ()
Третий массив - хранитель ID каждого запущенного таймера, необходимый, чтобы узнать какой именно таймер истек и с каким зданием его ассоциировать.
Можно просто сравнивать истекший таймер с таймерами во втором массиве.


 

BiboДата: Понедельник, 14 Апреля 2014, 16:26:24 | Сообщение # 21
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Цитата SirNikolas ()
Можно просто сравнивать истекший таймер с таймерами во втором массиве.

К сожалению нет, GUI не позволяет сравнивать таймеры, вот и приходится изгаляться целыми. Да что уж там, он даже не позволяет в функцию Get Handle Id передавать переменную, только посредников, таких как Last Created Unit, Last Started Timer и функции из разряда Triggering Unit, Expired Timer и т.д.
Конечно можно упростить процесс CS вставкой, но в данном контексте мы ведь говорим только о GUI.


Сообщение отредактировал Bibo - Понедельник, 14 Апреля 2014, 16:47:31
 

NerobrineДата: Понедельник, 14 Апреля 2014, 18:11:55 | Сообщение # 22
7 уровень
Группа: Проверенные
Сообщений: 336
Награды: 0
Репутация: 102
Блокировки:
Bibo, спасибо большое, сейчас все подставлю

"Хаос — не пропасть. Хаос — это лестница. Многие пытались взобраться по ней, но оступились и уже не пытались вновь — падение ломало их. У других был шанс взойти наверх, но они отказывались, продолжая цепляться за государство, за богов или за любовь. Всё это иллюзии. Реальна лишь лестница, и важен лишь подъем наверх."
Петир Бейлиш - Игра престолов


Сообщение отредактировал Nerobrine - Понедельник, 14 Апреля 2014, 18:44:31
 

BiboДата: Понедельник, 14 Апреля 2014, 18:44:22 | Сообщение # 23
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Не очень понятный вопрос.
Сам по себе триггер, без события, ничего делать не будет.
Мы можем добавить триггеру событие из другого триггера. Тогда триггер начент реагировать на это, добавленное, событие. Так было сделано в триггере New timer.
Или мы можем запустить действие триггера принудительно (как это сделано в триггере Use spell), в таком случае, эти действия будут продолжением того триггера, из которого они были запущены.
 

NerobrineДата: Понедельник, 14 Апреля 2014, 19:12:25 | Сообщение # 24
7 уровень
Группа: Проверенные
Сообщений: 336
Награды: 0
Репутация: 102
Блокировки:
Bibo, да я тупанул просто, думал успею сменить, пока ты не увидел. Я не заметил, что там были триггеры на включение остальных не учитывая условия и события.

Добавлено (14 Апреля 2014, 19:12:25)
---------------------------------------------
Bibo, Заменил значения, но походу я где-то ошибся, возможно проблема в неправильном использовании локалок, по сути он должен выдавать значение 1 связанному с ним юнитом ровно на 1 секунду, значение Time настраивается игроком.

http://rghost.ru/54121142


"Хаос — не пропасть. Хаос — это лестница. Многие пытались взобраться по ней, но оступились и уже не пытались вновь — падение ломало их. У других был шанс взойти наверх, но они отказывались, продолжая цепляться за государство, за богов или за любовь. Всё это иллюзии. Реальна лишь лестница, и важен лишь подъем наверх."
Петир Бейлиш - Игра престолов
 

BiboДата: Понедельник, 14 Апреля 2014, 19:20:28 | Сообщение # 25
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Цитата
404 this page is not found
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Отслеживание маны в любой момент времени для любого здания
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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