Скрипт на лут вещей, когда первый раз вызываешь-просто открывает труп, второй раз-лутит. Почему? Причем, к примеру, на скелетах лутит сразу, а на зомби или личе - со второго раза. Помогите, плиз.
sub Loot()
DIM Loot[100]
Loot[0]='0x0EED'; gp
Loot[1]='0x0F7E' ; Sceleton Bones
Loot[2]='0x0F16' ; Ametist
.....
Loot[41]='0x0F20' ; Tourmaline
Loot[42]='0x0F26' ; Diamond
UO.UseObject('lastcorpse')
UO.FindType( '-1', '-1', 'lastcorpse' )
while UO.FindCount()
For i = 0 To 42
If UO.GetGraphic( 'finditem' ) == Loot[i] Then
UO.MoveItem( 'finditem' )
wait(100)
Else
wait(10)
Endif
Next
UO.Ignore( 'finditem' )
UO.FindType( '-1', '-1', 'lastcorpse' )
wend
UO.IgnoreReset()
end sub
Помогите со скриптом
Moderators: Murderator+, Murderator
Re: Помогите со скриптом
так ИМХО проще.Worth wrote:Code: Select all
sub Loot()
DIM Loot[100]
Loot[0]='0x0EED'; gp
Loot[1]='0x0F7E' ; Sceleton Bones
Loot[2]='0x0F16' ; Ametist
.....
Loot[41]='0x0F20' ; Tourmaline
Loot[42]='0x0F26' ; Diamond
UO.UseObject('lastcorpse')
For i = 0 To 42
UO.FindType(Loot[i], '-1', 'lastcorpse' )
while UO.FindCount() > 0
UO.MoveItem( 'finditem' )
wait(100)
UO.FindType(Loot[i], '-1', 'lastcorpse' )
wend
Next
end sub
Re: Помогите со скриптом
Sfagnum wrote:так ИМХО проще.Worth wrote:Code: Select all
sub Loot()
DIM Loot[100]
Loot[0]='0x0EED'; gp
Loot[1]='0x0F7E' ; Sceleton Bones
Loot[2]='0x0F16' ; Ametist
.....
Loot[41]='0x0F20' ; Tourmaline
Loot[42]='0x0F26' ; Diamond
UO.UseObject('lastcorpse')
For i = 0 To 42
UO.FindType(Loot[i], '-1', 'lastcorpse' )
while UO.FindCount() > 0
UO.MoveItem( 'finditem' )
wait(100)
UO.FindType(Loot[i], '-1', 'lastcorpse' )
wend
Next
end sub
Так проще но не быстрее. Каждый поиск занимает какое-то время. Маленькое, но занимает. Сравнение типов происходит быстрее. Поэтому если у тебя в массиве полтинник или больше типов, а ты лутишь труп, скажем, с 3-4 вещами, поиск в этом трупе 50 вещей или перебор этих трех и сравнение их с заданными 50-ью - две большие разницы. Я экспериментировал.
По поводу скрипта. У меня этот скрипт работает хорошо. Иначе бы не постил в свое время на форум. Единственное - поставь паузу и проверку на лаги после команды открытия трупа. Быстрее всего именно тут у тебя проблема. То есть:
Code: Select all
UO.UseObject('lastcorpse')
wait(300)
CheckLag()
Re: Помогите со скриптом
спасибо за пояснение, буду иметь ввиду.Edred wrote:Так проще но не быстрее. Каждый поиск занимает какое-то время. Маленькое, но занимает. Сравнение типов происходит быстрее. Поэтому если у тебя в массиве полтинник или больше типов, а ты лутишь труп, скажем, с 3-4 вещами, поиск в этом трупе 50 вещей или перебор этих трех и сравнение их с заданными 50-ью - две большие разницы. Я экспериментировал.
Re: Помогите со скриптом
Sfagnum wrote:спасибо за пояснение, буду иметь ввиду.Edred wrote:Так проще но не быстрее. Каждый поиск занимает какое-то время. Маленькое, но занимает. Сравнение типов происходит быстрее. Поэтому если у тебя в массиве полтинник или больше типов, а ты лутишь труп, скажем, с 3-4 вещами, поиск в этом трупе 50 вещей или перебор этих трех и сравнение их с заданными 50-ью - две большие разницы. Я экспериментировал.
Ты, кстати, сам потести у себя, потому что я уже сталкивался с ситуацией (на другом шарде) когда то, что я описал не соответствовало истине. Там почему-то быстрее было через финдтайп всего массива...