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

Кинуть прицел на однотипный предмет
http://forum.yoko.com.ua/viewtopic.php?f=20&t=12639
Page 1 of 1

Author:  Denton [ 2007-10-19 16:32:18 ]
Post subject:  Кинуть прицел на однотипный предмет

Играю я на сервере Махаон. Там есть такой заворот: крафтятся гвозди баночками по пять штук. Для того, чтобы они сложились в стек, необходимо два раза тыкнуть мышей по какой-то из банок и таргетом указать на такую-же банку. Ну никак не могу написать такую макру. Все время получается или не видит гвоздей совсем или тыкает по 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

Author:  -=JoKeR=- [ 2007-10-19 20:40:22 ]
Post subject: 

Нафига делать массив если в нём один элемент ? =)
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

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

Author:  Denton [ 2007-10-19 23:17:54 ]
Post subject: 

Пробовал так, не работает. Пишет:

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


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

Author:  -=JoKeR=- [ 2007-10-19 23:25:28 ]
Post subject: 

Тогда хз =)
К экспертам.

Author:  Denton [ 2007-10-19 23:33:39 ]
Post subject: 

Должно же быть какое-то решение...

Author:  Okypok [ 2007-10-20 07:51:14 ]
Post subject: 

Попробуй-ка :)

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

Author:  Denton [ 2007-10-20 08:36:46 ]
Post subject: 

Есть. Спасибо Окурок, немного подправил твой скрипт и все заработало.
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

Author:  Okypok [ 2007-10-20 08:51:21 ]
Post subject: 

А что дает твой Exit? Плохо соображаю с утра :)

Author:  Denton [ 2007-10-20 08:54:28 ]
Post subject: 

значение переменной exit - это условие для остановки макроса. Если найденных объектов не больше одного, то выполняется условие прекращения цикла repeat .... until exit == 1

Author:  Okypok [ 2007-10-20 09:10:29 ]
Post subject: 

А простой return не подходит?

Author:  Denton [ 2007-10-20 09:28:37 ]
Post subject: 

return закрывает макрос. Могу ошибаться, конечно, но у меня не работал как возвратная функция...

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