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