Ваял этот скрипт долго, считай мой первый нормальный скрипт. Понадёргал кусков из множества скриптов, склеел и вроде работает, как ток не проверял. Выключил компьютер пошёл спать... проснулся хотел поставить чара на макрос, но пишет в 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- постоянно перевставлять надо было?*Чешет в голове, сомнивается.* За доработку скрипта огромное человеческое...