Помогите, пожалуйста, подправить скрипт. Работает вроде нормально, только после того как закончит ковать фулл не кидает мешок с ним в сундук. Собственно это и хотелось бы подправить
sub MakeFull() VAR CCurIng='0x0000', TCurIng=0 VAR jser, WCurIng=0, Kolvo = 200 ; На фулл с запасом VAR Sunduk = '0x401DECFA' ; Cундук с инготами VAR Meshok = '0x0E76' ; Тип мешка для фулов VAR CIngots = '0x0000' ; Цвет инготов VAR CurMesh, BagForFull='0x4044FE8C' ; Сериал мешка и сумки для них 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
|