Феникс стоит написать тогда не просто
"01.07.2022 - начинается прием работ от участников"
а
"01.07.2022 - объявляется тема и начинается прием работ от участников"
quq_CCCP все верно разъяснил.
По сути вот пример, где ты с вероятностью 33% заменишь на Дренорского Бугая и с 33% на колдуна (34% останется просто бугай). В твоем случае может остаться только половина триггера, где с вероятностью 50% заменишь мужскую версию на женскую.
Так-же прикрепил карту эту с примером рабочим (на версии 1.26а).
Тут лучше делай не через область, которую ставишь в редакторе, а просто через координаты и расстояния. Например если отталкиваешь юнитов от героя - то по сути твоя область это круг, а значит проще всего в определенном радиусе отталкивать противников от героя. Ну и механику проще всего делать через проверки каждые 0.1 сек к примеру чтобы оттолкнуть кого-то. Тип если в радиусе кто-то есть то отталкиваешь.
Аналогично и квадратные области. Тут можно самому рассчитать ее пределы, тупо работая с координатами. Например квадрат. От него будет смещение вверх вниз вправо и влево по 100 единиц к примеру, и если у кого-то будет такое смещение и ниже, то его надо оттолкнуть.
повторюсь, лучше заранее сделать массив звуков и их использовать, не удалять, просто останавливать
В плане оптимизации для варика согласен)
rsfghd тогда думаю этот вариант будет более оптимизированным:
Итоговое решение
Продолжение прошлых наработок
Добавляем массив юнитов, где будут храниться вертолеты. По нему и определяем, что звук свободен. А в массив со звуками добавляем новые только тогда, когда их становится не хватать.
В итоге при смерти юнита, удаляем его из массива юнитов, а в массиве звуков просто останавливаем звук с тем-же индексом. При создании вертолета, он добавляется в массив юнитов где есть место, а звук прикрепляется к новому юниту и запускается (и только при надобности создается).
Если не удалять, то по этой системе их будет накапливаться бесконечное кол-во, что будет забивать память. А если использовать звук снова на новом юните, то надо как-то идентифицировать, что звук свободен, а если звуков не хватает, то создать еще. Это все то-же усложнит систему. Учитывая что заранее я не знаю, сколько звуков может пригодится для карты. Тут-же все динамически будет создаваться и удаляться в зависимости от кол-ва юнитов.
Вот немного доделал систему, так звук будет удалятся после уничтожения юнита.
Ответ
Начало создания системы описано тут
i - просто целочисленная переменная для цикла с перебором.
Sounds - массив звуков, где и храним до уничтожения.
Смысл в том, что при создании звука, сначала находим свободное место в массиве, сохраняем туда звук а номер этого места сохраняем в кастомное значение юнита (если не желаете его использовать, кастомное значение, тогда придется параллельно массив создать с юнитами, где и сохраним этого юнита, при этом номер в обоих массивах должен быть одинаковым).
Далее останавливаем цикл и при смерти юнита уничтожаем звук и обнуляем переменную (освобождаем место для следующего звука).
Итак, я это делал, звуки еще та проблема в варике, с ними нужно научиться правильно работать (а кто нам это объяснит? Никто. Сам).
Короче вот ответ для тебя
Итак импортируем звук .wav и создаем в редакторе звука переменную, указав наш файл "использовать как звук". Формат должен быть как на скрине:
Далее в триггерах создаем из этого звука локальную переменную sound, ее прикрепляем к нужному юниту и воспроизводим. Усе.
Вот пример, где я сделал, чтобы звук давался каждому вертолету, который появится на карте:
А вот код:
local sound s=CreateSoundFromLabel("EngineLoop.wav",true,true,false,500,1000)
call AttachSoundToUnitBJ( s, GetTriggerUnit() )
call StartSound(s)
(Если что-то не понятно из кода, пиши, объясню)
Кстати, вот карта-пример для теста где это реализовано.
Правда в таком подходе есть проблема, что звук повторяется. То есть даже после смерти юнита он останется. Для этого можно создать систему, где ты сохраняешь юнита и его звук отдельно в переменных, и когда юнит умирает - удаляешь его звук.
По поводу создания игр по блок схемам - ничего в этом плохого нет, просто более ограничен. Удачной разработки :) (Конечному пользователю глубоко плевать, как делалась игра и что за Божественные ручки были у программиста. Главное игровой опыт, результат, что получился. Мое имхо)
ImNoobTarenas:
Спасибо, но здесь удача не поможет, здесь только навыки работы с разными областями в редакторе, и не только в нем)
Главное делать и делать. Тут помогут только твои амбиции, больше вдохновения и времени, а умение со временем приходит, особенно если гуглить и экспериментировать :)
» WarCraft 3 / Решения проблемы с Картой
Ред. konvan5
» WarCraft 3 / Не меняется рельеф
» WarCraft 3 / Не меняется рельеф
» БЛОГ ПОМЕХИ / Ангелы 2.0
Ред. konvan5
» XGM Конкурсы / Конкурс набора иконок 2022
"01.07.2022 - начинается прием работ от участников"
а
"01.07.2022 - объявляется тема и начинается прием работ от участников"
Ред. konvan5
» WarCraft 3 / Как сделать спавн рандомного бугая?
По сути вот пример, где ты с вероятностью 33% заменишь на Дренорского Бугая и с 33% на колдуна (34% останется просто бугай). В твоем случае может остаться только половина триггера, где с вероятностью 50% заменишь мужскую версию на женскую.
» WarCraft 3 / Пират с крюком и бухлом
» Fantasy Pirates / Вадим 2kxaoc играет в Fantasy Pirates #5
» Fantasy Pirates / Вадим 2kxaoc играет в Fantasy Pirates #5
» WarCraft 3 / Пики точёные
» WarCraft 3 / Frostcraft Reforged
» WarCraft 3 / Как активировать триггер, при выкидании предмета в область?
» WarCraft 3 / Улучшение
Ред. konvan5
» WarCraft 3 / Улучшение
» WarCraft 3 / Dash эффект
» WarCraft 3 / Как прикрепить область к юниту?
Аналогично и квадратные области. Тут можно самому рассчитать ее пределы, тупо работая с координатами. Например квадрат. От него будет смещение вверх вниз вправо и влево по 100 единиц к примеру, и если у кого-то будет такое смещение и ниже, то его надо оттолкнуть.
» WarCraft 3 / Постоянный звук лопостей вертолёта
Добавляем массив юнитов, где будут храниться вертолеты. По нему и определяем, что звук свободен. А в массив со звуками добавляем новые только тогда, когда их становится не хватать.
В итоге при смерти юнита, удаляем его из массива юнитов, а в массиве звуков просто останавливаем звук с тем-же индексом. При создании вертолета, он добавляется в массив юнитов где есть место, а звук прикрепляется к новому юниту и запускается (и только при надобности создается).
» WarCraft 3 / Постоянный звук лопостей вертолёта
Ред. konvan5
» WarCraft 3 / Постоянный звук лопостей вертолёта
i - просто целочисленная переменная для цикла с перебором.
Sounds - массив звуков, где и храним до уничтожения.
Смысл в том, что при создании звука, сначала находим свободное место в массиве, сохраняем туда звук а номер этого места сохраняем в кастомное значение юнита (если не желаете его использовать, кастомное значение, тогда придется параллельно массив создать с юнитами, где и сохраним этого юнита, при этом номер в обоих массивах должен быть одинаковым).
Далее останавливаем цикл и при смерти юнита уничтожаем звук и обнуляем переменную (освобождаем место для следующего звука).
Ред. konvan5
» WarCraft 3 / Постоянный звук лопостей вертолёта
Вот пример, где я сделал, чтобы звук давался каждому вертолету, который появится на карте:
» Война Готики / Война Готики: Опрос
Тогда тут уже влияет, что к сердцу ближе :)
» Война Готики / Война Готики: Опрос
задол*аешьяустанешь это все делать.» Война Готики / Война Готики
» Zombie March / Unity, Playmaker и Марш Зомби среди развалин
(Конечному пользователю глубоко плевать, как делалась игра и что за Божественные ручки были у программиста. Главное игровой опыт, результат, что получился. Мое имхо)
Ред. konvan5
» Война Готики / Война Готики