Yoko
http://forum.yoko.com.ua/

Копание у скалы
http://forum.yoko.com.ua/viewtopic.php?f=20&t=1055
Page 1 of 1

Author:  Evil Hedgehog [ 2004-08-02 07:12:22 ]
Post subject:  Копание у скалы

Скала ровная. 13 шагов \ направления. Сделал все проверки, но не могу справиться с "копанием". Проблема вот в чём: когда копаешь у скалы, то тайлами делать либо бесполезно либо геморно, ибо на нужный тайл фиг попадёшь чтобы узнать его параметры. Думаю таргетом, но не получается. В асисте на нужный кусок попадали просто - вставали на против него а в макросе юзали кирку и таргет->target to relative location. Можно ли как либо по другому сделать?

Author:  Black Horse [ 2004-08-02 19:20:22 ]
Post subject: 

насчёт тайлов - это не сложно, пусть и попасть нельзя :)
просто относительно своих координат добавь +1 (по Х или У, смотря как скала располагается) и всё.

Author:  Evil Hedgehog [ 2004-08-03 06:45:20 ]
Post subject: 

То есть строка будет такая:
mx=GetX('self') и тд
WaitTargetTile(?, mx, my+1, mz)
если скала чуть повыше?
Что туда первым параметром идёт? Тип тайла насколько я помню. Но на скале ведь разные типы?

Author:  contik [ 2004-08-03 09:39:23 ]
Post subject: 

Короче у меня проблема была такая - что даже на ровном месте существуют разные тайлы.
Я сделал так: создал массив из всех возможных тайлов и по очереди по одной и той-же координате бью киркой в цикле по всему массиву.
В процессе биения по земле ловишь сообщения об удачном выкавывании руды, как только оно приходит - сразу выпрыгиваешь из цикла с массивом и боешь уже по этой координате но с известным номером тайла ...
Несколько геморрно, но пока более интересного решения в голову не пришло =)

Author:  Lord Ruslan Nightmare [ 2004-08-03 11:46:53 ]
Post subject: 

Написать программу, которая как сервис будет висеть в системе. Когда ты запускаешь её снова (сервис работает), она определяет, что уже запущена, и передает старой своей копии параметры коммандной строки, после чего завершается.

Сервис (который не завершается) обрабатывает эти параметры (в нашем случае - это координаты в мире), после чего ищет в mul'ах тайл с такими координатами. Найдя, он через мессаджи вызывает в инжекшне ряд скриптов, что-то типа
Code:
sub initstr()
  uo.setglobal("str","")
end sub
sub sub1()
  uo.setglobal("str",uo.getglobal("str") + "1")
end sub
sub suba()
  uo.setglobal("str",uo.getglobal("str") + "a")
end sub
sub subb()
  uo.setglobal("str",uo.getglobal("str") + "b")
end sub
....
sub receivestr()
  uo.setglobal("DataToScript",uo.getglobal("str"))
  uo.setglobal("transferred","1")
end sub

Таким образом в инжекшн передаётся строка. Дальше вызовом receivestr строка передаётся в функцию. В данном случае строка либо будет "not found", либо будет типом тайла. Ну, а дальше элементарно.

P.S. Вот так осуществляется межпроцессное взаимодействие с инжекшном. Есть еще вариант передачи данных через внешнюю память (файл), но у парсера большие проблемы с регулярными обращениями к файлам...

Author:  Evil Hedgehog [ 2004-08-03 12:05:14 ]
Post subject: 

contik wrote:
Короче у меня проблема была такая - что даже на ровном месте существуют разные тайлы.
Несколько геморрно, но пока более интересного решения в голову не пришло =)

Всё это конечно замечательно, но асист ведь не перебирает никаких тайлов. Как то ведь ему удаётся "попасть" в нужный тайл.

Author:  contik [ 2004-08-03 12:44:22 ]
Post subject: 

Evil Hedgehog wrote:
Всё это конечно замечательно, но асист ведь не перебирает никаких тайлов. Как то ведь ему удаётся "попасть" в нужный тайл.


честно говоря ассист не пользовал, поэтому даже не знаю как он работает =(
Как вариант можешь просто тупо пользовать uo.lclick, не знаю как на твоем шарде, а у меня чар всегда находится в середине экрана, т.е. координаты легко посчитать

Author:  Edred [ 2004-08-03 14:58:51 ]
Post subject: 

Обычно прекрасно работает если вместо типа тайла просто поставить 0.

Author:  contik [ 2004-08-03 15:16:02 ]
Post subject: 

Edred wrote:
Обычно прекрасно работает если вместо типа тайла просто поставить 0.


пробовал!
к сожалению у меня на шарде такой маневр не прокатил, он просто тупо стоит и ничего не делает =(

Author:  Edred [ 2004-08-03 18:24:11 ]
Post subject: 

contik wrote:
Edred wrote:
Обычно прекрасно работает если вместо типа тайла просто поставить 0.


пробовал!
к сожалению у меня на шарде такой маневр не прокатил, он просто тупо стоит и ничего не делает =(


Тогда либо список рубимых координат с тайлами в файл либо сделай скрипт на изи.

Author:  Yoko [ 2004-08-03 21:37:54 ]
Post subject: 

ассист ставит тот тайл на который ткнули при записи

Author:  contik [ 2004-08-03 22:50:57 ]
Post subject: 

Edred wrote:
Тогда либо список рубимых координат с тайлами в файл либо сделай скрипт на изи.


так вот мы и пришли к тому, о чем я в самом начале говорил (про массив из нужных тайлов =)

Author:  Evil Hedgehog [ 2004-08-04 14:18:50 ]
Post subject: 

contik wrote:
Можешь просто тупо пользовать uo.lclick, не знаю как на твоем шарде, а у меня чар всегда находится в середине экрана, т.е. координаты легко посчитать

УО.Клик использует объект, но никак не координаты.

Author:  Evil Hedgehog [ 2004-08-04 14:22:32 ]
Post subject: 

Yoko wrote:
ассист ставит тот тайл на который ткнули при записи

Да, но что самое интересное, что когда юзаешь кирку на "неоднородную" по графике скалу допустим в пилоте, то использовать относительные координаты предыдущего положения чара нельзя. А асисту как то удаётся это обойти.
Ещё один интересный момент. Подбираю место куда можно попасть на скале. Где копает туда делаем ,infotile, записываем параметры в макрос. Запускаем макрос нам выдаёт что cannot mine that. Самая изюминка в том, что в некоторых местах это всё таки работает. Другое дело что из 13 нужных мне тайлов я "попал" только в 3. :(

Author:  Evil Hedgehog [ 2004-08-04 15:27:48 ]
Post subject: 

Всё. сделал. Если кому интересно решение проблемы, то оно истинно "русское".

UO.UseObject('0x494B3C62')
for j=1 to 3
CheckLag()
UO.LDblClick(444,216)
next

Бьём куда надо таргетом пока оно не начнём копаться. :)
Всем спасибо, все свободны. ;)

Author:  contik [ 2004-08-04 15:37:10 ]
Post subject: 

Evil Hedgehog wrote:
UO.LDblClick(444,216)


не красиво, но зато эффективно =)
ч.т.д. =))))

P.S. тока почему дабл-клик? разве простого клика не достаточно?

Author:  Evil Hedgehog [ 2004-08-05 04:32:29 ]
Post subject: 

contik wrote:
не красиво, но зато эффективно =)
ч.т.д. =))))
P.S. тока почему дабл-клик? разве простого клика не достаточно?

Прикинь нет. Не думал я что так сложно будет до скалы додолбиться. :)

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/