Преобразование индекса массива в число
Наверное, мой Охотник на демонов уже взвыл от горя.
На этот раз он не может понять, когда же ему нужно очнуться от демонической власти.
Я создаю массив таймеров от 0 до 12 (Ноль не учитываю).
Присваиваю каждому Охотнику значение Custom Value по индексу игрока.
В момент перевплощения создаю таймер с индексом игрока (или продлеваю его).
И... Не могу отследить этот таймер. Вернее сказать - не могу понять, как это реализовать.
Вопроса, в связи с этим, два:
  1. Как бы мне создать событие, которое сработает при любом окончании таймера в указанном массиве?
  2. Как бы мне отследить значение индекса таймера, который закончился?
Заранее спасибо)
P.S. - общая картина такова: существует Многострадальный Охотник на демонов. Время его контроля ограниченно - в течении фиксированного времени его разум затмевает кровь демонов - тогда-то, будучи демоном, его можно контролировать (и подкармливать трупами демонов, дабы увеличить длительность затуманивания разума). Однако может произойти момент, когда таймер дойдёт до нуля и Охотнику вернётся разум.



Просмотров: 366

Hate #1 - 8 месяцев назад 0
Голосов: +0 / -0
в гуи - никак, делайте по триггеру на таймер
Vlod #2 - 8 месяцев назад 0
Голосов: +0 / -0
NulliFLie, сделайте для каждого таймера свой триггер, тогда будете знать, какой из них завершился
PT153 #3 - 8 месяцев назад (отредактировано ) 0
Голосов: +0 / -0
Hate, Vlod, ох и советчики... Зачем плодить 100500 триггеров, насилую редактор, если можно сделать это действиями?
У тебя триггер сработает если хоть один из таймеров завершится.
Действия такие:
Установить переменную ИНДЕКС = 0
Для переменной А от 1 по 12 делать
    Если Завершённый таймер == timer[переменная A]
    То
        Установить переменную ИНДЕКС = переменная А
        Custom Script: "exitwhen true"
    Иначе
        <пусто>
Если ИНДЕКС == 0
То
    Пропустить все дальнейшие действия
Иначе
    <пусто>
<Дальнейшие действия>
exitwhen true писать без кавычек. Проверка на 0 после цикла необходима для того, чтобы дальнейшие действия не были выполнены, если триггер был запущен не событием.
Hate #4 - 8 месяцев назад 0
Голосов: +0 / -0
а теперь найди в гуи действие "завершенный таймер"
PT153 #5 - 8 месяцев назад (отредактировано ) 0
Голосов: +0 / -0
Hate, нашёл.
Другой вопрос, как сравнить таймеры. В UMSWE можно через код прямо в условии, но этого делать не стоит. Тут лучше воспользоваться хешем. И быстрее, чем перебор, и в ГУИ можно. Ну как можно...

Тут без Custom Script никак. А всё из-за неполноценности ГУИ.
Прикрепленные файлы
Hate #6 - 8 месяцев назад (отредактировано ) 2
Голосов: +2 / -0
тогда да
только не break, а exitwhen true
PT153 #7 - 8 месяцев назад 0
Голосов: +0 / -0
только не break, а exitwhen true
Истину глаголишь.
Hate #8 - 8 месяцев назад (отредактировано ) 0
Голосов: +0 / -0
Другой вопрос, как сравнить таймеры
вот об этом и речь. ты никак не можешь сравнить таймеры, поэтому приходится городить такие огороды. почему кстати в гуи это отсутствует это очень хороший вопрос
PT153 #9 - 8 месяцев назад 0
Голосов: +0 / -0
Hate, даже в UMSWE этого нет.
Vlod #10 - 8 месяцев назад 0
Голосов: +0 / -0
Да, такие советчики. Если можно custom script, то проще на jass делать \*/
Ev3nt #11 - 8 месяцев назад (отредактировано ) 1
Голосов: +1 / -0
Зачем столько сложностей, как на счёт локальных переменных и jass?