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

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