map_maiker, Я не селен в этом, пример надо хотя бы
Прикрепляю.
Там используется немного костыльная функция, чтобы нормально юнитов в области детектить.
function RectContainsUnitEPS takes rect r, unit u, real max_size returns boolean
local real x = GetUnitX(u)
local real y = GetUnitY(u)
return (GetRectMinX(r)-max_size <= x) and (x <= GetRectMaxX(r)+max_size) and (GetRectMinY(r)-max_size <= y) and (y <= GetRectMaxY(r)+max_size)
endfunction
Ну и хеш-таблица, чтобы отслеживать телепортировавшихся юнитов.
В общем, если что не ясно - всегда можно спросить)
Кто бы мог подумать, что нет возможности узнать в какую область вошёл юнит... Это в чём-то логично, но я почему-то ожидал что такой способ есть...
И ради интереса, на сколько долей процента отличается время поиска юнита в группе от времени поиска юнита в хеш-таблице?
Ептить, снова обходим решение проблемы за километр,событие юнит применил способность и бафф, все, при применении способности стальной вихрь давай триггерно спецификации самоубийцы или древа, и во всех спеллах и аурах в допустимых целях введи не самоубийцы или не древа, тогда даже ауры и ульты не будут работать на него.
Эм, автор вопроса спрашивал не как дать неуязвимость к магии.
Если не путаю, то в настройках стального вихря можно включить/отключить неуязвимость к магии.
А если поставить длительность = 0, то неуязвимость мб останется навсегда. Но это не точно.
Разумеется есть минус, в один момент времени звук можно играть только один раз. Если необходимо проигрывать один и тот же звук несколько раз одновременно, то придется костылить, например создавать 3-4 экземпляра одного звука и играть поочередно.
А создать массив звуков на десяток-другой-сотню экземпляров и выделять при необходимости не прокатит?
Блин, сочините уже что нибудь, такое, чтобы окно команд и интерфейс меню вообще скрыть старый и поставить не графически новую плюшку а вообще, какой хочешь, вплодь до полного удаления его нафиг! Я в вас верю!
Если речь про интерфейс варика, то RenderEdge посмотрите.
вы хотите добавить собственные функции или изменить какие-то комманды в гуи?
Это больше ради общего понимания. Но вообще, я думал над созданием своего диалекта jass, ради интереса. Общий принцип я понимаю (преобразование кода в jass) и, думаю, написать прогу/скрипт для такого смогу (проблема тут именно в продумывании диалекта, не реализации). Но Это будет отдельная прога, а мне интересно как можно включить это в редактор.
Но в данном случае меня интересует общий принцип добавления функционала.
map_maiker, событие нет, но можно случайно создать бесконечный цикл, когда при получении предмета выкидывают какой-то предмет и дают другой, снова активировав событие
На моей практики бесконечные циклы просто выкидывали из варика, без ошибок.
Но вариант интересный, если по ошибке убирают рецепт и вместо готового айтема снова рецепт кидают.
SсRealm:
"Проще" "проверять каждые 0.1 секунд". Серьёзно?
Если есть область, то можно создать триггер с событием "юнит покидает область" и действием "телепортировать юнита в центр области".
Юнит покидает область. А если Юнит умер и воскресился , то по мнению варика он не покинул область! Он должен ножками выйти за ее пределы. В таком случаи он воскресится где нибудь будет стоять там!
Ну это же элементарно, отдельно обрабатывать. Учитывая что речь о боссе - он должен в области стоять, а не ресаться абы где и бежать в область.
map_maiker:
Тогда уже проще :
Проверять каждые 0.10 сек
Условие: Расстояние между позцией босса точкой udg_Targ больше или равна 400
Действие: Приказ Боссу следовать на позицию точки ( или опять же в центр области)
"Проще" "проверять каждые 0.1 секунд". Серьёзно?
Если есть область, то можно создать триггер с событием "юнит покидает область" и действием "телепортировать юнита в центр области".
Скрин:
Если нужны конкретные точки, то просто расставить
невидимых даммиков по местам, записать В глобальные переменные, позиции этих точек под даммиками а потом точки переводить в локалки, использоваь по прямому назначению и как водится обнулять?
Как-то это сложно звучит. Зачем так?
Вообще, можно просто на событии "юнит покидает область" телепортировать юнита обратно. Создать один раз глобалку с центром области и всё.
» WarCraft 3 / Не считывает строку в условие
» WarCraft 3 / Не считывает строку в условие
» WarCraft 3 / Не считывает строку в условие
» WarCraft 3 / Области и перемещение между ними
Там используется немного костыльная функция, чтобы нормально юнитов в области детектить.
» WarCraft 3 / Области и перемещение между ними
» WarCraft 3 / Области и перемещение между ними
» WarCraft 3 / Области и перемещение между ними
» WarCraft 3 / Отследить получение способности
» WarCraft 3 / Отследить получение способности
А если поставить длительность = 0, то неуязвимость мб останется навсегда. Но это не точно.
» WarCraft 3 / Preload Exploit
» WarCraft 3 / Preload Exploit
» WarCraft 3 / Чем заменить CreateNUnitsAtLoc
» WarCraft 3 / Утечка function PlaySound takes string soundName returns nothing
» WarCraft 3 / Чем заменить CreateNUnitsAtLoc
» WarCraft 3 / Модификации редактора
» WarCraft 3 / Модификации редактора
» WarCraft 3 / Модификации редактора
quq_CCCP:
» WarCraft 3 / Модификации редактора
» WarCraft 3 / Можно узнать почему произошёл краш?
Но вариант интересный, если по ошибке убирают рецепт и вместо готового айтема снова рецепт кидают.
» WarCraft 3 / Move triggering unit instantly to position без утечек
» WarCraft 3 / Можно узнать почему произошёл краш?
Ред. N7 Molot
» WarCraft 3 / Move triggering unit instantly to position без утечек
Если есть область, то можно создать триггер с событием "юнит покидает область" и действием "телепортировать юнита в центр области".
Скрин:
» WarCraft 3 / Move triggering unit instantly to position без утечек
» WarCraft 3 / Move triggering unit instantly to position без утечек