Carpentry
Moderators: Murderator+, Murderator
ДЕржи. Переделал сам из крафта удочек.
Code: Select all
#####################################################################
; Carpentry. v.1.13D (c) Edred
;
; Чар берет берет с пола логи, крафтит из них удочки и скидывает удочки
; в трэш. Если логи на полу кончились - выход.
; (Get logs from ground and craft fishing pole. Move fishing pole trash)
;
; Special Edition (for Democratic)
;
;
sub carpentry()
VAR MyTrash = '0x401F7D0F' ; Сериал мусорки (ID of trash)
VAR Logi = '0x1BDD' ; Тип логов (logs type)
VAR Rubanok = '0x1034' ; Тип инструмента (carpentry tools type)
VAR Udochka = '0x0E89' ; Тип удочки (fishing pole type)
VAR Kolvo = 3 ; Брать логов (Count of logs for a one grab)
VAR j, k
While TRUE
UO.FindType( Logi, -1, 1 ) ; Ищем логи на полу
UO.Grab( Str( Kolvo ), 'finditem' ) ; Кладем логи в пак
wait( 1000 )
If UO.FindCount() == 0 Then
UO.Print("Logs not found, script terminated")
return
Endif
While UO.Count( Logi ) > 0
; Пока в паке есть логи
UO.Print('I have ' + Str( UO.Count( Logi ) ) + ' logs' )
UO.DeleteJournal()
UO.CancelMenu()
UO.WaitMenu ('Carpentry', 'Weapons & Tools', 'Weapons & Tools', 'quarter staff' )
UO.UseType( Rubanok )
k = 0
while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 30 )
k = k + 1
wait(500)
wend
; Wait( 14000 )
; Скрафтили удочку
; Сразу переложим ее в трэш
if UO.Count( Udochka ) > 0 then
UO.FindType( Udochka )
UO.MoveItem( 'finditem', 0, MyTrash )
wait( 1000 )
UO.Print( 'quarter staff trashed' )
end if
Wend
Wend
end sub
Злодей ) как так можно удочки в треш ??? =)
1-нное, тебе надо 40 тайлора чтоб крафтить удочки, если ты на ДРВ играешь.
Code: Select all
#Для работы скрипта надо:
#1. Сундук.
#2. В сундуке логи(все какие вы решили потратить)
#3. В сундуке 2 Backpack'a.
#3.1 В 1-ом Backpack'е мешки(Bag или Belt pouch), в них будут складываться посохи/удочки.
#3.2 2-ой Backpack пустой, в него будут складываться мешки(взятые из 1-го Backpack'a)
# заполненые посохами/удочками.
4. Любой инструмент для плотничной работы. В частности:
# a dovetail saw - '0x1028'
# a smoothing plane - '0x1032'
# a jointing plane - '0x1030'
# an inshave - '0x10E6'
# a froe - '0x10E5'
# a scorp - '0x10E7'
# ...
# Все типы привыдены для инструментов такого - / направления.
# Значение "LogColor='0x0000'" менять не нужно, из сундука беруться первыми простые логи(если есть),
# если нет, то любые другие, беруться до тех пока их не остаеться 4. После следющий тип логов.
# Поэтому в сундук класть только логи для прокачки !
#
# Для работы скрипта НУЖНО ТОЛЬКО заменить значения !!!
sub Carp()
#=====================
VAR BagSer #| Эти значения менять не нужно.
Var LogColor='0x0000' #|
Var fiz=0,ud=0,sum=254#|
Var ProductOL='0x0000'#|
Var LogType='0x1BDD' #|
#=====================
#Измените значение на ID сундука(с логами и 2-мя Backpack'aми)
Var MainBox='0x4019754A'
#Измените значение на ID Backpack'a(с пустыми мешками)
Var BoxEB='0x403536B5'
#Измените значение на ID Backpack'a(для мешков с удочками/посохами)
Var BoxFB='0x403E738E'
#Измените значение на Type мешков. (bag - '0x0E76', Belt pouch - '0x09B0')
Var BagType='0x0E76'
#Измените значение на Type инструмента для плотничной работы. См. описание.
Var CarpentrTool='0x1028'
UO.Useobject(MainBox)
Wait(500)
UO.Useobject(BoxEB)
Wait(500)
UO.Useobject(BoxFB)
Wait(500)
UO.Exec("set finddistance 0")
UO.FindType(BagType,-1,1)
If UO.FindCount('finditem')<1 then
UO.FindType(BoxEB,-1,MainBox)
UO.FindType(BagType,-1,BoxEB)
BagSer=UO.GetSerial('finditem')
UO.Grab('1',BagSer)
Wait(500)
UO.Moveitem(BagSer,'1','ground')
Wait(500)
UO.Useobject(BagSer)
else
BagSer=UO.GetSerial('finditem')
UO.Useobject(BagSer)
Endif
Repeat
While NOT UO.Hidden()
UO.UseSkill('Hiding')
Wait(3000)
Wend
UO.FindType(LogType,-1,2)
LogColor=UO.GetColor('finditem')
If UO.GetQuantity('finditem')<5 then
UO.FindType(LogType,LogColor,MainBox)
If UO.GetQuantity('finditem')<5 then
UO.FindType(LogType,-1,MainBox)
UO.Grab('5','finditem')
wait(500)
Endif
UO.Grab('5','finditem')
wait(500)
Endif
If (UO.SkillVal("Carpentry",1) > 683) then
UO.WaitMenu('Carpentry','Weapons & Tools','Weapons & Tools','fishing pole')
ProductOL='0x0DBF'
else
UO.WaitMenu ('Carpentry','Weapons & Tools','Weapons & Tools','quarter staff')
ProductOL='0x0E89'
Endif
UO.DeleteJournal()
UO.UseType(CarpentrTool)
Repeat
Wait(100)
Until (UO.InJournal("You put") or UO.InJournal("You fail"))
If UO.InJournal("You put") then
ud=ud+1
else
fiz=fiz+1
Endif
UO.FindType(ProductOL,-1,2)
While UO.FindCount() > 0
UO.MoveItem('finditem','1',BagSer)
Wait(500)
UO.FindType(ProductOL,-1,2)
Wend
UO.FindType(ProductOL,-1,BagSer)
UO.Print("В текущей сумке "+STR(UO.FindCount('finditem'))+" шт.")
UO.Print("Рука дрогнула "+STR(fiz)+" раз. Сделано "+STR(ud)+" шт.")
UO.Print("Процент дрожания руки: "+MID((STR(fiz/(fiz+ud)*100)),0,2)+"%")
If UO.FindCount('finditem') > sum then
UO.Moveitem(BagSer,'1',BoxFB)
Wait(500)
UO.FindType(BoxEB,-1,MainBox)
UO.FindType(BagType,-1,BoxEB)
BagSer=UO.GetSerial('finditem')
UO.Grab('1',BagSer)
Wait(500)
UO.MoveItem(BagSer,'1','ground')
Wait(500)
Endif
Until ((UO.SkillVal("Carpentry",1) > 999) or (UO.Dead()))
End sub
1-нное, тебе надо 40 тайлора чтоб крафтить удочки, если ты на ДРВ играешь.