Yoko

All sides of Injection
It is currently 2026-01-16 20:32:39

All times are UTC+02:00




Post new topic  Reply to topic  [ 17 posts ] 
Author Message
PostPosted: 2004-08-02 07:12:22 
Offline

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


Top
   
 Post subject:
PostPosted: 2004-08-02 19:20:22 
Offline

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


Top
   
 Post subject:
PostPosted: 2004-08-03 06:45:20 
Offline

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


Top
   
 Post subject:
PostPosted: 2004-08-03 09:39:23 
Offline

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


Top
   
 Post subject:
PostPosted: 2004-08-03 11:46:53 
Offline
Expert!

Joined: 2004-04-25 11:11:07
Posts: 359
Написать программу, которая как сервис будет висеть в системе. Когда ты запускаешь её снова (сервис работает), она определяет, что уже запущена, и передает старой своей копии параметры коммандной строки, после чего завершается.

Сервис (который не завершается) обрабатывает эти параметры (в нашем случае - это координаты в мире), после чего ищет в 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. Вот так осуществляется межпроцессное взаимодействие с инжекшном. Есть еще вариант передачи данных через внешнюю память (файл), но у парсера большие проблемы с регулярными обращениями к файлам...

_________________
Без труда не выловишь и рыбку из пруда,
А без пруда не выловишь её и с трудом...


Top
   
 Post subject:
PostPosted: 2004-08-03 12:05:14 
Offline

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

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


Top
   
 Post subject:
PostPosted: 2004-08-03 12:44:22 
Offline

Joined: 2004-07-27 08:51:35
Posts: 6
Evil Hedgehog wrote:
Всё это конечно замечательно, но асист ведь не перебирает никаких тайлов. Как то ведь ему удаётся "попасть" в нужный тайл.


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


Top
   
 Post subject:
PostPosted: 2004-08-03 14:58:51 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Обычно прекрасно работает если вместо типа тайла просто поставить 0.


Top
   
 Post subject:
PostPosted: 2004-08-03 15:16:02 
Offline

Joined: 2004-07-27 08:51:35
Posts: 6
Edred wrote:
Обычно прекрасно работает если вместо типа тайла просто поставить 0.


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


Top
   
 Post subject:
PostPosted: 2004-08-03 18:24:11 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
contik wrote:
Edred wrote:
Обычно прекрасно работает если вместо типа тайла просто поставить 0.


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


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


Top
   
 Post subject:
PostPosted: 2004-08-03 21:37:54 
Offline
Site Admin
User avatar

Joined: 2004-04-03 16:49:38
Posts: 1964
ассист ставит тот тайл на который ткнули при записи


Top
   
 Post subject:
PostPosted: 2004-08-03 22:50:57 
Offline

Joined: 2004-07-27 08:51:35
Posts: 6
Edred wrote:
Тогда либо список рубимых координат с тайлами в файл либо сделай скрипт на изи.


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


Top
   
 Post subject:
PostPosted: 2004-08-04 14:18:50 
Offline

Joined: 2004-08-02 06:01:57
Posts: 8
contik wrote:
Можешь просто тупо пользовать uo.lclick, не знаю как на твоем шарде, а у меня чар всегда находится в середине экрана, т.е. координаты легко посчитать

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


Top
   
 Post subject:
PostPosted: 2004-08-04 14:22:32 
Offline

Joined: 2004-08-02 06:01:57
Posts: 8
Yoko wrote:
ассист ставит тот тайл на который ткнули при записи

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


Top
   
 Post subject:
PostPosted: 2004-08-04 15:27:48 
Offline

Joined: 2004-08-02 06:01:57
Posts: 8
Всё. сделал. Если кому интересно решение проблемы, то оно истинно "русское".

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

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


Top
   
 Post subject:
PostPosted: 2004-08-04 15:37:10 
Offline

Joined: 2004-07-27 08:51:35
Posts: 6
Evil Hedgehog wrote:
UO.LDblClick(444,216)


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

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


Top
   
 Post subject:
PostPosted: 2004-08-05 04:32:29 
Offline

Joined: 2004-08-02 06:01:57
Posts: 8
contik wrote:
не красиво, но зато эффективно =)
ч.т.д. =))))
P.S. тока почему дабл-клик? разве простого клика не достаточно?

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 17 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 3 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited