Долгое время я искал хорошо рабочий респаун крипов с тонкой настройкой самих крипов и ростом их уровня. В инете очень долго висела наработка CRS, но мне она не подходит совсем, причём на больших картах эта система подглючивает и в один прекрасный момент крипы перестают спавниться. Решив недавно делать новую карту для РПГ, снова понадобился этот самый респ.
Делается очень быстро, работает вообще без каких либо глюков и с ростом уровня крипов, который напрямую зависит от вашего героя. К тому же я опишу как не расставлять самому крипов по карте, потому как знаю что дело это муторное на больших РПГ картах.
Ну довольно воды.
Вся соль в том, что все крипы это герои за какого либо игрока (в моём случае 9-тый серый). Во первых герой сам по себе имеет ряд преимуществ, для более тонкой настройки юнита, а во вторых для него есть удобная функция - revive - это и будет сам респ.
Для начала нам нужно создать область где будут спаунится крипы, большую на всю карту или несколько, как угодно.
Триггер на респ крипов:
Событие:
Боевая единица - A unit owner by Игрок 9 (серый) Умирает
Тут всё просто, юнит 9-ого игрока умирает. Можно сделать просто юнит умирает, но я перестраховался.
Условие:
(Owner of (Triggering unit)) равно (==) Игрок 9 (серый)
Тут я указал что любой герой принадлежит 9-му игроку.
Действие:
wait 5.00 seconds
Герой - instantly revive (Triggering unit) at (Random point in Область01 <gen>) Показать revival graphics**
Сначала проходит 5 секунд, можно и больше, а затем юнит респнется в рандомной точке в Области01.
Я включил графику, потому что бывает что респаются рядом с ГГ и это не выглядит глупо))
Всё респ готов. Теперь давайте расставим по карте юнитов:
Событие:
Время - Every 0.01 seconds оf game time
Тут периодическое время.
Условие:
hero01 не равно (=!) 50**
Это у нас Integer Comparsion, hero01 это целочисленная, а 50 это то количество юнитов одного вида, которое вам нужно расставить на карте.
Действие:
Боевая еденица - Create 1 Чувак for Игрок 9 (серый) at (Random point in Область01 <gen>) facing...
Set hero01 = (hero01 + 1)
Тут у нас создаётся 1 юнит для серого игрока в рандомной точке области Область01.
А следом целочисленная hero01 накапливает 50 юнитов, После создания всех юнитов триггер работать не будет, так как в условии у нас указано их максимальное кол-во.
Замечательно, остался последний триггер, который будет подравнивать уровень юнитов к ГГ игроков.
Событие:
Боевая единица - A unit owner by Игрок 9 (серый) Умирает
Условие:
(Owner of (Triggering unit)) равно (==) Игрок 9 (серый)
Действие:
Герой - set (Triggering unit) Hero-level to (Hero-level jf (Killing unit)). Скрыть level-up graphics.
В этом действии мы ставим ваш уровень убитому юниту, и в следующий раз он респнется уже с новым уровнем, можно было бы давать им сразу, но это не совсем подходило мне, мне нужен был плавный переход на следующий уровень у крипов дабы не сбивать баланс. Так на карте можно было найти крипов и 1-ого и 6-ого уровня. Ну а Killing Unit, он же убивающий, для того чтобы уровень крипа был такой-же как у любого из игроков, моя карта на 4 игрока и уровень у всех разный, таким образом основался баланс между всеми игроками.
Под эти триггеры нужно точно отсроить героев (крипов в нашем случае) и скиллы которые даются им с каждым уровнем, но это обычно для РПГ игр. И конечно же не забудьте у героя выставить значение пищи на 0, иначе работать не будет.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
15
9 лет назад
0
Крипы-герои. Вейт. Гуи. Ставлю почку, что эта наработка лучше.
0
15
9 лет назад
0
Делать проверку на то, что умирающий юнит принадлежит Игроку 9, если в событии это уже указано. Зачем?
С вейтом ты много добьешься. Хоть бы через КС после смерти юнита заносил его в локалку и тогда уже воскрешал. На ГУИ вейт может затерять переменные триггера типа triggering unit, и он не зареспится.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.