Мини вопросик, по скрипту на магери.

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
KrafteR
Posts: 260
Joined: 2004-07-22 16:07:11
Contact:

Мини вопросик, по скрипту на магери.

Post 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
JIupus
Posts: 112
Joined: 2004-12-29 15:16:45
Contact:

Post by JIupus »

Ну как варинат можно сделать так: каждый раз при запуске скрипта, он будет выводит прицел и нужно будет указывать на сундук

Code: Select all

....
VAR Sunduk
.....
UO.Exec('addobject Chest')
While UO.Targeting()
wait(100)
Wend
Sunduk=uo.getserial(Chest)
....

Просьба ногами не бить
KrafteR
Posts: 260
Joined: 2004-07-22 16:07:11
Contact:

Post by KrafteR »

JIupus wrote:Ну как варинат можно сделать так: каждый раз при запуске скрипта, он будет выводит прицел и нужно будет указывать на сундук

Code: Select all

....
VAR Sunduk
.....
UO.Exec('addobject Chest')
While UO.Targeting()
wait(100)
Wend
Sunduk=uo.getserial(Chest)
....

Просьба ногами не бить

Спасибо за вариант, хочется услышать ещё мнения.
Ugrum.
Posts: 69
Joined: 2004-04-05 11:59:21
Location: RunUO

Post 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
<------ здесь чего то нехватает?
<....>
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Post 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
 
KrafteR
Posts: 260
Joined: 2004-07-22 16:07:11
Contact:

Post by KrafteR »

Ugrum. wrote:ок, убедил:) вот тебе еще вариант

Code: Select all

<....>
<------ здесь чего то нехватает?
<....>

Так и не догадался чего же там не хватает. Хоть намекни...
KrafteR
Posts: 260
Joined: 2004-07-22 16:07:11
Contact:

Post 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 ## - сюда кол-во регов каторое чар будет заправлять.
Куда заправлять так и не понял :) поподробней если нетрудно. А скрипт протестирую обязательно, но всё же вопрос топика остаёться. Рад, что получил пару вариантов... Может чему-нибудь научусь.
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Post by 666Man666 »

KrafteR wrote:var CountReg=XX ## - сюда кол-во регов каторое чар будет заправлять.
Куда заправлять так и не понял :) поподробней если нетрудно.
а туда нужно вписать число, какое кол-во чар будет брать НС из сундука в пак... например

Code: Select all

var CountReg='200'
KrafteR
Posts: 260
Joined: 2004-07-22 16:07:11
Contact:

Post by KrafteR »

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

Code: Select all

var CountReg='200'

Понял.

Code: Select all

var Kolvo=10
вот эта строчка в моём скрипте.
Ugrum.
Posts: 69
Joined: 2004-04-05 11:59:21
Location: RunUO

Post by Ugrum. »

KrafteR wrote:Так и не догадался чего же там не хватает. Хоть намекни...

намекаю

Code: Select all

<....> 
       If UO.FindCount()==0 Then
          <....>
       else
           <....>
          <------ здесь чего то нехватает?
<....>
KrafteR
Posts: 260
Joined: 2004-07-22 16:07:11
Contact:

Post by KrafteR »

Ugrum. wrote:
KrafteR wrote:Так и не догадался чего же там не хватает. Хоть намекни...

намекаю

Code: Select all

<....> 
       If UO.FindCount()==0 Then
          <....>
       else
           <....>
          <------ здесь чего то нехватает?
<....>

Видно я деревянный. Прям заинтриговал, что там не хватает?
Ugrum.
Posts: 69
Joined: 2004-04-05 11:59:21
Location: RunUO

Re: Мини вопросик, по скрипту на магери.

Post 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 ставить некуда.
KrafteR
Posts: 260
Joined: 2004-07-22 16:07:11
Contact:

Re: Мини вопросик, по скрипту на магери.

Post 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- постоянно перевставлять надо было?*Чешет в голове, сомнивается.* За доработку скрипта огромное человеческое...
Post Reply