Page 1 of 1

Помогите

Posted: 2006-12-25 17:44:59
by Monti
Сеня сделал свой первый скрипт, посмотрел как другие делали и на их основах учился,вроде несложно.Но у меня он сам невыключаеться.
Как сделать чтоб он сам выключался после выгрузке всего?
Я раньше на C++ немного пытался делать, было обучение.И думаю что нуна куда то припехнуть if , но хз куда.
Зарание спасибо.

Code: Select all

var Cont = '0x406D0A46';ID контейнера в который будет Голд,lockpick.
var Cont2 = '0x407ADC6C';ID контейнера в который будет складывать pandor's.
var Cont3 = '0x407D5EDC';ID контейнера в который будет складывать Empty deed,regpack.
var Cont4 = '0x40D5F36C';ID контейнера в который будет складывать shit,дубина,арбаль.
var Cont5 = '0x404CEE44';ID контейнера в который будет складывать Камни.
var Cont6 = '0x406D0A33';ID контейнера в который будет складывать шлак(Pithfork,dager,)

sub Razg()
VAR a
VAR LastTimer
DIM Item[20]
Item[1]=0x0EED; gold
Item[2]=0x14FB; lockpick
Item[3]=0x09AA; pandor's
Item[4]=0x14EF; Empty deed
Item[5]=0x14EF; regpack
Item[6]=0x1B7A; shit
Item[7]=0x13B3; дубина
Item[8]=0x0F4F; арбаль
Item[9]=0x0F25; Amber
Item[10]=0x0F26; Grands
Item[11]=0x0F16; Amethis
Item[12]=0x0F26; Diomonds
Item[13]=0x0F15; Crinits
Item[14]=0x0F11; Saphirs
Item[16]=0x0F18; Tormalin
Item[17]=0x0F10; Emeralds
Item[18]=0x0F13; Rubins
Item[19]=0x0E87; Pithfork
Item[20]=0x0F51; Dager


uo.usefromground('0x0420')
uo.boxhack()
wait(100)
For a=1 to 2
 While UO.Count(Item[a])>0
       UO.FindType(Item[a],-1,-1)
       UO.MoveItem('finditem',0,Cont)
       wait(200)
       uo.print(Item[a])
 Wend
 wait(100)
For a=3 to 3
 While UO.Count(Item[a])>0
       UO.FindType(Item[a],-1,-1)
       UO.MoveItem('finditem',0,Cont2)
       wait(200)
       uo.print(Item[a])
 Wend
 wait(100)
For a=4 to 5
 While UO.Count(Item[a])>0
       UO.FindType(Item[a],-1,-1)
       UO.MoveItem('finditem',0,Cont3)
       wait(200)
       uo.print(Item[a])
 Wend
 wait(100)
For a=6 to 8
 While UO.Count(Item[a])>0
       UO.FindType(Item[a],-1,-1)
       UO.MoveItem('finditem',0,Cont4)
       wait(200)
       uo.print(Item[a])
 Wend
 wait(100)
For a=9 to 18
 While UO.Count(Item[a])>0
       UO.FindType(Item[a],-1,-1)
       UO.MoveItem('finditem',0,Cont5)
       wait(200)
       uo.print(Item[a])
 Wend
  wait(100)
For a=19 to 20
 While UO.Count(Item[a])>0
       UO.FindType(Item[a],-1,-1)
       UO.MoveItem('finditem',0,Cont5)
       wait(200)
       uo.print(Item[a])
 Wend
 end sub

Posted: 2006-12-26 08:37:42
by GAUHAR
Обрати внимание как выглядит цикл FOR:

Code: Select all

FOR [VAR] переменная = нач.значение TO конечное_значение [STEP шаг]
  команды
NEXT

у тебя нет NEXT, чтобы закрыть цикл.

Posted: 2006-12-26 15:38:09
by Mihail
прочитай урок скриптинга 7 и сможешь значительно сократить код приведя все к такому виду:

Code: Select all

Item[1]='0x0EED Cont1' ; gold 
Item[2]='0x14FB Cont2' ; lockpick

Posted: 2006-12-26 17:18:16
by Monti
Mihail wrote:прочитай урок скриптинга 7 и сможешь значительно сократить код приведя все к такому виду:

Code: Select all

Item[1]='0x0EED Cont1' ; gold 
Item[2]='0x14FB Cont2' ; lockpick

Оке сенк обоим,а как поставить проверку чтоб постояно проверял открите банка, ато мобо убьют и выкидывает из банка.

Posted: 2006-12-26 23:56:32
by GAUHAR
Я не знаю как проверить открыт банк или нет, так как он находиться в слое Bank персонажа и раз его открыв инжа помнит все что в нем лежит. Но наверно можно просто проверить перед действием жив персонаж или мертв:

Code: Select all

   if UO.Dead() then ;если мертв, то
      return         ;выходим из процедуры,
   endif             ;или бежим ресаться.

или

Code: Select all

   While UO.Count(Item[a])>0 and not UO.Dead()
   ;пока есть итемы и персонаж не мертв
   ;выполнять цикл WHILE ... WEND

Вобщем-то, если убьют, то уже не актуально открыт банк или нет.

Posted: 2006-12-29 13:12:44
by Monti
GAUHAR wrote:Я не знаю как проверить открыт банк или нет, так как он находиться в слое Bank персонажа и раз его открыв инжа помнит все что в нем лежит. Но наверно можно просто проверить перед действием жив персонаж или мертв:

Code: Select all

   if UO.Dead() then ;если мертв, то
      return         ;выходим из процедуры,
   endif             ;или бежим ресаться.

или

Code: Select all

   While UO.Count(Item[a])>0 and not UO.Dead()
   ;пока есть итемы и персонаж не мертв
   ;выполнять цикл WHILE ... WEND

Вобщем-то, если убьют, то уже не актуально открыт банк или нет.


ХЫ, нуна поучить уроки получше.

Posted: 2006-12-29 15:35:41
by GAUHAR
Monti wrote:ХЫ, нуна поучить уроки получше.

ОК.
Тогда скажи ты мне как, постоянно проверять открытие банка, если тебя прибьют, то банк нужно будет заново открыть, а не проверять открыт он или нет.

Posted: 2007-01-04 20:06:06
by Monti
GAUHAR wrote:
Monti wrote:ХЫ, нуна поучить уроки получше.

ОК.
Тогда скажи ты мне как, постоянно проверять открытие банка, если тебя прибьют, то банк нужно будет заново открыть, а не проверять открыт он или нет.

Долго не было меня, но ответ дам ! Этот скрипт писался для того чтоб убивать монстра и прибегая к тотему банка выкладывать все одной кнопокой, а не для того чтоб он сам бегал и убивал.Так что если меня убьют,то я ресс и заного около банка его запущу.