Page 1 of 1

не работает крафт фулов

Posted: 2006-05-09 18:32:05
by Nort777
вот скрипт:

Code: Select all

;|            |--------------------| 
;|            | Full Armor Crafter |                      
;|------------| ver 1.02           |--------> 
;|            | crafted by Flake   | 
;|            |--------------------| 


sub CraftFullArmor() 

VAR IngotsNeed = '118'    ; Кол-во ингов, требуемое на крафт. 
VAR ArmBag = '0x0E76'   ; Тип мешков под арм 
VAR IngotsType, IngotsColor, ArmBagSer, QuantBefore, QuantFizzl, AddIngots, k, a, c 

Dim Choise[7] 
Choise[1] = "'Armor' 'Shields'  'Shields'  'Heater Shield'" 
Choise[2] = "'Armor' 'Plate Mail' 'Plate Mail' 'Platemail Gorget'" 
Choise[3] = "'Armor' 'Plate Mail' 'Plate Mail' 'Platemail Gauntlets'" 
Choise[4] = "'Armor' 'Plate Mail' 'Plate Mail' 'Plate Helm'" 
Choise[5] = "'Armor' 'Plate Mail' 'Plate Mail' 'Platemail Arms'" 
Choise[6] = "'Armor' 'Plate Mail' 'Plate Mail' 'Platemail Legs'" 
Choise[7] = "'Armor' 'Plate Mail' 'Plate Mail' 'Platemail'" 
  
Dim ArmPart[7] 
ArmPart[1] = 0x1415 ;Platemail 
ArmPart[2] = 0x1411 ;PlatemailLegs 
ArmPart[3] = 0x1410 ;PlatemailArms 
ArmPart[4] = 0x1414 ;PlatemailGauntlets 
ArmPart[5] = 0x1412 ;PlatemailHelm 
ArmPart[6] = 0x1413 ;PlatemailHelm 
ArmPart[7] = 0x1B76 ;Heater 

 UO.Print( 'Укажите контейнер с ингами!' ) 
 UO.Exec('addobject CraftBox') 
   While UO.Targeting() 
     Wait(100) 
   Wend 

 UO.Print( 'Укажите Инги для крафта!' ) 
 UO.Exec('addobject Ingots') 
   While UO.Targeting() 
     Wait(100) 
   Wend 

    IngotsType = UO.GetGraphic( 'Ingots' ) 
     IngotsColor = UO.GetColor( 'Ingots' ) 
    
  
    
 UO.FindType( IngotsType, IngotsColor, 'CraftBox' ) 
  While UO.GetQuantity( 'finditem' ) > IngotsNeed 
    UO.Grab( IngotsNeed,  'finditem' ) 
     CheckLag() 

         ;------------- Крафтим------------ 
     For c=1 To 7  
      Craft: 
     UO.FindType( IngotsType ) 
       QuantBefore = UO.GetQuantity( 'finditem' ) 
        UO.DeleteJournal() 
        UO.Exec('waitmenu '+Choise[c]) 
        UO.UseType( IngotsType ) 
         k = 0 
             While NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )              
           k = k + 1    
           Wait(500) 
           Wend 
             If UO.InJournal('fail') Then 
         ;----- Физл! Добовляем нужное кол-во инго и повторяем крафт. ------ 
         UO.FindType( IngotsType ) 
           QuantFizzl = UO.GetQuantity( 'finditem' ) 
           AddIngots = QuantBefore - QuantFizzl 
             UO.FindType( IngotsType, IngotsColor, 'CraftBox' ) 
           If UO.GetQuantity( 'finditem' ) > AddIngots Then 
          UO.Grab( AddIngots, 'finditem' ) 
          CheckLag() 
                   GoTo Craft 
           Else 
          UO.Print( 'Не достаточно ингов, завершаем крафт!' ) 
          UO.Exec( 'terminate CraftFullArmor' ) 
           EndIf          
             EndIf 
     Next 

               ;-----Сгружаем Арм в мешок, а затем кидаем мешок в сундук 
     UO.FindType( ArmBag ) 
     ArmBagSer = UO.GetSerial( 'finditem' ) 
      For a=1 To 7 
         UO.FindType( ArmPart[a] ) 
               If UO.FindCount() > 0 then 
               UO.MoveItem( 'finditem', -1, ArmBagSer ) 
               CheckLag() 
             EndIf 
        Next 
     UO.MoveItem( ArmBagSer, -1, 'CraftBox' ) 
     CheckLag() 
     UO.FindType( IngotsType, IngotsColor, 'CraftBox' ) 
  Wend 
end sub

берет реги, открывает меню крафта и останавливается...не пойму в чем дело
может галки каие проставить нада?

Re: не работает крафт фулов

Posted: 2006-05-09 18:48:26
by Kynep
Nort777 wrote:вот скрипт:

Code: Select all

;|            |--------------------| 
;|            | Full Armor Crafter |                      
;|------------| ver 1.02           |--------> 
;|            | crafted by Flake   | 
;|            |--------------------| 


sub CraftFullArmor() 

VAR IngotsNeed = '118'    ; Кол-во ингов, требуемое на крафт. 
VAR ArmBag = '0x0E76'   ; Тип мешков под арм 
VAR IngotsType, IngotsColor, ArmBagSer, QuantBefore, QuantFizzl, AddIngots, k, a, c 

Dim Choise[7] 
Choise[1] = "'Armor' 'Shields'  'Shields'  'Heater Shield'" 
Choise[2] = "'Armor' 'Plate Mail' 'Plate Mail' 'Platemail Gorget'" 
Choise[3] = "'Armor' 'Plate Mail' 'Plate Mail' 'Platemail Gauntlets'" 
Choise[4] = "'Armor' 'Plate Mail' 'Plate Mail' 'Plate Helm'" 
Choise[5] = "'Armor' 'Plate Mail' 'Plate Mail' 'Platemail Arms'" 
Choise[6] = "'Armor' 'Plate Mail' 'Plate Mail' 'Platemail Legs'" 
Choise[7] = "'Armor' 'Plate Mail' 'Plate Mail' 'Platemail'" 
  
Dim ArmPart[7] 
ArmPart[1] = 0x1415 ;Platemail 
ArmPart[2] = 0x1411 ;PlatemailLegs 
ArmPart[3] = 0x1410 ;PlatemailArms 
ArmPart[4] = 0x1414 ;PlatemailGauntlets 
ArmPart[5] = 0x1412 ;PlatemailHelm 
ArmPart[6] = 0x1413 ;PlatemailHelm 
ArmPart[7] = 0x1B76 ;Heater 

 UO.Print( 'Укажите контейнер с ингами!' ) 
 UO.Exec('addobject CraftBox') 
   While UO.Targeting() 
     Wait(100) 
   Wend 

 UO.Print( 'Укажите Инги для крафта!' ) 
 UO.Exec('addobject Ingots') 
   While UO.Targeting() 
     Wait(100) 
   Wend 

    IngotsType = UO.GetGraphic( 'Ingots' ) 
     IngotsColor = UO.GetColor( 'Ingots' ) 
    
  
    
 UO.FindType( IngotsType, IngotsColor, 'CraftBox' ) 
  While UO.GetQuantity( 'finditem' ) > IngotsNeed 
    UO.Grab( IngotsNeed,  'finditem' ) 
     CheckLag() 

         ;------------- Крафтим------------ 
     For c=1 To 7  
      Craft: 
     UO.FindType( IngotsType ) 
       QuantBefore = UO.GetQuantity( 'finditem' ) 
        UO.DeleteJournal() 
        UO.Exec('waitmenu '+Choise[c]) 
        UO.UseType( IngotsType ) 
         k = 0 
             While NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )              
           k = k + 1    
           Wait(500) 
           Wend 
             If UO.InJournal('fail') Then 
         ;----- Физл! Добовляем нужное кол-во инго и повторяем крафт. ------ 
         UO.FindType( IngotsType ) 
           QuantFizzl = UO.GetQuantity( 'finditem' ) 
           AddIngots = QuantBefore - QuantFizzl 
             UO.FindType( IngotsType, IngotsColor, 'CraftBox' ) 
           If UO.GetQuantity( 'finditem' ) > AddIngots Then 
          UO.Grab( AddIngots, 'finditem' ) 
          CheckLag() 
                   GoTo Craft 
           Else 
          UO.Print( 'Не достаточно ингов, завершаем крафт!' ) 
          UO.Exec( 'terminate CraftFullArmor' ) 
           EndIf          
             EndIf 
     Next 

               ;-----Сгружаем Арм в мешок, а затем кидаем мешок в сундук 
     UO.FindType( ArmBag ) 
     ArmBagSer = UO.GetSerial( 'finditem' ) 
      For a=1 To 7 
         UO.FindType( ArmPart[a] ) 
               If UO.FindCount() > 0 then 
               UO.MoveItem( 'finditem', -1, ArmBagSer ) 
               CheckLag() 
             EndIf 
        Next 
     UO.MoveItem( ArmBagSer, -1, 'CraftBox' ) 
     CheckLag() 
     UO.FindType( IngotsType, IngotsColor, 'CraftBox' ) 
  Wend 
end sub

берет реги, открывает меню крафта и останавливается...не пойму в чем дело
может галки каие проставить нада?
Скорее всего пропиши тут:

Code: Select all

Dim Choise[7] 
Choise[1] = "'Armor' 'Shields'  'Shields'  'Heater Shield'" 
Choise[2] = "'Armor' 'Plate Mail' 'Plate Mail' 'Platemail Gorget'" 
Choise[3] = "'Armor' 'Plate Mail' 'Plate Mail' 'Platemail Gauntlets'" 
Choise[4] = "'Armor' 'Plate Mail' 'Plate Mail' 'Plate Helm'" 
Choise[5] = "'Armor' 'Plate Mail' 'Plate Mail' 'Platemail Arms'" 
Choise[6] = "'Armor' 'Plate Mail' 'Plate Mail' 'Platemail Legs'" 
Choise[7] = "'Armor' 'Plate Mail' 'Plate Mail' 'Platemail'"
пути в меню для крафта соответствующих вещей, посмотри свое меню, везде они разные

Posted: 2006-05-09 19:00:29
by Nort777
неа. не помогает:(

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

Code: Select all

sub MakeFull() 
   VAR CCurIng='0x0000', TCurIng=0 
   VAR jser, WCurIng=0, Kolvo = 200      ; На фулл с запасом 
   VAR Sunduk = '0x4024386F'            ; Cундук с инготами 
   VAR Meshok = '0x0E76'               ; Тип мешка для фулов 
   VAR CIngots = '0x0000'               ; Цвет инготов 
   VAR CurMesh, BagForFull='0x4014B1CF'   ; Сериал мешка и сумки для них 
    
   UO.Print("Script started") 
   DIM TIngots[4], Part[7], CIng[14], WIng[14] 
    
   TIngots[0]='0x1BEF'            ; Типы инготов 
   TIngots[1]='0x1BE3' 
   TIngots[2]='0x1BF5' 
   TIngots[3]='0x1BE9' 
    
   Part[0]='Platemail (25'         ; Названия частей фулла 
   Part[1]='Platemail Legs' 
   Part[2]='Heater Shield' 
   Part[3]='Platemail Arms' 
   Part[4]='Plate Helm' 
   Part[5]='Platemail Gauntlets' 
   Part[6]='Platemail Gorget' 
    
   CIng[0]='0x0750'            ; Цвета инготов 
   CIng[1]='0x0590' 
   CIng[2]='0x060A' 
   CIng[3]='0x0488' 
   CIng[4]='0x096B' 
   CIng[5]='0x0014' 
   CIng[6]='0x0193' 
   CIng[7]='0x04C2' 
   CIng[8]='0x07D5' 
   CIng[9]='0x00CE' 
   CIng[10]='0x052D' 
   CIng[11]='0x0455' 
   CIng[12]='0x0028' 
   CIng[13]='0x08AF' 
    
   WIng[0]='Rusty'               ; Названия инготов 
   WIng[1]='Old Copper' 
   WIng[2]='Dull Copper' 
   WIng[3]='Bronze' 
   WIng[4]='Shadow' 
   WIng[5]='Rose' 
   WIng[6]='Agapite' 
   WIng[7]='Blood Rock' 
   WIng[8]='Verite' 
   WIng[9]='Valorite' 
   WIng[10]='Mytheril' 
   WIng[11]='Black Rock' 
   WIng[12]='Obsidian' 
   WIng[13]='Plutonium' 
    
   UO.IgnoreReset() 
   UO.DeleteJournal() 
   UO.UseObject(Sunduk) 
   For Var k=0 to 3                  ; Узнаем тип 
      UO.FindType(TIngots[k],-1,Sunduk)   ; Ищем любые инготы в сундуке 
      If UO.FindCount() > 0 Then 
         If UO.GetColor('finditem') == '0x0000' AND k == 0 Then 
            UO.MSG("I make a iron full!") 
            MakeIron(TIngots[k],'0x0000',Kolvo,Sunduk,Meshok,BagForFull) 
            Return 
         Else 
            If UO.GetQuantity('finditem') < Kolvo Then   ; Для фула мало инготов 
               UO.MSG("I need "+STR(Kolvo)+" or more ingots") 
               UO.MoveItem('finditem','0',BagForFull) 
               Wait(500) 
               Return 
            Else 
               If TCurIng == 0 Then 
                  TCurIng=TIngots[k] 
               EndIf 
               If UO.GetColor('finditem') == CIng[2] Then 
                  UO.MSG("Dull Copper? I not make this full.") 
                  UO.MoveItem('finditem',-1,BagForFull) 
                  Wait(500) 
                  Return 
               EndIf 
               If UO.GetColor('finditem') == CIng[3] Then 
                  UO.MSG("Bronze? I not make this full.") 
                  UO.MoveItem('finditem',-1,BagForFull) 
                  Wait(500) 
                  Return 
               EndIf 
               UO.Print("Avaible is "+STR(UO.GetQuantity('finditem'))+" ingots.") 
               UO.Print("Ingots type is "+TIngots[k]) 
            EndIf 
         EndIf 
      Else 
         If k == 3 AND TCurIng == 0 Then 
            UO.Print("No avaible ingots. Script terminated.") 
            Return 
         EndIf 
      EndIf 
      Wait(1000) 
   Next 
   UO.FindType(TCurIng,-1,Sunduk) 
   For Var n=0 to 13                  ; Узнаем цвет 
      If CIng[n] == UO.GetColor('finditem') Then 
         WCurIng = WIng[n] 
         CCurIng = CIng[n] 
      EndIf 
   Next 
   If CCurIng == '0x0000' Then 
      If TCurIng == TIngots[1] Then 
         WCurIng = 'Copper' 
      Else 
         If TCurIng == TIngots[2] Then 
            WCurIng = 'Silver' 
         Else 
            If TCurIng == TIngots[3] Then 
               WCurIng = 'Golden' 
            EndIf 
         EndIf 
      EndIf 
   EndIf 
   UO.MSG("Found "+(WCurIng)+" ingots.") 
   UO.FindType(Meshok,-1,Sunduk)      ; Ищем мешки для фуллов 
   If UO.FindCount() == 0 Then 
      UO.MSG("No bag - NO FULL !!!") 
      Return 
   Else 
      CurMesh=UO.GetSerial('finditem') 
   EndIf 
   UO.FindType(TCurIng,CCurIng,Sunduk) 
   UO.MoveItem('finditem',STR(Kolvo),'backpack ')   ; Забираем скока поднимем 
   Wait(500) 
   UO.Grab('1',CurMesh)            ; Берем мешок в пэк 
   Wait(500) 
   CheckLag() 
   UO.SetCatchBag(CurMesh)         ; Всё что сделаем в мешок 
   Var i=0 
   Repeat 
      UO.MSG("Try make the "+WCurIng+" "+Part[i]) 
      UO.AutoMenu('Blacksmithing','Colored') 
      UO.AutoMenu('Colored',WCurIng+' Armor') 
      UO.AutoMenu(WCurIng+' Armor',WCurIng+' Plate Armor') 
      UO.AutoMenu(WCurIng+' Plate Armor',Part[i]) 
      Repeat 
         jser=0 
         UO.FindType(TCurIng,CCurIng,-1) 
         IF UO.FindCount() > 0 Then 
            UO.DeleteJournal() 
            UO.UseObject('finditem') 
         Else 
            UO.Print("Ingots not found") 
            UO.UnSetCatchBag() 
            Repeat 
               UO.FindType(TCurIng,CCurIng,-1) 
               If UO.FindCount() > 0 Then 
                  UO.MoveItem('finditem','-1',BagForFull)   ; Обратно в сундук 
                  Wait(500) 
               EndIf 
            Until UO.Count(TCurIng,CCurIng) == 0       ; Все инготы в пэке 
            UO.DropHere(CurMesh) 
            Wait(500) 
            Return 
         EndIf 
         While NOT UO.InJournal("put") AND NOT UO.InJournal("failed") 
            Wait(100) 
         WEnd 
         If UO.InJournal("put") Then 
            jser=1 
         EndIf 
      Until jser == 1 
      i=i+1 
      UO.CancelMenu() 
   Until i > 6 
   UO.UnSetCatchBag() 
   Repeat 
      UO.FindType(TCurIng,CCurIng,-1) 
      If UO.FindCount() > 0 Then 
         UO.MoveItem('finditem','-1',BagForFull)   ; Обратно в сундук 
         Wait(500) 
      EndIf 
   Until UO.Count(TCurIng,CCurIng) == 0       ; Все инготы в пэке 
   UO.MSG("FULL") 
   UO.MoveItem(CurMesh,'-1',BagForFull) 
   Wait(500) 
end sub 

sub MakeIron(TCurIng,CCurIng,Kolvo,Sunduk,Meshok,BagForFull) 
   Var jser, CurMesh = 0 
    
   DIM Part[6] 
    
   Part[0]='platemail (25'         ; Названия частей фулла 
   Part[1]='platemail legs' 
   Part[2]='platemail arms' 
   Part[3]='plate helm' 
   Part[4]='platemail gloves' 
   Part[5]='platemail gorget' 
    
   UO.FindType(Meshok,-1,Sunduk) 
   If UO.FindCount() == 0 Then 
      UO.MSG("No bag - NO FULL !!!") 
      Return 
   Else 
      CurMesh=UO.GetSerial('finditem') 
   EndIf 
    
   UO.FindType(TCurIng,CCurIng,Sunduk) 
   If UO.GetQuantity('finditem') < Kolvo Then 
      UO.MSG("I need "+STR(Kolvo)+" or more ingots") 
      UO.MoveItem('finditem','-1',BagForFull)   ; Обратно в сундук 
      Wait(500) 
      Return 
   Else 
      UO.MoveItem('finditem',STR(Kolvo),'backpack ')   ; Забираем скока поднимем 
      Wait(500) 
      UO.Grab('1',CurMesh)            ; Берем мешок в пэк 
      Wait(500) 
   EndIf 
   CheckLag() 
   UO.SetCatchBag(CurMesh)         ; Всё что сделаем в мешок 
   Var i=0 
   Repeat 
      UO.MSG("Try make the Iron "+Part[i]) 
      UO.AutoMenu('Blacksmithing','Armor') 
      UO.AutoMenu('Armor','Plate Mail') 
      UO.AutoMenu('Plate Mail',Part[i]) 
      Repeat 
         jser=0 
         UO.FindType(TCurIng,CCurIng,-1) 
         If UO.FindCount() > 0 Then 
            UO.DeleteJournal() 
            UO.UseObject('finditem') 
         Else 
            UO.Print("Ingots not found") 
            UO.UnSetCatchBag() 
            Repeat 
               UO.FindType(TCurIng,CCurIng,-1) 
               If UO.FindCount() > 0 Then 
                  UO.MoveItem('finditem','-1',BagForFull)   ; Обратно в сундук 
                  Wait(500) 
               EndIf 
            Until UO.Count(TCurIng,CCurIng) == 0       ; Все инготы в пэке 
            UO.DropHere(CurMesh) 
            Wait(500) 
            Return 
         EndIf 
         While NOT UO.InJournal("put") AND NOT UO.InJournal("failed") 
            Wait(100) 
         WEnd 
         If UO.InJournal("put") Then 
            jser=1 
         EndIf 
      Until jser == 1 
      i=i+1 
      UO.CancelMenu() 
   Until i > 5 
   UO.MSG("Try make the Iron heater shield") 
   UO.AutoMenu('Blacksmithing','Shields') 
   UO.AutoMenu('Shields','heater shield') 
   UO.DeleteJournal() 
   Repeat 
      jser=0 
      UO.FindType(TCurIng,CCurIng,-1) 
      IF UO.FindCount() > 0 Then 
         UO.UseObject('finditem') 
      Else 
         UO.Print("Ingots not found") 
         UO.UnSetCatchBag() 
         Repeat 
            UO.FindType(TCurIng,CCurIng,-1) 
            If UO.FindCount() > 0 Then 
               UO.MoveItem('finditem','-1',BagForFull)   ; Обратно в сундук 
               Wait(500) 
            EndIf 
         Until UO.Count(TCurIng,CCurIng) == 0       ; Все инготы в пэке 
         UO.DropHere(CurMesh) 
         Wait(500) 
         Return 
      EndIf 
      While NOT UO.InJournal("put") AND NOT UO.InJournal("failed") 
         Wait(100) 
      WEnd 
      If UO.InJournal("put") Then 
         jser=1 
      EndIf 
   Until jser == 1 
   UO.CancelMenu() 
   UO.UnSetCatchBag() 
   Repeat 
      UO.FindType(TCurIng,CCurIng,-1) 
      If UO.FindCount() > 0 Then 
         UO.MoveItem('finditem','-1',BagForFull)   ; Обратно в сундук 
         Wait(500) 
      EndIf 
   Until UO.Count(TCurIng,CCurIng) == 0       ; Все инготы в пэке 
   UO.MSG("FULL") 
   UO.MoveItem(CurMesh,'-1',BagForFull) 
   Wait(500) 
end sub

Posted: 2006-05-09 20:04:59
by Edred
offtopic on:

Code: Select all

...
- А вы мыться пробовали?
- Пробовал, не помогает. Через месяц снова чешусь
offtopic off

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

Posted: 2006-05-09 20:06:42
by Nort777
шард дрв, он не успевает сделать одну вещь и начинает другую (2й скрипт), отсюда физлы
я не пойму где там задержку поставить

Posted: 2006-05-09 20:08:15
by Edred
Вырежи нужный кусок и запость. Я принципиально не читаю чужие скрипты длиннее 30 строк.

Posted: 2006-05-09 20:24:02
by Nort777
Edred wrote:Вырежи нужный кусок и запость. Я принципиально не читаю чужие скрипты длиннее 30 строк.
знал бы где кроется ошибка, методом тыка наверно исправил бы

Posted: 2006-05-09 20:36:43
by DerMeister =)
Nort777 wrote:
Edred wrote:Вырежи нужный кусок и запость. Я принципиально не читаю чужие скрипты длиннее 30 строк.
знал бы где кроется ошибка, методом тыка наверно исправил бы
Тогда сначало сюда загляни... http://www.utro.ru/articles/2006/04/10/538692.shtml ...а потом уже к нам с результатами :lol: :wink: :lol:

Posted: 2006-05-09 20:38:36
by Nort777
как говорится, мир не без "добрых" людей

Posted: 2006-05-09 21:01:01
by Nort777
всем спасибо, друзья помогли, дали другой скрипт