В архиве есть вот такой например от 2003 года. Разбирай, я сам никогда такими скриптами не пользовался. 
Code: sub bsarm() VAR IngName,Delay=3000
IngName="Agapite" UO.FindType('0x1BEF','0x0193') UO.SetCatchBag('finditem')
UO.AutoMenu(IngName+' Plate','Platemail (25') UO.AutoMenu(IngName+' Armor','Plate') UO.AutoMenu('Colored','Armor') UO.AutoMenu('Blacksmithing','Colored')
Plate: UO.DeleteJournal() UO.UseType('ing')
while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed") wait(500) wend if UO.InJournal("You have failed") then goto Plate endif UO.CancelMenu() wait(Delay)
UO.AutoMenu(IngName+' Plate','Platemail Legs') UO.AutoMenu(IngName+' Armor','Plate') UO.AutoMenu('Colored','Armor') UO.AutoMenu('Blacksmithing','Colored')
Legs: UO.DeleteJournal() UO.UseType('ing')
while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed") wait(500) wend if UO.InJournal("You have failed") then goto Legs endif UO.CancelMenu() wait(Delay)
UO.AutoMenu(IngName+' Plate','Platemail Arms') UO.AutoMenu(IngName+' Armor','Plate') UO.AutoMenu('Colored','Armor') UO.AutoMenu('Blacksmithing','Colored')
Arms: UO.DeleteJournal() UO.UseType('ing')
while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed") wait(500) wend if UO.InJournal("You have failed") then goto Arms endif UO.CancelMenu() wait(Delay)
UO.AutoMenu(IngName+' Plate','Platemail Gauntlets') UO.AutoMenu(IngName+' Armor','Plate') UO.AutoMenu('Colored','Armor') UO.AutoMenu('Blacksmithing','Colored')
Gloves: UO.DeleteJournal() UO.UseType('ing')
while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed") wait(500) wend if UO.InJournal("You have failed") then goto Gloves endif UO.CancelMenu() wait(Delay)
UO.AutoMenu(IngName+' Plate','Plate Helm') UO.AutoMenu(IngName+' Armor','Plate') UO.AutoMenu('Colored','Armor') UO.AutoMenu('Blacksmithing','Colored')
Helm: UO.DeleteJournal() UO.UseType('ing')
while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed") wait(500) wend if UO.InJournal("You have failed") then goto Helm endif UO.CancelMenu() wait(Delay) UO.AutoMenu(IngName+' Plate','Platemail Gorget') UO.AutoMenu(IngName+' Armor','Plate') UO.AutoMenu('Colored','Armor') UO.AutoMenu('Blacksmithing','Colored')
Gorget: UO.DeleteJournal() UO.UseType('ing')
while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed") wait(500) wend if UO.InJournal("You have failed") then goto Gorget endif UO.CancelMenu() wait(Delay)
goto End
UO.AutoMenu(IngName+' Plate','Heater') UO.AutoMenu(IngName+' Armor','Plate') UO.AutoMenu('Colored','Armor') UO.AutoMenu('Blacksmithing','Colored') Heater: UO.DeleteJournal() UO.UseType('ing')
while NOT UO.InJournal("You put") AND NOT UO.InJournal("You have failed") wait(500) wend if UO.InJournal("You have failed") then goto Heater endif UO.CancelMenu() wait(Delay)
End: UO.UnSetCatchBag()
end sub
Или вот поновее 2005 год:
Code: sub MakeFull() VAR CCurIng='0x0000', TCurIng=0 VAR jser, WCurIng=0, Kolvo = 150 ; На фулл с запасом VAR Sunduk = '0x40108330' VAR Meshok = '0x0E76' ; Тип мешка для фулов VAR CIngots = '0x07D5' ; Цвет инготов VAR CurMesh = '0x4005190C', BagForFull='0x40052BE2' ; Сериал мешка и сумки для них VAR i,n,k,jj,ii=5 ##### ii- ето скоко фулов делать из расчета 150 ингов на фул 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' for jj=1 to ii UO.IgnoreReset() UO.DeleteJournal() UO.UseObject(Sunduk) For 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(1000) 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(1000) Return EndIf If UO.GetColor('finditem') == CIng[3] Then UO.MSG("Bronze? I not make this full.") UO.MoveItem('finditem',-1,BagForFull) Wait(1000) 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 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.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) UO.SetCatchBag(CurMesh) ; Всё что сделаем в мешок 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(1000) 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(1000) 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(1000) EndIf Until UO.Count(TCurIng,CCurIng) == 0 ; Все инготы в пэке UO.MSG("FULL") UO.MoveItem(CurMesh,'-1',BagForFull) Wait(1000) next 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(1000) Return Else UO.MoveItem('finditem',STR(Kolvo),'backpack ') ; Забираем скока поднимем Wait(500) UO.Grab('1',CurMesh) ; Берем мешок в пэк Wait(1000) 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(1000) 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(1000) 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(1000) 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(1000) EndIf Until UO.Count(TCurIng,CCurIng) == 0 ; Все инготы в пэке UO.MSG("FULL") UO.MoveItem(CurMesh,'-1',BagForFull) Wait(1000)
end sub
Или вот так поиск - фулл
|