Page 1 of 1

Помогите плиз со скриптом

Posted: 2008-12-11 14:44:54
by Klanded
Помогите плиз изменить скрипт чтоб полные мешки он не в сундук кидал, а кидал под ноги.

Code: Select all

######################## 
var Container='0x4047125B';кожа
VAR Sunduk1 = '0x4000C3BD';сундук с пустыми сумками
VAR Sunduk2 = '0x4000C32F';сундук с полными сумками
VAR Meshok = '0x0E75';тип сумки
VAR MeshSer, d
VAR k

###################
sub main()
VAR LastTimer
repeat
UO.FindType( Meshok, -1, Sunduk1 )
MeshSer = UO.GetSerial( 'finditem' )
UO.Grab( '1', 'finditem' )
wait( 2000 )
UO.MoveItem( MeshSer, 0, Sunduk2 )
k=0
repeat
if UO.Count( '0x1067' ) < 15 then
take()
endif
UO.DeleteJournal()
Hid()
eat()
    UO.set('quiet','1')
    UO.cancelmenu()
    UO.automenu ('Leather','Miscellaneous')
    UO.automenu ('Miscellaneous','Bag')
CheckLag()
uo.waittargettype(0x1067)
UO.UseType( '0x0F9D' )
LastTimer=UO.Timer()
repeat
wait(300)
until UO.InJournal("Вы положили") or UO.InJournal("Вам не удалось") or UO.InJournal('You put') or UO.InJournal('fail') or UO.InJournal('target') OR UO.Timer()>LastTimer+200
if UO.InJournal("Вы положили") or UO.InJournal('You put') then
while UO.Count( '0x0E76' ) > 0
UO.FindType( '0x0E76', -1, -1 )
UO.MoveItem( 'finditem', 0, MeshSer )
wait( 200 )
k=k+1
uo.print('k='+str(k))
CheckLag()
wend
endif
until k>=250
until UO.DEAD()
end sub
####################
sub take()
DIM reg[1]
var i,n
reg[1]='0x1067';

CheckLag()
while UO.Count(reg[1])<100
UO.FindType(reg[1],-1,Container)
n=UO.Count(reg[1])
UO.Grab(str(100-n),'finditem')
wait(200)
wend

end sub
####################
sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
wait(100)
until UO.InJournal('ackpack')
end sub
#######################################
sub eat()
VAR LastTimer
UO.DeleteJournal()
repeat
LastTimer=UO.Timer()
UO.findtype(0x097B,-1,'backpack')
if UO.findcount('finditem') then
uo.print('покушали')
UO.Useobject('finditem')
wait(200)
else
return
end if
Until UO.InJournal("stuffed!") OR UO.InJournal("think") or UO.InJournal("found") or UO.InJournal("Вы ничего не можете") OR UO.Timer()>LastTimer+200
end sub
#########################################
sub Hid()
while not uo.Hidden()
uo.exec('warmode 0')
uo.Print('Hiding...')
uo.UseSkill('Hiding')
wait(4000)
wend
wait(100)
end sub

Posted: 2008-12-11 19:29:02
by GAUHAR
Попробвал изменить. Изменения тольк ов этой части скрипта.

Code: Select all

sub main() 
   VAR LastTimer
   repeat
      UO.FindType( Meshok, -1, Sunduk1 )
      MeshSer = UO.GetSerial( 'finditem' )
      UO.Grab( '1', 'finditem' )
      wait( 2000 )
      k=0
      repeat
         if UO.Count( '0x1067' ) < 15 then
            take()
         endif
         UO.DeleteJournal()
         Hid()
         eat()
         UO.set('quiet','1')
         UO.cancelmenu()
         UO.automenu ('Leather','Miscellaneous')
         UO.automenu ('Miscellaneous','Bag')
         CheckLag()
         uo.waittargettype(0x1067)
         UO.UseType( '0x0F9D' )
         LastTimer=UO.Timer()
         repeat
            wait(300)
         until UO.InJournal("Вы положили") or UO.InJournal("Вам не удалось") or UO.InJournal('You put') or UO.InJournal('fail') or UO.InJournal('target') OR UO.Timer()>LastTimer+200
         if UO.InJournal("Вы положили") or UO.InJournal('You put') then
            while UO.Count( '0x0E76' ) > 0
               UO.FindType( '0x0E76', -1, -1 )
               UO.MoveItem( 'finditem', 0, MeshSer )
               wait( 200 )
               k=k+1
               uo.print('k='+str(k))
               CheckLag()
            wend
         endif
      until k>=250
      UO.DropHere(MeshSer) 
   until UO.DEAD()
endsub

Кстати а чем тебе не нравится что полные мкшки складываются в сундук?

Posted: 2008-12-11 20:41:18
by Klanded
Просто на middle-earth в сундук влезает 2 мешка полных

Posted: 2008-12-11 20:50:44
by Klanded
чет по этой замене не работает просто берет мешок входит в хайд и все

Posted: 2008-12-11 21:07:15
by GAUHAR
Klanded wrote:чет по этой замене не работает просто берет мешок входит в хайд и все

Сори, может я поспешил с ответом. Смысл того что сделал я: персонаж берет мешок, заполняет его, а потом заполненный мешок бросает под ноги. Я не подумал о весе мешка. В принципе можно сделать так: чар бере мешок. бросает его под ноги и заполняет его. Тоесть так:

Code: Select all

sub main() 
   VAR LastTimer
   repeat
      UO.FindType( Meshok, -1, Sunduk1 )
      MeshSer = UO.GetSerial( 'finditem' )
      UO.MoveItem(MeshSer,'0','ground',UO.GetX(),UO.GetY(),UO.GetZ())
      wait( 2000 )
      k=0
      repeat
         if UO.Count( '0x1067' ) < 15 then
            take()
         endif
         UO.DeleteJournal()
         Hid()
         eat()
         UO.set('quiet','1')
         UO.cancelmenu()
         UO.automenu ('Leather','Miscellaneous')
         UO.automenu ('Miscellaneous','Bag')
         CheckLag()
         uo.waittargettype(0x1067)
         UO.UseType( '0x0F9D' )
         LastTimer=UO.Timer()
         repeat
            wait(300)
         until UO.InJournal("Вы положили") or UO.InJournal("Вам не удалось") or UO.InJournal('You put') or UO.InJournal('fail') or UO.InJournal('target') OR UO.Timer()>LastTimer+200
         if UO.InJournal("Вы положили") or UO.InJournal('You put') then
            while UO.Count( '0x0E76' ) > 0
               UO.FindType( '0x0E76', -1, -1 )
               UO.MoveItem( 'finditem', 0, MeshSer )
               wait( 200 )
               k=k+1
               uo.print('k='+str(k))
               CheckLag()
            wend
         endif
      until k>=250
   until UO.DEAD()
endsub

Posted: 2008-12-11 22:14:08
by Klanded
он не берет пак и не складывает не куда

Posted: 2008-12-12 02:44:46
by GAUHAR
Klanded wrote:он не берет пак и не складывает не куда

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

Posted: 2008-12-12 09:04:34
by Klanded
Спасиб большое попробую с открытими а тоя пробовал с закрытыми

Posted: 2008-12-12 11:29:19
by Klanded
Чет он берет сумку и не чего не делает.
Вот выкладываю мож подскажеш что да как.

Code: Select all

######################## 
var Container='0x7395FCFD';????
VAR Sunduk1 = '0x7395FCFD';?????? ? ??????? ???????
VAR Sunduk2 = '0x4000C32F';?????? ? ??????? ???????
VAR Meshok = '0x0E75';??? ?????
VAR MeshSer, d
VAR k

###################
sub main()
   VAR LastTimer
   repeat
      UO.FindType( Meshok, -1, Sunduk1 )
      MeshSer = UO.GetSerial( 'finditem' )
      UO.MoveItem(MeshSer,'0','ground',UO.GetX(),UO.GetY(),UO.GetZ())
      wait( 2000 )
      k=0
      repeat
While UO.Count(0x1078)> 2
UO.Exec("waitmenu 'Choose' 'leather' 'What' 'Leather Cap'")
Wait(400)
 UO.Exec("waittargettype 0x1078")
Wait(400)
# sewing kit
UO.Exec("usetype 0x0f9d")
Wait(4000)
UO.Exec("cancelmenu")
# ?????? ????? ?? ??? ?????? :)
 wend
repeat
wait(300)
until UO.InJournal("?? ????????") or UO.InJournal("??? ?? ???????") or UO.InJournal('You put') or UO.InJournal('fail') or UO.InJournal('target') OR UO.Timer()>LastTimer+200
if UO.InJournal("?? ????????") or UO.InJournal('You put') then
while UO.Count( '0x1078' ) > 0
UO.FindType( '0x1078', -1, -1 )
UO.MoveItem( 'finditem', 0, MeshSer )
wait( 200 )
k=k+1
uo.print('k='+str(k))
CheckLag()
wend
endif
until k>=4
until UO.DEAD()
end sub
####################
sub take()
DIM reg[1]
var i,n
reg[1]='0x1078';

CheckLag()
while UO.Count(reg[1])<100
UO.FindType(reg[1],-1,Container)
n=UO.Count(reg[1])
UO.Grab(str(100-n),'finditem')
wait(200)
wend

end sub
####################
sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
wait(100)
until UO.InJournal('ackpack')
end sub
#######################################
sub eat()
VAR LastTimer
UO.DeleteJournal()
repeat
LastTimer=UO.Timer()
UO.findtype(0x097B,-1,'backpack')
if UO.findcount('finditem') then
uo.print('????????')
UO.Useobject('finditem')
wait(200)
else
return
end if
Until UO.InJournal("stuffed!") OR UO.InJournal("think") or UO.InJournal("found") or UO.InJournal("?? ?????? ?? ??????") OR UO.Timer()>LastTimer+200
end sub
[/code]

Posted: 2008-12-12 13:38:11
by GAUHAR
Если не шьет, то, по всей видимости, все дело в WaitMenu или AutoMenu. Составь правильные последовательности параметров prompt и choice.
Что такое prompt: http://yoko.netroof.net/help/help.php?l ... tem=prompt
Что такое choice: http://yoko.netroof.net/help/help.php?l ... tem=choice

Posted: 2008-12-18 01:27:48
by CoS
всё гораздо проще....

Code: Select all

########################
var Container='0x4047125B';кожа
VAR Sunduk1 = '0x4000C3BD';сундук с пустыми сумками
VAR Sunduk2 = 'ground';сундук с полными сумками
VAR Meshok = '0x0E75';тип сумки
VAR MeshSer, d
VAR k

###################
sub main()
VAR LastTimer
repeat
UO.FindType( Meshok, -1, Sunduk1 )
MeshSer = UO.GetSerial( 'finditem' )
UO.Grab( '1', 'finditem' )
wait( 2000 )
UO.MoveItem( MeshSer, 0, Sunduk2 )
k=0
repeat
if UO.Count( '0x1067' ) < 15 then
take()
endif
UO.DeleteJournal()
Hid()
eat()
    UO.set('quiet','1')
    UO.cancelmenu()
    UO.automenu ('Leather','Miscellaneous')
    UO.automenu ('Miscellaneous','Bag')
CheckLag()
uo.waittargettype(0x1067)
UO.UseType( '0x0F9D' )
LastTimer=UO.Timer()
repeat
wait(300)
until UO.InJournal("Вы положили") or UO.InJournal("Вам не удалось") or UO.InJournal('You put') or UO.InJournal('fail') or UO.InJournal('target') OR UO.Timer()>LastTimer+200
if UO.InJournal("Вы положили") or UO.InJournal('You put') then
while UO.Count( '0x0E76' ) > 0
UO.FindType( '0x0E76', -1, -1 )
UO.MoveItem( 'finditem', 0, MeshSer )
wait( 200 )
k=k+1
uo.print('k='+str(k))
CheckLag()
wend
endif
until k>=250
until UO.DEAD()
end sub
####################
sub take()
DIM reg[1]
var i,n
reg[1]='0x1067';

CheckLag()
while UO.Count(reg[1])<100
UO.FindType(reg[1],-1,Container)
n=UO.Count(reg[1])
UO.Grab(str(100-n),'finditem')
wait(200)
wend

end sub
####################
sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
wait(100)
until UO.InJournal('ackpack')
end sub
#######################################
sub eat()
VAR LastTimer
UO.DeleteJournal()
repeat
LastTimer=UO.Timer()
UO.findtype(0x097B,-1,'backpack')
if UO.findcount('finditem') then
uo.print('покушали')
UO.Useobject('finditem')
wait(200)
else
return
end if
Until UO.InJournal("stuffed!") OR UO.InJournal("think") or UO.InJournal("found") or UO.InJournal("Вы ничего не можете") OR UO.Timer()>LastTimer+200
end sub
#########################################
sub Hid()
while not uo.Hidden()
uo.exec('warmode 0')
uo.Print('Hiding...')
uo.UseSkill('Hiding')
wait(4000)
wend
wait(100)
end sub