По истечению таймера, выбирай всех игроков, которые играют
потом, из группы выбранных игроков, выбирай одного, удаляй его из группы
делай все действия для него(ну там, героя его на арену двигай)
выбирай второго
делай для него те же действия
в другом триггере, событие - умирает
условие - умирающий юнит находится в области арены
условие - умирающий юнит = герой
действия - выбрать всех юнитов-героев на арене
двигай их куда надо(ну там, условие, если владелец равно такой, или такой, или такой, то двигать в такую то область, и если такой, или такой, или такой, то в такую)
Сделай глобальный триггер:
Событие - периодическое событие, каждые 1.0 сек
Действия:
Выбрать всех юнитов типа Пехотинец на карте
If / then/ else:
-Если мана выбранного юнита равна макс. мана выбранного юнита.
-Заменить выбранный юнит на Рыцарь, используя старая связь
-Установить ману последний заменённый юнит на 0
Очистить последнюю группу юнитов
~
А тут указывай абсолютно то же самое для всех остальных типов юнитов. Ctrl+C, Ctrl+V.
Если не будет работать условие "мана = макс. мана", просто для каждого юнита прописывай лимитовое значение маны для эволюции, вместо "макс. мана"(ну типа, у пехотинцев мана = 15, у рыцарей мана = 45 и т.д.)
А самим юнитам укажи реген маны на 1 в сек, либо, лучше, в этом же событии, добавляй перед всеми действиями +1 маны выбранным юнитам.
Я бы советовал сделать не по мане, а по убийствам(либо, чтобы мана пополнялась не со временем, а за убийства, типо как полоска опыта), вот так:
Событие - Умирает
Действия:
Установить Custom value убивающего юнита = +1
If / then / else:
-Если custom value убивающего юнита = N
-Если убивающий юнит равно Пехотинец
-Заменить убивающий юнит на Рыцарь
-Установить custom value последний заменённый юнит = 0
Событие - Атакован
Условие - Уровень способности Грабёжь у Атакующий юнит больше или равно 1
Действие - Отнять золото у владелец атакованный юнит -(уровень способности Грабёжь)
Действие - Добавить золото у владелец атакующий юнит +(уровень способности Грабёжь)
Событие - Общее событие отряда - Умирает
Условие - Умирающий юнит равно Герой
Действия:
Ждать (Арифметика:((Конвертировать реальное в целочисленное)уровень (Умирающий юнит)) х N)
Герой - Воскресить (Умирающий юнит)
Приказ "Ждать" работает даже при выключенном триггере, работает даже при многократном единовременном использовании(Например, если тебе нужно сделать так, чтобы, при убийстве юнита, герой получал +1 к силе, и поп рошествию времени, эта единичка отнималась назад, ты спокойно можешь делать так: Умирает, Убивающий юнит = ~(или на способность проверка), установить сила +1, ждать, установить сила -1)
darknessay, смотря какие утечки
массовые утечки точек, юнитов и потоков опасны
ещё работа с мультибоардом на гуи утекает (это на гуи не правится)
ещё утечки групп бывают опасны но тут вариант не создавать каждый раз кучу групп а юзать 1 и ту же
от точек вообще лучше отказаться
координаты намного проще/быстрее
Ну а есть система координат на ГУИ? Мне откровенно лень учить джасс, хоть я и могу понять некоторые отдельные команды.
Если просто изменить разрешенные цели не помогает, то можно попробовать запоминать каждого сожранного дирижаблем юнита, и менять ему владельца, когда способность "взять на борт" начинает применяться, а при завершении или высадке менять назад.
Что за чушь ты тут описал? Просто когда спасатели прилетают, паузи таймер, а при перезапуске игры, запускай его по новой(с тем же ожиданием)
Кстати, идея норм. Можешь скинуть? А то я не удержусь, и стырю её у тебя :D
Триггерно скорость меняй на 0, а потом возвращай, либо стандартную, либо заранее записывай в переменную его скорость, и потом считывай с переменной.
Правда, могут быть баги, если юнит сможет в процессе стояния увеличить свою скорость. В таком случае, попробуй способность предмета, дающую -522 скорости.
А, если после смены скорости, юнит не сможет крутиться, в анимации ему скорость поворота установи(либо, опять же, его стандартную запиши в переменную, а после смены скорости, дай скорость поворота)
Кастом скриптами то я пользуюсь, но меня больше интересует, как не вызывать утечек, чтобы не слишком париться с их устранением.
Не юзать гуи. Не усложняй. Не хочешь утечек - пиши на Джасс. Не хочешь Джасс - пиши с утечками и не парься. Всё равно делать на гуи что-то действительно жрущее ресурсы компа можно только специально. Либо ты специально создаёшь туеву хучу утечек, либо ты пишешь нормальные алгоритмы, а ненормальные переписываешь. Переживать из-за каждого утёкшего байта не стоит.
Да просто, в моём монастыре, об утечках нам рассказывали, как об кошмарных чудищах, крашущих планету, вот я и баюс(
Эта команда убьёт юнита. Этот таймер работает также, как таймер у иллюзий, саммонов.
Обычно, я создаю отдельный триггер, отлавливающий смерть юнитов определенного типа, если мне нужно, чтобы в основном коде не было ожидания, но чтобы дамми проигрывал анимацию смерти перед исчезновением:
Kill dummy./Add exparation timer ~.
~
Dying unit = dummy.
Wait ~ seconds.
Remove dying unit from the game.
Узнай, при каком минимальном количестве здоровья(в процентах) они начинают отступать, и выбирай юнитов с промежуточным процентом здоровья, приказывай им идти в бой.
" ALL.j - автоматическое устранение утечек от использования GUI триггеров
Глючная вещь. Иногда удаляет то, что не нужно удалять.
Все равно, это будет вариант лучше, чем пытаться удалять утечки на ГУИ вручную, потому что для этого нужно знать JASS (для Custom Script команд), а если знаешь JASS, то писать будет проще чисто на нем.
Кастом скриптами то я пользуюсь, но меня больше интересует, как не вызывать утечек, чтобы не слишком париться с их устранением. nvc123:
darknessay, возится с менюшками в гуи может только мазохист либо нуб
но нуб всеравно не сможет убрать утечки так как надо знать джасс функции (RemoveLocation и прочее)
а мазохисты в основном сидят на бдсм сайтах
а все остальные перешли на джасс ибо это быстрее и проще чем тыкать эти гуишные менюшки
по поводу движения
» WarCraft 3 / дуэль подробно
потом, из группы выбранных игроков, выбирай одного, удаляй его из группы
делай все действия для него(ну там, героя его на арену двигай)
выбирай второго
делай для него те же действия
условие - умирающий юнит находится в области арены
условие - умирающий юнит = герой
действия - выбрать всех юнитов-героев на арене
двигай их куда надо(ну там, условие, если владелец равно такой, или такой, или такой, то двигать в такую то область, и если такой, или такой, или такой, то в такую)
Ред. Darknessay
» WarCraft 3 / Автоматический апгрейд юнитов
Событие - периодическое событие, каждые 1.0 сек
Действия:
Выбрать всех юнитов типа Пехотинец на карте
If / then/ else:
-Если мана выбранного юнита равна макс. мана выбранного юнита.
-Заменить выбранный юнит на Рыцарь, используя старая связь
-Установить ману последний заменённый юнит на 0
Очистить последнюю группу юнитов
~
А тут указывай абсолютно то же самое для всех остальных типов юнитов. Ctrl+C, Ctrl+V.
Действия:
Установить Custom value убивающего юнита = +1
If / then / else:
-Если custom value убивающего юнита = N
-Если убивающий юнит равно Пехотинец
-Заменить убивающий юнит на Рыцарь
-Установить custom value последний заменённый юнит = 0
» WarCraft 3 / Способность:Типа Грабёжа
Условие - Уровень способности Грабёжь у Атакующий юнит больше или равно 1
Действие - Отнять золото у владелец атакованный юнит -(уровень способности Грабёжь)
Действие - Добавить золото у владелец атакующий юнит +(уровень способности Грабёжь)
» WarCraft 3 / Поставить респавн героя: Уровень героя умноженное на число.
Условие - Умирающий юнит равно Герой
Действия:
Ждать (Арифметика:((Конвертировать реальное в целочисленное)уровень (Умирающий юнит)) х N)
Герой - Воскресить (Умирающий юнит)
» WarCraft 3 / Не могли бы вы, somebody, написать статью об правильном GUI?
» WarCraft 3 / "Погрузить противника?"
» WarCraft 3 / Zephyr Editor или как сделать углубление.
» WarCraft 3 / Проблемма с таймером
Кстати, идея норм. Можешь скинуть? А то я не удержусь, и стырю её у тебя :D
» WarCraft 3 / Как обездвижить юнита?
Правда, могут быть баги, если юнит сможет в процессе стояния увеличить свою скорость. В таком случае, попробуй способность предмета, дающую -522 скорости.
А, если после смены скорости, юнит не сможет крутиться, в анимации ему скорость поворота установи(либо, опять же, его стандартную запиши в переменную, а после смены скорости, дай скорость поворота)
» WarCraft 3 / Не могли бы вы, somebody, написать статью об правильном GUI?
» WarCraft 3 / Значение команды
Обычно, я создаю отдельный триггер, отлавливающий смерть юнитов определенного типа, если мне нужно, чтобы в основном коде не было ожидания, но чтобы дамми проигрывал анимацию смерти перед исчезновением:
Kill dummy./Add exparation timer ~.
~
Dying unit = dummy.
Wait ~ seconds.
Remove dying unit from the game.
» WarCraft 3 / Глобальные переменные
Попробуй 10.00
» WarCraft 3 / Как отловить простой юнитов?
» WarCraft 3 / Не могли бы вы, somebody, написать статью об правильном GUI?
nvc123: Смысл твоего ответа?
» WarCraft 3 / Нужна модель? - Вам сюда!
» Администрация XGM / Почему ник стал с маленькой буквы?
» WarCraft 3 / Не могли бы вы, somebody, написать статью об правильном GUI?
» Администрация XGM / Почему ник стал с маленькой буквы?
» WarCraft 3 / Заключение
Модель: