Простенький Bowcraft
Moderators: Murderator+, Murderator
Простенький Bowcraft
Народ помогите пожалуйста,поделитесь скриптиком на Bowcraft,нужен простой без наворотов чтобы тупо брал из сундука 7 логов крафтил шафты и обратно в сундук готовые шафты бросал.
Re: Простенький Bowcraft
Прямо как заказывал боукрафт для шарда Forest Wars.
Как вариант вот.
Если будет чтото не так пиши, подредактируем.
PS поиск - шафты - выдал более чем достаточно примеров.
Как вариант вот.
Если будет чтото не так пиши, подредактируем.
PS поиск - шафты - выдал более чем достаточно примеров.

Re: Простенький Bowcraft
Вот этот скрипт логи из мешка берет даже шафты у меня в паке лежали он их в мешок скинул,но вот после того как логи взял встает пишет I can use столько то логов брать их постоянно по 7 штук берет а крафтить не крафтит.
Code: Select all
#####################################################################
; Bowcraft. v.1.03b (c) Edred
;
; ??? ????? ?? ??????? ????, ??????? ?? ??? ?????
; ? ?????????? ??? ????? ? ???? ?? ??????.
; ???? ???? ??????????? - ?????.
; ???? ?????? (??? ??? ?? ??? ???????????) ???????? -
; ?????? ?????? ??????????? ?? ???? ? ??????? ? ???????
; ? ????.
;
; 1.03b: ????????, ???? Kolvo = 1, ?? ????? ??? ? ?????? ??????? ???
; ????.
;
sub bowcraft()
VAR Sunduk = '0x400E4262' ; ?????? ???????
VAR Logi = '0x1BDD' ; ??? ?????
VAR Shafts = '0x1BD4' ; ??? ??????
VAR Kolvo = 7 ; ????? ????? ??? ?????? ??????
VAR k = 0, j, dagger
dagger = UO.ObjAtLayer( 'Rhand' )
UO.SetGlobal( 'instrtype', UO.GetGraphic( dagger ) )
While TRUE
UO.FindType( Logi, -1, Sunduk ) ; ???? ???? ? ???????
If UO.FindCount() == 0 Then
UO.Print("Logs not found, script terminated")
return
else
j = UO.GetQuantity( 'finditem' )
If j > Kolvo Then
UO.Print( 'I can use ' + str( j ) + ' logs' )
else
UO.Print( "I can't use " + str( j ) + " logs" )
return
Endif
Endif
If Kolvo == 1 Then
; v. 1.03
UO.Grab( '3', 'finditem' )
wait(500)
UO.FindType( Logi )
UO.MoveItem( 'finditem', '2', Sunduk )
wait(500)
Else
UO.Grab( Str( Kolvo ), 'finditem' )
wait(500)
Endif
; ? ??? - ???????????? ????? ?? ???
while UO.Count( Logi ) < Kolvo
wait(100)
wend
; ???????? ?? ??, ??? ? ????? ??-???????? ??????
If CheckInstr() == 0 Then
UO.Print("You don't have daggers!" )
return
Endif
UO.DeleteJournal()
UO.CancelMenu()
UO.WaitMenu ('What do you want to carve','Shafts' )
UO.WaitTargetType( Logi )
UO.UseObject( dagger )
k = 0
while NOT UO.InJournal('You put') AND NOT UO.InJournal('fail') AND ( k < 50 )
k = k + 1
wait(300)
wend
If UO.Count( Shafts ) > 0 then
UO.FindType( Shafts, -1, -1 )
UO.MoveItem( 'finditem', 0, Sunduk )
wait(500)
while UO.Count( Shafts ) > 0
wait(100)
wend
UO.Print( 'Shafts moved' )
Endif
Wend
end sub
Sub CheckInstr()
; ????????, ???? ?? ? ?????? ???? ?????????? ???? ??
; ????, ??? ? ? ?????????? ?????????? instrtype
; ???? ??? - ?????? ? ??????? ????? ?????????? ?
; ??????? ? ?????? ????.
VAR typ = UO.GetGlobal( 'instrtype' )
VAR cur = UO.GetGraphic( UO.ObjAtLayer( 'Rhand' ) )
If typ == cur Then
return 1
Endif
UO.FindType( typ )
If UO.FindCount() == 0 Then
return 0
Endif
UO.Equip( 'RHand' , 'finditem' )
wait(1000)
return 1
endsub
Re: Простенький Bowcraft
Пробуй вот так. Предварительно перед запуском открой сундук с логами и кинжалами (штук 10 на всякий положи).
Подредактировал. Теперь точно работает.
Code: Select all
VAR LastTimer, itemm, timemove
VAR Container = '0x4042B1A1' ; Сериал сундука
VAR log = '0x1BDD' ; Тип логов
VAR Shafts = '0x1BD4' ; Тип шафтов
VAR Instrum = '0x0F51' ; Тип кинжалов dagger
var item = Shafts
var msg ='You put|положили|fail|не удалось|You broke|сломали'
var menu = "waitmenu 'What do you want to carve' 'shaft'"
var printcolour = '1069'
sub bowcraft()
UO.CancelMenu()
WHILE NOT UO.Dead()
GET(log, Container, 1, 7)
UO.DeleteJournal()
LastTimer=UO.Timer()
Repeat
UO.DeleteJournal()
LastTimer=UO.Timer()
UO.exec( menu )
UO.Waittargettype ( log )
UO.Usetype( Instrum )
repeat
wait( 100 )
until UO.InJournal( msg ) or UO.Timer()>LastTimer+150
Until UO.Count( item ) > 0
checklag()
PUT(item, Container)
UO.FindType( item, -1, Container)
uo.charprint(printcolour,'Сделано: '+Str(UO.GetQuantity('finditem'))) ; если будет ошибка - удалить строку!
WEND
end sub
Sub GET(item, cont, min, max) ; предмет, откуда, минимум, сколько брать
If UO.Count( item ) < min Then
UO.FindType( item, '-1', cont )
if UO.FindCount() > 0 Then
uo.charprint(printcolour,'Сырья в сундуке: '+Str(UO.GetQuantity('finditem')) ) ; если будет ошибка - удалить строку!
itemM=UO.GetSerial('finditem')
timemove=UO.Timer()
while UO.ContainerOf(itemM)==cont && timemove+20>UO.Timer()
uo.moveitem('finditem', max, 'backpack')
wait(300)
wend
else
uo.charprint(printcolour, 'Полностью кончилось сырье' ) ; если будет ошибка - удалить строку!
UO.CancelMenu()
MyTerminate()
endif
Endif
end sub
Sub PUT(item, cont)
while UO.Count( item ) > 0
UO.FindType( item, -1, -1 )
itemM=UO.GetSerial('finditem')
timemove=UO.Timer()
UO.MoveItem( 'finditem', 0, cont )
while UO.ContainerOf(itemM)=='my' && timemove+20>UO.Timer()
wait(300)
wend
wend
end sub
Sub DeleteJournal(msg)
While UO.InJournal(msg)
UO.SetJournalLine(UO.InJournal(msg) - 1,'')
wend
endsub
Sub MyTerminate()
UO.Set('quiet','1')
UO.CancelMenu()
UO.IgnoreReset()
UO.Set('quiet','0')
UO.Exec('terminate all')
end sub
Sub checklag()
DeleteJournal("ackpack")
UO.Click("backpack")
repeat
wait(100)
until UO.InJournal("ackpack")
end sub
Подредактировал. Теперь точно работает.