Сделал триггер смысл которого создавать боссов, которые создается через количество убитых врагов. Босс нужен для того, чтобы сменить один тип врагов на следующий, если босс умер, то мы усиливает врагов(ну меняем их на следующих). Сделал как мог и попытался не допустить одной ошибки, чтобы один и тот же босс снова не появился. Можно как то проще это сделать, а то я думаю сделал какую то чертовальню??

Принятый ответ

Больше переменных, меньше условий в триггере.
Три массива, два счетчика, два триггера.
Массив A - типы юнитов для каждой волны.
Массив B - типы минибоссов для каждой волны.
Массив C - кол-во юнитов которое нужно убить на каждой волне.
Счетчик A - кол-во смертей крипов на этой волне.
Счетчик B - текущая волна.
Триггер А
условие триггера - если тип умирающего юнита равен типу для текущей волны (получаем из массива A по номеру волны)
действие - увеличить счетчик A
если счетчик A равен кол-ву крипов для этой волны (получаем из массива C по номеру волны), то выполняем спавн мини-босса
опционально - выключаем этот триггер и включаем триггер B
триггер B опционально - триггер изначально отключен
условие триггера - если тип умирающего юнита равен типу мини-босса для текущей волны (получаем из массива B по номеру волны)
повышаем номер волны, обнуляем кол-во убитых на волне крипов
опционально - выключаем этот триггер и включаем триггер A
Можно реализовать и одним триггером, естественно. Но в раздельной реализации эти триггеры можно включать-выключать по отдельности.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
26
4 года назад
0
Проще? А ты думаешь у тебя тут слишком нагружено что ли?)))
0
3
4 года назад
Отредактирован lizzardfyll
0
Extremator:
Проще? А ты думаешь у тебя тут слишком нагружено что ли?)))
я думаю что тут как то очень не красиво и можно сделать более аккуратнее и умнее с меньшим количеством переменных, просто это будет копироваться еще в этом же триггере 9 раз, так как боссов будет 10 всего и получиться бардак какой-то
2
28
4 года назад
Отредактирован Roy Mustang
2
lizzardfyll:
Можно сделать отдельный триггер где ты будешь всех боссов и юнитов вводить в перемнные (а в этом создавать их уже по переменным которые есть там)
Мол
Set Current Wave = CurrentWave+1
Then Create UnitType[CurrentWave]
и тд.
0
19
4 года назад
0
Согласен с Roy Mustang, лучше сделать массив, а дальше с ним работать.
0
3
4 года назад
0
Roy Mustang:
lizzardfyll:
Можно сделать отдельный триггер где ты будешь всех боссов и юнитов вводить в перемнные (а в этом создавать их уже по переменным которые есть там)
Мол
Set Current Wave = CurrentWave+1
Then Create UnitType[CurrentWave]
и тд.
монстры у меня все в массиве, которые у меня появляются каждые там 30 сек, а этот скрипт только создан для смены уровня волн врагов, подумал может всех боссов добавить в отряд и если любой воин из отряда умирает, то numberWave+1 можно сделать
0
28
4 года назад
0
lizzardfyll:
Ну так при создание босса присвой ему переменную и все дела.
1
26
4 года назад
1
lizzardfyll, конечно, 10 копий этого триггера делать бред. Объясни подробнее, что ты делаешь: тауердефенс, арена, миниигра; будут ли боссы соответствовать крипам, или на протяжении всей игры каждый раз к игроку пойдут случайные крипы и случайные боссы без каких-то взаимосвязей?
А то так объяснил, словно тут все вместе с тобой над картой с самого начала работали)
0
7
4 года назад
Отредактирован Morningstar
0
массив монстров по лвлам
monster[1] = первый тип
monster[2] = второй тип
и в системе спавна просто придумать currentMonsterSpawn
затем при убийстве босса делать currentMonsterSpawn +1
а система спавна будет спавнить типо монстра monster[currentMonsterSpawn]
это самый простой способ, я его раньше реализовывал для кое-какой своей карты
0
3
4 года назад
0
8gabriel8:
lizzardfyll, конечно, 10 копий этого триггера делать бред. Объясни подробнее, что ты делаешь: тауердефенс, арена, миниигра; будут ли боссы соответствовать крипам, или на протяжении всей игры каждый раз к игроку пойдут случайные крипы и случайные боссы без каких-то взаимосвязей?
А то так объяснил, словно тут все вместе с тобой над картой с самого начала работали)
это будет типа карты x-hero, берешь героя и дефаешь свою цель от волн монстров, ну и со временем у меня волны меняются, чтобы было сложнее ну и интереснее естественно, а мини-боссы служат только для того чтобы изменить уровень волн на более высокий, ну а сами боссы появляются от определенного кол. всех убитых противников, не триггеров будет 10 копий, все будет в одном, просто каждое это условие будет скопировано 10 раз, га рис. показано как я реализовал это для первого босса, ну а дальше будет 9 копий, кроме счетчика убийств
0
10
4 года назад
0
lizzardfyll:
8gabriel8:
lizzardfyll, конечно, 10 копий этого триггера делать бред. Объясни подробнее, что ты делаешь: тауердефенс, арена, миниигра; будут ли боссы соответствовать крипам, или на протяжении всей игры каждый раз к игроку пойдут случайные крипы и случайные боссы без каких-то взаимосвязей?
А то так объяснил, словно тут все вместе с тобой над картой с самого начала работали)
это будет типа карты x-hero, берешь героя и дефаешь свою цель от волн монстров, ну и со временем у меня волны меняются, чтобы было сложнее ну и интереснее естественно, а мини-боссы служат только для того чтобы изменить уровень волн на более высокий, ну а сами боссы появляются от определенного кол. всех убитых противников, не триггеров будет 10 копий, все будет в одном, просто каждое это условие будет скопировано 10 раз, га рис. показано как я реализовал это для первого босса, ну а дальше будет 9 копий, кроме счетчика убийств
Проверяешь через цикл тип умирающего юнита, если твой юнит то делаем волну + 1
0
24
4 года назад
Отредактирован prog
0
Больше переменных, меньше условий в триггере.
Три массива, два счетчика, два триггера.
Массив A - типы юнитов для каждой волны.
Массив B - типы минибоссов для каждой волны.
Массив C - кол-во юнитов которое нужно убить на каждой волне.
Счетчик A - кол-во смертей крипов на этой волне.
Счетчик B - текущая волна.
Триггер А
условие триггера - если тип умирающего юнита равен типу для текущей волны (получаем из массива A по номеру волны)
действие - увеличить счетчик A
если счетчик A равен кол-ву крипов для этой волны (получаем из массива C по номеру волны), то выполняем спавн мини-босса
опционально - выключаем этот триггер и включаем триггер B
триггер B опционально - триггер изначально отключен
условие триггера - если тип умирающего юнита равен типу мини-босса для текущей волны (получаем из массива B по номеру волны)
повышаем номер волны, обнуляем кол-во убитых на волне крипов
опционально - выключаем этот триггер и включаем триггер A
Можно реализовать и одним триггером, естественно. Но в раздельной реализации эти триггеры можно включать-выключать по отдельности.
Принятый ответ
0
3
4 года назад
0
Проверяешь через цикл тип умирающего юнита, если твой юнит то делаем волну + 1
чет я совсем забыл что циклы есть:D через него реально можно намного меньше скрипт сделать, разобраться как только все в него грамотно вместить
0
15
4 года назад
0
lizzardfyll, Что мешает тебе открыть тд любую и посмотреть там, они почти все без защиты
0
26
4 года назад
0
Мне понравилась идея с объединением боссов в отряд, типа будет на карте маленькая видимая область, где будут стоять все боссы, случайный из которых будет вступать в бой. Есть разные варианты оформить этих боссов в области, ведь их мощь должна расти вместе с волнами, наверное? Можно дать им Москиты, сделав невыбираемыми, можно сделать их героями и повышать всем уровень с гибелью каждого босса, можно просто менять характеристики, не делая боссов героями, при этом чуть увеличивая размер модели, вариантов придумать можно много, но не в этом суть. Короче, вариант триггеров:

I триггер:
Событие - Инициализация
Условие
Действия - заносишь в массив переменных типы юнитов для волн крипов (creeps[])
заносишь в группу юнитов из области с боссами (bosses)
ставишь видимость для области с боссами

II триггер:
есть целочисленная переменная А, которая является индексом волн крипов
Событие - Каждые 30 секунд
Условие
Действия - создать в точке спавна сколько-то creeps[A]
выбрать всех юнитов (последняя созданная группа юнитов) и приказать каждому двигаться, атакуя всех на пути, в точку назначения

III триггер:
есть целочисленная переменная K, в которую записывается необходимое для спавна босса количество убитых крипов
Событие - Юнит Умирает
Условие
Действие - Если тип убитого юнита равен creeps[A], то K=K+1, иначе Пусто
Если K=10, то мгновенно перемещаем случайного юнита из группы bosses к точке спавна, отдав приказ двигаться, нападая на противников к точке назначения (если крипы должны прекратить спавниться с вызовом босса, то можно тут прибавить к А какое-то значение, что будет больше количества волн, например, если типы крипов заданы с 0 до 9, то прибавляем 10)
Если убитый из группы bosses равно Да, то A=A+1, K=0, убрать убитого из bosses
Если количество юнитов в bosses равно 0, то Wait 2 сек. и Победа
0
3
4 года назад
0
та я уже все сделал, просто я попросил может есть способ уменьшить код с боссами, чтобы он работал так же, только меньше строк было и все, а все остальное у меня было уже готово
0
26
4 года назад
0
Ну так три коротеньких триггера, в которых ничего копировать не надо, только в первом составить список типов юнитов для массива, но он у тебя уже есть. Во втором триггере три действия, третье внутри второго. В третьем триггере 4 конструкции If/Then/Else, в которых действий по твоему усмотрению. У тебя на скрине тоже 4 конструкции If/Then/Else, но их в 10 раз больше тебе надо на всю игру.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.