Yoko

All sides of Injection
It is currently 2024-03-28 12:37:03

All times are UTC+02:00




Post new topic  Reply to topic  [ 6 posts ] 
Author Message
PostPosted: 2014-03-23 20:29:54 
Offline
User avatar

Joined: 2012-12-15 12:03:25
Posts: 119
Location: C-Петербург
Хочу здесь выкладывать скрипты на тему переклада вещей с одного места на другое, их сортировки и расклада по координатам в контейнере.
Например
Переклад драгкамней.
Работа:
Таргет на сундук-источник, таргет на сундук-приемник.

Code:
###########################################
sub perekladGEM()
   #****ДРВ*****#
   # (C) Cooper
   #modified by Kobol 2013
   #****v1.0****#
   VAR Ttov, tovar
   var i
   uo.charprint('1069','Берем другую сумку') ; = красивая надпись над персонажем видимая только хозяину.
   dim gem[34]
   gem[0]=0x0F10 ;emerald
   gem[1]=0x0F11 ;a sapphire
   gem[2]=0x0F12 ;Краска для волос
   gem[3]=0x0F13 ;Краска для волос
   gem[4]=0x0F14 ;Краска для волос
   gem[5]=0x0F15 ;citrin
   gem[6]=0x0F16 ;Краска для волос
   gem[7]=0x0F17 ;Краска для волос
   gem[8]=0x0F18 ;Турмалины
   gem[9]=0x0F19 ;Сапфиры
   gem[10]=0x0F1A ;Турмалины
   gem[11]=0x0F1B ;Турмалины
   gem[12]=0x0F1C ;Турмалины
   gem[13]=0x0F1D ;Турмалины
   gem[14]=0x0F1E ;Турмалины
   gem[15]=0x0F1F ;Сапфиры
   gem[16]=0x0F20 ;diamond
   gem[17]=0x0F21 ;diamond
   gem[18]=0x0F22 ;amethist
   gem[19]=0x0F23 ;Ситрины citrin
   gem[20]=0x0F24 ;Ситрины citrin
   gem[21]=0x0F25 ;an piece of amber
   gem[22]=0x0F26 ;diamond
   gem[23]=0x0F27 ;diamond
   gem[24]=0x0F28 ;a diamond
   gem[25]=0x0F29 ;a diamond
   gem[26]=0x0F2A ;a ruby
   gem[27]=0x0F2B ;a ruby
   gem[28]=0x0F2C ;a ruby
   gem[29]=0x0F2D ;a tourmaline
   gem[30]=0x0F2E ;emerald
   gem[31]=0x0F2F ;star sapphire
   gem[32]=0x0F30 ;diamonds
   gem[33]=0x0F0F ;star sapphire
   UO.Print('Выбери ИСТОЧНИК')
   UO.Exec('addobject istok')
   while UO.Targeting()
      wait(100)
   wend
   UO.UseObject('istok')
   UO.Print('Выбери ПРИЕМНИК')
   UO.Exec('addobject priem')
   while UO.Targeting()
      wait(100)
   wend
   ;UO.Print('Выбери ТОВАР')
   ;UO.Exec('addobject tovar')
   ;while UO.Targeting()
   ;wait(100)
   ;wend
   for i=0 to 33
      tovar=gem[i]
      ;TTov = UO.GetGraphic('tovar')
      UO.Print('tovar ='+str(tovar ))
      UO.FindType(tovar,'-1','istok')
      UO.Print('Found '+str(UO.FindCount())+' gem N '+str(i))
      If UO.FindCount() > 0 then
         repeat
            UO.MoveItem('finditem', '0', 'priem')
            wait(1000)
            UO.FindType(tovar,'-1','istok')
         until not UO.FindCount()
         UO.Print('Finished gem N '+str(i))
      else
         UO.Print('Not found gem N ' +str(i))
      endif
   next
   UO.Print('pereklad complete ' )
end sub


Top
   
PostPosted: 2014-03-26 21:51:43 
Offline
User avatar

Joined: 2012-12-15 12:03:25
Posts: 119
Location: C-Петербург
Переклад бутылок с раскладом по координатам.

Code:
var clr=38, clo=43, cly=53, clg=63, clb=3, cla=89, clda=83, clp=120 , clgr=1088, clw=1156
var typeBottle='0x0F0E'
var typeExplosion='0x0F0D'
var typeAntiF='0x0F03'
var totalB=1 ; если 0, то перекладываются бутылки того цвета и типа на который кликнули при выборе. Если 1, то выбор бутылки не предлагается и перекладываются-раскладываются все бутылки из контейнера-источника.
# ---  цвета бутылок
var clrEmpty="0x0000"
var clrAgility="0x0489"
var clrCure="0x09A6"
var clrHeal="0x09BB"
var clrNightsight="0x0B9D"
var clrPoison="0x0998"
var clrRefresh="0x0997"
var clrStrength="0x0482"
var clrShrink="0x0388"
var clrInvis="0x0631"
var clrMana="0x09DF"
var clrClever="0x0482"
var clrBless="0x09C5"
var clrSteelskin="0x0962"
var clrStoneskin="0x0964"
var clrLavaBomb="0x09DA"
var clrExplosion="0x0B99"
var clrAntiF="0x09CF"
; итого 16+2 цветов
###################################################
Sub PrintInColor(text,color)
   # PrintInColor("здесь текст",'цвет текста')
   # красный   - '38' или '0x0026'  # темно-бирюзовый - '83' или '0x0053'
   # оранжевый - '43' или '0x002B'  # голубой    - '89'  или '0x0059'
   # желтый    - '53' или '0x0035'  # синий      - '3'   или '0x0003'
   # зеленый   - '63' или '0x003F'  # фиолетовый - '120' или '0x0078'
   # '1088' - по умолчанию
   # 1152 - бирюзовый 1151 - черный 1155 - фиолетовый 1156 - белый  1158 - кр 1161 - синий 1162 - темно зел 1166 ткр 1169 сз
   # 2500 2524 - оранж  2517 кр 2567 малин 2566=0x0A06 белый
   #  2998 - белый 3008 3221 3600 и выше - контур
   UO.ConColor(color)
   ;UO.Exec('set quiet 0')   # Показывать сообщения Injection.
   UO.Print(text)
   ;UO.Exec('set quiet 1')   # Не показывать сообщения Injection.
   UO.ConColor('1088')
endsub
###################################################
sub perekladBottle()
   #****ДРВ*****#
   # based on (C) Cooper
   # modified by Kobol 2014
   # перекладывает бутылки из мешка с кучей несортированных в другой мешок,
   # раскладывая их по кучкам (координатам) в соответствии с типом, в т.ч. некучкующиеся. TWI должен быть включен.
   # координаты фиксированы в скрипте для каждого типа бутылки - своя координата
   #****v1.0****#
   ;VAR Item ; object перекладываемого предмета
   # ---  цвета бутылок
   dim bColor[18]
   bColor[0]="0x0000" ; Empty
   bColor[1]="0x0489" ; Agility
   bColor[2]="0x09A6" ; Cure
   bColor[3]="0x09BB" ; Heal
   bColor[4]="0x0B9D" ; Nightsight
   bColor[5]="0x0998" ; Poison
   bColor[6]="0x0997" ; Refresh
   bColor[7]="0x0482" ; Strength
   bColor[8]="0x0388" ; Shrink
   bColor[9]="0x0631" ; Invis
   bColor[10]="0x09DF" ; Mana
   bColor[11]="0x0482" ; Clever
   bColor[12]="0x09C5" ; Bless
   bColor[13]="0x0962" ; Steelskin
   bColor[14]="0x0964" ; Stoneskin
   bColor[15]="0x09DA" ; LavaBomb
   bColor[16]="0x0B99" ; clrExplosion
   bColor[17]="0x09CF" ; clrAntiF
   
   # ---  типы бутылок
   dim bType[3]
   bType[0]=typeBottle
   bType[1]=typeExplosion
   bType[2]=typeAntiF
   
   var ItemColor, ItemName, ItemType, x,y, dx, dy,i,col,row, ColCount, RowCount, cIdx, X0=30, Y0=20
   Var CurrName='' ; имя взятого предмета
   dx=12 ; шаг по X
   dy=20 ; шаг по Y
   x=X0 ; координата X первого предмета
   y=Y0 ; координата Y первого предмета
   col=0 ; текущее количество в ряду
   row=0
   ;ColCount=8 ; максимальное количество в ряду (количество колонок)
   ;RowCount=8 ;  максимальное количество рядов
   
   
   # ---  коорд бутылок
   dim bCoordX[33]
   dim bCoordY[33]
   for i=0 to 7
      bCoordX[i]=X0+dx*i
      bCoordY[i]=Y0
   next
   for i=8 to 15
      bCoordX[i]=X0+dx*i
      bCoordY[i]=Y0+dy
   next
   
   
   dim bName[33]
   ;-------- 1 ряд ------------
   bName[0]="empty bottle"       ;0'!!! "0x0000"
   bCoordX[0]=X0
   bCoordY[0]=Y0
   bName[1]="Agility"            ;1' "0x0489"-
   bCoordX[1]=X0+dx*1
   bCoordY[1]=Y0
   bName[2]="Greater Agility"    ;1' "0x0489"-
   bCoordX[2]=X0+dx*2
   bCoordY[2]=Y0
   bName[3]="Lesser Cure"        ;2' "0x09A6"-
   bCoordX[3]=X0+dx*3
   bCoordY[3]=Y0
   bName[4]="Cure"               ;2 "0x09A6" -
   bCoordX[4]=X0+dx*4
   bCoordY[4]=Y0
   bName[5]="Greater Cure"       ;2'!!! "0x09A6"-
   bCoordX[5]=X0+dx*5
   bCoordY[5]=Y0
   ;-------- 2 ряд -------------
   bName[6]="Lesser Heal"        ;3' "0x09BB"-
   bCoordX[6]=X0
   bCoordY[6]=Y0+dy
   bName[7]="Heal"               ;3' "0x09BB"-
   bCoordX[7]=X0+dx
   bCoordY[7]=Y0+dy
   bName[8]="Greater Heal"       ;3'!!! "0x09BB"-
   bCoordX[8]=X0+dx*2
   bCoordY[8]=Y0+dy
   bName[9]="Nightsight"         ;4,' "0x0B9D"-
   bCoordX[9]=X0+dx*3
   bCoordY[9]=Y0+dy
   ;---------3 ряд --------
   bName[10]="Lesser Poison"     ;5, "0x0998"-
   bCoordX[10]=X0+dx*1
   bCoordY[10]=Y0+dy*2
   bName[11]="Poison"            ;5, "0x0998"-
   bCoordX[11]=X0+dx*2
   bCoordY[11]=Y0+dy*2
   bName[12]="Greater Poison"    ;5, "0x0998"-
   bCoordX[12]=X0+dx*3
   bCoordY[12]=Y0+dy*2
   bName[13]="Deadly Poison"     ;5'!!! "0x0998"-
   bCoordX[13]=X0+dx*4
   bCoordY[13]=Y0+dy*2
   bName[14]="Refresh"           ;6, "0x0997"-
   bCoordX[14]=X0+dx*5
   bCoordY[14]=Y0+dy*2
   bName[15]="Total Refresh"     ;6'!!! "0x0997"-
   bCoordX[15]=X0+dx*6
   bCoordY[15]=Y0+dy*2
   ;---------4 ряд -------------
   bName[16]="Strength"          ;7,' "0x0482"-
   bCoordX[16]=X0+dx*1
   bCoordY[16]=Y0+dy*3
   bName[17]="Greater Strength"  ;7,' "0x0482"-
   bCoordX[17]=X0+dx*2
   bCoordY[17]=Y0+dy*3
   bName[18]="Shrink"            ;8'!!! "0x0388"-
   bCoordX[18]=X0+dx*3
   bCoordY[18]=Y0+dy*3
   bName[19]="Invisibility"      ;9'!!! "0x0631"-
   bCoordX[19]=X0+dx*4
   bCoordY[19]=Y0+dy*3
   bName[20]="Total Mana"        ;10'!!! "0x09DF"-
   bCoordX[20]=X0+dx*5
   bCoordY[20]=Y0+dy*3
   bName[21]="Mana"              ;10, "0x09DF"-
   bCoordX[21]=X0+dx*6
   bCoordY[21]=Y0+dy*3
   ;---------5 ряд ---------------
   bName[22]="Clever"            ;11,' "0x0482"-
   bCoordX[22]=X0+dx*1
   bCoordY[22]=Y0+dy*4
   bName[23]="Greater Clever"    ;11,' "0x0482"-
   bCoordX[23]=X0+dx*2
   bCoordY[23]=Y0+dy*4
   bName[24]="Bless"             ;12,' "0x09C5"-
   bCoordX[24]=X0+dx*3
   bCoordY[24]=Y0+dy*4
   bName[25]="Greater Bless"     ;12,' "0x09C5"-
   bCoordX[25]=X0+dx*4
   bCoordY[25]=Y0+dy*4
   bName[26]="Steelskin"         ;13,' "0x0962"-
   bCoordX[26]=X0+dx*5
   bCoordY[26]=Y0+dy*4
   bName[27]="Stoneskin"         ;14'!!! "0x0964"-
   bCoordX[27]=X0+dx*6
   bCoordY[27]=Y0+dy*4
   ;----------6 ряд -------------
   bName[28]="Lesser Explosion"  ;15 '"0x0B99" type=0x0F0D -
   bCoordX[28]=X0+dx*1
   bCoordY[28]=Y0+dy*5
   bName[29]="Greater Explosion" ;15-"0x0B99"
   bCoordX[29]=X0+dx*2
   bCoordY[29]=Y0+dy*5
   bName[30]="Explosion"         ;15 '"0x0B99"
   bCoordX[30]=X0+dx*3
   bCoordY[30]=Y0+dy*5
   bName[31]="Lava Bomb"         ;15'!!! "0x09DA" -
   bCoordX[31]=X0+dx*4
   bCoordY[31]=Y0+dy*5
   bName[32]="Antifreeze"        ;16'!!! Colour: 0x09CF Type=0x0F03   -
   bCoordX[32]=X0+dx*5
   bCoordY[32]=Y0+dy*5
   
   
   UO.Print('Выбери ИСТОЧНИК (FROM)')
   UO.Exec('addobject istok')
   while UO.Targeting()
      wait(100)
   wend
   UO.UseObject('istok')
   
   UO.Print('Выбери ПРИЕМНИК (TO) ')
   UO.Exec('addobject priem')
   while UO.Targeting()
      wait(100)
   wend
   UO.UseObject('priem')
   
   
   if totalB==0 then ; --------------------
      UO.Print('Выбери Бутылку (Bottle)')
      UO.Exec('addobject Item')
      
      while UO.Targeting()
         wait(100)
      wend
      UO.click('Item')
      wait(200)
      
      ItemType = UO.GetGraphic('Item') ; берем тип выбранного object
      ItemColor=uo.getcolor('Item')
      Itemname=Uo.GetName('Item')
      PrintInColor("ItemType="+ItemType, clw)
      PrintInColor("ItemColor="+ItemColor, clw)
      PrintInColor("ItemName="+ItemName, clw)
   else
      ItemColor="-1"
      ItemType =typeBottle
   end if ;-------------------------------
   
   var Tidx, k,  TCount=3 ; cколько типов бутылок обрабатывать. Зависит от флага totalB. Если totalB=1, то перетаскивать все три типа бутылок. Если totalB=0 - то только выбранный тип.
   if totalB==1 then
      TCount=3
      Tidx=0
   else
      bType[0]=ItemType
      TCount=0
      Tidx=0
      
   end if
   cIdx=0
   for k=Tidx to TCount-1  ;=============================
      ItemType=bType[k]
      
      UO.FindType(ItemType,ItemColor,'istok')
      If UO.FindCount() > 0 then
         repeat
            uo.click('finditem')
            wait(200)
            Itemname=Uo.GetName('finditem')
            PrintInColor(ItemName, cla)
            for i=0 to 32
               if instr(Itemname,bName[i]) >-1 then ######## ИСПРАВИТЬ - выделить имя и сравнивать без количества
                  cIdx=i
                  ;i=15
               end if
            next
            
            x=bCoordX[cIdx]
            y=bCoordY[cIdx]
            
            
            UO.MoveItem('finditem', '1111', 'priem',x,y,'0')
            wait(700)
            CheckLag()
            UO.FindType(ItemType,ItemColor,'istok')
            wait(400)
         until not UO.FindCount()
         UO.Print('Complete...')
      else
         UO.Print('Nothing to transfer...')
      endif
   next ;=============================
end sub
############################################################
Sub CheckLag()
   UO.DeleteJournal()
   UO.Click('backpack')
   repeat
      Wait(250)
   until UO.InJournal('backpack')
end sub
###########################################
sub InStr(Source, subStr)
   var n = len(subStr)
   var j
   if len(Source)>=len(subStr) then
      
      for var i = 0 to len(Source)-n
         j = 0
         while (j < n) and (Source[i+j] == subStr[j])
            j = j+1;
         wend
         if j == n then
            return i
         end if
      next
   else
   end if
   return -1
   
end sub



Top
   
PostPosted: 2014-04-06 20:15:53 
Offline
User avatar

Joined: 2012-12-15 12:03:25
Posts: 119
Location: C-Петербург
Для старой инжи.
Переклад вандов с раскладкой по координатам. Но все равно вручную найти нужный ванд невозможно )
Указывем источник, указываем приемник.
Если попадается нераспознанный ванд, автоматически юзается Item Identification.
Координаты жестко привязаны к именам вандов, задаются в массиве.

Code:
var clr=38, clo=43, cly=53, clg=63, clb1=3, cla=89, clda=83, clp=120 , clgr=1088, clb=1161, clw=2998
# красный   - '38' или '0x0026'  # темно-бирюзовый - '83' или '0x0053'
# оранжевый - '43' или '0x002B'  # голубой    - '89'  или '0x0059'
# желтый    - '53' или '0x0035'  # синий      - '3'   или '0x0003'
# зеленый   - '63' или '0x003F'  # фиолетовый - '120' или '0x0078'
# '1088' - по умолчанию
# 1152 - бирюзовый 1151 - черный 1155 - фиолетовый 1156 - белый  1158 - кр 1161 - синий 1162 - темно зел 1166 ткр 1169 сз
# 2500 2524 - оранж  2517 кр 2567 малин 2566=0x0A06 белый
#  2998 - белый 3008 3221 3600 и выше - контур
###################################################
Sub PrintInColor(text,color)
   # PrintInColor("здесь текст",'цвет текста')
   # красный   - '38' или '0x0026'  # темно-бирюзовый - '83' или '0x0053'
   # оранжевый - '43' или '0x002B'  # голубой    - '89'  или '0x0059'
   # желтый    - '53' или '0x0035'  # синий      - '3'   или '0x0003'
   # зеленый   - '63' или '0x003F'  # фиолетовый - '120' или '0x0078'
   # '1088' - по умолчанию
   # 1152 - бирюзовый 1151 - черный 1155 - фиолетовый 1156 - белый  1158 - кр 1161 - синий 1162 - темно зел 1166 ткр 1169 сз
   # 2500 2524 - оранж  2517 кр 2567 малин 2566=0x0A06 белый
   #  2998 - белый 3008 3221 3600 и выше - контур
   UO.ConColor(color)
   ;UO.Exec('set quiet 0')   # Показывать сообщения Injection.
   UO.Print(text)
   ;UO.Exec('set quiet 1')   # Не показывать сообщения Injection.
   UO.ConColor('1088')
endsub
###################################################
sub perekladWand()
   #****ДРВ*****#
   # (C) Cooper
   # modified by Kobol 2014
   #****v1.0****#
   DIM WandType[4]
   WandType[0] = '0x0DF2' ;
   WandType[1] = '0x0DF3' ;
   WandType[2] = '0x0DF4' ;
   WandType[3] = '0x0DF5' ;
   #------------- примеры имен вандов ----------------
   ;a Magic wand of Cure (8 charges)
   ;a Magic wand of Mana Drain (10 charges)
   ;a Magic wand of Reactive Armor (10 charges)
   ;a Magic wand of Flame Strike (8 charges)
   ;нужно сравнивать по имени и учитывать число зарядов. разряженные ванды не брать
   
   
   VAR Item ; object перекладываемого предмета
   var ItemColor,x,y,i,col,row, ColCount, RowCount,TTov, X0=35, Y0=35, dx=10, dy=15
   var si ; счетчик текущий  Wand
   var ti ; счетчик типов  Wand
   var WNameCurr, WNameRQ, zz
   var nedo ; сколько недостает Wandов
   var d ;   счетчик докладываемых
   
   i=4 ; шаг
   x=X0 ; координата X первого предмета
   y=Y0 ; координата Y первого предмета
   col=0 ; текущее количество в ряду
   row=0
   ColCount=15 ; максимальное количество в ряду (количество колонок)
   RowCount=7 ;  максимальное количество рядов
   
   
   # ---  коорд вандов
   dim wCoordX[64]
   dim wCoordY[64]
   
   #-------------
   DIM WandName[64] ; названия заклинаний
   
   ;-------- 1 ряд -------------
   WandName[31] = 'a Magic wand of Recall'; !!!!!!!!!!!!!!! 13 -10
   wCoordX[31]=X0
   wCoordY[31]=Y0
   WandName[37] = 'a Magic wand of Paralyze Field'; !!!!!!!!!!!!!!! 20 -10
   wCoordX[37]=X0+1*dx
   wCoordY[37]=Y0+6*dy
   WandName[46] = 'a Magic wand of Paralyze'; !!!!!!!!!!!!!!! 17 -10
   wCoordX[46]=X0+2*dx
   wCoordY[46]=Y0+6*dy
   WandName[23] = 'a Magic wand of Wall of Stone'; !!!!!!!!!!!!!!! 9 -10
   wCoordX[23]=X0+3*dx
   wCoordY[23]=Y0
   WandName[27] = 'a Magic wand of Fire Field'; !!!!!!!!!!!!!!!  10 -5
   wCoordX[27]=X0+4*dx
   wCoordY[27]=Y0
   WandName[28] = 'a Magic wand of Greater Heal'; !!!!!!!!!!!!!!! 11 -10
   wCoordX[28]=X0+5*dx
   wCoordY[28]=Y0
   WandName[10] = 'a Magic wand of Cure'; !!!!!!!!!!!!!!! 3 -5
   wCoordX[10]=X0+6*dx
   wCoordY[10]=Y0
   WandName[6] = 'a Magic wand of Reactive Armor'; !!!!!!!!!!!!!!! 2 -10
   wCoordX[6]=X0+7*dx
   wCoordY[6]=Y0
   WandName[32] = 'a Magic wand of Blade Spirit'; !!!!!!!!!!!!!!! 14 -5
   wCoordX[32]=X0+8*dx
   wCoordY[32]=Y0
   WandName[35] = 'a Magic wand of Magic Reflect'; !!!!!!!!!!!!!!! 16 -10
   wCoordX[35]=X0+9*dx
   wCoordY[35]=Y0
   
   ;-------- 2 ряд -------------
   WandName[4] = 'a Magic wand of Magic Arrow' ;!!!!!!!!!!!!!!!    1 -10
   wCoordX[4]=X0
   wCoordY[4]=Y0+1*dy
   WandName[14] = 'a Magic wand of Protection'; !!!!!!!!!!!!!!! 4 -5
   wCoordX[14]=X0+1*dx
   wCoordY[14]=Y0+1*dy
   WandName[17] = 'a Magic wand of Fireball'; !!!!!!!!!!!!!!! 5 -5
   wCoordX[17]=X0+2*dx
   wCoordY[17]=Y0+1*dy
   WandName[19] = 'a Magic wand of Poison'; !!!!!!!!!!!!!!! 6 -10
   wCoordX[19]=X0+3*dx
   wCoordY[19]=Y0+1*dy
   WandName[20] = 'a Magic wand of Telekinesis'; !!!!!!!!!!!!!!! 7 -5
   wCoordX[20]=X0+4*dx
   wCoordY[20]=Y0+1*dy
   WandName[21] = 'a Magic wand of Teleport'; !!!!!!!!!!!!!!! 8 -5
   wCoordX[21]=X0+5*dx
   wCoordY[21]=Y0+1*dy
   WandName[30] = 'a Magic wand of Mana Drain'; !!!!!!!!!!!!!!! 12 -5
   wCoordX[30]=X0+6*dx
   wCoordY[30]=Y0+1*dy
   WandName[33] = 'a Magic wand of Dispel Field'; !!!!!!!!!!!!!!! 15 -5
   wCoordX[33]=X0+7*dx
   wCoordY[33]=Y0+1*dy
   WandName[38] = 'a Magic wand of Poison Field'; !!!!!!!!!!!!!!! 18 -10
   wCoordX[38]=X0+8*dx
   wCoordY[38]=Y0+1*dy
   WandName[43] = 'a Magic wand of Invisibility'; !!!!!!!!!!!!!!! 19 -10
   wCoordX[43]=X0+9*dx
   wCoordY[43]=Y0+1*dy
   WandName[47] = 'a Magic wand of Reveal'; !!!!!!!!!!!!!!! 21 -10
   wCoordX[47]=X0+10*dx
   wCoordY[47]=Y0+1*dy
   
   ;-------- 3 ряд малоценка -------------
   
   WandName[29] = 'a Magic wand of Lightning';
   wCoordX[29]=X0+0*dx
   wCoordY[29]=Y0+2*dy
   WandName[34] = 'a Magic wand of Incognito';
   wCoordX[34]=X0+1*dx
   wCoordY[34]=Y0+2*dy
   WandName[36] = 'a Magic wand of Mind Blast';
   wCoordX[36]=X0+2*dx
   wCoordY[36]=Y0+2*dy
   WandName[39] = 'a Magic wand of Summon';
   wCoordX[39]=X0+3*dx
   wCoordY[39]=Y0+2*dy
   WandName[40] = 'a Magic wand of Dispel';
   wCoordX[40]=X0+4*dx
   wCoordY[40]=Y0+2*dy
   WandName[41] = 'a Magic wand of Energy Bolt';
   wCoordX[41]=X0+5*dx
   wCoordY[41]=Y0+2*dy
   WandName[42] = 'a Magic wand of Explosion';
   wCoordX[42]=X0+6*dx
   wCoordY[42]=Y0+2*dy
   WandName[44] = 'a Magic wand of Mark';
   wCoordX[44]=X0+7*dx
   wCoordY[44]=Y0+2*dy
   WandName[45] = 'a Magic wand of Mass Curse';
   wCoordX[45]=X0+8*dx
   wCoordY[45]=Y0+2*dy
   WandName[48] = 'a Magic wand of Chain Lightning';
   wCoordX[48]=X0+9*dx
   wCoordY[48]=Y0+2*dy
   WandName[49] = 'a Magic wand of Energy Field';
   wCoordX[49]=X0+10*dx
   wCoordY[49]=Y0+2*dy
   WandName[50] = 'a Magic wand of Flame Strike';
   wCoordX[50]=X0+11*dx
   wCoordY[50]=Y0+2*dy
   WandName[51] = 'a Magic wand of Gate Travel';
   wCoordX[51]=X0+12*dx
   wCoordY[51]=Y0+2*dy
   ;-------- 4 ряд малоценка -------------
   WandName[52] = 'a Magic wand of Mana Vampire';
   wCoordX[52]=X0
   wCoordY[52]=Y0+3*dy
   WandName[53] = 'a Magic wand of Mass Dispel';
   wCoordX[53]=X0+1*dx
   wCoordY[53]=Y0+3*dy
   WandName[54] = 'a Magic wand of Meteor Swarm';
   wCoordX[54]=X0+2*dx
   wCoordY[54]=Y0+3*dy
   WandName[55] = 'a Magic wand of Polymorph';
   wCoordX[55]=X0+3*dx
   wCoordY[55]=Y0+3*dy
   WandName[56] = 'a Magic wand of Earthquake';
   wCoordX[56]=X0+4*dx
   wCoordY[56]=Y0+3*dy
   WandName[57] = 'a Magic wand of Energy Vortex';
   wCoordX[57]=X0+5*dx
   wCoordY[57]=Y0+3*dy
   WandName[58] = 'a Magic wand of Resurrection';
   wCoordX[58]=X0+6*dx
   wCoordY[58]=Y0+3*dy
   WandName[59] = 'a Magic wand of Air Elemental';
   wCoordX[59]=X0+7*dx
   wCoordY[59]=Y0+3*dy
   WandName[60] = 'a Magic wand of Daemon'; 'Magic wand of Daemon'
   wCoordX[60]=X0+8*dx
   wCoordY[60]=Y0+3*dy
   WandName[61] = 'a Magic wand of Earth Elemental';
   wCoordX[61]=X0+9*dx
   wCoordY[61]=Y0+3*dy
   WandName[62] = 'a Magic wand of Fire Elemental';
   wCoordX[62]=X0+10*dx
   wCoordY[62]=Y0+3*dy
   WandName[63] = 'a Magic wand of Water Elemental';
   wCoordX[63]=X0+11*dx
   wCoordY[63]=Y0+3*dy
   
   ;-------- 5 ряд  хлам -------------
   WandName[0] = 'a Magic wand of Clumsy'
   wCoordX[0]=X0
   wCoordY[0]=Y0+4*dy
   WandName[1] = 'a Magic wand of Create Food'
   wCoordX[1]=X0+1*dx
   wCoordY[1]=Y0+4*dy
   WandName[2] = 'a Magic wand of Feeblemind'
   wCoordX[2]=X0+2*dx
   wCoordY[2]=Y0+4*dy
   WandName[3] = 'a Magic wand of Heal'
   wCoordX[3]=X0+3*dx
   wCoordY[3]=Y0+4*dy
   WandName[5] = 'a Magic wand of Night Sight'
   wCoordX[5]=X0+4*dx
   wCoordY[5]=Y0+4*dy
   WandName[7] = 'a Magic wand of Weaken'
   wCoordX[7]=X0+5*dx
   wCoordY[7]=Y0+4*dy
   WandName[8] = 'a Magic wand of Agility'
   wCoordX[8]=X0+6*dx
   wCoordY[8]=Y0+4*dy
   WandName[9] = 'a Magic wand of Cunning'
   wCoordX[9]=X0+7*dx
   wCoordY[9]=Y0+4*dy
   WandName[11] = 'a Magic wand of Harm';
   wCoordX[11]=X0+8*dx
   wCoordY[11]=Y0+4*dy
   WandName[12] = 'a Magic wand of Magic Trap';
   ;-------- 6 ряд  хлам -------------
   wCoordX[12]=X0+0*dx
   wCoordY[12]=Y0+5*dy
   WandName[13] = 'a Magic wand of Magic Untrap';
   wCoordX[13]=X0+1*dx
   wCoordY[13]=Y0+5*dy
   WandName[15] = 'a Magic wand of Strength';
   wCoordX[15]=X0+2*dx
   wCoordY[15]=Y0+5*dy
   WandName[16] = 'a Magic wand of Bless';
   wCoordX[16]=X0+3*dx
   wCoordY[16]=Y0+5*dy
   WandName[18] = 'a Magic wand of Magic Lock';
   wCoordX[18]=X0+4*dx
   wCoordY[18]=Y0+5*dy
   WandName[22] = 'a Magic wand of Unlock';
   wCoordX[22]=X0+5*dx
   wCoordY[22]=Y0+5*dy
   WandName[24] = 'a Magic wand of Arch Cure';
   wCoordX[24]=X0+6*dx
   wCoordY[24]=Y0+5*dy
   WandName[25] = 'a Magic wand of Arch Protection';
   wCoordX[25]=X0+7*dx
   wCoordY[25]=Y0+5*dy
   WandName[26] = 'a Magic wand of Curse';
   wCoordX[26]=X0+8*dx
   wCoordY[26]=Y0+5*dy
   
   
   var FullLoad ; флаг полной загрузки контейнера
   
   UO.Print('Выбери ИСТОЧНИК Wandов (From)')
   UO.Exec('addobject istok')
   while UO.Targeting()
      wait(100)
   wend
   UO.UseObject('istok')
   UO.Print('Выбери ПРИЕМНИК Wandов (To)')
   UO.Exec('addobject priem')
   while UO.Targeting()
      wait(100)
   wend
   UO.UseObject('priem')
   
   ; ищем ванды
   for ti=0  to 3 ; перебираем по типам вандов
      Ttov=WandType[ti]
      UO.FindType(Ttov,'-1','istok') ; находим wand в ящике
      If UO.FindCount() > 0 then
         
         d=0
         
         repeat ; <<<<<<<<<<<<<<< цикл поиска вандов в ящике
            uo.click ('finditem')
            wait (100)
            WNameCurr =UO.GetName( 'finditem' ) ; имя найденного ванда
            PrintInColor(WNameCurr,clw)
            
            GetNameAgain:
            if WNameCurr =="wand" or WNameCurr =="" then
               UO.MoveItem('finditem', '111', 'istok')
               UO.Useskill('Item Identification','finditem')
               wait(4500)
               checklag()
               uo.click ('finditem')
               wait (100)
               WNameCurr =UO.GetName( 'finditem' ) ; имя найденного ванда
               PrintInColor(WNameCurr,"0x0048")
               
               goto GetNameAgain
            end if
            
            for si=0  to 63 ; перебираем по всем именам вандов. Каждое имя кладем на свою координату.
               
               WNameRQ=WandName[si]
               WNameRQ=left(WNameRQ, InStr(WNameRQ, '(' ) ) ; a Magic wand of Mana Drain (10 charges)
               ;PrintInColor(WNameCurr,cla)
               ;PrintInColor(WNameRQ,cla)
               ;PrintInColor(str(si),'2998')
               zz=instr(WNameCurr,WNameRQ) ; имя из массива совпадает с именем найденного ванда?
               if zz>-1 then ;если да, то кладем его на соответствующую имени координату
      ; 'ищем текущее имя в списке, определяем его индекс и по этому индексу берем координаты из массива координат
                  x=wCoordX[si]
                  y=wCoordY[si]
                  ;PrintInColor("x="+str(x),clb)
                  ;wait(50)
                  ;PrintInColor("y="+str(y),clb)
                  wait(50)
                  
                  UO.MoveItem('finditem', '111', 'priem',x,y,'0')
                  wait(570)
                  d=d+1
                  si=63 ; изврат! выход из цикла , другие типы вандов перебирать не надо
               else
                  ;uo.Ignore("finditem") ; ??????????????
               end if
               wait (10)
            next ; переходим к следующему имени Wandа

            CheckLag()
            UO.FindType('-1','-1','priem')
            if UO.FindCount()==255 then
               FullLoad=1
               PrintInColor("Priemnik zapolnen!!!",clr)
            end if
            UO.FindType(Ttov,'-1','istok')
         until not UO.FindCount() or  FullLoad==1 ; ; <<<<<<<<<<<<<<<
      end if
   
      ;uo.print('Moved ' +str(d)  +' Wands <<<')
   
      wait (150)
      if FullLoad==1 then
      ti=3
      
      end if
   next ;  переходим к следующему типу Wandа

   uo.IgnoreReset()
   wait (100)
   UO.Print('Finished...')
end sub
############################################################
Sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
Wait(250)
until UO.InJournal('backpack')
endsub
############################################################
sub InStr(Source, subStr)
var n = len(subStr)
var j
if len(Source)>=len(subStr) then
for var i = 0 to len(Source)-n
j = 0
while (j < n) and (Source[i+j] == subStr[j])
j = j+1;
wend
if j == n then
return i
end if
next
else
end if
return -1
end sub




Top
   
PostPosted: 2014-10-24 09:24:50 
Offline

Joined: 2014-02-10 21:35:42
Posts: 9
можно ли к етому скрипту приделать так чтоб он например перетаскивал токо то количество бутылок каторое надо мне


Top
   
PostPosted: 2014-10-24 16:19:45 
Offline
User avatar

Joined: 2009-05-28 09:58:28
Posts: 2802
Location: Иваново
к этому какому? Тут 3 скрипта. А так можно :roll:

_________________
Image
YokoInjection CodeSweeper
Ошибка "Unhandled exception in parser"
Стрелялка для олдов.


Top
   
PostPosted: 2014-10-24 16:28:52 
Offline

Joined: 2014-02-10 21:35:42
Posts: 9
к 2 скрипту где с алхимиеи а то я вот делаю вар паки специально для продажи было бы хорошо если было бы по количеству


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: No registered users and 14 guests


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:  
cron
Powered by phpBB® Forum Software © phpBB Limited