Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7
отбегалка )))
отбегалка )))
как реализовать скрипт чтобы отбегал от цели допустим клеток на 5 и стрелял из лука, причем нужна траектория такая чтобы можно было кастовать и стрелять из лука, задача очень сложная на мой взгляд
Задача действительно очень сложная. В этом случае впору искуственный интелект писать, что бы определял в каких направлениях тактически правильно отступать. Проверка возможности выстрела в простейшем случае может решаться по определению тайлов, по которым должна лететь стрела, а затем проверкой каждого из тайлов на наличие каких-либо препятствий.
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
я уже в асе писал, что на сфере проверка LOS очень простая - всего лишь проверка на дальность и на Z.
это не проверки на ПОЛе и РанУО, где функции по определению LOS занимают страниц по 5-7, без ящика водки не разобраться
это не проверки на ПОЛе и РанУО, где функции по определению LOS занимают страниц по 5-7, без ящика водки не разобраться
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
В любом направлении на n количество тайлов. Мне думается, надо написать проверку которая нашла бы точку в пяти клетках от цели из которой возможно стрелять, а потом из возможных вариантов выбрать ближний, но это слишком сложно думаю у вас есть идея проще.Venom wrote:Для начала, ты должен для себя определить, куда ты хочешь отбежать ?
Дело будет в лесу среди деревьев, на всякий говорю.
-
- Novice
- Posts: 130
- Joined: 06.05.2008 18:03
Направление бега надо принимать:Tiger89 wrote:В любом направлении на n количество тайлов. Мне думается, надо написать проверку которая нашла бы точку в пяти клетках от цели из которой возможно стрелять, а потом из возможных вариантов выбрать ближний, но это слишком сложно думаю у вас есть идея проще.Venom wrote:Для начала, ты должен для себя определить, куда ты хочешь отбежать ?
Дело будет в лесу среди деревьев, на всякий говорю.
1. По направлению взгляда цели, если она тебя преследует
2. В сторону, противоположную взгляду цели, если она стоит мирно
Это наверно очевидно.
Если задача состоит исключительно из поиска без каких-либо действий движения/атаки, исходя из которых можно было бы делать выводы о проходимости/видимости, то не знаю как это можно сделать.
Проще научить человека ловить рыбу, чем постоянно ею его кормить. (с) Destruction
Да нет, в данном случае цель слишком "вялая" для такой штуки, передвигается очень медленно, так что не надо учитывать это.Scripts Writer wrote:Направление бега надо принимать:Tiger89 wrote:В любом направлении на n количество тайлов. Мне думается, надо написать проверку которая нашла бы точку в пяти клетках от цели из которой возможно стрелять, а потом из возможных вариантов выбрать ближний, но это слишком сложно думаю у вас есть идея проще.Venom wrote:Для начала, ты должен для себя определить, куда ты хочешь отбежать ?
Дело будет в лесу среди деревьев, на всякий говорю.
1. По направлению взгляда цели, если она тебя преследует
2. В сторону, противоположную взгляду цели, если она стоит мирно
Это наверно очевидно.
Если задача состоит исключительно из поиска без каких-либо действий движения/атаки, исходя из которых можно было бы делать выводы о проходимости/видимости, то не знаю как это можно сделать.
Просто надо отойти в любую сторону от цели на n количество тайлов, думаю 5 тайлов будет самый раз.
проходимость точки относительно исходной (соседней):
1) есть слой с Z, отличающейся от исходной не больше чем на 16, который проходим - нет флагов Impassible и Wall, зато возможно есть флаг Surface или Bridge.
2) любые другие слои, которые запрещены для прохода - отличаются от проходимого слоя по координате Z больше чем на 16.
в некоторых эмуляторах вместо 16 стоит 18, но это несущественно - ведь все в клиенте заточено под 20
на вопросы типа "как определить слой" или "как опредилть его флаги" не отвечаю, все уже давно описано.
P.S. Зачем я то все пишу? ведь есть функция IsWorldCellPassable
1) есть слой с Z, отличающейся от исходной не больше чем на 16, который проходим - нет флагов Impassible и Wall, зато возможно есть флаг Surface или Bridge.
2) любые другие слои, которые запрещены для прохода - отличаются от проходимого слоя по координате Z больше чем на 16.
в некоторых эмуляторах вместо 16 стоит 18, но это несущественно - ведь все в клиенте заточено под 20
на вопросы типа "как определить слой" или "как опредилть его флаги" не отвечаю, все уже давно описано.
P.S. Зачем я то все пишу? ведь есть функция IsWorldCellPassable
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Если кому интересно http://stealth.od.ua/forum/viewtopic.ph ... llpassable