Yoko

All sides of Injection
It is currently 2025-11-23 10:32:36

All times are UTC+02:00




Post new topic  Reply to topic  [ 6 posts ] 
Author Message
PostPosted: 2004-10-07 02:37:19 
Offline

Joined: 2004-10-04 04:50:03
Posts: 51
Location: DRW
Скрипт на лут вещей, когда первый раз вызываешь-просто открывает труп, второй раз-лутит. Почему? Причем, к примеру, на скелетах лутит сразу, а на зомби или личе - со второго раза. Помогите, плиз.

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


Top
   
PostPosted: 2004-10-07 08:09:38 
Offline
Expert!
User avatar

Joined: 2004-07-04 00:14:58
Posts: 1284
Worth wrote:
Code:
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
так ИМХО проще.


Top
   
PostPosted: 2004-10-07 11:50:09 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Sfagnum wrote:
Worth wrote:
Code:
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:
UO.UseObject('lastcorpse') 
wait(300)
CheckLag()


Top
   
PostPosted: 2004-10-07 12:41:25 
Offline
Expert!
User avatar

Joined: 2004-07-04 00:14:58
Posts: 1284
Edred wrote:
Так проще но не быстрее. Каждый поиск занимает какое-то время. Маленькое, но занимает. Сравнение типов происходит быстрее. Поэтому если у тебя в массиве полтинник или больше типов, а ты лутишь труп, скажем, с 3-4 вещами, поиск в этом трупе 50 вещей или перебор этих трех и сравнение их с заданными 50-ью - две большие разницы. Я экспериментировал.
спасибо за пояснение, буду иметь ввиду.


Top
   
 Post subject:
PostPosted: 2004-10-09 05:16:09 
Offline

Joined: 2004-10-04 04:50:03
Posts: 51
Location: DRW
Спасибо за ответ, теперь работает с первого раза.


Top
   
PostPosted: 2004-10-09 20:25:58 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Sfagnum wrote:
Edred wrote:
Так проще но не быстрее. Каждый поиск занимает какое-то время. Маленькое, но занимает. Сравнение типов происходит быстрее. Поэтому если у тебя в массиве полтинник или больше типов, а ты лутишь труп, скажем, с 3-4 вещами, поиск в этом трупе 50 вещей или перебор этих трех и сравнение их с заданными 50-ью - две большие разницы. Я экспериментировал.
спасибо за пояснение, буду иметь ввиду.


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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 6 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: Bing [Bot] and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited