Yoko

All sides of Injection
It is currently 2024-03-28 17:26:28

All times are UTC+02:00




Post new topic  Reply to topic  [ 1 post ] 
Author Message
 Post subject: Ковка фулов
PostPosted: 2011-03-09 18:04:10 
Offline
User avatar

Joined: 2010-12-09 13:40:59
Posts: 21
Помогите, пожалуйста, подправить скрипт. Работает вроде нормально, только после того как закончит ковать фулл не кидает мешок с ним в сундук. Собственно это и хотелось бы подправить

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 1 post ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 12 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron
Powered by phpBB® Forum Software © phpBB Limited