Ваял этот скрипт долго, считай мой первый нормальный скрипт. Понадёргал кусков из множества скриптов, склеел и вроде работает, как ток не проверял. Выключил компьютер пошёл спать... проснулся хотел поставить чара на макрос, но пишет в 43 строке ошибка, но в скрипте всего 42 строчки... сидел ломал голову в чём трабл. При повторном вставлении ID сундука начинает работать. Вопрос в том, что можно сделать чтобы не менять постоянно ID?
sub Magery() VAR NS='0x0F88' VAR Sunduk='0x4021C658' VAR Kolvo=10 VAR k = 0, j VAR LastTimer while NOT UO.Dead() While UO.NS<=1 UO.FindType(NS, -1, Sunduk) If UO.FindCount()==0 Then UO.Print("NS not found, script terminated") else j = UO.GetQuantity( 'finditem' ) If j > Kolvo Then UO.Print("I can use" + str( j ) + "NS") else UO.Print("I can't use" + str( j ) + "NS") Endif If Kolvo == 1 Then UO.FindType( NS ) UO.MoveItem( 'finditem', '2', Sunduk ) wait(500) Else UO.Grab( Str( Kolvo ), 'finditem' ) wait(500) Endif wend while UO.Mana>66 UO.Cast('Poison','self') wait(3000) 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
sub Magery() var Sunduk='0x4021C658' var NS='0x0F88' var LastTimer, Kolvo=10 var CountReg=XX ## - сюда кол-во регов каторое чар будет заправлять. REPEAT While UO.NS >= Kolvo and NOT UO.Dead() If UO.mana <= 10 Then REPEAT UO.UseSkill('Meditation') LastTimer=UO.Timer() UO.DeleteJournal() REPEAT Wait(300) Until UO.InJournal("You are") or UO.InJournal("You lose") or UO.Timer()>LastTimer+200 Until UO.mana==UO.int or UO.Dead() EndIf UO.Cast('Poison','self') Wait(3000) Wend UO.FindType(NS,'-1',Sunduk) If UO.FindCount() Then UO.MoveItem('finditem',CountReg,Sunduk) Wait(2000) EndIf Until UO.Dead() end sub
sub Magery() var Sunduk='0x4021C658' var NS='0x0F88' var LastTimer, Kolvo=10 var CountReg=XX ## - сюда кол-во регов каторое чар будет заправлять. REPEAT While UO.NS >= Kolvo and NOT UO.Dead() If UO.mana <= 10 Then REPEAT UO.UseSkill('Meditation') LastTimer=UO.Timer() UO.DeleteJournal() REPEAT Wait(300) Until UO.InJournal("You are") or UO.InJournal("You lose") or UO.Timer()>LastTimer+200 Until UO.mana==UO.int or UO.Dead() EndIf UO.Cast('Poison','self') Wait(3000) Wend UO.FindType(NS,'-1',Sunduk) If UO.FindCount() Then UO.MoveItem('finditem',CountReg,Sunduk) Wait(2000) EndIf Until UO.Dead() end sub
var CountReg=XX ## - сюда кол-во регов каторое чар будет заправлять.
Куда заправлять так и не понял поподробней если нетрудно. А скрипт протестирую обязательно, но всё же вопрос топика остаёться. Рад, что получил пару вариантов... Может чему-нибудь научусь.
sub Magery() VAR NS='0x0F88' VAR Sunduk='0x4021C658' VAR Kolvo=10 VAR k = 0, j VAR LastTimer while NOT UO.Dead() While UO.NS<=1 UO.FindType(NS, -1, Sunduk) If UO.FindCount()==0 Then <--------IF №1 UO.Print("NS not found, script terminated") else j = UO.GetQuantity( 'finditem' ) If j > Kolvo Then <--------IF №2 UO.Print("I can use" + str( j ) + "NS") else UO.Print("I can't use" + str( j ) + "NS") Endif <--------END IF №1 If Kolvo == 1 Then <--------IF №3 UO.FindType( NS ) UO.MoveItem( 'finditem', '2', Sunduk ) wait(500) Else UO.Grab( Str( Kolvo ), 'finditem' ) wait(500) Endif <--------END IF №2 wend while UO.Mana>66 UO.Cast('Poison','self') wait(3000) 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
сдаюсь. никогда неумел обьяснять(. не буду больше и пытаться.....
<--------END IF №3 ставить некуда.
sub Magery() VAR NS='0x0F88' VAR Sunduk='0x4021C658' VAR Kolvo=10 VAR k = 0, j VAR LastTimer while NOT UO.Dead() While UO.NS<=1 UO.FindType(NS, -1, Sunduk) If UO.FindCount()==0 Then <--------IF №1 UO.Print("NS not found, script terminated") else j = UO.GetQuantity( 'finditem' ) If j > Kolvo Then <--------IF №2 UO.Print("I can use" + str( j ) + "NS") else UO.Print("I can't use" + str( j ) + "NS") Endif <--------END IF №1 If Kolvo == 1 Then <--------IF №3 UO.FindType( NS ) UO.MoveItem( 'finditem', '2', Sunduk ) wait(500) Else UO.Grab( Str( Kolvo ), 'finditem' ) wait(500) Endif <--------END IF №2 wend while UO.Mana>66 UO.Cast('Poison','self') wait(3000) 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
сдаюсь. никогда неумел обьяснять(. не буду больше и пытаться..... <--------END IF №3 ставить некуда.
Оу пасиб...лень просто Ifы считать было. Ты думаешь из за этого ID- постоянно перевставлять надо было?*Чешет в голове, сомнивается.* За доработку скрипта огромное человеческое...