сортировка банка на пинжекте

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
korzh
Posts: 220
Joined: 2007-04-26 23:35:15

сортировка банка на пинжекте

Post by korzh »

Решил сделать сортировку банка, а то хлама навалилось жуть))
Ну и как всегда работает, только криво :) Сортирует только реги.. не понимаю почему.

Code: Select all

sub banksorter{
$regpack = '0x418CB969';
#----------------------------------------------------------------------------
  my @wepbag = ("0x417f4ac8", "0x4185398a", "0x417daef6", "0x417e70bc", "0x417d4d92", "0x417d3d58");
  #katanas,kryss,viking sword,longsword, magic staff, cutlass
  my $weptq = scalar(@wepbag);

  my @armorbag = ("0x4183b723","0x4180c3a9","0x417d30ff","0x417dc775","0x417e5881","0x417e70bc","0x417d3d58");
  #berserker, snow, scorp, reptile, acid maniac, plusarm, gargul
  my $armtq = scalar(@armorbag);

#----------------------------------------------------------------------------
  my @weapon = ("0x13fe","0x1400","0x1400","0x0f61","0x13f8","0x1440");
  # katana, kryss, viking sword, longsword, magic staff, cutlass

  my @armor = ("0x07ec","0x0481","0x0497","0x049f","0x049c","0x048f","0x0482");
  # bers, snow, scorp, reptilem acid, plus, gargule

  my @full = ("0x1410","0x1411","0x1412","0x1413","0x1414","0x1415","0x1c04","0x140e","0x13c4","0x13c4","0x1b76","0x13ef","0x1b7b","0x13ca");
  # plate, plate, plate, plate, plate, liv4ik, helm, xz, chainmail, heather, chain arm, buckler, tunic
  my $fulltq = scalar(@full);

  my @regs = ("0x0f7a","0x0f7b","0x0f8d","0x0f84","0x0f85","0x0f86","0x0f88","0x0f8c","0x0e21");
  # bp, bm, ss, gl, gs, mr, ns, sa, bandages
  my $regstq = scalar(@regs);
#----------------------------------------------------------------------------
  uo::msg('bank');
  &wait(100);
  #uo::usefromground('0x20e0'); # open bank
  &wait(100);
  for ($i = 1; $i != $weptq; $i++) {
    &banksort( 0, @weapon[$i], -1, @wepbag[$i] ); # weapons
    &wait(100);
  }
  for ($n = 1; $n != $fulltq; $n++){
    for ($i = 1; $i != $armtq; $i++) {
      &banksort( 0, @full[$n], @armor[$i], @armorbag[$i] ); # armors
      &wait(100);
    }
  }
  for ($i = 1; $i != $regstq; $i++) {
    &banksort( 0, $regs[$i], -1, $regpack); # regs, bandages
    &wait(100);
  } $i = 1 ;
}

sub banksort { # { from }, { type }, { color }, { where }
  my($from, $type, $color, $where);
  $from = $_[0]; $type = $_[1]; $color = $_[2]; $where = $_[3];
  if ($from == 0) {
    $from = 'lastcontainer';
  } uo::ignorereset();
  do{
    uo::findtype($type, $color, $from);
    if (uo::findcount()) {
      uo::moveitem('finditem', -1, $where);
      &wait(100);
    }
  } until (uo::findcount() == 0);
  uo::ignore('lastcontainer');
}


ЗЫ Рабочий аналог на простом инжекте..

Code: Select all


sub BankSorter()
  var WepTQ = 6 ; количество типов оружия для сортировки
  Dim WepBag[ val( str( WepTQ ) ) ] ; сериалы сумок для сортировки оружия
  WepBag[1] = '0x417F4AC8' ; bag for katanas
  WepBag[2] = '0x4185398A' ; bag for kryss
  WepBag[3] = '0x417DAEF6' ; bag for viking sword
  WepBag[4] = '0x417E70BC' ; bag for longsword
  WepBag[5] = '0x417D4D92' ; bag for magic staff
  WepBag[6] = '0x417D3D58' ; bag for cutlass

  var ArmTQ = 7 ; количество типов брони для сортировки
  Dim ArmorBag[ val( str( ArmTQ ) ) ]  ; сериалы сумок для сортировки брони
  ArmorBag[1] = '0x4183B723' ; bag for berserker
  ArmorBag[2] = '0x4180C3A9' ; bag for snow
  ArmorBag[3] = '0x417D30FF' ; bag for scorpion
  ArmorBag[4] = '0x417DC775' ; bag for reptile
  ArmorBag[5] = '0x417E5881' ; bag for acid maniac
  ArmorBag[6] = '0x417E70BC' ; bag for +1,+3,+5,+7
  ArmorBag[7] = '0x417D3D58' ; bag gargul

  Dim weapon[ val( str( WepTQ ) ) ]    ; Оружие для сортировки
  weapon[1] = '0x13FE' ; katana
  weapon[2] = '0x1400' ; kryss
  weapon[3] = '0x1400' ; viking sword
  weapon[4] = '0x0F61' ; longsword
  weapon[5] = '0x13F8' ; magic staff
  weapon[6] = '0x1440' ; cutlass

  Dim Armor[ val( str( ArmTQ ) ) ]    ; броня для сортировки
  Armor[1] = '0x07EC' ; berserker
  Armor[2] = '0x0481' ; snow
  Armor[3] = '0x0497' ; scorpion
  Armor[4] = '0x049F' ; reptile
  Armor[5] = '0x049C' ; acid maniac
  Armor[6] = '0x048F' ; +1,+3,+5,+7
  Armor[7] = '0x0482' ; gargule

  Var FullTQ = 14
  Dim Full[ val( str( FullTQ ) ) ]    ; типы арморов
  Full[1] = '0x1412' ; plate arm
  Full[2] = '0x1413' ; plate arm
  Full[3] = '0x1415' ; plate arm
  Full[4] = '0x1411' ; plate arm
  Full[5] = '0x1410' ; plate arm
  Full[6] = '0x1414' ; plate arm
  Full[7] = '0x1C04' ; plate liv4ik
  Full[8] = '0x140E' ; plate helm
  Full[9] = '0x13C4' ; xz
  Full[10] = '0x13C4' ; chainmail
  Full[11] = '0x1B76' ; heather
  Full[12] = '0x13EF' ; chain arms
  Full[13] = '0x1B7B' ; buckler
  Full[14] = '0x13CA' ; tunic
 
  var RegsTQ = 9
  Dim Regs[ val( str( RegsTQ ) ) ]     ; Реги, бинты, скролы
  Regs[1] = '0x0F7A'   ; black pearls
  Regs[2] = '0x0F7B'   ; bood moss
  Regs[3] = '0x0F8D'   ; spiders silk
  Regs[4] = '0x0F84'   ; garlic
  Regs[5] = '0x0F85'   ; ginseng
  Regs[6] = '0x0F86'   ; mandrake root
  Regs[7] = '0x0F88'   ; night shade
  Regs[8] = '0x0F8C'   ; sulphorous ash
  Regs[9] = '0x0E21'   ; Bandages
;----------------------------------------------------------------------------
  uo.msg('Bank')
  wait(100)
  UO.Usefromground('0x20E0') ; open bank
  wait(100)
  var i,n
  start:
  For i = 1 to WepTQ
    banksort( 0, weapon[i], -1, WepBag[i] )
    wait(100)
    ;UO.MoveItem( WepBag[i], -1, uo.getglobal('MainWepBag') )
  next
  For n = 1 to FullTQ
    For i = 1 to ArmTQ
      banksort( 0, Full[n], Armor[i], ArmorBag[i] )
      wait(100)
      ;UO.MoveItem( ArmorBag[i], -1, uo.getglobal('MainArmBag') )
    next
  next
  For i = 1 to RegsTQ
    banksort( 0, Regs[i], -1, uo.getglobal('MainRegBag') )
    wait(100)
  next
  For i = 1 to ArmTQ
      banksort( 0, '0x1BEF', -1, uo.getglobal('MainIngotBag') )
  next
  banksort( 0, '0x0E85', -1, uo.getglobal('MainIngotBag') ) ; pickaxe
end sub

sub BankSort( From, ItemType, Color, where )
  If From == 0 || From == '' then
    From = 'lastcontainer'
  endif
  UO.IgnoreReset()
  Repeat
    UO.FindType(ItemType, Color, From)
    If UO.FindCount() Then
      UO.MoveItem('finditem', -1, where)
      Wait(100)
    EndIf
  Until (Not UO.FindCount())
  UO.Ignore('lastcontainer')
endsub



Грин, я тебя жду :wink:
Post Reply