26

» WarCraft 3 / Много триггерных абилок

ТС, раз ты описываешь ситуация когда вызываются лаги при открытии "триггера" из-за огромного наслоения if-ов и прочих действий, то тут можно предложить просто немного другой вариант организации всего это уже имеющегося у тебя "завала"...
Я делал так - есть один триггер с событием "приводит способность в действие.
В нём запускаются три-четыре триггера по очереди: "cast ITEMs", "cast HEROs", "cast UNITs".
В первом идут поочерёдные запуски всех отдельных триггеров кастов предметных абилок.
Во втором идут запуски триггеров подписанных как "HERO_NAME cast"
Внутри "HERO_NAME cast" идут 2-5 if-ов, которые проверяют абилки конкретно одного героя
(это чисто для удобства такая группировка)
В третьем идут поочерёдные запуски всех триггеров на абилки не-героев

В итоге имеет всё работает, не смотря на общее нагромождение проверок и экзекутов.
С атакой ровно так же - проверка замаха, чек предметов и инветаре, чек абилок, чек баффов.
26

» WarCraft 3 / Связанные юниты

Можно записывать пары юнитов и при смерти одного из них - убивать его пару.
set UnitsMax = UnitsMax + 1
set UnitsA[UnitsMax] = первый юнит из пары (при этом добавить его в общую группу)
set UnitsB[UnitsMax] = второй юнит из пары (тоже добавить в группу)
Пособытию смерти юнита проверяешь что он находится в группе. Далее ищешь его номер из массива.
set u = юнит который умер
set l = 0 для тела цикла
set n = 0 для результата
loop
set l = l + 1
if u == UnitsA[l] or u == UnitsB[l] then
set n = l
endif
exitwhen l == UnitsMax or n > 0
endloop
Всё, у тебя есть n , по которому можно получить обоих юнитов из ой пары, в которой один умер.
26

» WarCraft 3 / Как отделить деревья от разрушаемого?

есть ли более адекватный способ отсеять деревья от прочих разрушаемых?
Смотря сколько у него всего типов деревьев.
Можно сравнивать ХП, как ты уже и сделал.
Можно сравнивать имена, и/или их части, например последние несколько символов, где будет дописано "(дерево)".
Можно сделать массив типов разрушаемых и сравнивать каждое дерево с этим списком (как предложили выше).
Можно сделать что-то подобное но уже через хэш-таблицу.
Можно тупо через or перечислить все деревья в условии.
Можно написать функцию с деревом в аргументе и любым угодным перебором внутри с возвратом ответа.
26

» WarCraft 3 / Цепь молний

Мне кажется что ты ошибаешься в том что у Рубика молния прыгает быстрее... по крайней мере в WC3, может быть ты сравниваешь его молнию из Доты2 ? Там возможно и правда её ускорили.
Если ты хочешь такое провернуть, то придётся делать всю молнию триггерно.
Т.е. по сути с технической стороны это будет тот же ульт Лича, только летящего снаряда будет задержка и эффект молнии (тут даже больше смахивает на ульт Джаггернаута).
26

» WarCraft 3 / Как отделить деревья от разрушаемого?

Напишите какая функция проверяет "тип/классификацию" у разрушаемых объектов.
26

» WarCraft 3 / Дамми юнит в центре абилки

Ну вообще да, на счёт ауры замедления ты прав. Самое простое в твоём случае это просто юнит с аурой в центре области, на которую применяется "Огненный Столб". Если конечно щамедление должно быть привязано именно к этой области (там где будет урон), а не к самим юнитам, по которым этот урон пройдёт.
Не зависимо от того каким именно образом применяется способнлсть, на область или в указанную точку, ты всегда можешь ссылаться на "ability being cast point" (или что-то типа того, переводится как "точка пнименения способности"), которая выдаст тебе точку применения заклинания, либо центр области применения "Огненного столба" (т.к. технически это одно и тоже, только область каста это когда к точке каста прерисовывается радиус воздействия).
Вот и отлавливаешь событие "юнит приводит способность в действие", проверяешь усвловием какую именно, и после этого создаёшь юнита в позиции куда был применён спелл.
В идеале ещё бы точку это зачистить, а для этого сначала надо её отдельно создать используя переменную, потом сослаться на неё, и в конце удалить.
26

» WarCraft 3 / Перевоплощение с новыми скиллами

Поидеи такой проблемы быть не должно.
Ты пробовал использовать другой тип морфа? (например превращение друидов-медведей)
Как вариант - попробовать выдавать/отнимать "Технику" триггерно.
А у тебя скиллы в разных фомах сильно отличаются друг от друга? Или это просто усиленные/улучшенные версии старых?
26

» WarCraft 3 / Warcraft III: Reforged PTR - 1.34.0

Во дела, патч ещё не вышел, а реф у людей уже сломался
Запрограммированное устаревание патчей.
26

» WarCraft 3 / Какие абилки можно юзать двусторонне?

TechnoViking, событие "юнит получает приказ БЕЗ ЦЕЛИ"
Дальше сравниваешь сам приказ, если подходит - делаешь действия.

Ещё хорошо бы проверить если ли у этого юнита необходимая абилка, иначе онг будет работать на любого юнита, у которого будет аналог этой абилки, т.к. приказ совпадёт.
26

» WarCraft 3 / Использование больше 5 способностей

Единственным вариантом будет уход от стандартной прокачки и созданиечего-то типа "тренера", в котором и будет происходить выбор и прокачка нужных способностей для твоего героя.
Но можно конечно и оставить стандартый, а тренером лишь дополнить необходимое.
26

» WarCraft 3 / Массив таймеров

Скриншот приложи и/или карту пример (можешь на голой карте это повторить и скинуть сюда).

Ясно-понятно))))
26

» WarCraft 3 / Массив таймеров

Размерность у массива таймеров указана?
Мб таймеры не объявлены.
Можно вручную объявить таймеры.
26

» WarCraft 3 / Не работает спелл у предмета

Ну вообще отношение к предмету для абилок является условным, т.к. оно нужно только для сортировки по категориям, на функционал абилки оно не влияет.
Попробуй взять за основу другой предмет, например жезл ветров.
Скорее всего у тебя просто предменят не является "нажимаемым", там надо аыбрать "может быть активирован - да/нет"
26

» WarCraft 3 / Как убрать тени с моделей в World Editor?

На столько я знаю нужно просто использовать другую модель "освещения" в карте.
Были примеры когда модели освещения полностью убивались, либо занулялись, тогда окружение получалось через-чур затемнённым... всё освещение тогда состраивалось за счёт моделей со встроенным источником света, типа факелов.
Поищи что-то на эту тему... ибо сам я не занимался этим никогда, но такое мне попадалось.
26

» WarCraft 3 / Сплэш урон для атаки дальнего боя.

Такой абилки нет.
Ты можешь использовать абилку от огненной сферы, но она наносит фиксированный урон.
Можно настроить базовую атаку юнита так, что б она наносила урон врагам вокруг цели.
Есть так же мультишот, но у него совсем иная природа...
Есть орб-стрелы с уроном по площади, например "сфера небытия" Сфинксов.
Дальше вижу только триггерное исполнение этой задумки, т.е. наносить урон вокруг основной цели по всем подходящим врагам.
26

» WarCraft 3 / Скрыть предметы у героя

В константах есть такой параметр, поищи.
На сколько я помню, он пососедству с пунктом "показывать состояние зданий - да/нет" (это отображений баффов у зданий).
26

» WarCraft 3 / как уничтожить два здание одного типа

Extremator, справедливости ради, здания для условия могут динамически появляться
Да. Верно. Такое может быть.
Но мой опыт подсказывает мне что спрашивается именно то что я описал.
Если же нет, думаю, автор удосужится нас об этом проинформировать.
26

» WarCraft 3 / Как сдвинуть юнита?

Extremator, в 2022 вы все еще 30 раз в секунду двигаете?)
Зависит от поставленных задач
Для плавности движения более чем хаатает 0.03, реже 0.02
В отдельных случаях 0.1, 0.05, 0.01
26

» WarCraft 3 / Как сделать изначальну прокачку для юнитов/зданий

Просто мысли вслух, не принимай как упрёк или неприязнь...ок?
Разница между тем как ты задал вопрос и тем как ты нашёл его решение (написал об этом), всего 7 минут... Судя потому что ты задаёшь много вопросов и находишь сам ответы на них - ты вроде сообразительный. Может тебе стоит отсрочить момент создания вопроса на форуме? (не подумай что я тебе запрещаю спрашивать очевидные вещи, я лишь советую тебе не тратить своё время на лишние движения). Т.к. ответ на него ты вероятнее всего скоро найдёшь сам. А плодить топики типа "есть проблема, но я её уже решил" - такое себе. ИМХО.
26

» WarCraft 3 / как уничтожить два здание одного типа

А не проще отловить событие "юнит умирает", поставить условие " Тип юеита == твоё_здание", и добавить следом ещё два условия:
  • первое здание живое == нет
  • второе здание живое == нет
И дальше нужные действия