Да вроде нормально. Хотя, помнится, в некоторых случаях приходится использовать ForGroup, например если у тебя группа не локальная и не одноразовая, или когда юнита удалять из группы нельзя/не нужно. Если у тебя группа используется в качестве фильтра - нормально. Есть ряд случаев когда подходит только ForGroup.
Если я хорошо помню, то в этом случае нужно найти расстояние от точки-приказа юниту двигаться до проекции этой точки на плоскость камеры. Опишу по этапам:
вектор, который представляет собой ось, проходящая через точки GetCameraEyePositionX,Y,Z и GetCameraЕфкпуеPositionX,Y,Z - это нормаль к плоскости камеры (у меня есть ряд оснований это утверждать)
с помощью этой нормали формируем уравнение плоскости в точке CameraEye
любой приказ (предположительно) в любую точку карты проецируется на ланд под углом атаки камеры
находим проекцию вектора, выходящего из точки приказа на плоскость камеры (этот вектор паралелен вектору камеры)
считаем расстояние от этой проекции до точки приказа(это и есть расстояние от этой точки на плоскости камеры (экране) до точки, в которую был отдан приказ). Если я не ошибаюсь - это должно работать.
Проверяешь не принадлежит ли области точка с небольшим смещением перед юнитом. Если да - двигаешь юнит назад, в направлении противоположном направлению поворота. Зе энд. Реализация уже зависит от навыков.
Ну баги фиксятся. Просто что фиксы занимают больше чем сама система. Да и сама БД - уже большая часть фикса, но составлять для топикстартера базу данных, тестить её и настраивать под его карту - это уж увольте. Мне лень.
Как-то так. Источник урона - это да, это проблема. Думал, что это сработает, но не сработало. Итого ловится только урон и только для какого-то одного типа юнита.
GetEventDamageSource()
Если не предполагается что декорацию будут атаковать с ренжа - можно выбирать юнитов, с нужным приказом в нужном радиусе, при условии что цель приказа - это дерево. Но будут баги если это будут делать несколько юнитов одновременно (нельзя будет определить наверняка кто именно), но можно добавить проверять приказ и расстояние юнита к дереву. А также стартовать таймер (длительность выполнения приказа для именно этого юнита), если цель приказа валидная и юнит находится на расстоянии применения приказа. Но эти эксперименты я оставлю человеку, орущему "невозможно!!!"
M1n3rva, как не прискорбно, в твоём случае орб - лучшее из всего возможного. Иного способа проверить что урон именно с руки попросту нет. Любой орб делается триггерно за 10 минут.
GoblinSpore, мне лень. Тем более всё уже давно описано. Полноценно расписывать тебе решение - то же самое что переписывать сюда статьи (по обрывку из каждой).
соответствующие функции ты найдёшь в редакторе триггеров
Можно проверять проходимость точки и количество разрушаемых объектов в каком-то радиусе вокруг этой точки. Если точка проходимая и объектов нет - создать юнит, иначе - не создавать.
Ред. Raised
» WarCraft 3 / нормально ли такое юзать?
» VetsaN-ов блог / Опрос: создание нового проекта в Warcraft III.
» WarCraft 3 / Поиск пересечения вектора с ландшафтом
Ред. Raised
» WarCraft 3 / Поиск пересечения вектора с ландшафтом
» WarCraft 3 / Оптимизация способности
» WarCraft 3 / Правка ограничений
Ред. Raised
» WarCraft 3 / Блокировка проходимости
Ред. Raised
» WarCraft 3 / Оптимизация способности
» WarCraft 3 / Правка ограничений
Ред. Raised
» WarCraft 3 / Игрок компьютер с враждебными нейтралами
» AzaZzell / Система контроля параметров юнита v1.3
» AzaZzell / Система контроля параметров юнита v1.3
» AzaZzell / Система контроля параметров юнита v1.3
» AzaZzell / Система контроля параметров юнита v1.3
» Бред Pitt'a / WarCraft Multiverse v.4
» WarCraft 3 / "Удар по дереву"
Ред. Raised
» WarCraft 3 / "Удар по дереву"
» WarCraft 3 / "Удар по дереву"
» WarCraft 3 / "Удар по дереву"
Ред. Raised
» WarCraft 3 / Любимый отлов урона)
» WarCraft 3 / Любимый отлов урона)
» WarCraft 3 / Проблема с застрявшими юнитами
» WarCraft 3 / "Удар по дереву"
» WarCraft 3 / Проблема с застрявшими юнитами