Yoko http://forum.yoko.com.ua/ |
|
Как работает lasttile ? http://forum.yoko.com.ua/viewtopic.php?f=3&t=17090 |
Page 1 of 1 |
Author: | Андрюха из Одессы [ 2012-10-31 13:40:04 ] |
Post subject: | Как работает lasttile ? |
Добрый день. Прошу помощи, не могу разобраться с командой uo.lasttile. Идея такая, хочу добавить в скрипт Дестракшена на рубку с автопоиском, маркировку деревьев. Координаты записываются в текстовое окно, вызванное при помощи Code: UO.TextOpen() Суть проблемы: координата добавляется после проверки сообщения о вырубке Code: until uo.injournal(бла-бла)командой Code: uo.textprint(uo.lasttile())Думал все легко ![]() Code: 0 0 0 0Порылся в док-ции, прочитал описание uo.lasttile, там написано, что прицел должен послать клиент. Если правильно понимаю, есть разница между посылкой прицела через инжект и ручками. Вопрос такой, как запилить костыль, дабы возвращались координаты дерева. RunUO 2.0 ML, client 5.0.1h. Code: Пока есть только одна мысль, повторно, на дерево, через хоткей вызывать уошный макрос lastobject, lasttarget.Идея не удалась ![]() |
Author: | Mirage [ 2012-10-31 14:19:17 ] |
Post subject: | Re: Как работает lasttile ? |
Проверь вот такое у вас на ранке работает? Если да то можно организовать через заднее место - через PrivateGetTile. По нему получишь координаты и тайл перед собой и уже с ними будешь дальше работать. Если не работает то только прокликивать руками. |
Author: | Андрюха из Одессы [ 2012-10-31 14:29:15 ] |
Post subject: | Re: Как работает lasttile ? |
Это же один из любимых скриптов)) Частенько его использую. Чуть позже кину еще клилоки и пару типов тайлов которые нашел. З.Ы. в док-ции нет описания PrivateGetTile, можешь в двух словах пояснить, для чего сия прелесть используется? Да, по-большей части твой скрипт работает. Проблемы только в том, что он не может работать с координатой Z. Но это проблема старая и известная. Пару раз натыкался на сообщения о том, что надо с АСМ работать, для решения проблем с Z, но толком инфы не было. Да и не особо искал. upd. Не корректно выразился. Не по-большей части, а работает. У меня то частный случай. Есть еще мысль, на сколько понимаю, у Дестракшена координаты хранятся в глобальной переменной. Соответственно, если инжект нашел дерево и подошел к нему, значит координата должна храниться в переменной. Вопрос, можно ли вытянуть информацию из глобальной переменной? Не совсем понимаю суть их работы, но буду ковырять. Если можно вытянуть инфу, значит надо изменить структуру скрипта, чтоб запускал поток поиска после вырубки. Или вообще сделать все в один поток. Короче хз, надо думать. Кстати, еще вопрос. Можно ли массивом задавать значение Z-координаты? Допустим, что я на 100% знаю, что высота дерева может быть в диапозоне от -10 до 10. Пусть себе перебирает высоту, в заданном диапозоне. |
Author: | Mirage [ 2012-10-31 18:15:49 ] |
Post subject: | Re: Как работает lasttile ? |
перед поиском юзать uo.resend() - тогда с большой вероятностью поймаешь нужную Z координату. насчет privategettile описание было где то на форуме. Если не ошибаюсь то там выглядит следующим образом: Code: Sub Tree(X,Y) uo.privategettile( x, y, -1, R[i], R[i]) X,Y координаты точки где проверяем тайл. -1 - всегда должен быть так - какая то константа. R[i] список тайлов (в данном случае - рубящиеся деревья). Берутся координаты чара (X,Y) и от них ±3 координаты. Берем координату (X-3, Y) проверяем есть ли в ней тайл соответствующий списку тайлов R1-R2. Если есть - возвращаем его значение и рубим по той точке. Если нет - пропускаем... Я как то посидел с инсайдом и переписал все тайлы деревьев рудоносящих кочек, воды на клиенте на котором я тогда играл - получился такой вот скрипт. НА новых клиентах тайлов всего скорее больше - лишь бы сервер поддерживал ![]() |
Author: | Андрюха из Одессы [ 2012-10-31 18:31:58 ] | ||
Post subject: | Re: Как работает lasttile ? | ||
Про ресенды, я уже догадался. Яркий пример: Скрипт: Code: sub main() До ресенда выводил 0, после правильную высоту. Ресенды вроде помогли, начал нормально рубить на разных высотах. Вставлю их перед рубкой. Осталась одна проблема, заставить скрипт забирать правильные координаты деревьев, а не 0 0 0 0. Видимо в коде лоханулся, завтра уже поковыряю, на свежую голову. Спасибо ![]()
|
Author: | Juicy Fruit [ 2012-10-31 19:59:57 ] |
Post subject: | Re: Как работает lasttile ? |
Code: until uo.injournal(бла-бла) Сразу за этим сунь: Code: var ScreenCX=400 #Координата X центра игрового окна И потом можно брать координаты из ласттайла. |
Author: | Андрюха из Одессы [ 2012-10-31 20:33:55 ] |
Post subject: | Re: Как работает lasttile ? |
Спасибо, завтра проверю. Если правильно суть его работы понял, то данный костыль, как нельзя лучше подходит моему пациенту. |
Author: | Андрюха из Одессы [ 2012-11-01 15:17:15 ] |
Post subject: | Re: Как работает lasttile ? |
5 раз проверил скрипт, на полянке перед банком в Миноке. Что могу сказать. Костыль рабочий, но есть нюансы. Code: 3289 2512 567 0 Зависит от того, с какой стороны персонаж подходит к дереву. Сейчас отправлю перса в лес по-больше и буду смотреть. Пока в голову пришла идея, проверять куда смотрит перс(а после первой вырубки, он будет смотреть на дерево) и взависимости от этого кликать. Можно немного облегчить задачу, поставить верду с пеньками. Тогда будет проще собрать координаты X Y для клика. |
Author: | Juicy Fruit [ 2012-11-01 17:15:32 ] |
Post subject: | Re: Как работает lasttile ? |
Андрюха из Одессы wrote: Можно немного облегчить задачу, поставить верду с пеньками. Ну да, на такой и тестил. А не проще поставить АСМ и юзать Code: number asmMapGetTile(number X, number Y, number Map) И для Z Code: number asmMapGetZ(number X, number Y, number Map) ? Без всяких кривоватых кликов. |
Author: | Андрюха из Одессы [ 2012-11-01 17:44:45 ] |
Post subject: | Re: Как работает lasttile ? |
Никогда не пробовал АСМ. Наверное пора) |
Page 1 of 1 | All times are UTC+02:00 |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |