Page 1 of 2
отбегалка )))
Posted: 28.05.2011 22:42
by Tiger89
как реализовать скрипт чтобы отбегал от цели допустим клеток на 5 и стрелял из лука, причем нужна траектория такая чтобы можно было кастовать и стрелять из лука, задача очень сложная на мой взгляд
Posted: 30.05.2011 11:24
by Venom
Для начала, ты должен для себя определить, куда ты хочешь отбежать ?
Posted: 30.05.2011 12:23
by MuDaCk
Venom wrote:Для начала, ты должен для себя определить, куда ты хочешь отбежать ?
Массовые эмиграции)))))

Posted: 30.05.2011 13:29
by Fenix
Задача действительно очень сложная. В этом случае впору искуственный интелект писать, что бы определял в каких направлениях тактически правильно отступать. Проверка возможности выстрела в простейшем случае может решаться по определению тайлов, по которым должна лететь стрела, а затем проверкой каждого из тайлов на наличие каких-либо препятствий.
Posted: 30.05.2011 16:17
by Vizit0r
я уже в асе писал, что на сфере проверка LOS очень простая - всего лишь проверка на дальность и на Z.
это не проверки на ПОЛе и РанУО, где функции по определению LOS занимают страниц по 5-7, без ящика водки не разобраться
Posted: 01.06.2011 17:35
by Tiger89
Venom wrote:Для начала, ты должен для себя определить, куда ты хочешь отбежать ?
В любом направлении на n количество тайлов. Мне думается, надо написать проверку которая нашла бы точку в пяти клетках от цели из которой возможно стрелять, а потом из возможных вариантов выбрать ближний, но это слишком сложно думаю у вас есть идея проще.
Дело будет в лесу среди деревьев, на всякий говорю.
Posted: 01.06.2011 17:42
by Tiger89
И вот, ещё каким образом будете проводить проверку на препятствие?
Posted: 01.06.2011 18:36
by Scripts Writer
Tiger89 wrote:Venom wrote:Для начала, ты должен для себя определить, куда ты хочешь отбежать ?
В любом направлении на n количество тайлов. Мне думается, надо написать проверку которая нашла бы точку в пяти клетках от цели из которой возможно стрелять, а потом из возможных вариантов выбрать ближний, но это слишком сложно думаю у вас есть идея проще.
Дело будет в лесу среди деревьев, на всякий говорю.
Направление бега надо принимать:
1. По направлению взгляда цели, если она тебя преследует
2. В сторону, противоположную взгляду цели, если она стоит мирно
Это наверно очевидно.
Если задача состоит исключительно из поиска без каких-либо действий движения/атаки, исходя из которых можно было бы делать выводы о проходимости/видимости, то не знаю как это можно сделать.
Posted: 01.06.2011 19:01
by Vizit0r
я бы не взялся писать хорошую, правильную отбегалку, ну его нафиг

Posted: 01.06.2011 22:59
by Tiger89
Scripts Writer wrote:Tiger89 wrote:Venom wrote:Для начала, ты должен для себя определить, куда ты хочешь отбежать ?
В любом направлении на n количество тайлов. Мне думается, надо написать проверку которая нашла бы точку в пяти клетках от цели из которой возможно стрелять, а потом из возможных вариантов выбрать ближний, но это слишком сложно думаю у вас есть идея проще.
Дело будет в лесу среди деревьев, на всякий говорю.
Направление бега надо принимать:
1. По направлению взгляда цели, если она тебя преследует
2. В сторону, противоположную взгляду цели, если она стоит мирно
Это наверно очевидно.
Если задача состоит исключительно из поиска без каких-либо действий движения/атаки, исходя из которых можно было бы делать выводы о проходимости/видимости, то не знаю как это можно сделать.
Да нет, в данном случае цель слишком "вялая" для такой штуки, передвигается очень медленно, так что не надо учитывать это.
Просто надо отойти в любую сторону от цели на n количество тайлов, думаю 5 тайлов будет самый раз.
Posted: 01.06.2011 23:00
by Tiger89
Vizit0r wrote:я бы не взялся писать хорошую, правильную отбегалку, ну его нафиг

А ты напиши хоть какую, думаю для моей цели подойдет.
Posted: 01.06.2011 23:01
by Vizit0r
мысли для "хоть какой" тебе уже озвучили выше, действуй.
Posted: 01.06.2011 23:11
by Tiger89
Vizit0r wrote:мысли для "хоть какой" тебе уже озвучили выше, действуй.
Я не знаю каким образом проверять тайл на наличие препятсвий
Posted: 01.06.2011 23:22
by Vizit0r
проходимость точки относительно исходной (соседней):
1) есть слой с Z, отличающейся от исходной не больше чем на 16, который проходим - нет флагов Impassible и Wall, зато возможно есть флаг Surface или Bridge.
2) любые другие слои, которые запрещены для прохода - отличаются от проходимого слоя по координате Z больше чем на 16.
в некоторых эмуляторах вместо 16 стоит 18, но это несущественно - ведь все в клиенте заточено под 20

на вопросы типа "как определить слой" или "как опредилть его флаги" не отвечаю, все уже давно описано.
P.S. Зачем я то все пишу? ведь есть функция IsWorldCellPassable
Posted: 02.06.2011 10:03
by Tiger89