Тут лучше делай не через область, которую ставишь в редакторе, а просто через координаты и расстояния. Например если отталкиваешь юнитов от героя - то по сути твоя область это круг, а значит проще всего в определенном радиусе отталкивать противников от героя. Ну и механику проще всего делать через проверки каждые 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:
Спасибо, но здесь удача не поможет, здесь только навыки работы с разными областями в редакторе, и не только в нем)
Главное делать и делать. Тут помогут только твои амбиции, больше вдохновения и времени, а умение со временем приходит, особенно если гуглить и экспериментировать :)
Я до сих пор считаю, что лучше все таки разделять карты на разные версии, и делать приписку ENG, RU, и тд, по мне это самый лучший способ, так же если перевод планируется не на финальную версию, то можно развивать свою карту, в разную сторону, допустим в русской версии ты понял, что карта пошла как-то не как ты хотел, реализуешь это в английской версии, по сути можно для себя разные пути в принципе сделать для одной карты таким способом.
Перевод в любом случае придется делать для 2 версий, а так ты еще и карту будешь делать 2 раза :D
+ так будут русские играть только с русскими и остальные только на инглише. А локализация позволяет в одной игре играть всем, и русским и англоязычным людям с полным пониманием происходящего.
Игроки не разрабы :)
Игроки, сущность ленивая, разбираться не станут и просто скипнут ваш шедевр :)
Раз уж делать локализацию и тратить свое время на это, то для большего охвата ничего не стоит инглиш сделать основным языком а русский локализацией для русских.
И это такой каеф, когда разные игроки с разных стран сидят в твоей карте с английским интерфейсом, а тем временем у русских игроков русский язык и все всё неплохо понимают что делать. Могут прочитать и подсказывать друг-другу.
Bergi
Ну только посмотри на это видео, на эту реакцию, когда и вопросов к карте нету за непонимание происходящего. Когда игроки тупо веселятся и не парятся над текстом :D (при этом язык у чела не инглиш и не русский, да и вряд-ли бы русский понял бы :D )
Хочу и сам попробовать перевести какую-нить карту на английский или на русский, для образца, кидайте свой пример, мб что получится
Ооох, теперь выскажусь я. Берите карту Игру в кальмара и смотрите, как мы там реализовали перевод.
Выскажу несколько моментов, которые хотел бы подчеркнуть:
МнОгА бУкАф
Если основной язык по умолчанию будет будет русский, то и карта у не англоязычных интерфейсов (к примеру китайских, корейских, португальских, испанских французских и тд) будет русским, что ооооочень не круто когда весь мир лучше понимает инглиш нежели наш родной русский. Именно по этой причине по умолчанию язык мы ставим английский. А вот для русских уже локализируем игру, чтобы только у русских игра была русской, а у всех остальных на инглише (извините за столько повторов русский).
По поводу триггерного текста и кода. Обычно одна полная строка попадает в файл спокойно. А вот уже разделение по подстрокам в файл не записывается. Но если мы таки хотим записать этот текст по кускам - то можно использовать функцию Externalized string("текст"), которая насильно запишет кусок вашего текста в файл. Эта функция есть даже в 1.26а варике.
Есть момент или баг, что если по стандарту у вас стоит инглиш и есть локализация на русский, то разрабатывать карту должны с английской версией варика (в рефордже, про 1.26а не знаю). Ибо если у вас в варике указана русская локализация, а вы сохраните карту где основной перевод инглиш и есть русская локализация - то оно заменит основную инглиш на русскую, то есть основной станет русская локализация а инглиш потеряется. Скорее всего это баг рефорджевской версии.
Исходя из 1 пункта, карту желательно разрабатывать изначально на инглише. Но если у вас с ним все очень плохо, то можно делать карту на русском, а в конце, когда можно выпускать карту в свет и весь основной контент готов, копируете .wts файл и делаете его как русская локализация (не забываем делать бекапы), а в файле по умолчанию все переводите. Оооооооочень не советую кидать весь текст разом в гугл переводчик. Лучше по предложению отдельно каждый string_XXXX переводить и по своему скилу стараться замечать, те-же фразы используются под вашими словами или берутся снова другие и править сразу текст. Муторно, зато ошибок будет гораздо меньше, и править меньше, и менее стыдно будет потом показывать другим свою работу. (хотя наша карта сделана тоже не идеально и все равно стыдно местами XD )
Еще подмечу, что так-же можно локализировать картинки и звуки, да вообще любой импорт, как минимум в Рефордже. Просто закинув в папку со соответствующей локализацией.
И да, после ЛЮБОГО изменения в строке (в ро это или в триггерах) строку снова надо локализировать и импортировать локализацию. Очень запарно при создании обновы, но привыкнуть можно. Зато играешь с иностранцами спокойно, даже если у тебя интерфейс русский а у них английский будет :)
Такими прыжками можно загнать противника в непроходимый участок
Как я понимаю, не только противников а и себя тоже? :)
То есть прыгнуть в воду и застрять там. Или прыгнуть на гору между непроходимыми клифами и застрять так (к примеру 10 раз в 1 точке поднять клифы и попытаться прыгнуть на гору такую). По идее в итоговую точку, куда прыгнуть нельзя, стоит отменить скил, типа ошибка, прыгнуть туда нельзя.
А так очень круто, что автор смотрит на комменты и дорабатывает наработку! Очень полезно будет как поучиться решить все вышесказанные проблемы, так и просто заюзать шаблон, как готовый скилл.
Ну саааамый простой вариант, когда юнит поставлен у тебя на карте.
Если умер определенный юнит - то выбрать всех юнитов игрока (владелец (триггерного юнита)) и убить (выбранного юнита).
Она до сих пор обновляется, просто я давно не занимался этим ресурсом, все усилия на Дискорд идут)
Как руки дойдут, обновлю ресурс и прикреплю несколько видео.
Прочитав вашу статью, у человека может сложиться впечатление, что понятие реиграбельности существует только для соло игр. => Где инфа за счет чего реиграбельны ВК3 или CS? Я клоню к тому, что есть еще как минимум такие вещи как "соревновательный момент" и "пользовательский контент".
К сожалению, на сайте не предусмотрена возможность ставить отрицательные оценки, в противном случае я бы могла направить вас сделать именно это.
Человек очень адекватно задал вопрос и не получил ответа. Очень жаль :(
А где комменты?
Автор, спасибо за работу! Очень понравились скрины и примеры. Очень полезно для новичков и не очень в геймдеве.
Ибо есть мелочи, о которых люди не задумываются :)
Ред. 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
» Война Готики / Война Готики
» WarCraft 3 / Локализация карты WC3 для любого патча
+ так будут русские играть только с русскими и остальные только на инглише. А локализация позволяет в одной игре играть всем, и русским и англоязычным людям с полным пониманием происходящего.
Ред. konvan5
» WarCraft 3 / Локализация карты WC3 для любого патча
Игроки, сущность ленивая, разбираться не станут и просто скипнут ваш шедевр :)
Раз уж делать локализацию и тратить свое время на это, то для большего охвата ничего не стоит инглиш сделать основным языком а русский локализацией для русских.
И это такой каеф, когда разные игроки с разных стран сидят в твоей карте с английским интерфейсом, а тем временем у русских игроков русский язык и все всё неплохо понимают что делать. Могут прочитать и подсказывать друг-другу.
Ну только посмотри на это видео, на эту реакцию, когда и вопросов к карте нету за непонимание происходящего. Когда игроки тупо веселятся и не парятся над текстом :D
(при этом язык у чела не инглиш и не русский, да и вряд-ли бы русский понял бы :D )
Ред. konvan5
» WarCraft 3 / Локализация карты WC3 для любого патча
» WarCraft 3 / Прыжок "скилы под ключ"
» WarCraft 3 / Полная гибель игрока.
Если умер определенный юнит - то выбрать всех юнитов игрока (владелец (триггерного юнита)) и убить (выбранного юнита).
» WarCraft 3 / Скиллшот Арена 2.1
» Game Dev / Реиграбельность в игровых проектах
» Game Dev / Реиграбельность в игровых проектах
» Game Dev / UI дизайн и его значение в играх
Автор, спасибо за работу! Очень понравились скрины и примеры. Очень полезно для новичков и не очень в геймдеве.
Ибо есть мелочи, о которых люди не задумываются :)
Ред. konvan5
» Война Готики / Война Готики
» WarCraft 3 / Legion Tower Defence (LTD)
» The Lord of the Rings: Warcraft / The Lord of the Rings: Warcraft
» Fantasy Pirates / Fantasy Pirates Трейлер