Yoko
http://forum.yoko.com.ua/

не работает крафт фулов
http://forum.yoko.com.ua/viewtopic.php?f=20&t=7633
Page 1 of 1

Author:  Nort777 [ 2006-05-09 18:32:05 ]
Post subject:  не работает крафт фулов

вот скрипт:

Code:
;|            |--------------------| 
;|            | 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



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

Author:  Kynep [ 2006-05-09 18:48:26 ]
Post subject:  Re: не работает крафт фулов

Nort777 wrote:
вот скрипт:

Code:
;|            |--------------------| 
;|            | 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:
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'"

пути в меню для крафта соответствующих вещей, посмотри свое меню, везде они разные

Author:  Nort777 [ 2006-05-09 19:00:29 ]
Post subject: 

неа. не помогает:(

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

Code:
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

Author:  Edred [ 2006-05-09 20:04:59 ]
Post subject: 

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

offtopic off

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

Author:  Nort777 [ 2006-05-09 20:06:42 ]
Post subject: 

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

Author:  Edred [ 2006-05-09 20:08:15 ]
Post subject: 

Вырежи нужный кусок и запость. Я принципиально не читаю чужие скрипты длиннее 30 строк.

Author:  Nort777 [ 2006-05-09 20:24:02 ]
Post subject: 

Edred wrote:
Вырежи нужный кусок и запость. Я принципиально не читаю чужие скрипты длиннее 30 строк.

знал бы где кроется ошибка, методом тыка наверно исправил бы

Author:  DerMeister =) [ 2006-05-09 20:36:43 ]
Post subject: 

Nort777 wrote:
Edred wrote:
Вырежи нужный кусок и запость. Я принципиально не читаю чужие скрипты длиннее 30 строк.

знал бы где кроется ошибка, методом тыка наверно исправил бы


Тогда сначало сюда загляни... http://www.utro.ru/articles/2006/04/10/538692.shtml ...а потом уже к нам с результатами :lol: :wink: :lol:

Author:  Nort777 [ 2006-05-09 20:38:36 ]
Post subject: 

как говорится, мир не без "добрых" людей

Author:  Nort777 [ 2006-05-09 21:01:01 ]
Post subject: 

всем спасибо, друзья помогли, дали другой скрипт

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/