Доработка скрипта на Magery

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
Blacksmither
Posts: 7
Joined: 2009-03-18 13:21:14

Доработка скрипта на Magery

Post by Blacksmither »

Значит есть скрипт:

Code: Select all

sub Magery() 
var LastTimer
while not uo.Dead()
uo.DeleteJournal()
CheckLag()
while uo.Mana>=10
uo.Cast('Magic Arrow','0x000FD998')
wait(2000)
wend
while uo.Mana<uo.INT
LastTimer=uo.Timer()
uo.UseSkill('Meditation')
repeat
wait(100)
until uo.InJournal('You are') or uo.InJournal('You lose') or uo.Timer()>LastTimer+200
uo.DeleteJournal()
wait(2000)
wend
wend
end sub

Нужно было качать магери с манками, я его изменил вот так:

Code: Select all

sub Magery() 
var LastTimer
var Manka = '0x0F0E'
while not uo.Dead()
uo.DeleteJournal()
CheckLag()
while uo.Mana>=10
uo.Cast('Magic Arrow','0x000FD998')
wait(2000)
wend
while uo.Mana<uo.INT
UO.UseType( Manka )
;LastTimer=uo.Timer()
;uo.UseSkill('Meditation')
repeat
wait(100)
until uo.InJournal('You are') or uo.InJournal('You lose') or uo.Timer()>LastTimer+200
uo.DeleteJournal()
wait(2000)
wend
wend
end sub

Теперь от чар пьет манки если они есть в рюкзаке. Но когда они заканчиваются с крипт встает. Когда заканчивается одна стопка манок он не видит другую и приходится перезапускать скрипт. Для полоного автоматизма хотелось бы чтобы чар при истечении маны сам брал из пака 1 бутылку маны, выпивал ее и продолжал кастовать, независимо от того полностью восстановилась мана или нет.
Пробовал вставить что-то такое:

Code: Select all

while uo.Mana<uo.INT 
UO.FindType( Manka, -1, 'Pack')
UO.MoveItem( 'finditem', 1, 'backpack')
UO.UseType( Manka )
wait(500)
Wend

Но толку не много. Из-за этой проверки uo.Mana<uo.INT скрипт прогоняет все по новой пока маны не будет по максимуму. Т.е. он берет бутылку, выпивает, но мана еще не восстановлена полностью и он опять берег бутылку и пытается ее выпить. А т.к. пить подряд несколько бутылей нельзя то он успевает накидать в рюкзак по 10-15 бутылей каждый раз как мана заканчивается.
blackdog
Posts: 9
Joined: 2006-05-07 18:36:20

Post by blackdog »

:D

while uo.Mana<uo.INT заменить на if uo.Mana<uo.INT :)
Blacksmither
Posts: 7
Joined: 2009-03-18 13:21:14

Post by Blacksmither »

C "if uo.Mana<uo.INT" скрипт вообще запускаться не хочет. Parse error.
В чем ошибка?:

Code: Select all

sub Magery() 
var Manka = '0x0F0E'
var Pack = '0x40438663'
while not uo.Dead()
uo.DeleteJournal()
while uo.Mana>=10
uo.Cast('Magic Arrow','0x000FD998')
wait(2000)
wend
if uo.Mana<uo.INT
UO.FindType( Manka, -1, Pack)
UO.MoveItem( 'finditem', 1, 'backpack')
UO.UseType( Manka )
wait(1000)
endif
wend
wend
end sub
Successful
Posts: 174
Joined: 2008-12-13 00:00:15

Post by Successful »

Code: Select all

sub Magery() 
var Manka = '0x0F0E'
var Pack = '0x40438663'
while not uo.Dead()
uo.DeleteJournal()
while uo.Mana>=10
uo.Cast('Magic Arrow','0x000FD998')
wait(2000)
wend
if uo.Mana<uo.INT then
UO.FindType( Manka, -1, Pack)
UO.MoveItem( 'finditem', 1, 'backpack')
UO.UseType( Manka )
wait(1000)
endif
wend
end sub
Blacksmither
Posts: 7
Joined: 2009-03-18 13:21:14

Post by Blacksmither »

Спасибо
Blacksmither
Posts: 7
Joined: 2009-03-18 13:21:14

Post by Blacksmither »

Еще пытаюсь вставить чтоб кастующий лечил цель но не получется, не лечит и все.
Можете дописать? Что-то типо того:

Code: Select all

while uo.gethp('0x000FD998') < 20
uo.waittargetobject('0x000FD998') кого лечить
uo.usetype('0x0E21')
uo.waittargettype('0x1008') чашка для мытья бинтов
uo.usetype(0x0e20) грязные бинты
Successful
Posts: 174
Joined: 2008-12-13 00:00:15

Post by Successful »

Code: Select all

while uo.gethp('0x000FD998') <= 20
uo.waittargetobject('0x000FD998') кого лечить
uo.usetype('0x0E21')
wait(500)
uo.waittargettype('0x1008') чашка для мытья бинтов
uo.usetype('0x0e20') грязные бинты
wend
Blacksmither
Posts: 7
Joined: 2009-03-18 13:21:14

Post by Blacksmither »

В общем вот что получилось:

Code: Select all

sub Magery() 
var Manka = '0x0F0E'
while not uo.Dead()
uo.DeleteJournal()
while uo.Mana>=10
uo.Cast('Fireball','0x000FD998') ;что кастовать и на кого
wait(3000) ;на Magic Arrow - 2000, на Fireball - 3000
wend
if uo.Mana<uo.INT then
;UO.Useskill("Meditation")
UO.UseType( Manka )
wait(1000)
endif
if uo.gethp('0x000FD998') <= 50 then
uo.waittargetobject('0x000FD998') #кого лечить
uo.usetype('0x0E21')
wait(1000)
uo.waittargettype('0x1008') #чашка для мытья бинтов
uo.usetype('0x0e20') #грязные бинты
endif
wend
end sub

Через "While uo.gethp('0x000FD998') <= 50" чар лечит цель полностью но потом опять не кастует. Через if лечит раз да и как-то странно, не когда у цели меньше 50 жизней а после того как выпьет манку. Лечение не получается т.к. сразу после начала лечения начинает кастовать какую задержку не ставь.
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

while uo.getHP( obj ) < uo.getMaxHP( obj )

вообще-то вот так правильнее..
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Blacksmither
Posts: 7
Joined: 2009-03-18 13:21:14

Post by Blacksmither »

Ну я же говорю если через while то скрипт встает после лечения и не кастует. Что-то в самом скрипте не так.
Blacksmither
Posts: 7
Joined: 2009-03-18 13:21:14

Post by Blacksmither »

Все, разобрался. Всем спасибо.
Post Reply