Yoko

All sides of Injection
It is currently 2025-10-27 00:31:48

All times are UTC+02:00




Post new topic  Reply to topic  [ 11 posts ] 
Author Message
PostPosted: 2007-10-19 16:32:18 
Offline

Joined: 2004-07-14 22:56:46
Posts: 82
Location: Украина, Одесса
Играю я на сервере Махаон. Там есть такой заворот: крафтятся гвозди баночками по пять штук. Для того, чтобы они сложились в стек, необходимо два раза тыкнуть мышей по какой-то из банок и таргетом указать на такую-же банку. Ну никак не могу написать такую макру. Все время получается или не видит гвоздей совсем или тыкает по 1 банке и таргет возвращает на нее-же.
Условие еще такое... гвозди можно складывать только в паке, не в мешочках, не на земле (даже если мешочек лежит в инвентаре).

Вот приведу свои попытки:
Code:
sub Gvozdi()
  if uo.Waiting() then
     uo.CancelTarget()
  endif
  var a,Exit
  dim gvozdi[1]
  gvozdi[0]=0x102E
  uo.Print('Складываем гвозди.')
  wait(500)
  for a=0 to 0
     Exit=0
     repeat
        uo.findtype(gvozdi[a],-1,'backpack')
        if uo.GetQuantity('finditem')>0 then
           uo.waittargettype('0x102E')
           uo.useobject('finditem')
           wait(1500)
        else
           Exit=1
        endif
     until Exit==1
  next
uo.Print('Гвозди сложены.')
end sub


Top
   
 Post subject:
PostPosted: 2007-10-19 20:40:22 
Offline
User avatar

Joined: 2007-05-26 00:00:56
Posts: 173
Location: Украина, Ode$$a:[X-TEAM Group]
Нафига делать массив если в нём один элемент ? =)
Code:
sub Gvozdi()
var gvozdi = '0x102E '
var Exit = 0
  if uo.Waiting() then
     uo.CancelTarget()
  endif
  uo.Print('Складываем гвозди...')
  wait(500)
     repeat
        uo.findtype(gvozdi,-1,'backpack')
        if uo.FindCount() > 0 then
           uo.waittargettype('gvozdi')
           uo.useobject('finditem')
           wait(1500)
        else
           Exit = 1
        endif
     until Exit = 1
  uo.Print('Гвозди сложены.')
end sub

Вроде так, хз, попробуй =)


Top
   
 Post subject:
PostPosted: 2007-10-19 23:17:54 
Offline

Joined: 2004-07-14 22:56:46
Posts: 82
Location: Украина, Одесса
Пробовал так, не работает. Пишет:

Items found: 4
No item found. Next target request will be cancelled.
Укажите коробку, куда пересыпать гвозди.
отменено.


Т.е. гвозди он находит, использует, а вот прицел не бросает на другую коробку (No item found...)


Top
   
 Post subject:
PostPosted: 2007-10-19 23:25:28 
Offline
User avatar

Joined: 2007-05-26 00:00:56
Posts: 173
Location: Украина, Ode$$a:[X-TEAM Group]
Тогда хз =)
К экспертам.

_________________
Image


Top
   
 Post subject:
PostPosted: 2007-10-19 23:33:39 
Offline

Joined: 2004-07-14 22:56:46
Posts: 82
Location: Украина, Одесса
Должно же быть какое-то решение...

_________________
ХХДЕНТОНХХ: Холодостойкий Хронометрирующий Дроид с Единым Наступательным Трансмутатором для Ограниченного Нападения и Хронометрированного Хищения
http://uokings.ru/news.php


Top
   
 Post subject:
PostPosted: 2007-10-20 07:51:14 
Offline
User avatar

Joined: 2007-10-12 20:48:07
Posts: 100
Попробуй-ка :)

Code:
sub Gvozdi()
var gvo
var gvozdi = '0x102E'

uo.findtype(gvozdi,-1,'backpack')
if uo.findcount() then
uo.CancelTarget()
wait(300)
gvo=UO.GetSerial('finditem')
wait(400)
UO.Ignore('finditem')
wait(100)
uo.findtype(gvozdi,-1,'backpack')
uo.waittargettype('finditem')
wait(100)
uo.useobject(gvo)
 UO.IgnoreReset()
else
return
end if
end sub


Top
   
 Post subject:
PostPosted: 2007-10-20 08:36:46 
Offline

Joined: 2004-07-14 22:56:46
Posts: 82
Location: Украина, Одесса
Есть. Спасибо Окурок, немного подправил твой скрипт и все заработало.
Code:
sub Gvozdi()
 
  var gvo, exit
  var gvozdi = '0x102E'
 
  uo.Print('Складываем гвозди.')
  repeat
    uo.DeleteJournal()
    uo.findtype(gvozdi,-1,'backpack')
    if uo.findcount()>1 then
      uo.CancelTarget()
      wait(300)
      gvo=UO.GetSerial('finditem')
      wait(400)
      UO.Ignore('finditem')
      wait(100)
      uo.findtype(gvozdi,-1,'backpack')
      uo.waittargetobject('finditem')
      wait(100)
      uo.useobject(gvo)
      UO.IgnoreReset()
      repeat
        wait(100)
      until uo.injournal('Вы пересыпали гвозди')
    else
      exit = 1
    end if
  until exit == 1
end sub

_________________
ХХДЕНТОНХХ: Холодостойкий Хронометрирующий Дроид с Единым Наступательным Трансмутатором для Ограниченного Нападения и Хронометрированного Хищения

http://uokings.ru/news.php


Top
   
 Post subject:
PostPosted: 2007-10-20 08:51:21 
Offline
User avatar

Joined: 2007-10-12 20:48:07
Posts: 100
А что дает твой Exit? Плохо соображаю с утра :)


Top
   
 Post subject:
PostPosted: 2007-10-20 08:54:28 
Offline

Joined: 2004-07-14 22:56:46
Posts: 82
Location: Украина, Одесса
значение переменной exit - это условие для остановки макроса. Если найденных объектов не больше одного, то выполняется условие прекращения цикла repeat .... until exit == 1

_________________
ХХДЕНТОНХХ: Холодостойкий Хронометрирующий Дроид с Единым Наступательным Трансмутатором для Ограниченного Нападения и Хронометрированного Хищения

http://uokings.ru/news.php


Top
   
 Post subject:
PostPosted: 2007-10-20 09:10:29 
Offline
User avatar

Joined: 2007-10-12 20:48:07
Posts: 100
А простой return не подходит?


Top
   
 Post subject:
PostPosted: 2007-10-20 09:28:37 
Offline

Joined: 2004-07-14 22:56:46
Posts: 82
Location: Украина, Одесса
return закрывает макрос. Могу ошибаться, конечно, но у меня не работал как возвратная функция...

_________________
ХХДЕНТОНХХ: Холодостойкий Хронометрирующий Дроид с Единым Наступательным Трансмутатором для Ограниченного Нападения и Хронометрированного Хищения

http://uokings.ru/news.php


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 15 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