Подредактируйте пож-та.

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
user-drw
Posts: 5
Joined: 2011-03-22 09:06:03

Подредактируйте пож-та.

Post by user-drw »

Скрипт делает фуллы.
Берет из сундука цветные инги какие есть и мешок и делает фулл, потом обратно все кладет в сундук.

Сделайте пожалуйста что бы скрипт не прекращал работу как сделает фулл а добирал железо и наполнял мешок фуллами.

Code: Select all

sub MakeFull() 
VAR CCurIng='0x0000', TCurIng=0
VAR jser, WCurIng=0, Kolvo = 200 ; На фулл с запасом
VAR Sunduk = '0x404025C7' ; Cундук с инготами
VAR Meshok = '0x0E76' ; Тип мешка для фулов
VAR CIngots = '0x0000' ; Цвет инготов
VAR CurMesh, BagForFull='0x404025C7' ; Сериал мешка и сумки для них

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',Sunduk)
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',Sunduk) ; Обратно в сундук
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',Sunduk) ; Обратно в сундук
Wait(500)
EndIf
Until UO.Count(TCurIng,CCurIng) == 0 ; Все инготы в пэке
UO.MSG("FULL")
Wait(500)
UO.MoveItem(CurMesh,'-1',Sunduk)
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',Sunduk) ; Обратно в сундук
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',Sunduk) ; Обратно в сундук
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',Sunduk) ; Обратно в сундук
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',Sunduk) ; Обратно в сундук
Wait(500)
EndIf
Until UO.Count(TCurIng,CCurIng) == 0 ; Все инготы в пэке
UO.MSG("FULL")
UO.MoveItem(CurMesh,'-1',Sunduk)
Wait(500)
end sub

sub CheckLag()
UO.DeleteJournal()
UO.Click('backpack')
repeat
wait(50)
until UO.InJournal('backpack')
end sub
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Подредактируйте пож-та.

Post by Mirage »

Code: Select all

sub test()
### какойто скрипт который работает только 1 раз
end sub

sub main()
 repeat
  test()
 Until UO.Dead()
end sub
Post Reply