Discussion:______________
http://yoko.netroof.net/forum/viewtopic.php?p=7933#7933
Author or poster:_________
Edred,
tercia@spb.lanck.net
Tested on:_______________
Цитадель
http://ultima.e-burg.ru
Must work:_______________
Sphere emu
Customization required:____
Yes/place (serial Sunduk; also check up types)
Description:______________
Встаем рядом среколлкой на базе, рядом с чаром в АМЗ ставим сундук или ящик. В него раскладываем много кучек хвороста не больше чем по 500 в кучке (иначе чар не сможет взять 1 шт.) и кладем несколько стопок стейков (можно по 10к в стопке).
Берем из сундука 1 шт хвороста, кладем в координаты TX, TY и зажигаем ее. Потом берем 1 шт. стейков из этого же сундука и жарим на костре или углях. При этом перед жаркой проверяем, есть ли в вокруг чара огонь или угли. если есть жарим, иначе опять жгем костер. Готовый стейк скидывается в этот же сундук.
Yoko comment:___________
none
________________________
Code:
#===================================================================#
# COOKING #
#===================================================================#
# v.1.05b (с) Edred #
#===================================================================#
;
; Встаем рядом среколлкой на базе, рядом с чаром в АМЗ ставим сундук или
; ящик. В него раскладываем много кучек хвороста не больше чем по 500
; в кучке (иначе чар не сможет взять 1 шт.) и кладем несколько стопок стейков
; (можно по 10к в стопке). Можно туда же добавить меда - уберите комментарий
; с EatChar() и добавьте эту функцию.
; Берем из сундука 1 шт хвороста, кладем в координаты TX, TY и зажигаем ее.
; Потом берем 1 шт. стейков из этого же сундука и жарим
; на костре или углях. При этом перед жаркой проверяем, есть ли в
; вокруг чара огонь или угли. если есть жарим, иначе опять жгем костер.
; Готовый стейк скидывается в этот же сундук.
;
; Перед разжиганием костра проверяем, прошло ли 5 минут с момента последней
; попытки прокачать Spirit Speak, если прошло - качаем.
;
sub cooking()
VAR Sunduk = '0x40591B82'
VAR Hvorost = '0x0DE1'
VAR Koster = '0x0DE3'
VAR Ugli = '0x0DE9'
VAR Fish = '0x097A'
VAR FishGot = '0x097B'
VAR TX = 1873
VAR TY = 387
VAR i, flag
; VAR SpiritTime = UO.Timer()
UO.CancelTarget()
UO.Exec( 'set finddistance 3' )
; UO.SetGlobal( 'TimeProcess', str( UO.Timer() ) )
UO.UseObject( Sunduk )
While UO.SkillVal( 'Cooking' ) < 1000
; EatChar( Sunduk, 2, 1, 120 )
; ----------------------------------
; блок запуска прокачки Spirit Speak
; If ( UO.Timer() - SpiritTime ) / 600 > 5 Then
; ; Прошло 5 минут с момента последней прокачки Spirit Speak
; SpSpeak()
; SpiritTime = UO.Timer()
; Endif
; ----------------------------------
wait(1000)
UO.FindType( Hvorost, -1, Sunduk )
If UO.FindCount() == 0 Then
UO.Print( 'No kindling found. Script terminated' )
return
Endif
UO.MoveItem( 'finditem', '1', 'ground', str(TX), str(TY), str(UO.GetZ()) )
wait(1000)
CheckLag()
UO.Findtype( Hvorost, -1, 1 )
If UO.FindCount() > 0 Then
repeat
UO.UseFromGround( Hvorost )
wait(1000)
UO.FindType( Koster, -1, 1 )
until UO.FindCount() > 0
; костер горит
flag = 1
repeat
; взять из сундука 1 стейк
If UO.Count( Fish ) == 0 Then
UO.FindType( Fish, -1, Sunduk )
If UO.FindCount() == 0 Then
UO.Print( 'No fish steaks found. Script terminated' )
return
Endif
UO.Grab( '1', 'finditem' )
wait(1000)
CheckLag()
Endif
; теперь проверим не погас ли костер, не исчезли ли угли
UO.FindType( Koster, -1, 1 )
If UO.FindCount() <> 0 Then
; еще горит костер - жарим на нем стейк
If UseSteake( Fish, UO.GetSerial('finditem') ) Then
flag = 0
Endif
; стейк готов
Else
UO.FindType( Ugli, -1, 1 )
If UO.FindCount() <> 0 Then
; есть еще угли!
if UseSteake( Fish, UO.GetSerial('finditem') ) then
flag = 0
endif
Else
flag = 0
Endif
Endif
If UO.Count( FishGot ) > 0 Then
UO.FindType( FishGot )
UO.MoveItem( 'finditem', -1, Sunduk )
wait(1000)
CheckLag()
Endif
until flag == 0
Endif
Wend
endsub
Sub UseSteake( fish, koster )
VAR msg1 = 'You burn the food' ; физл
VAR msg2 = 'You put the fish steak' ; успех
VAR msg22 = 'You put the fish steaks' ; успех
VAR msg3 = 'You must wait' ; ждать
VAR msg4 = "You can't see the target"
repeat
DeleteJournal (msg1 )
DeleteJournal (msg2 )
DeleteJournal (msg22 )
DeleteJournal (msg3 )
DeleteJournal (msg4 )
UO.WaitTargetObject( 'finditem' )
UO.UseType( Fish )
repeat
wait(500)
until UO.InJournal(msg1) OR UO.InJournal(msg2) OR UO.InJournal(msg22) OR UO.InJournal(msg3) OR UO.InJournal(msg4)
if UO.InJournal(msg4) then
return 1
endif
if UO.InJournal(msg3) then
wait(500)
endif
until UO.InJournal(msg2) OR UO.InJournal(msg22)
return 0
endsub
#####################################################################
Sub CheckLag()
DeleteJournal( 'backpack' )
UO.Click( 'backpack' )
repeat
wait(100)
until UO.InJournal( 'backpack' )
return
end sub
#####################################################################
Sub DeleteJournal( string1 )
VAR nom = UO.InJournal( string1 )
If nom > 0 Then
UO.SetJournalLine( Nom - 1, 'string replaced' )
DeleteJournal( string1 )
Endif
endsub