Препятствия, которых нет в Map Andreas
#1

Доброго времени суток, друзья! Пожалуй, самое любимое в SA:MP для меня - это NPC, ну и их интеллект, конечно. Так вот используя плагин pathfinder, который использует Map Andreas и алгоритм A-star, NPC худо-бедно ходят, всё дело в неидеальности карты высот, а так же в том, что карта высот, помимо неточностей, не видит динамических препятствий (машина, объект). Пришла такая идея, можно ли как-то обозначить для NPC, что перед ним препятствие, скажем взять аналогично gang zone'ам 4 координаты, 2 по x и 2 по y, чтобы описать квадрат и сделать это так, чтобы NPC понял, что это препятствие, не знаю насколько понятно написал, если что я разъясню, но в целом как-то так=)
Reply
#2

Фейспалм. Вот серьезно, большой смачный фейспалм.
Максимум, что могу посоветовать, это проверять, находятся ли вокруг нпц игроки или машины и на каком расстоянии от него они находятся. Никаких "ганг зон", тут быть не может.
Reply
#3

Quote:
Originally Posted by eakwarp
Посмотреть сообщение
Фейспалм. Вот серьезно, большой смачный фейспалм.
Максимум, что могу посоветовать, это проверять, находятся ли вокруг нпц игроки или машины и на каком расстоянии от него они находятся. Никаких "ганг зон", тут быть не может.
Я не сказал гангзоны, я сказал как ганзоны, под этим я имел ввиду брать 4 точки и делать так, чтобы эти 4 точки образовали препятствие
Reply
#4

Ну сделай постобработку. Либо меняй карту высот эмитируя препятствие.
Reply
#5

Quote:
Originally Posted by Neutralneu
Посмотреть сообщение
Я не сказал гангзоны, я сказал как ганзоны, под этим я имел ввиду брать 4 точки и делать так, чтобы эти 4 точки образовали препятствие
Лолчто?)
Алгоритм гораздо проще, каждый бот ищет ближайшую машину или игрока вблизи от него, проверяется вектор его направления по отношению к ним, если он направляется на нее, проверяется расстояние до нее, если расстояние близкое относительно ее размера - останавливать бота или поворачивать. Очевидно же.
Reply
#6

Quote:
Originally Posted by eakwarp
Посмотреть сообщение
Лолчто?)
Алгоритм гораздо проще, каждый бот ищет ближайшую машину или игрока вблизи от него, проверяется вектор его направления по отношению к ним, если он направляется на нее, проверяется расстояние до нее, если расстояние близкое относительно ее размера - останавливать бота или поворачивать. Очевидно же.
Спасибо, тема закрыта!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)