Yoko http://forum.yoko.com.ua/ |
|
Script.dll + include http://forum.yoko.com.ua/viewtopic.php?f=12&t=16689 |
Page 8 of 10 |
Author: | Incorrect User [ 2013-06-18 18:37:18 ] |
Post subject: | Re: Script.dll + include |
Я так понял это значит на одном тайле земли сразу три тайла(бывает и больше) статики. Как это можно обыграть? |
Author: | Juicy Fruit [ 2013-06-18 18:41:30 ] |
Post subject: | Re: Script.dll + include |
Бинго! Ну, я не просто так же писал это на 6 странице: Code: sub Test() Если решил с Z координатой выводить - допили во 2 функцию ещё 1 массив для Z и разбор Z координат. |
Author: | Incorrect User [ 2013-06-18 18:53:41 ] |
Post subject: | Re: Script.dll + include |
Так он возвращает сразу на три тайла информацию а не на один. Я так понимаю, нужно проверять только один, самый последний в списке, так как он верхний? |
Author: | Incorrect User [ 2013-06-18 18:58:31 ] |
Post subject: | Re: Script.dll + include |
+ Нашел место, там куча тайлов, при нажатии теста вылетает уо с надписью Abnormal program termination |
Author: | Juicy Fruit [ 2013-06-18 19:06:15 ] |
Post subject: | Re: Script.dll + include |
Juicy Fruit wrote: GetLandscapeTile возвращает информацию в формате TileID, при включенной ShowZ в формате TileID(Z) GetStaticTiles так же, как и GetLandscapeTile, но перечисляет все тайлы статики, находящиеся в заданных координатах через запятую. Если тайлов статики не обнаружено - вернет пустую строку. При ошибке возвращают строку -1. Читай описание внимательнее) Дай координаты места. |
Author: | Incorrect User [ 2013-06-18 19:08:52 ] |
Post subject: | Re: Script.dll + include |
Скала в Cove 2231,1234,0 |
Author: | Juicy Fruit [ 2013-06-18 19:27:54 ] |
Post subject: | Re: Script.dll + include |
Code: tileid=0x179B,0x179B,0x1799,0x1797,0x179C,0x1799,0x1799,0x17AD,0x1798,0x179C,0x179B,0x0CAF,0x17B2,0x0CAF,0x1797,0x1799,0x1798,0x179A,0x17A9,0x179B dim tiles[20] поставь побольше, там всего 20 тайлов. Значит, может быть и больше. Ошибку не выдал. |
Author: | Incorrect User [ 2013-06-18 19:34:19 ] |
Post subject: | Re: Script.dll + include |
Поставил 50, не вылетает. Но скрипт скажет что прохода нет если хоть в одном тайле из всех есть флаг 0х40. Я стою в спиче, он выдает мне пачку непроходимых, значит скрипт в таких местах будет говорить что прохода нет. |
Author: | Incorrect User [ 2013-06-18 19:34:57 ] |
Post subject: | Re: Script.dll + include |
Запиливай в инжу ходилку из стелса |
Author: | Juicy Fruit [ 2013-06-18 19:43:39 ] |
Post subject: | Re: Script.dll + include |
У меня в модуле есть, но ооооочень долгая и корявая D Если все тайлы смотреть - да, если отсеивать по Z координате - то можно избежать этого, сравнивать свою Z и +/-10Z тайла, к примеру. |
Author: | Incorrect User [ 2013-06-18 19:52:42 ] |
Post subject: | Re: Script.dll + include |
В общем как всегда, без костылей никуда. Буду ходить без проверки, для мининга не проблема, для ламбера... наверное тоже, так как еще сама по себе ходилка неадекватная а может это она так из за кривой проверки петляла. Щас затестирую как будет ходить, надеюсь не будет в лесу тайлов непроходимых там где свободное место. |
Author: | Mirage [ 2013-06-18 19:58:53 ] |
Post subject: | Re: Script.dll + include |
Quote: Скала в Cove 2231,1234,0 На родной карте там просто много кустов. Тайлы обычные - ни под ни над точкой ничего нет. Скала и проходимая земля рядом. Координаты "не проходимых" тайлов пиши если в лесу будешь натыкаться - погляжу на разных версиях карты и клиента. Может это особенность сервера, может глюк, может карта такая. |
Author: | Incorrect User [ 2013-06-18 20:23:20 ] |
Post subject: | Re: Script.dll + include |
Выложил ходилку с новой проверкой тут viewtopic.php?f=20&t=6742&p=94554#p94554 Проверяет столько тайлов перед собой, сколько нужно сделать шагов. Обход при этом петляет на пол км. Хотелось бы чтобы просто проверял три тайла наискосок в одну сторону и если и там нет прохода то 3 тайла в противоположную сторону. |
Author: | Juicy Fruit [ 2013-06-22 17:41:18 ] |
Post subject: | Re: Script.dll + include |
Слил всю инфу по доступным функциям в первый пост. Переписал алгоритм поиска пути. Теперь он не колдует пол часа над файлами УО. Вычисление пути на фрагменте карты 150х150 (без учета игровых объектов) заняло около секунды. С учетом объектов УО - 3 секунды. Описание класса: Code: PathFind(UOPath, MapNum, Z, Alg) - Первый конструктор. UOPath - путь к папке УО с *.mul файлами, MapNum - номер карты, для которой вычисляется путь, Z координата (пока что не работает), Alg - Выбор алгоритма поиска пути, может принимать значения 0 (волновой алгоритм поиска) и 1 (алгоритм поиска А*) см. википедию по сути алгоритмов. Работает с файлами: map*.mul, statics*.mul, staidx*.mul, tiledata.mul, multi.mul, art.mul, artidx.mul, verdata.mul Карта, созданная классом: Пример кода поиска пути: Code: var UOPath='E:\Ultima Online Abyss' #Путь к папке с *.mul файлами УО Может застрять на входах/выходах из пещер, там сложная статика, пока ещё не разобрался с ней. Клиент не может пройти на свободном месте. |
Author: | Incorrect User [ 2013-06-22 18:10:36 ] |
Post subject: | Re: Script.dll + include |
А саму функцию движения приделаешь? |
Author: | Juicy Fruit [ 2013-06-22 18:26:33 ] |
Post subject: | Re: Script.dll + include |
За функцию движения можно взять твою ходилку (модифицированную Беяндера), только без проверок на тайл и т.п. От нее нужно по сути только изменение направления чара и сделать шаг. В модуль нет смысла "вшивать" ходилку. Он не умеет определять координаты, направление чара и т.п. |
Author: | Incorrect User [ 2013-06-22 18:55:55 ] |
Post subject: | Re: Script.dll + include |
Тогда нужно будет поковырять её. Даже делать для этой твоей определялки просто новый кусок, там много лишнего, нужно под эту сделать свою. Ты мне обьясни как чар будет получать координаты в какую сторону идти? Путь он определил, ну а куда шагать, чтобы шел именно по тем тайлам которым нужно. Я так понимаю долженб быть список точек на каждом изменении направления, когда чар поворачивает в любое из 8 направлений нужно знать точку этого места. В итоге будем просто жать на нужную кнопку пока чар не дойдет до нужных координат, потом жмем другую кнопку и т.д. |
Author: | Juicy Fruit [ 2013-06-22 18:59:16 ] |
Post subject: | Re: Script.dll + include |
Code: mapout.first() #Ставим указатель на первый элемент массиваЕсли так понятнее будет. |
Author: | Incorrect User [ 2013-06-22 19:14:01 ] |
Post subject: | Re: Script.dll + include |
Понял, к ней нужно допилить просто кусок с ходьбой, весь валкер не нужен, там обход дэбильный, будем считать что препятствий на пути нет. Сделаю когда освобожусь, выложу сдесь. |
Author: | Incorrect User [ 2013-06-22 21:53:27 ] |
Post subject: | Re: Script.dll + include |
Quote: ScreenPath='E:\UOPathScreens' #Путь к папке, куда сохранять скрины поиска пути Это обязательно? и как отключить если что. |
Page 8 of 10 | All times are UTC+02:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |