sub GoMakeFull() while NOT UO.Dead() MakeFull() wait(1000) uo.say("Full ready!!") wait(1000) wend end sub
sub MakeFull() VAR CCurIng='0x0000', TCurIng=0 VAR jser, WCurIng=0, Kolvo = 150 ; количество ингов на фулл с запасом VAR Sunduk = '0x40112521' ; Cундук с инготами и мешками VAR Meshok = '0x0E76' ; Тип мешка для фулов VAR CIngots = '0x0000' ; Цвет инготов VAR CurMesh, BagForFull='0x401AEF5C' ; Сундук в который фулы кидать
UO.Print("Script started") DIM TIngots[4], Part[7], CIng[14], WIng[14]
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
sub CheckLag() UO.DeleteJournal() UO.Click('backpack') repeat wait(50) until UO.InJournal('backpack') end sub