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

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

Раздели количество юнитов на ИИ игроков за которых их спавним.
Set MaxNr1 = 100 
// максимальное количество юнитов на одного ИИ //
If 
UnitCountGroup1 <= MaxNr1
then 
Create 1 unit for Player 1 AI
Set UnitCountGroup1 + 1
// не забываем Set UnitGroup1 -1 когда юнита убивают // 
Else
if 
UnitCountGroup1 => MaxNr1
Create 1 unit for Player 2 AI
Set UnitCountGroup2 + 1
Повторяем процесс в зависимости от того сколько тебе нужно.
я описал так на словах , думаю как реализовать ты поймешь , и не забывай удалять утечки
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
27
3 года назад
0
Вряд ли это можно решить, во многих картах такие проблемы, скорее всего просто идёт перерасчёт маршрутов для юнитов каждые 0.01 сек, вот и тормозят при больших количествах

ну.. можно конечно уменьшить кол-во юнитов, сделав их просто сильнее, это поможет
0
28
3 года назад
0
Не надо спамить юнитов пачками. Даже СК2 не видерживает.
3
28
3 года назад
Отредактирован Roy Mustang
3
Раздели количество юнитов на ИИ игроков за которых их спавним.
Set MaxNr1 = 100 
// максимальное количество юнитов на одного ИИ //
If 
UnitCountGroup1 <= MaxNr1
then 
Create 1 unit for Player 1 AI
Set UnitCountGroup1 + 1
// не забываем Set UnitGroup1 -1 когда юнита убивают // 
Else
if 
UnitCountGroup1 => MaxNr1
Create 1 unit for Player 2 AI
Set UnitCountGroup2 + 1
Повторяем процесс в зависимости от того сколько тебе нужно.
я описал так на словах , думаю как реализовать ты поймешь , и не забывай удалять утечки
Принятый ответ
0
28
3 года назад
0
Roy Mustang, вот это верный совет, я в своей карте похожее использую.
1
25
3 года назад
Отредактирован Jack-of-shadow
1
Можно фейкать дальних мобов, и превращать их в реальных, когда они оказываются близко к пехотинцу, через "стадо". youtu.be/ShVFHuc6-AU
Чтобы оставить комментарий, пожалуйста, войдите на сайт.