Page 1 of 1

Вопрос про килл элемов

Posted: 2005-02-16 15:35:56
by GimFlex
вот тут подумал и решил на шарде дрв порой не всегда удается в морфе убить высшего элема поэтому предлагаю в саважевскую килл элементалов добавить вишку если хелсов в морфе становится меньше 60 он юзает инвизку потом хилится до полной и опять валит элема после убийства кастует на себя диспел




sub killelem()
VAR Count, LastTimer, Elem
UO.UseType('0x0F0E','0x0631') ; inviz potion
While UO.STR<201 ; U'r not morfed char max Strength + 1
If UO.Mana>=50 then
UO.WaitMenu('What','Daemon')
UO.Cast('Polymorph')
wait(8000)
else
UO.UseType('0x0F0E','0x09DF') ; total mana potion
wait(3000)
endif
Wend

LastTimer=UO.Timer()

repeat
UO.BandageSelf()
wait(4000)
until UO.Life==UO.STR OR LastTimer+300<UO.Timer()

UO.UseType(0x1B76) ; heater shield
UO.UseType(0x1413) ; platemail gorget

UO.DeleteJournal()
UO.Exec('warmode 1')

UO.FindType('0x0010',-1,'ground')
Elem=UO.GetSerial('finditem')

UO.Attack(Elem)

repeat
wait(1000)
If UO.Life<50 Then
UO.UseType('0x0F0E','0x09BB') ;GH
Endif

If UO.GetDistance(Elem)>1 Then
walkn(0,0,Elem)
Endif

until UO.IsNPC(Elem)==0
wait(3000)


UO.WaitTargetGround('0x19B9') ; 4 and more ore
wait(1500)
UO.Grab('all')
UO.WaitTargetGround('0x19B8') ; 3 ore
wait(1500)
UO.Grab('all')
UO.WaitTargetGround('0x0EED') ; gold coins
wait(500)
UO.Grab('all')


UO.FindType('0x0010',-1,'ground')
If UO.GetQuantity('finditem')>0 Then
KillElem()
Endif

UO.Exec('warmode 0')
wait(1000)

UO.Print("Sdoh skotina!")

LastTimer=UO.Timer()
if UO.Life<200 then ; U'r max HP
repeat
UO.BandageSelf()
wait(4000)
until UO.Life>200 OR LastTimer+300<UO.Timer()
endif
UO.DeleteJournal()

end sub

Posted: 2005-02-16 16:23:59
by GimFlex
вот мой вариант исправьте если неправильно

sub killelem()
VAR Count, LastTimer, Elem
UO.UseType('0x0F0E','0x0631') ; inviz potion
While UO.STR<201 ; U'r not morfed char max Strength + 1
If UO.Mana>=50 then
UO.WaitMenu('What','Daemon')
UO.Cast('Polymorph')
wait(8000)
else
UO.UseType('0x0F0E','0x09DF') ; total mana potion
wait(3000)
endif
Wend

LastTimer=UO.Timer()

repeat
UO.BandageSelf()
wait(4000)
until UO.Life==UO.STR OR LastTimer+300<UO.Timer()

UO.UseType(0x1B76) ; heater shield
UO.UseType(0x1413) ; platemail gorget

UO.DeleteJournal()
UO.Exec('warmode 1')

UO.FindType('0x0010',-1,'ground')
Elem=UO.GetSerial('finditem')

UO.Attack(Elem)

repeat
wait(1000)
If UO.Life<100 Then
UO.UseType('0x0F0E','0x09BB') ;GH
Endif

If UO.GetDistance(Elem)>1 Then
walkn(0,0,Elem)
Endif

If UO.Life<100 Then
UO.UseType('0x0F0E','0x0631') ; inviz potion
wait(1000)
repeat
UO.BandageSelf()
wait(4000)
until UO.Life==UO.STR
UO.UseType(0x1B76) ; heater shield
wait(1000)
uo.sayu("Я вернулся!!!")
Endif

until UO.IsNPC(Elem)==0
wait(3000)


UO.WaitTargetGround('0x19B9') ; 4 and more ore
wait(1500)
UO.Grab('all')
UO.WaitTargetGround('0x19B8') ; 3 ore
wait(1500)
UO.Grab('all')
UO.WaitTargetGround('0x0EED') ; gold coins
wait(500)
UO.Grab('all')


UO.FindType('0x0010',-1,'ground')
If UO.GetQuantity('finditem')>0 Then
KillElem()
Endif

UO.Exec('warmode 0')
wait(1000)

UO.Print("Sdoh skotina!")

LastTimer=UO.Timer()
if UO.Life<200 then ; U'r max HP
repeat
UO.BandageSelf()
wait(4000)
until UO.Life>200 OR LastTimer+300<UO.Timer()
endif
UO.DeleteJournal()

end sub

Posted: 2005-02-16 17:38:42
by GimFlex
есть ли другие варианты?