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

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