Page 1 of 1
Мини вопросик, по скрипту на магери.
Posted: 2005-01-06 17:27:01
by KrafteR
Ваял этот скрипт долго, считай мой первый нормальный скрипт. Понадёргал кусков из множества скриптов, склеел и вроде работает, как ток не проверял. Выключил компьютер пошёл спать... проснулся хотел поставить чара на макрос, но пишет в 43 строке ошибка, но в скрипте всего 42 строчки... сидел ломал голову в чём трабл. При повторном вставлении ID сундука начинает работать. Вопрос в том, что можно сделать чтобы не менять постоянно ID?
Code: Select all
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
Posted: 2005-01-06 18:10:43
by JIupus
Ну как варинат можно сделать так: каждый раз при запуске скрипта, он будет выводит прицел и нужно будет указывать на сундук
Code: Select all
....
VAR Sunduk
.....
UO.Exec('addobject Chest')
While UO.Targeting()
wait(100)
Wend
Sunduk=uo.getserial(Chest)
....
Просьба ногами не бить
Posted: 2005-01-06 18:48:25
by KrafteR
JIupus wrote:Ну как варинат можно сделать так: каждый раз при запуске скрипта, он будет выводит прицел и нужно будет указывать на сундук
Code: Select all
....
VAR Sunduk
.....
UO.Exec('addobject Chest')
While UO.Targeting()
wait(100)
Wend
Sunduk=uo.getserial(Chest)
....
Просьба ногами не бить
Спасибо за вариант, хочется услышать ещё мнения.
Posted: 2005-01-06 19:32:33
by Ugrum.
ок, убедил:) вот тебе еще вариант
Code: Select all
<....>
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
<------ здесь чего то нехватает?
<....>
Posted: 2005-01-06 19:36:40
by 666Man666
Накалякал от нефиг делать )
может не работать я не тестил... сам попробуй
Code: Select all
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
Posted: 2005-01-06 19:48:44
by KrafteR
Ugrum. wrote:ок, убедил:) вот тебе еще вариант
Code: Select all
<....>
<------ здесь чего то нехватает?
<....>
Так и не догадался чего же там не хватает. Хоть намекни...
Posted: 2005-01-06 19:53:50
by KrafteR
666Man666 wrote:Накалякал от нефиг делать )
может не работать я не тестил... сам попробуй
Code: Select all
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 ## - сюда кол-во регов каторое чар будет заправлять.
Куда заправлять так и не понял

поподробней если нетрудно. А скрипт протестирую обязательно, но всё же вопрос топика остаёться. Рад, что получил пару вариантов... Может чему-нибудь научусь.
Posted: 2005-01-06 20:01:03
by 666Man666
KrafteR wrote:var CountReg=XX ## - сюда кол-во регов каторое чар будет заправлять.
Куда заправлять так и не понял

поподробней если нетрудно.
а туда нужно вписать число, какое кол-во чар будет брать НС из сундука в пак... например
Posted: 2005-01-06 20:13:05
by KrafteR
666Man666 wrote:KrafteR wrote:var CountReg=XX ## - сюда кол-во регов каторое чар будет заправлять.
Куда заправлять так и не понял

поподробней если нетрудно.
а туда нужно вписать число, какое кол-во чар будет брать НС из сундука в пак... например
Понял.
вот эта строчка в моём скрипте.
Posted: 2005-01-06 20:30:34
by Ugrum.
KrafteR wrote:Так и не догадался чего же там не хватает. Хоть намекни...
намекаю
Code: Select all
<....>
If UO.FindCount()==0 Then
<....>
else
<....>
<------ здесь чего то нехватает?
<....>
Posted: 2005-01-06 21:38:33
by KrafteR
Ugrum. wrote:KrafteR wrote:Так и не догадался чего же там не хватает. Хоть намекни...
намекаю
Code: Select all
<....>
If UO.FindCount()==0 Then
<....>
else
<....>
<------ здесь чего то нехватает?
<....>
Видно я деревянный. Прям заинтриговал, что там не хватает?
Re: Мини вопросик, по скрипту на магери.
Posted: 2005-01-06 22:06:42
by Ugrum.
KrafteR wrote:Code: Select all
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 ставить некуда.
Re: Мини вопросик, по скрипту на магери.
Posted: 2005-01-06 22:14:44
by KrafteR
Ugrum. wrote:KrafteR wrote:Code: Select all
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- постоянно перевставлять надо было?*Чешет в голове, сомнивается.* За доработку скрипта огромное человеческое...