Вот сейчас мини-карта от ХВМ отмечает местоположение последнего засвета противника - и даже Картошка поняла, что бороться с этим модом - бесполезно, уж больно он удобный и ввела его в клиент.
Я хочу предложить немного усовершенствовать работу этого мода. Ведь когда на миникарте светится большое количество танков, уследить за всеми и запомнить, просто невозможно.
Что конкретно я хочу предложить:
Если очень кратко, то отмечать на миникарте не только, пропавших из засвета противников, и Но и их направление движения в момент когда они из этого засвета пропали. Особенно такая модификация может быть полезна во второй половин боя, ведь вначале боя все разъезды стандартны и по местоположению последнего засвета на карте можно догадаться куда поехал враг, но во второй половине боя предсказать это довольно сложно.
Реализация ( ВНИМАНИЕ СЛОЖНО ДЛЯ ПОНИМАНИЯ И ОПАСНО ДЛЯ МОЗГА!):
Основа работы мода должна заключаться на сопоставлении координат врага на миникарте, при начальном засвете и при его окончании.
зная разницу между координатами можно вычислить какое расстояние проехал враг.
А ещё лучше смотреть с какой скоростью он двигался, ведь враг может и задом проехать достаточно большое расстояние, но это скорее всего будет означать то, что он либо отъезжает после сделанного выстрела, либо просто откатывается назад, чтобы пропасть из засвета, и скорее всего после обратно вернётся на эту позицию.
Так вот, чтоб алгоритмически можно было чётко понять двигался ли враг в каком то направлении или просто временно сдавал назад, нужно знать скорость его движения.
Чтобы эту скорость посчитать достаточно поделить расстояние которое он прошёл на время пока он был в засвете - короче калькуляторы работу мода не осилят))
В идеале было бы записать в память значение скорости всех танков задним ходом, чтобы можно было понять сравнить расстояние которое проехал танк на миникарте с расстояние , которое танк мог проехать задом за это же время и понять, отступал ли танк, чтоб вернуться обратно, или целенаправленно переезжал в другое направление.
Но такая проверка по значением может дорого стоить в плане производительности, поэтому можно просто усреднить значения, просто по прошедшему расстоянию. (Думаю что сопоставить изменившиеся координату танка с пройденном расстоянием, зная размеры миникарты довольно просто, так что расстояние в метрах пройденное танком так же легко можно узнать.)
Как усреднить значение?
Максимальное значение движения скорости задним ходом примем за 25 км/ч, То есть это примерно 7 метров в секунду.
Учитывая, что танк может двигаться назад не прямолинейно а зигзагами, а изменение координаты мы смотрим линейно ( если брать значения каждую секунду, для 10 танков и считать расстояние то это уже любой комп ляжет мне кажется), то можно опустить эту максимальную скорость движения назад задним ходом до 6 м/с. + набор скорости положим - 5 м/с.
ТЕПЕРЬ, когда мы знаем сколько секунд в засвете был танк и максимальную задним ходом в 5 м/с мы сравниваем её с полученную нами скоростью (пройденное расстояние по координатам, деля на время засвета ), если полученная нами скорость больше 5 м/с, то можно сделать вывод что танк двигался в то направление передом, то есть он целенаправленно меня позицию и скорее всего продолжит двигаться в том направлении и как раз для него мы можем указать направление движения на миникарте, каким значком это делать, чтобы миникарту не захламлять это уже не ко мне...
Если скорость получилась меньше 5 м/с то направление не указывается.
Конечно для некоторых танков к примеру Т 95 скорость вперёд явно может составить меньше 5 м/с , но это скорее исключение из правил, и этот танк можно не брать в расчёт, т.к. он скорее всего фланг точно не изменить.
ЗАКЛЮЧЕНИЕ:
Мод сложен в реализации, но по факту, он будет довольно полезен, причём не будет захламлять миникарту, он просто к пропавшему из засвету противнику приставит маленькую стрелочку ну или ещё что-то.
P.S. Написал всё и придумал за 15 минут, в спешке проверил, но могут быть ошибки и косяки, как грамматические, так и логические, так что прошу прощения. Думаю идею я донёс, что и было моей главной целью, более подробно расписывать и проводить какие эксперименты и искать более точные значения я не буду, я же не разработчик. Спс за внимание!!