16

» WarCraft 3 / Отлов цели приказа

Raised, хе, вот и DemonoiD настаивает на таком подходе. Я его понимаю, но вот написать -- нужно время.
Я попробую разобраться с БД и хэш-таблицами.
Но уже, видимо, не сегодня.
Когда получится -- отпишусь.
16

» WarCraft 3 / Отлов цели приказа

Raised, ну так. На уровне продвинутого новичка, но зашарить смогу, думаю. Есть дельная мысль?
16

» WarCraft 3 / Отлов цели приказа

DemonoiD, вот то-то и оно.
Там не только предметы. Там точки и юниты. А писать столько кода... Нет уж. Должно быть простое решение.
16

» WarCraft 3 / Отлов цели приказа


Вот ты, блин, тему прикольную поднял, а знания алгоритмики мне не хватает.
Raised, смотри. Ситуацию максимально подробно обясняю:
Есть юнит1 и юнит2.
Есть предмет1 и предмет2.
Юниты бегут к ближайшему для каждого предмету.
Пусть юнит1 бежит к предмету1, соответственно, предмет1 загружается в массив "затаргеченных". Но тут внезапно на его пути возникает предмет2, и юнит1 перетаргечивается на него, загружая предмет2 в массив "затаргеченных". Я хочу при этом удалить предмет1 из этого массива. Но не понимаю, как. Вероятно, ты подсказываешь мне пути, но я этого не понимаю. Пожалуйста, сформулируй ещё раз твоё решение.
16

» WarCraft 3 / Отлов цели приказа

DemonoiD, если миньон меняет цель, т.е. бежал сначала к одному объекту, а затем к другому, то они оба запишутся в матрицу. А подтереть первый нельзя, т.к. не отлавливается смена приказа.
16

» WarCraft 3 / Отлов цели приказа

DemonoiD, я пытаюсь писать умных крестьян, подбирающих предметы. Но при смене приказа в такой матрице предмет всё равно останется. Если же удалять их динамично, то будут возникать баги.
16

» WarCraft 3 / Отлов цели приказа

DemonoiD
А что если проверять углы? Углы и приказы. По идее, если на карте нет препятствий, юниты будут идти напрямую к точке приказа.
16

» WarCraft 3 / Отлов цели приказа

DemonoiD, да, я думал об этом, но это такой костыль.
ledoed, можно узнать, какой приказ выполняет юнит.
16

» WarCraft 3 / Отлов цели приказа

UPD: хотя возможно, я просто накривокодил, и поэтому у меня не работает.
GetOrderTarget работает, чтобы проверить цель текущего приказа?
16

» Naadir / Пилю иконки

Raised, да чёрт его знает. Закончить-то я закончу. Но вот когда это будет.
Я ж на XGMе наездами. Месяц побуду -- и опять на полгода афк.
16

» WarCraft 3 / Ещё немного интересных фишек

DracoL1ch, крутая статья! Жаль,что я не видел её раньше. Она сильно упрощает жизнь.
Тем не менее, в ней не упоминается забавная фича с рудниками.
16

» WarCraft 3 / Проблемы с ордером

В общем, вот конечная версия на данный момент:
Вводить ещё один класс будет сложнее, чем до этого: нужно будет придумать ему фишку, нужно будет обработать его атаки по другим классам, нужно будет обработать его сбор предметов.
Загруженные файлы
16

» WarCraft 3 / Проблемы с ордером

Steal nerves, да это-то понятно. Проблема в том, что здесь айтемов меньше, чем потребителей. Поэтому конкуренция -- норма.
16

» WarCraft 3 / Проблемы с ордером

DemonoiD, я ввёл новый геном "Агрессивный".
Агрессивный рождается при поднятии предмета Работником с шансом 10%
Агрессивный рождается при поднятии предмета Агрессивным с шансом 50%
Работник рождается при поднятии предмета Агрессивным с шансом 50%
Работник рождается при поднятии предмета Работником с шансом 90%
Агрессивный рождается при атаке Работником с шансом 20%
Работник не рождается при атаке Работником
Агрессивный рождается при атаке Агрессивным с шансом 40%
Работник рождается при атаке Агрессивным с шансом 60%
Агрессивные восстанавливают здоровье, когда атакуют других и когда поднимают предмет
Работники восстанавливают здоровье, когда поднимают предмет
Работник имеет 5% шанс атаковать кого-то и 95% шанс брать предмет
Агрессивный имеет 95% шанс атаковать кого-то и 5% шанс брать предмет
Новая версия:
Загруженные файлы
16

» WarCraft 3 / Проблемы с ордером

DemonoiD, я не вводил табличку генома.
Я уходил на тренировку и оставлял ту прогу.
Вот лог. Численность держится на ~30 юнитах.
Загруженные файлы
16

» WarCraft 3 / Проблемы с ордером

На вот такую версию. У меня не лагает. Чуть-чуть оптимизировал.
С массивом у меня всё работает. Редактор версии 1.29. Сейчас попробую на ранней открыть.
У меня всё работает. Проблема на твоей стороне.
1.26а, 1.27 и 1.29 версии варкрафта с моей последней версией работали дольше 5 минут.
Вот ещё более оптимизированный вариант.
Загруженные файлы
16

» WarCraft 3 / Проблемы с ордером

Ну там не особо эффективный поиск, на самом-то деле. Я сейчас попробую оставить на час одну из них с записью в файл времени и числа крестьян. Посмотрю.
Оставлю первую.
16

» WarCraft 3 / Проблемы с ордером

Вот. Здесь крестьяне не тормозят. У меня доходило до 5 минут и 19-28 стабильной популяции. Чтобы они не проходили мимо ближайших предметов, добавил один ретаргет с расстояния в 500.
Тут две версии:
  • В одной крестьяне бегут к ближайшему звездолисту, но могут менять приказ.
  • Во второй крестьяне фиксируют цель-звездолист, до которого они смогут дойти, но могут заретаргетиться на другой звездолист в радиусе 500 от них.
DemonoiD, молодец, круто задумал! Будет интересно посмотреть на реализацию.
Загруженные файлы
16

» WarCraft 3 / Проблемы с ордером

Ну... у меня результат чуть лучше, чем у тебя. Прерывания цикла нет. Сейчас допилю норм и выложу сюда.
16

» WarCraft 3 / Проблемы с ордером

При этом твоё кастом вэлью принимает довольно физическое значение: время жизни.
DemonoiD, сейчас проверю.