Коллеги, не могу понять, почему карта (см. приложение) после 10-15 итераций ломается и крестьяне стоят.
В кратце - я заставляю бегать крестьян к самому ближнему кусту звездолиста, но после нескольких кустов они наотрез отказываются продолжать движение дальше.
Следующим этапом будет добавление чуточку рандома и генерация случайных свойств дистабилизирующих или улучшающих выживание крестьян в этом тяжелом мире.

Naadir, мне почему-то кажется, что у тебя проблема в том, что есть цветок 1 и 10 работников. И у тебя получаются записи типа:
цветок 1 - работник 10.
цветок 1 - работник 8.
цветок 1 - работник 7.
В общем, массив не отчищается при удалении предмета с карты. А ещё может быть такое, что функция pick предметов на карте, каждый раз выдает разные id предметам.
Добавил БД-индификтор предметам в первую версию поиска.
Получить ID любого предмета можно стандартной гуи-фцией valueitem. Пока что в раздумьях, как сделать адекватную матрицу, адекватно расширяемую? Или возможно её чем-то заменить?
Можно ли как-то обыграть такую структуру в war3?
За неимением мысли о матрице, сделал пока что генерацию "родства" до 4х поколений. Теперь Вы вполне можете узнать, кто был отцом, дедом и прадедом отдельно взятого юнита. См. приложенный файл. по ссылке.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
16
DemonoiD, протестировал. Есть такое.
По поводу бегания толпой... Не всегда. Если их много, то образуется несколько групп. А в принципе -- так и должно быть, это логичное поведение каких-нибудь, ну скажем, рыбок.
Если ты хочешь, чтобы каждый крестьянин таргетился на куст, до которого сможет убежать, тебе нужно знать скорость юнита, его текущее здоровье и его убыль.
Если [Расстояние/Скорость] меньше или равно [Текущее здоровье/Убыль здоровья], то можно таргетиться на куст. Это один из примеров реализации разбиения отрядов на группы или даже на одиночек.
19
Naadir, только тут не один крестьянин, и их снова затаргетится толпа.
16
При этом твоё кастом вэлью принимает довольно физическое значение: время жизни.
DemonoiD, сейчас проверю.
19
Naadir, главное это решить проблему с циклом. Я не могу продолжать исследование крестьян, когда они просто так встают как вкопанные..
16
Ну... у меня результат чуть лучше, чем у тебя. Прерывания цикла нет. Сейчас допилю норм и выложу сюда.
19
Naadir, отлично. Следующий шаг система приоритетов. Крестьянин делает бросок кубов д100 и в зависимости от генетических шансов либо стоит, либо атакует первого попавшегося, либо бежит за едой.
16
Вот. Здесь крестьяне не тормозят. У меня доходило до 5 минут и 19-28 стабильной популяции. Чтобы они не проходили мимо ближайших предметов, добавил один ретаргет с расстояния в 500.
Тут две версии:
  • В одной крестьяне бегут к ближайшему звездолисту, но могут менять приказ.
  • Во второй крестьяне фиксируют цель-звездолист, до которого они смогут дойти, но могут заретаргетиться на другой звездолист в радиусе 500 от них.
DemonoiD, молодец, круто задумал! Будет интересно посмотреть на реализацию.
Загруженные файлы
19
Naadir, первая у меня почему-то не пашет. Вторая лагает через 5 минут.
16
Ну там не особо эффективный поиск, на самом-то деле. Я сейчас попробую оставить на час одну из них с записью в файл времени и числа крестьян. Посмотрю.
Оставлю первую.
19
Naadir, эм, одна из них, которая прогоняет все через массив - не пашет. Не знаешь в чем дело? По коду так и не сказать. Во второй, двойной цикл поиска предметов, убивающий варкрафт :)
16
На вот такую версию. У меня не лагает. Чуть-чуть оптимизировал.
С массивом у меня всё работает. Редактор версии 1.29. Сейчас попробую на ранней открыть.
У меня всё работает. Проблема на твоей стороне.
1.26а, 1.27 и 1.29 версии варкрафта с моей последней версией работали дольше 5 минут.
Вот ещё более оптимизированный вариант.
Загруженные файлы
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.