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
Попробуй увеличить задержку.