Raised, хе, вот и DemonoiD настаивает на таком подходе. Я его понимаю, но вот написать -- нужно время.
Я попробую разобраться с БД и хэш-таблицами.
Но уже, видимо, не сегодня.
Когда получится -- отпишусь.
Вот ты, блин, тему прикольную поднял, а знания алгоритмики мне не хватает. Raised, смотри. Ситуацию максимально подробно обясняю:
Есть юнит1 и юнит2.
Есть предмет1 и предмет2.
Юниты бегут к ближайшему для каждого предмету.
Пусть юнит1 бежит к предмету1, соответственно, предмет1 загружается в массив "затаргеченных". Но тут внезапно на его пути возникает предмет2, и юнит1 перетаргечивается на него, загружая предмет2 в массив "затаргеченных". Я хочу при этом удалить предмет1 из этого массива. Но не понимаю, как. Вероятно, ты подсказываешь мне пути, но я этого не понимаю. Пожалуйста, сформулируй ещё раз твоё решение.
DemonoiD, если миньон меняет цель, т.е. бежал сначала к одному объекту, а затем к другому, то они оба запишутся в матрицу. А подтереть первый нельзя, т.к. не отлавливается смена приказа.
DemonoiD, я пытаюсь писать умных крестьян, подбирающих предметы. Но при смене приказа в такой матрице предмет всё равно останется. Если же удалять их динамично, то будут возникать баги.
Вводить ещё один класс будет сложнее, чем до этого: нужно будет придумать ему фишку, нужно будет обработать его атаки по другим классам, нужно будет обработать его сбор предметов.
DemonoiD, я ввёл новый геном "Агрессивный". Агрессивный рождается при поднятии предмета Работником с шансом 10% Агрессивный рождается при поднятии предмета Агрессивным с шансом 50% Работник рождается при поднятии предмета Агрессивным с шансом 50% Работник рождается при поднятии предмета Работником с шансом 90% Агрессивный рождается при атаке Работником с шансом 20% Работник не рождается при атаке Работником Агрессивный рождается при атаке Агрессивным с шансом 40% Работник рождается при атаке Агрессивным с шансом 60%
Агрессивные восстанавливают здоровье, когда атакуют других и когда поднимают предмет Работники восстанавливают здоровье, когда поднимают предмет
Работник имеет 5% шанс атаковать кого-то и 95% шанс брать предмет Агрессивный имеет 95% шанс атаковать кого-то и 5% шанс брать предмет
На вот такую версию. У меня не лагает. Чуть-чуть оптимизировал.
С массивом у меня всё работает. Редактор версии 1.29. Сейчас попробую на ранней открыть.
У меня всё работает. Проблема на твоей стороне.
1.26а, 1.27 и 1.29 версии варкрафта с моей последней версией работали дольше 5 минут.
Вот ещё более оптимизированный вариант.
Ну там не особо эффективный поиск, на самом-то деле. Я сейчас попробую оставить на час одну из них с записью в файл времени и числа крестьян. Посмотрю.
Оставлю первую.
Вот. Здесь крестьяне не тормозят. У меня доходило до 5 минут и 19-28 стабильной популяции. Чтобы они не проходили мимо ближайших предметов, добавил один ретаргет с расстояния в 500.
Тут две версии:
В одной крестьяне бегут к ближайшему звездолисту, но могут менять приказ.
Во второй крестьяне фиксируют цель-звездолист, до которого они смогут дойти, но могут заретаргетиться на другой звездолист в радиусе 500 от них.
DemonoiD, молодец, круто задумал! Будет интересно посмотреть на реализацию.
» WarCraft 3 / Отлов цели приказа
» WarCraft 3 / Отлов цели приказа
Raised, ща, короче. Если получится -- напишу...
» WarCraft 3 / Отлов цели приказа
Я попробую разобраться с БД и хэш-таблицами.
Но уже, видимо, не сегодня.
Когда получится -- отпишусь.
» WarCraft 3 / Отлов цели приказа
» WarCraft 3 / Отлов цели приказа
Там не только предметы. Там точки и юниты. А писать столько кода... Нет уж. Должно быть простое решение.
Ред. Naadir
» WarCraft 3 / Отлов цели приказа
Raised, смотри. Ситуацию максимально подробно обясняю:
Есть юнит1 и юнит2.
Есть предмет1 и предмет2.
Юниты бегут к ближайшему для каждого предмету.
Пусть юнит1 бежит к предмету1, соответственно, предмет1 загружается в массив "затаргеченных". Но тут внезапно на его пути возникает предмет2, и юнит1 перетаргечивается на него, загружая предмет2 в массив "затаргеченных". Я хочу при этом удалить предмет1 из этого массива. Но не понимаю, как. Вероятно, ты подсказываешь мне пути, но я этого не понимаю. Пожалуйста, сформулируй ещё раз твоё решение.
» WarCraft 3 / Отлов цели приказа
» WarCraft 3 / Отлов цели приказа
» WarCraft 3 / Отлов цели приказа
А что если проверять углы? Углы и приказы. По идее, если на карте нет препятствий, юниты будут идти напрямую к точке приказа.
» WarCraft 3 / Отлов цели приказа
ledoed, можно узнать, какой приказ выполняет юнит.
Ред. Naadir
» WarCraft 3 / Отлов цели приказа
GetOrderTarget работает, чтобы проверить цель текущего приказа?
» WarCraft 3 / Функция Atan2
Ред. Naadir
» WarCraft 3 / Можно ли локально отдать приказ юниту?
» Администрация XGM / Как сделать фон скрина прозрачным?
» Naadir / Пилю иконки
Я ж на XGMе наездами. Месяц побуду -- и опять на полгода афк.
» WarCraft 3 / Ещё немного интересных фишек
Тем не менее, в ней не упоминается забавная фича с рудниками.
» WarCraft 3 / Проблемы с ордером
Ред. Naadir
» WarCraft 3 / Проблемы с ордером
Ред. Naadir
» WarCraft 3 / Проблемы с ордером
Агрессивный рождается при поднятии предмета Работником с шансом 10%
Агрессивный рождается при поднятии предмета Агрессивным с шансом 50%
Работник рождается при поднятии предмета Агрессивным с шансом 50%
Работник рождается при поднятии предмета Работником с шансом 90%
Агрессивный рождается при атаке Работником с шансом 20%
Работник не рождается при атаке Работником
Агрессивный рождается при атаке Агрессивным с шансом 40%
Работник рождается при атаке Агрессивным с шансом 60%
Работники восстанавливают здоровье, когда поднимают предмет
Агрессивный имеет 95% шанс атаковать кого-то и 5% шанс брать предмет
» WarCraft 3 / Проблемы с ордером
Я уходил на тренировку и оставлял ту прогу.
Вот лог. Численность держится на ~30 юнитах.
Ред. Naadir
» WarCraft 3 / Проблемы с ордером
С массивом у меня всё работает. Редактор версии 1.29. Сейчас попробую на ранней открыть.
У меня всё работает. Проблема на твоей стороне.
1.26а, 1.27 и 1.29 версии варкрафта с моей последней версией работали дольше 5 минут.
Вот ещё более оптимизированный вариант.
Ред. Naadir
» WarCraft 3 / Проблемы с ордером
Оставлю первую.
» WarCraft 3 / Проблемы с ордером
Тут две версии:
» WarCraft 3 / Проблемы с ордером
» WarCraft 3 / Проблемы с ордером
DemonoiD, сейчас проверю.