Скрипт на перемещение вещей из бекпака

Anything and all.

Moderators: Murderator+, Murderator

Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Cooper wrote:Че вы замарачиваетесь, добавьте в массив мешки и все.. и будет он лутать вместе с мешками... потом разложите как надо...
Зачем заморачиваться с лишними мешками, потом из них вынимать мусор, сами мешки еще трешить... Проще прямо в скрипте на лут поставить в массив тип мешка и ввести условный оператор, если этот тип попался - то открыть мешок и рекурсивный вызов этого же скрипта на него. Рекурсия в инжекте стабильна до 100 вызовов. Я еще ни разу не встречал мешков в мешках на 100 вложений.
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Edred wrote:
Cooper wrote:Че вы замарачиваетесь, добавьте в массив мешки и все.. и будет он лутать вместе с мешками... потом разложите как надо...
Зачем заморачиваться с лишними мешками, потом из них вынимать мусор, сами мешки еще трешить... Проще прямо в скрипте на лут поставить в массив тип мешка и ввести условный оператор, если этот тип попался - то открыть мешок и рекурсивный вызов этого же скрипта на него. Рекурсия в инжекте стабильна до 100 вызовов. Я еще ни разу не встречал мешков в мешках на 100 вложений.
Вот типа того, чистим сначала мешки, затем лутаем клад:

Code: Select all

sub chop() 
   VAR i,Exit
      VAR  pak= ' ' #Тип мешка 
   DIM Loot[15] 
  
   Loot[0]=0x0EED 
   Loot[1]=0x0F82 
   Loot[2]=0x0F8F 
   Loot[3]=0x0F78 
   Loot[4]=0x0F7C 
   Loot[5]=0x0F91 
   Loot[6]=0x0F8E 
   Loot[7]=0x0F81 
   Loot[8]=0x0F79 
   Loot[9]=0x0F7D 
   Loot[10]=0x0F7E 
   Loot[11]=0x0F0E 
   Loot[12]=0x0F80 
   Loot[13]=0x0F87 
   Loot[14]=0x0F90 
   UO.SetReceivingContainer('0x4015A7E0') ; ID мешка для сбора лута
; ------- вставляем предварительную очистку всех паков в бэкпаке    
; v.1.10 
; (C) Edred
   UO.FindType(pak, '-1' ,'lastcontainer') 
   While UO.FindCount() > 0 
      pakser = UO.GetSerial('finditem') 
      UO.UseObject(pakser) 
      wait(1000) 
      CheckLag() 
      UO.FindType('-1','-1',pakser) 
      While UO.FindCount() > 0 
         UO.Grab('0','finditem') 
         wait(500) 
         CheckLag() 
         UO.FindType('-1','-1',pakser) 
      Wend 
      UO.Ignore(pakser) 
      UO.FindType(pak,'-1','lastcontainer') 
   Wend 
; ------- конец вставки очистки паков 

   For i=0 to 14 
      Exit=0 
      repeat 
       UO.FindType(Loot[i],-1,'lastcontainer')            
        if UO.GetQuantity('finditem') then 
         UO.Grab('0','finditem') 
          wait(650) 
          Else 
         Exit=1 
        endif 
      until Exit==1 OR uo.injournal("loot") 
   Next  
UO.UnSetReceivingContainer() 
end sub
Post Reply