чутка подправьте кормление_)

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
SprinG
Posts: 19
Joined: 2006-02-21 17:34:28
Location: Etheral Portal
Contact:

чутка подправьте кормление_)

Post by SprinG »

короче кормлю при разведении ламок яблокамии грушами, можно и еще чтонибудь добавить.. короче есть в паке макс 4 вариации итема..и если нет в паке то подбираю с земли..пока что написал такой скрипт, но почемуто при наличии в паке достаточного кол-ва груш (они стоят первыми в проверке) он кормит яблоками :( чтото не так... голова уже трещщит с этими файндтайпами...

var havka1 = '0x0994'; Pears
var havka2 = '0x09D0'; Apples

sub vodopoy()
uo.exec('set finddistance 3')
var i=0, error=0

UO.DeleteJournal()
while true
If UO.InJournal("food") then
; загруз еды если мало
If UO.Count(havka1) < 15 Then
UO.Findtype(havka1, '-1','1')
If UO.FindCount() > 14 Then
UO.Grab('15','finditem')
wait(1000)
CheckLag()
error=0
Else
error=1
Endif
Endif
If error==1 AND UO.Count(havka2)<15 Then
UO.Findtype(havka2, '-1','1')
If UO.FindCount() > 14 Then
UO.Grab('15','finditem')
wait(1000)
CheckLag()
error=0
Else
error=1
Endif
Endif
if error == 1 then
uo.print("NO FOODS FOR ANIMALS!")
uo.exec('terminate vodopoy')
endif
i = uo.journalserial(uo.injournal("-15")-1)
if i == 0 then
i = uo.journalserial(uo.injournal("-15")-1)
end if
uo.ignorereset()
;передача еды опоненту
uo.findtype(havka1,-1,'backpack')
If UO.FindCount() > 14 Then
uo.moveitem(uo.getserial('finditem'),15,i)
wait(5000)
else
uo.ignorereset()
uo.findtype(havka2,-1,'backpack')
uo.moveitem(uo.getserial('finditem'),15,i)
wait(5000)
endif
UO.DeleteJournal()
i=0
End if
wait(1000)
wend
end sub


Sub CheckLag()
UO.DeleteJournal( 'backpack' )
UO.Click( 'backpack' )
repeat
wait(100)
until UO.InJournal( 'backpack' )
endsub
[/quote]
SprinG
Posts: 19
Joined: 2006-02-21 17:34:28
Location: Etheral Portal
Contact:

Post by SprinG »

трудно да?...понимаююю
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

потому что ты не правельно понимаешь вывод функций uo.count и uo.findcount(). Если первая ввыводит сумму стека всех объектов заданого типа
то вторая выводит только колвой найденых объектов...
допустим утебя 2 кучки грушь в одной 1 груша в другой 15
первая покажет число 16
вторая 2
SprinG
Posts: 19
Joined: 2006-02-21 17:34:28
Location: Etheral Portal
Contact:

Post by SprinG »

всем откликнувшимся спасибо за помошь вышло отлично и ёмко :)

зы: персональное спасибо некому KievMobile ;))
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Code: Select all

sub vodopoy() 
var i, f, obj=''
var foodcount=2
dim food[2]
food[0]='0x0994'
food[1]='0x09D0'
   uo.exec('set finddistance 3')
   UO.DeleteJournal()
   while true
      If UO.InJournal("food") then
         ; загруз еды если мало
         f=0
         i=0
         while not f and i < foodcount
            If UO.Count(food[i]) < 15 Then
               UO.Findtype(food[i], '-1','ground')
               If UO.FindCount() > 14 Then
                  UO.Grab('15','finditem')
                  while uo.ContainerOf('finditem') <> uo.GetSerial('backpack')
                     wait(100)
                  wend
                  f=i
               End if
            else
               f=i
            End if
            i=i+1
         wend
         if not f then
            uo.print("NO FOODS FOR ANIMALS!")
            return
         end if
         obj = uo.journalserial(uo.injournal("-15")-1)
         if obj == '' then
            obj = uo.journalserial(uo.injournal("-15")-1)
         end if
         ;передача еды опоненту
         uo.findtype(food[f], -1,'backpack')
         uo.moveitem('finditem',15,obj)
         while uo.ContainerOf('finditem') == uo.GetSerial('backpack')
            wait(100)
         wend
         UO.DeleteJournal()
      End if
      wait(1000)
   wend
end sub


PS не въехал почему скрипт ВОДОПОЙ...
PSS хз что за конструкция, оставил как есть

Code: Select all

obj = uo.journalserial(uo.injournal("-15")-1) 
if obj == '' then
obj = uo.journalserial(uo.injournal("-15")-1)
end if
SprinG
Posts: 19
Joined: 2006-02-21 17:34:28
Location: Etheral Portal
Contact:

Post by SprinG »

все оказалось проще гораздо)
sub vodopoy()
dim havka[4]
havka[1] = 0x0994; Pears
havka[2] = 0x09D0; Apples
havka[3] = 0x0000; Тип хавки 3
havka[4] = 0x0000; Тип хавки 4
var horse, i, z = 0
uo.exec('set finddistance 3')
uo.deletejournal()
repeat
if uo.injournal("-15 foods") then
horse = uo.journalserial(uo.injournal("-15 foods")-1)
for i = 1 to 4
uo.findtype(havka[i],-1,'ground')
if uo.getquantity(uo.getserial('finditem')) > 14 then
uo.moveitem(uo.getserial('finditem'),15,horse)
wait(500)
CheckLag()
else
z = z + 1
endif
next
endif
uo.deletejournal()
endif

wait(2000)
until z==4
uo.print("EDA PODOSHLA K KONCU :))")
uo.exec ('terminate vodopoy')
end sub

водопой потомучто был какойто скрипт чтото я забыл про название и убил его и новый накатал :))
а конструкция это просто еще одна проверка, иногда инфо в 0х0000 показывает..повторная проба так сказать)[/quote]
Post Reply