Forum in READ ONLY mode! All questions and discussions on Discord official server, invite link: https://discord.gg/VxsGzJ7

отбегалка )))

тут можно задать вопрос по скриптингу
Tiger89
Novice
Novice
Posts: 131
Joined: 28.11.2008 17:32

отбегалка )))

Post by Tiger89 »

как реализовать скрипт чтобы отбегал от цели допустим клеток на 5 и стрелял из лука, причем нужна траектория такая чтобы можно было кастовать и стрелять из лука, задача очень сложная на мой взгляд
Venom
Novice
Novice
Posts: 123
Joined: 25.08.2010 14:00

Post by Venom »

Для начала, ты должен для себя определить, куда ты хочешь отбежать ?
MuDaCk
Apprentice
Apprentice
Posts: 393
Joined: 10.10.2006 0:03
Contact:

Post by MuDaCk »

Venom wrote:Для начала, ты должен для себя определить, куда ты хочешь отбежать ?
Массовые эмиграции))))) :lol:
My name is Игорёшка Image
Пишу скрипты за едуImage
Fenix
Developer
Developer
Posts: 275
Joined: 24.08.2010 7:20
Location: Ставрополь
Contact:

Post by Fenix »

Задача действительно очень сложная. В этом случае впору искуственный интелект писать, что бы определял в каких направлениях тактически правильно отступать. Проверка возможности выстрела в простейшем случае может решаться по определению тайлов, по которым должна лететь стрела, а затем проверкой каждого из тайлов на наличие каких-либо препятствий.
Помните – ничто так не защищает ваши зубы 12 часов днем и 12 часов ночью как уважительное отношение к окружающим.
"Многие из вас знакомы с достоинствами программиста. Их всего три, и разумеется это: лень, нетерпеливость и гордыня"© Larry Wall
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

я уже в асе писал, что на сфере проверка LOS очень простая - всего лишь проверка на дальность и на Z.
это не проверки на ПОЛе и РанУО, где функции по определению LOS занимают страниц по 5-7, без ящика водки не разобраться
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Tiger89
Novice
Novice
Posts: 131
Joined: 28.11.2008 17:32

Post by Tiger89 »

Venom wrote:Для начала, ты должен для себя определить, куда ты хочешь отбежать ?
В любом направлении на n количество тайлов. Мне думается, надо написать проверку которая нашла бы точку в пяти клетках от цели из которой возможно стрелять, а потом из возможных вариантов выбрать ближний, но это слишком сложно думаю у вас есть идея проще.
Дело будет в лесу среди деревьев, на всякий говорю.
Tiger89
Novice
Novice
Posts: 131
Joined: 28.11.2008 17:32

Post by Tiger89 »

И вот, ещё каким образом будете проводить проверку на препятствие?
Scripts Writer
Novice
Novice
Posts: 130
Joined: 06.05.2008 18:03

Post by Scripts Writer »

Tiger89 wrote:
Venom wrote:Для начала, ты должен для себя определить, куда ты хочешь отбежать ?
В любом направлении на n количество тайлов. Мне думается, надо написать проверку которая нашла бы точку в пяти клетках от цели из которой возможно стрелять, а потом из возможных вариантов выбрать ближний, но это слишком сложно думаю у вас есть идея проще.
Дело будет в лесу среди деревьев, на всякий говорю.
Направление бега надо принимать:
1. По направлению взгляда цели, если она тебя преследует
2. В сторону, противоположную взгляду цели, если она стоит мирно
Это наверно очевидно.

Если задача состоит исключительно из поиска без каких-либо действий движения/атаки, исходя из которых можно было бы делать выводы о проходимости/видимости, то не знаю как это можно сделать.
Проще научить человека ловить рыбу, чем постоянно ею его кормить. (с) Destruction
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

я бы не взялся писать хорошую, правильную отбегалку, ну его нафиг :)
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Tiger89
Novice
Novice
Posts: 131
Joined: 28.11.2008 17:32

Post by Tiger89 »

Scripts Writer wrote:
Tiger89 wrote:
Venom wrote:Для начала, ты должен для себя определить, куда ты хочешь отбежать ?
В любом направлении на n количество тайлов. Мне думается, надо написать проверку которая нашла бы точку в пяти клетках от цели из которой возможно стрелять, а потом из возможных вариантов выбрать ближний, но это слишком сложно думаю у вас есть идея проще.
Дело будет в лесу среди деревьев, на всякий говорю.
Направление бега надо принимать:
1. По направлению взгляда цели, если она тебя преследует
2. В сторону, противоположную взгляду цели, если она стоит мирно
Это наверно очевидно.

Если задача состоит исключительно из поиска без каких-либо действий движения/атаки, исходя из которых можно было бы делать выводы о проходимости/видимости, то не знаю как это можно сделать.
Да нет, в данном случае цель слишком "вялая" для такой штуки, передвигается очень медленно, так что не надо учитывать это.
Просто надо отойти в любую сторону от цели на n количество тайлов, думаю 5 тайлов будет самый раз.
Tiger89
Novice
Novice
Posts: 131
Joined: 28.11.2008 17:32

Post by Tiger89 »

Vizit0r wrote:я бы не взялся писать хорошую, правильную отбегалку, ну его нафиг :)
А ты напиши хоть какую, думаю для моей цели подойдет.
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

мысли для "хоть какой" тебе уже озвучили выше, действуй.
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Tiger89
Novice
Novice
Posts: 131
Joined: 28.11.2008 17:32

Post by Tiger89 »

Vizit0r wrote:мысли для "хоть какой" тебе уже озвучили выше, действуй.
Я не знаю каким образом проверять тайл на наличие препятсвий
User avatar
Vizit0r
Developer
Developer
Posts: 3958
Joined: 24.03.2005 17:05
Contact:

Post by Vizit0r »

проходимость точки относительно исходной (соседней):
1) есть слой с Z, отличающейся от исходной не больше чем на 16, который проходим - нет флагов Impassible и Wall, зато возможно есть флаг Surface или Bridge.
2) любые другие слои, которые запрещены для прохода - отличаются от проходимого слоя по координате Z больше чем на 16.
в некоторых эмуляторах вместо 16 стоит 18, но это несущественно - ведь все в клиенте заточено под 20 :)
на вопросы типа "как определить слой" или "как опредилть его флаги" не отвечаю, все уже давно описано.


P.S. Зачем я то все пишу? ведь есть функция IsWorldCellPassable
"Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете". (с) Макконнелл, "Совершенный код".
Tiger89
Novice
Novice
Posts: 131
Joined: 28.11.2008 17:32

Post by Tiger89 »

Если кому интересно http://stealth.od.ua/forum/viewtopic.ph ... llpassable
Post Reply