Page 1 of 1

Крафт Фул армов

Posted: 2005-06-04 18:00:24
by flake
Update:
ver 1.01
Добавил проверку на кол-во сфизлившихся ингов, по совету Distruction`a. В последствии, отпала нужда в разгрузе остатка ингов.

Скрипт берет инги из контейнера, крафтит фул армор со щитом. Затем складываем армор в мешок, и скидываем мешок в контейнер с ингами.
Крафтит до тех пор, пока есть достаточно ингов на фул арм.
Настройки:
VAR ArmBag - тип мешков, которые лежат в паке чара.
VAR IngotsNeed - кол-во ингов, требуемое на крафт.

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




Старая версия:
Настройки:
VAR ArmBag - тип мешков, которые лежат в паке чара
VAR IngotsNeed - Кол-во ингов, требуемое на крафт, с учетов физлов. Подбирать под свой скил в соответсвии с матом, из которого крафтим(если собираемся крафтить арм из выхи, то стоит поставить побольше. Если же низкий арм, то 160 хватает).

Запускаем скрипт. Указываем прицелом на контейнер с ингами, затем на сами инги.

З.Ы. Некоторые элементы позаимствовал из скрипта Distruction`a.


Code: Select all

;|            |--------------------|
;|            | Full Armor Crafter |                     
;|------------| ver 1.00           |-------->
;|            | crafted by Flake   |
;|            |--------------------|
sub CraftFullArmor()

VAR IngotsNeed = '160'    ; Кол-во ингов, требуемое на крафт, с учетов физлов.
VAR ArmBag = '0x0E76'   ; Тип мешков под арм
VAR IngotsType, IngotsColor, ArmBagSer, 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.DeleteJournal()
        ;UO.WaitMenu(Choise[c])
        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
               GoTo Craft
             EndIf
     Next

           ;----Скинем остаток ингов обратно в сундук ------     
     UO.FindType( IngotsType, IngotsColor )
         If UO.FindCount() > 0 Then
           UO.MoveItem( 'finditem', -1, 'CraftBox' )
            CheckLag()
       EndIf

           ;-----Сгружаем Арм в мешок, а затем кидаем мешок в сундук
     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: 2005-06-07 11:42:49
by Destruction
flake wrote:VAR IngotsNeed - Кол-во ингов, требуемое на крафт, с учетов физлов.

:?

Нехорошо, ИМХО.

Posted: 2005-06-07 11:54:22
by flake
А что именно не хорошо?

Posted: 2005-06-07 17:27:13
by Destruction
flake wrote:А что именно не хорошо?

Надо чтобы в случае физла - через гетквонти высчитывать скока физланул и брать еще, а ты как пишешь, надо брать столько, сколько надо с учетом, что как физланешь, так и не повезет. :evil:

Posted: 2005-06-07 17:36:34
by flake
Может потом приделаю проверку.
У меня скрипт еще ни разу не сбивался из-за этого.
Физлов слишком много не бывает, насколько я заметил.

Posted: 2005-06-07 20:58:11
by Alucard
Ммм, ну физлы это дело рандомное :) Вот начну в уо играться, авось тож напишу скрипт для кования фулов, или этот переделаю :)

Posted: 2005-06-07 22:13:22
by Destruction
У мну тоже был скрипт... Афигенный прям, даже не сбивался почти :))

Понимаешь, иногда это важно, я перковал 50к каждого метала нах в горгетки на своем... Заепся с физлами.

ЗЫ: Переписывай :!: 8)

Posted: 2005-06-09 13:20:39
by fRz_
Блин.. на дрв этот скритик чет не пашет.. В меню кидает и усё. Пытался меню заемнить и т д , несмог чет. Эх..

Posted: 2005-06-09 14:01:34
by flake
А каким образом у вас вызывается меню БСа?
У нас, как видно в скрипте, просто нужно дабл-кликнуть на инги (находясь у форжи и держа в руках молоточек).

Если так же, то проблема может быть только в менюшках.

Posted: 2005-06-09 14:15:01
by fRz_
Мм.. В том то и проблема , что менюшки то подходят под скрипт.. Но при загрузке скрипта , просто появл. меню и стоит , ниче крафтить не хочет.. Вот такая вот поршивая проблема. :cry:

Posted: 2005-06-09 14:37:14
by flake
Так перепиши менюшки под себя, и все.

Posted: 2005-06-10 13:31:14
by flake
Апдейт!
Добавил проверку на кол-во сфизлившихся ингов.
Новая версия в первом посте.