GetPathArray3D bug?
Posted: 16.08.2015 5:48
Всем привет.
Заметил следующие поведение функции GetPathArray3D.
Когда только подключился к серверу и взываешь эту функцию, то она отрабатывает быстро. Но если немного побегать по миру, густо населенному домами, то эта функция начинает отрабатывать все дольше и дольше.
Как пример использую тестовый скрипт, вызывая GetPathArray3D для вычисления пути в пределах 8 тайлов, на ровной поверхности. Если в начале она максимум занимает 15мс, то потом (побегав по миру) она начинает увеличиваться до бесконечности (все параметры функции одинаковы, скрипт вызывает только GetPathArray3D и выводит затраченное время)
Насколько я понял, пока бегаешь по миру, stealth кэширует дома, а эта функция походу проверяет весь этот кэш, а не область в пределах маршрута.
Пока нашел единственный вариант обойти эту проблему, отключится от сервера и подключится заново, но это крайняя мера.
Помогите кто знает, есть ли решение этой проблемы? Может можно как то обнулять все параметры мира без переподключения или что-то подобное?
Для измерения времени использовал Timer
tmDelay := Timer;
GetPathArray3D
tmDelay:= Timer - tmDelay;
Заметил следующие поведение функции GetPathArray3D.
Когда только подключился к серверу и взываешь эту функцию, то она отрабатывает быстро. Но если немного побегать по миру, густо населенному домами, то эта функция начинает отрабатывать все дольше и дольше.
Как пример использую тестовый скрипт, вызывая GetPathArray3D для вычисления пути в пределах 8 тайлов, на ровной поверхности. Если в начале она максимум занимает 15мс, то потом (побегав по миру) она начинает увеличиваться до бесконечности (все параметры функции одинаковы, скрипт вызывает только GetPathArray3D и выводит затраченное время)
Насколько я понял, пока бегаешь по миру, stealth кэширует дома, а эта функция походу проверяет весь этот кэш, а не область в пределах маршрута.
Пока нашел единственный вариант обойти эту проблему, отключится от сервера и подключится заново, но это крайняя мера.
Помогите кто знает, есть ли решение этой проблемы? Может можно как то обнулять все параметры мира без переподключения или что-то подобное?
Для измерения времени использовал Timer
tmDelay := Timer;
GetPathArray3D
tmDelay:= Timer - tmDelay;