Page 1 of 1

Скрипт на сбор растений

Posted: 2008-07-17 10:07:16
by vorm
Положение: есть поле, поле больше, ручки сразу до всего не дотягиваються, тянуться только на 4 клетки!

дальше два варианта:

Code: Select all

sub main() 
uo.set('finddistance','4') 
repeat 
UO.Findtype('0x1A99','-1','ground') 
uo.usefromground(0x1A99) 
wait(400)
until false
endsub
Все хорошо, но

Code: Select all

uo.set('finddistance','4') 
Похоже не дает условие для
uo.usefromground('type')

Как поступить?

Вариант дЫва:

Образ перебора тайлов:

Code: Select all

Sub main()
VAR x, y, t, k 

for y=-2 to 2 
   for x=-2 to 2 
      k = 0 
      repeat 
         UO.DeleteJournal() 
         t = UO.Timer() 
         k = k + 1 
         UO.CancelTarget() 
         wait(300) 
         UO.WaitTargetTile( TileNum, STR( UO.GetX() + x ), STR( UO.GetY() + y ), 0) 
   UO.UseType('type'); если так или uo.usefromgroud('T') всеравно пытаеться дотянуться до недоступных тайлов
         repeat 
            wait(300) 
         until false
endsub
Возможноли просто обусловить Дабл клик по тайлу.

Заранее огромное спасибо за внимание!

Posted: 2008-07-17 10:25:22
by Scripts Writer
Если у растения есть тип, то

Code: Select all

sub Get_Herb()
  var type=
  
  uo.Set('finddistance','4')
  while not uo.Dead()
    uo.FindType(type,'-1','ground')
    if uo.FindCount() then
      uo.UseObject('finditem')
      wait(350)
    else
      wait(100)
    end if
  wend
end sub     
    

Posted: 2008-07-17 10:56:42
by vorm
Да, в теории здорво... но он почему то всеравно хочед дотянуться до недоступных тайлов =(

Posted: 2008-07-17 11:59:10
by Destruction
uo.Set('finddistance','0') тада )

Posted: 2008-07-17 15:18:18
by vorm
Это неприемлимо раз, и два, разницы мало!

Как сделать что бы он "атачил тайл"? просто дабл клик на заданый тайл

Posted: 2008-07-17 15:42:35
by Purgen
Есть вот такая штука http://yoko.com.ua/help/help.php?lang=r ... targettile , но сомневаюсь, что прокатит.

А вобще-то Скриптс Врайтер показал правильный скрипт, поиграйся с дистанцией, попробуй выставить 2, 3, 5..

Posted: 2008-07-17 16:35:29
by vorm
ну я пробывал по всякому её менять... ноль эмоций, всеравно думает, что у него руки резиновые!

Code: Select all

uo.waittargettile(lasttile/tilenum,[x],[y],[z])
Здорво, но он просто устанавливает ловушку... а далее следующий "Use'type'" пытаеться удленнить руки!

Posted: 2008-07-17 17:02:39
by Scripts Writer
Игнорируй

Posted: 2008-07-17 17:18:07
by vorm
Ага, вот это уже интересней, а как игнорировать все что выходит за дистанцию определенную? Конкретно кусок кода, пожалуйста, если можно!

Posted: 2008-07-17 17:21:58
by Purgen
uo.Set('finddistance','4') ;)
Всё, что дальше - игнорируеться.

Posted: 2008-07-17 17:42:22
by Scripts Writer

Code: Select all

uo.Ignore('finditem')

Posted: 2008-07-17 20:37:32
by vorm
Purgen wrote:uo.Set('finddistance','4') ;)
Всё, что дальше - игнорируеться.
Должна игнорироваться! Но не игнорируеться!
Scripts Writer wrote:

Code: Select all

uo.Ignore('finditem')
Эт я знал... но конкретно допустим к следующему коду как привязать?

ЗЫ. вот родил код... но что то он даже не пытаеться потыкать в цвяточки:

Code: Select all

sub main()
uo.set('finddistance','4')
var xlop='0x1A9B' 
var xlop2='0x1A9C'
var cnt
uo.findtype(xlop,-1,'ground')
cnt=uo.findcount()
while cnt>0 
uo.findtype(xlop,-1,'ground')
cnt=uo.findcount()
uo.useobject('Finditem')
wait(400)
uo.findtype(xlop2,-1,'ground')
if uo.findcount() then
uo.grab(0,'finditem')
wait(666)
endif
wend
end sub

Posted: 2008-07-17 21:36:17
by Kynep
Попробуй увеличить задержку.