Yoko
http://forum.yoko.com.ua/

Доработка скрипта на Magery
http://forum.yoko.com.ua/viewtopic.php?f=17&t=14561
Page 1 of 1

Author:  Blacksmither [ 2009-03-18 13:46:50 ]
Post subject:  Доработка скрипта на Magery

Значит есть скрипт:
Code:
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:
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:
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 бутылей каждый раз как мана заканчивается.

Author:  blackdog [ 2009-03-18 18:45:41 ]
Post subject: 

:D

while uo.Mana<uo.INT заменить на if uo.Mana<uo.INT :)

Author:  Blacksmither [ 2009-03-19 18:44:52 ]
Post subject: 

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

Code:
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

Author:  Successful [ 2009-03-19 19:08:58 ]
Post subject: 

Code:
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

Author:  Blacksmither [ 2009-03-19 20:21:43 ]
Post subject: 

Спасибо

Author:  Blacksmither [ 2009-03-20 20:33:55 ]
Post subject: 

Еще пытаюсь вставить чтоб кастующий лечил цель но не получется, не лечит и все.
Можете дописать? Что-то типо того:
Code:
while uo.gethp('0x000FD998') < 20
uo.waittargetobject('0x000FD998') кого лечить
uo.usetype('0x0E21')
uo.waittargettype('0x1008') чашка для мытья бинтов
uo.usetype(0x0e20) грязные бинты

Author:  Successful [ 2009-03-20 20:59:35 ]
Post subject: 

Code:
while uo.gethp('0x000FD998') <= 20
uo.waittargetobject('0x000FD998') кого лечить
uo.usetype('0x0E21')
wait(500)
uo.waittargettype('0x1008') чашка для мытья бинтов
uo.usetype('0x0e20') грязные бинты
wend

Author:  Blacksmither [ 2009-03-22 12:38:57 ]
Post subject: 

В общем вот что получилось:
Code:
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 жизней а после того как выпьет манку. Лечение не получается т.к. сразу после начала лечения начинает кастовать какую задержку не ставь.

Author:  Destruction [ 2009-03-22 12:45:55 ]
Post subject: 

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

вообще-то вот так правильнее..

Author:  Blacksmither [ 2009-03-22 12:52:40 ]
Post subject: 

Ну я же говорю если через while то скрипт встает после лечения и не кастует. Что-то в самом скрипте не так.

Author:  Blacksmither [ 2009-03-22 20:16:29 ]
Post subject: 

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

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/