Ковка фуллов
Posted: 2004-09-26 04:43:13
Народ а есть у кого скрипт на ковку фуллов ? Запарился пилотом ковать !
autopilot wrote:Народ а есть у кого скрипт на ковку фуллов ? Запарился пилотом ковать !
Code: Select all
sub MakeFull()
VAR CCurIng='0x0000', TCurIng=0
VAR jser, WCurIng=0, Kolvo = 200 ; На фулл с запасом
VAR Sunduk = '0x4024386F' ; Cундук с инготами
VAR Meshok = '0x0E76' ; Тип мешка для фулов
VAR CIngots = '0x0000' ; Цвет инготов
VAR CurMesh, BagForFull='0x4014B1CF' ; Сериал мешка и сумки для них
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',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
Code: Select all
sub full()
# напишите ,addobject box и щелкните на мешочек в который будут складываться готовые изделия
createbp:
UO.Exec ("canceltarget")
UO.Exec ("cancelmenu")
UO.Exec("waitmenu 'What do you wish to make?' 'Armor' 'Select armor' 'Platemail' 'Select item' 'Dwarven Platemail Breastplate'")
UO.Exec("waittargettype 0x1bf2")
wait (2000)
UO.Exec("useobject _0x13e3")
wait (2000)
wait(8000);
UO.Exec("cancelmenu")
Wait(300)
#*************************** advanced time controller ************************************************
while not uo.dead()
wait(1000)
if uo.injournal("item and") or uo.injournal("destroy") then
goto deleting
end if
wend
deleting:
if not uo.injournal("exceptional") then
UO.Exec("canceltarget")
UO.Exec("waittargettype 0x1416") #удаление бракованного армора
Wait(300)
UO.Exec("usetype 0x0fbb")
Wait(1000)
goto createbp
else
UO.exec("moveitem ^0x1416 1 box")
End if
UO.deletejournal()
#-----------------------------------next part--------------------------------------------
createlegs:
UO.Exec ("canceltarget")
UO.Exec ("cancelmenu")
UO.Exec("waitmenu 'What do you wish to make?' 'Armor' 'Select armor' 'Platemail' 'Select item' 'Dwarven Platemail Legs'")
UO.Exec("waittargettype 0x1bf2")
wait (2000)
UO.Exec("useobject _0x13e3")
wait (2000)
wait(8000);
UO.Exec("cancelmenu")
Wait(300)
#*************************** advanced time controller ************************************************
while not uo.dead()
wait(1000)
if uo.injournal("item and") or uo.injournal("destroy") then
goto deleting2
end if
wend
deleting2:
if not uo.injournal("exceptional") then
UO.Exec("canceltarget")
UO.Exec("waittargettype 0x141A") #удаление бракованного армора
Wait(300)
UO.Exec("usetype 0x0fbb")
Wait(1000)
goto createlegs
else
UO.exec("moveitem ^0x141A 1 box")
End if
UO.deletejournal()
wait(3000)
#-----------------------------------next part--------------------------------------------
createarms:
UO.Exec ("canceltarget")
UO.Exec ("cancelmenu")
UO.Exec("waitmenu 'What do you wish to make?' 'Armor' 'Select armor' 'Platemail' 'Select item' 'Dwarven Platemail Arms'")
UO.Exec("waittargettype 0x1bf2")
wait (2000)
UO.Exec("useobject _0x13e3")
wait (2000)
wait(8000);
UO.Exec("cancelmenu")
Wait(300)
#*************************** advanced time controller ************************************************
while not uo.dead()
wait(1000)
if uo.injournal("item and") or uo.injournal("destroy") then
goto deleting3
end if
wend
deleting3:
if not uo.injournal("exceptional") then
UO.Exec("canceltarget")
UO.Exec("waittargettype 0x1417") #удаление бракованного армора
Wait(300)
UO.Exec("usetype 0x0fbb")
Wait(1000)
goto createarms
else
UO.exec("moveitem ^0x1417 1 box")
End if
UO.deletejournal()
wait(3000)
#-----------------------------------next part--------------------------------------------
creategloves:
UO.Exec ("canceltarget")
UO.Exec ("cancelmenu")
UO.Exec("waitmenu 'What do you wish to make?' 'Armor' 'Select armor' 'Platemail' 'Select item' 'Dwarven Platemail Gloves'")
UO.Exec("waittargettype 0x1bf2")
wait (2000)
UO.Exec("useobject _0x13e3")
wait (2000)
wait(8000);
UO.Exec("cancelmenu")
Wait(300)
#*************************** advanced time controller ************************************************
while not uo.dead()
wait(1000)
if uo.injournal("item and") or uo.injournal("destroy") then
goto deleting4
end if
wend
deleting4:
if not uo.injournal("exceptional") then
UO.Exec("canceltarget")
UO.Exec("waittargettype 0x1418") #удаление бракованного армора
Wait(300)
UO.Exec("usetype 0x0fbb")
Wait(1000)
goto creategloves
else
UO.exec("moveitem ^0x1418 1 box")
End if
UO.deletejournal()
wait(3000)
#-----------------------------------next part--------------------------------------------
creategorget:
UO.Exec ("canceltarget")
UO.Exec ("cancelmenu")
UO.Exec("waitmenu 'What do you wish to make?' 'Armor' 'Select armor' 'Platemail' 'Select item' 'Platemail Gorget'")
UO.Exec("waittargettype 0x1bf2")
wait (2000)
UO.Exec("useobject _0x13e3")
wait (2000)
wait(8000);
UO.Exec("cancelmenu")
Wait(300)
#*************************** advanced time controller ************************************************
while not uo.dead()
wait(1000)
if uo.injournal("item and") or uo.injournal("destroy") then
goto deleting5
end if
wend
deleting5:
if not uo.injournal("exceptional") then
UO.Exec("canceltarget")
UO.Exec("waittargettype 0x1413") #удаление бракованного армора
Wait(300)
UO.Exec("usetype 0x0fbb")
Wait(1000)
goto creategorget
else
UO.exec("moveitem ^0x1413 1 box")
End if
UO.deletejournal()
wait(3000)
#-----------------------------------next part--------------------------------------------
createhelm:
UO.Exec ("canceltarget")
UO.Exec ("cancelmenu")
UO.Exec("waitmenu 'What do you wish to make?' 'Armor' 'Select armor' 'Helmets' 'Select item' 'Dwarven Plate Helm'")
UO.Exec("waittargettype 0x1bf2")
wait (2000)
UO.Exec("useobject _0x13e3")
wait (2000)
wait(8000);
UO.Exec("cancelmenu")
Wait(300)
#*************************** advanced time controller ************************************************
while not uo.dead()
wait(1000)
if uo.injournal("item and") or uo.injournal("destroy") then
goto deleting6
end if
wend
deleting6:
if not uo.injournal("exceptional") then
UO.Exec("canceltarget")
UO.Exec("waittargettype 0x1419") #удаление бракованного армора
Wait(300)
UO.Exec("usetype 0x0fbb")
Wait(1000)
goto createhelm
else
UO.exec("moveitem ^0x1419 1 box")
End if
UO.deletejournal()
wait(3000)
MessageBox("Full Exceptional Dwarven Plate Armor Done!")
end sub