Page 1 of 1

мининг

Posted: 2009-12-11 20:12:50
by Flashak
народ нашел тутёсуперовый скрипт на мининг но есть одно но на ДРВ я заметил очень много элемов капаеться посему есть просьба в этом скрипте убрать чтобы он не становилься на паузу при выкапывании элема

Code: Select all

############################################ 
### Manning / Шахтер v2.3 ###
############################################
### Шард Dragon World / www.drw.ru
############################################
### Реавтор этого скрипта: BETEP [WOD] or BETEPAH ###
############################################
###                    BETEP™
#############################
### Описание и настройка ###
#############################
###
### Чар стоит в пещере(не ВИП) и копает вокруг себя.После достижения "максимального" веса (в данном случие это 625 стоунов)
### "порталится" домой скидывает руду в сундук,после реколится обратно и продолжает копать.
### Пример: стоите копаете, дошли до придела в 625 веса сработала система рекола
### и вы "порталитесь" домой и складываете руду в сундук,после вы реколитесь обратно в пещеру.И продолжаете копать
### (Цикличность)
###
### Для тех то кто им пользуется сообщаю, переделал, доработал, отредактировал.!
###
### Нововведения:
### 1 )Руда складываются не на пол а в сундук. (BETEPAH)
### 2 )Рекол в пещеру и домой по РУНБУКЕ (а не по рункам). (BETEPAH)
###     ВНИМАНИЕ!!! В СКРИПТЕ РУНБУКИ НАСТРОЕНЫ ПОД DRW (шард)
### 3 )Система сброса руды переделана из MassMove(что в свою очередь иногда приписывалось как фаст лут)в перемещение через 
### Масив.(написана Savage, встроена BETEPAH)
### 4 )Упразнена система выбора "главных обьектов"(теперь просто указываем прицелом).(BETEPAH)
### 5 )Система реконекта (выложаная сверху),хорошо сочетается с этим скриптом. (Fox M)
###
### !!! Чтобы скрипт заработал ВНИМАТЕЛЬНО прочтите настройки.!!!!
###
###################################
### Режимы работы скрипта ###
###################################
### Режим - "Копание".###
###################################
###
### "sub maning()"
### Этот скрипт главный и отвечает за копание.
###
### Положите в суммку к себе Рунбук(с Рунами домой и в лес), Кирку (лопату),рунку к сундуку(по суте копия той что у вас
### в рунбуке).Идите в пещеру в котором вы хотите копать.Запустите Скрипт maning(),Инжект попросит вас указать кирку
### (появится прицел,прицелом на кирку которую вы с собой взяли),потом инжект попросит вас указать Рунбук(появится прицел,
### прицелом на Рунбук ) Внимание!!! В РУНБУКЕ РУНА В 1ом слоте ДОМОЙ,в 8ом В пещеру.
### ВНИМАНИЕ!!! В СКРИПТЕ НОМЕРА РУН В РУНБУКЕ НАСТРОЕНЫ ПОД DRW (шард). 
### Инжект сообщит вам что ('Прячемся..') тоесть чар уйдет в хайд. Чар автоматом возмет в руки кирку и начнет "окапаватся".
### Если выкопали Элементала то скрипт включит "серену" и встанет на паузу пока вы просто не скажите GO.(так как вы в хайде) 
### Если появился ПК то чар зареколится к сундуку (по рунке!! так как на ДРВ рекол через рунбук 8,7 сек,а по рунке 2,3 сек)
### выкинет руду в сундук и будет ждать определенное время которое вы поставите в скрипте.
###
### Чтобы все заработало !!в скрипте!! поставте свои значения:
### 1)wait(180000) -- время в секундах при ожидании пока уйдет ПК (строка 153).
### 2)if uo.weight > 625 then -- Максимальный вес при котором домой с рудой (строка 160).
###
###
##############################
### Режимы - "Супорт".###
##############################
### "loot()"
### Этот скрипт отвечает за сброс руды в сундук.
### После "рекола" домой чар при помощи этого скрипта сбросит руду в сундук (лучше в сейф).
### VAR UnloadCont='0x40041342' ; ID сундука для сброса руды <<<< поставте свой (строка 196).
### 
### "Save()"
### Скрипт "спасатель", отвечает за рекол по любой рунке у вас в паке + реги (включается если прешел ПК)
### будет пытатся реколится пока не "улетит" из пещеры (защита от физла).
###
### "pwav() и pwavw()"
### Скрипты "сирены" отвечают за проигрование Звуковых файлов (WAV) при выкапывании элема или поялении ПК
### uo.playwav("E:\UO\SOUND\sound 01.wav")<< укажите на примере этого путь к своим файлам (строчки 239 и 243).
###
### "Pause()"
### Скрипта пауза если выкопали Элема.
### Если вы выкопали Элема скрипт как бы "зависнет"(встанет на паузу) за это время вы можете убить элема,
### привратившись в Демона или привести Дракона.После просто скажите в игре GO и чар продолжит копать.
###
###################
### Патчи Вердаты: ###
###################
### Сдесь я приведу пару ссылок на патчи которые помогут вам копать:
###
### 1)cave floor (для тех кто предпочитает копать вручную, этот файл-патч отделяет тайлы в пещерах друг от друга,
### что приводит к более комфортабельному копанию)
### www.drguild.fatal.ru/files/verdata/cavefloor.exe
###
### 2)clean dungeons (в пещерах и подземельях не виден всякий мусор, как то: кости, мусор, большая паутина,
### все сталагмиты заменены на маленькие и т.д.)
### www.drguild.fatal.ru/files/verdata/cleandungeons.exe
###
### 3)ore mod (большое количество руды (больше 4 шт.) выглядит как маленькая кучка (3 шт.),
### а изображение руды в количестве одной и двух штук уменьшено)
### www.drguild.fatal.ru/files/verdata/ore.exe
###
### (все пачтчи проверены и протестены,Но скрипт работает и без них,так что ставить или нет - это ваше решение)
###
### Лично я копаю с ними.....удобно. Удачи и приятного Маннинга. ))
### ВЕТЕРАН ака BETEP [WOD]


sub maning()
#BETEP™#
var mx, my, mz, i, j, jor, ser, noto
Uo.exec("set norbcheck 1"); для рекола
uo.exec("set norbcalc 1"); тоже

uo.print('!!Выбери Лопату!! ')
uo.exec('addobject Shovel')
while uo.targeting()
wait(100)
wend
 
uo.print('!!Выбери Рунбук!! ')
uo.exec('addobject Runebook')
while uo.targeting()
wait(100)
wend

na4alo:
mx = UO.GetX("self")
my = UO.GetY("self")
mz = UO.GetZ("self")
UO.DeleteJournal()
for i = mx-4 to mx+4
for j = my -4 to my+4
while not UO.Hidden()
UO.Warmode("0")
uo.print("Прячемся...")
UO.UseSkill("Hiding")
wait(4000)
wend
UO.Print("Копаем в координатах: "+str(mx-i)+" "+str(my-j))
while not UO.InJournal("no ore here") and not UO.InJournal("location") and not UO.InJournal("far away") and not UO.InJournal("in rock") and not UO.InJournal("Iron Ore") and not UO.InJournal("Copper") and not UO.InJournal("Rusty Ore")
UO.DeleteJournal()
if uo.waiting() then
uo.canceltarget()
endif
UO.Waittargettile("1341", str(i), str(j), str(mz))
UO.Useobject("Shovel")
while not UO.InJournal("You put") and not UO.InJournal("heavy") and not UO.InJournal("location") and not UO.InJournal("no ore") and not UO.InJournal("but fail") and not UO.InJournal("far away") and not UO.InJournal("in rock")
wait (500)
if uo.injournal("heavy") or uo.dead() then
pwav()                   
Pause()
endif
for jor = 0 to 9   
ser = uo.journalserial(jor)
noto = uo.getnotoriety(ser)
if noto <> 1 and noto <> 0 and not uo.injournal("elemental") then
if uo.waiting() then
uo.canceltarget()
endif
Save()
pwavw()
wait(180000) ; время в секундах при ожидании пока уйдет ПК
loot()
wait(3000)
goto reccal
endif
next   
wend
if uo.weight > 625 then  ; Максимальный вес при котором домой с рудой
goto end
endif
wend
UO.DeleteJournal()
next
next
goto na4alo
end:
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 21") ; домой ( в рунбуке слот 1 )
wait(10000)
loot()
wait(3000)
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
uo.exec("recall Runebook 94") ; в шахту ( в рунбуке слот 8 )
mx = UO.GetX("self")
my = UO.GetY("self")
wait(10000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
goto na4alo
end sub

sub loot()    ; перекладка руды в сундук
if uo.waiting() then
uo.canceltarget()
endif
VAR a,Exit
VAR UnloadCont='0x40041342' ; АЙДИ сундука для руды 
DIM Ore[5]
Ore[0]=0x19B9 ; 4 and more ore
Ore[1]=0x19B7 ; 1 ore
Ore[2]=0x19BA ; 2 ore
Ore[3]=0x19B8 ; 3 ore
UO.SetReceivingContainer(UnloadCont)
wait(500)
For a=0 to 3
Exit=0
repeat
UO.FindType(Ore[a])
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(1500)
Else
Exit=1
endif
until Exit==1
Next
UO.UnSetReceivingContainer()
end sub

sub Save() ; Реколл от ПК при их появлении (в паке рунка в безопасное место и реги)
var mx, my
reccal:
uo.deletejournal()
if uo.waiting() then
uo.canceltarget()
endif
mx = UO.GetX("self")
my = UO.GetY("self")
UO.DeleteJournal()
UO.FindType('0x1F14',-1,'my')
wait(200)
UO.Cast('Recall','finditem')
wait(4000)
if not UO.GetX("self") <> mx and not UO.GetY("self") <> my then
goto reccal
endif
end sub

sub pwav() ; звук при выкапывании ЭЛЕМЕНТАЛА
uo.playwav("E:\UO\inject\SOUND\chanting sound 01.wav")
endsub

sub pwavw(); звук при появлении ПК
uo.playwav("E:\UO\inject\SOUND\chanting sound 01.wav")
endsub

sub Pause() ; Пауза скрипта если выкопали Элема (продолжить сказав GO )
UO.DeleteJournal()
REPEAT
WAIT(3000)
UO.Print("!!!СКРИПТ НА ПАУЗЕ!!!!")
UNTIL UO.InJournal('GO')
UO.Print("!!!СКРИПТ ПРОДОЛЖЕН!!!!")
endif
end sub

Posted: 2009-12-11 21:01:38
by Mirage
Блин в нем же написано в самом низу Убери этот кусок и ссылки на него в скрипте

Posted: 2009-12-12 07:52:25
by CuHTpoH
Мираж твои терпение и любезность бескрайни ^_^ :roll:

Posted: 2009-12-13 16:22:13
by Mirage
Мне говорили :roll:

Просто я еще ТУТ молодой. Скоро начну плеваться царапатсья и пинать всех ногами. :twisted:

Posted: 2009-12-14 00:28:38
by CuHTpoH
лучше всего - тонко стебаться ))

Posted: 2009-12-18 10:48:23
by Dpyr
а есть такой же скрипт только без рекола....
чтоб вышел сам из шахты и выложил, и потом опять сам зашел и начал копать???

Posted: 2009-12-18 14:52:37
by Mirage
Есть. Это называется
модуль хождения+ходилка+модуль копания
чтото типо

Code: Select all

goto(x1,y1)
kopa()
goto(x2,y2)
kopa()
goto(x3,y3)
sbros()

аа забыл. все есть у поиска ;)

Posted: 2009-12-18 14:55:46
by Dpyr
та я скоро кончусь с этим поиском...с 9 утра сижу ищу...понаходил все...никак не пойму..пожешь ссылку дать ?


Code: Select all

sub pusk()
while not uo.dead()

          #GoToTile(1658,2882,0, False )
             #GoToTile(1652,2882,0, False )
             #GoToTile(1652,2894,0, False )       

        GoToTile(1648,2894,0, False )
        kopka()
           
          GoToTile(1652,2894,0, False )
            GoToTile(1652,2882,0, False )
            GoToTile(1658,2882,0, False )
             GoToTile(1658,2878,0, False )
                         
             hiding()
             grabore()
             
             GoToTile(1658,2882,0, False )
             GoToTile(1652,2882,0, False )
             GoToTile(1652,2894,0, False )
             
             wend
    endsub
    #Ïðè ðàáîòå äîëæíà áûòü "îòæàòà" êíîïêà NumLock
Var MoveDelay=500 # Ïðîìåæóòîê ìåæäó øàãàìè
Var Ep=0.179 # Çíà÷åíèå øèðèíû óãëà õîæäåíèÿ ïðè îïðåäåëåíèè íàïðàâëåíèÿ. Åñëè íà ïóòè âñòðå÷àþòñÿ ñëîæíûå è øèðîêèå ïðåïÿòñòâèÿ - óâåëè÷èòü. 0.172 - ñáàëàí÷èðîâàííûé.

Sub Perp(Dir)
 Var D
 D=Dir
 If Dir==1 Then
  D=3
 EndIf
 If Dir==2 Then
  D=4
 EndIf
 If Dir==3 Then
  D=-1
 EndIf
 If Dir==4 Then
  D=-2
 EndIf
 If Dir==-1 Then
  D=-3
 EndIf
 If Dir==-2 Then
  D=-4
 EndIf
 If Dir==-3 Then
  D=1
 EndIf
 If Dir==-4 Then
  D=2
 EndIf
 RETURN D
EndSub

Sub MoveOnce(Dir,Del)
 Var D=UO.GetDir(),X=UO.GetX(),Y=UO.GetY(),T=UO.Timer()
 If (Dir<>0) Then
  If Dir==1 Then
   UO.Press(38)
  EndIf
  If Dir==2 Then
   UO.Press(33)
  EndIf
  If Dir==3 Then
   UO.Press(39)
  EndIf
  If Dir==4 Then
   UO.Press(34)
  EndIf
  If Dir==-1 Then
   UO.Press(40)
  EndIf
  If Dir==-2 Then
   UO.Press(35)
  EndIf
  If Dir==-3 Then
   UO.Press(37)
  EndIf
  If Dir==-4 Then
   UO.Press(36)
  EndIf
  While (Del>(UO.Timer()-T)*100) and (X==UO.GetX()) and (Y==UO.GetY()) and (D==UO.GetDir())
   Wait(100)
  Wend
  If D<>UO.GetDir() Then
   MoveOnce(Dir,Del-(UO.Timer()-T)*100)
  EndIf
 EndIf
EndSub

Sub GetQDir(x,y)
 Var J=0
 If X==0 Then
  J=1
 Else
  If (Y/X)<ep Then
   J=3
  Else
   If (X/Y)<ep Then
    J=1
   Else
    J=2
   EndIf
  EndIf
 EndIf
 RETURN J
EndSub

Sub GetDir(myx,myy,ox,oy)
 Var I,J
 J=0
 Var X=ox-myx
 Var Y=oy-myy
 I=GetQDir(Abs(X),Abs(Y))
 If X>=0 Then
  If Y>=0 Then
   If I==1 Then
    J=-2
   Else
    If I==2 Then
     J=-1
    Else
     If I==3 Then
      J=4
     EndIf
    EndIf
   EndIf
  Else
   If I==1 Then
    J=2
   Else
    If I==2 Then
     J=3
    Else
     If I==3 Then
      J=4
     EndIf
    EndIf
   EndIf
  EndIf
 Else
  If Y>=0 Then
   If I==1 Then
    J=-2
   Else
    If I==2 Then
     J=-3
    Else
     If I==3 Then
      J=-4
     EndIf
    EndIf
   EndIf
  Else
   If I==1 Then
    J=2
   Else
    If I==2 Then
     J=1
    Else
     If I==3 Then
      J=-4
     EndIf
    EndIf
   EndIf
  EndIf
 EndIf
 RETURN J
endsub

Sub GetDistance(X,Y)
 return max(abs(X-uo.getx()),abs(Y-uo.gety()))
endsub

Sub GoToTile(OX,OY,N,S)
 var myx, myy, MD, J
 var Lx1 ,Ly1
 var Lx2 ,Ly2
 var Sx ,Sy
 var T
 var Des=N
 J=1
 MD=MoveDelay*1.5
 myx=uo.getx()
 myy=uo.gety()
 MoveOnce(GetDir(uo.getx(),uo.gety(),ox,oy),MD)
 Sx=0
 Sy=0
 Lx1=uo.getx()/2
 Ly1=uo.gety()/2
 Lx2=Lx1/2
 Ly2=Ly1/2
 T=UO.Timer()
 While ((GetDistance(ox,oy)<>N) or ((not S) and GetDistance(ox,oy)>N)) and (OX>=0) and (OY>=0)
  If ((UO.Timer()-T)*15>MoveDelay) Then
   T=UO.Timer()
   Lx2=Lx1
   Ly2=Ly1
   Lx1=myx
   Ly1=myy
   myx=uo.getx()
   myy=uo.gety()
  endIf
  MD=MoveDelay
  If ((OX-uo.getx())*(OX-uo.getx())+(OY-uo.gety())*(OY-uo.gety())>0) Then
   MD=MD*3/GetDistance(ox,oy)
  EndIf
  If GetDistance(OX,OY)>Des Then
   MoveOnce(GetDir(uo.GetX(),uo.GetY(),ox,oy),MD)
  Else
   If S Then
    If GetDistance(OX,OY)<Des Then
     If GetDistance(OX,OY)<>0 Then
      MoveOnce(GetDir(ox,oy,uo.GetX(),uo.GetY()),MD)
     Else
      MoveOnce(GetDir(uo.GetX(),uo.GetY(),Lx2,Ly2),MD)
     EndIf
    EndIf
   EndIf
  EndIf
  If (GetDistance(OX,OY)<=3) Then
   Wait(MoveDelay*(4-GetDistance(OX,OY)))
  EndIf
  If GetDistance(OX,OY)<>Des Then
   If (Lx2==uo.getx()) and (Ly2==uo.gety()) Then
    If (Sx<>uo.getx()) or (Sy<>uo.gety()) Then
     J=0
    EndIf
    J=J+1
    UO.Resend()
    Sx = uo.getx()
    Sy = uo.gety()
    Stun(ox,oy,J)
   EndIf
  EndIf
 Wend
endsub

Sub Stun(X,Y,N)
 Var I
 Var myx
 Var myy
 myx = uo.getx()
 myy = uo.gety()
 For I=1 to N
  MoveOnce(perp(GetDir(myx,myy,x,y)),MoveDelay)
 Next
 Wait(MoveDelay)
 UO.Resend()
 If (myx==uo.getx()) and (myy==uo.gety()) Then
  For I=1 to N
   MoveOnce(-perp(GetDir(myx,myy,x,y)),MoveDelay)
  Next
  Wait(MoveDelay)
  UO.Resend()
 EndIf
 If (myx==uo.getx()) and (myy==uo.gety()) Then
  For I=1 to N
   MoveOnce(-GetDir(myx,myy,x,y),MoveDelay)
  Next
  Wait(MoveDelay)
  Stun(x,y,N)
 EndIf   
EndSub

Sub NearTile(Obj,Des,S)
 var ox, oy, myx, myy, MD, J
 var Lx1 ,Ly1
 var Lx2 ,Ly2
 var Sx ,Sy
 var T
 UO.Click(Obj)
 MD=MoveDelay*1.5
 ox=uo.GetX(Obj)
 oy=uo.GetY(Obj)
 J=1
 myx = uo.getx()
 myy = uo.gety()
 Sx=0
 Sy=0
 Lx1=myx/2
 Ly1=myy/2
 Lx2=Lx1/2
 Ly2=Ly1/2
 T=UO.Timer()
 While not (UO.GetDistance(Obj)==Des)
  ox=uo.GetX(Obj)
  oy=uo.GetY(Obj)
  If ((UO.Timer()-T)*15>MoveDelay) Then
   T=UO.Timer()
   Lx2=Lx1
   Ly2=Ly1
   Lx1=myx
   Ly1=myy
   myx=uo.getx()
   myy=uo.gety()
  endIf
  MD=MoveDelay*1.5
  If (UO.GetDistance(Obj)>0) Then
   MD=MD/UO.GetDistance(Obj)
  EndIf
  If UO.GetDistance(Obj)>Des Then
   MoveOnce(GetDir(uo.GetX(),uo.GetY(),uo.GetX(obj),uo.GetY(obj)),MD)
  Else
   If S Then
    If UO.GetDistance(Obj)<Des Then
     If UO.GetDistance(Obj)<>0 Then
      MoveOnce(-GetDir(uo.GetX(),uo.GetY(),uo.GetX(obj),uo.GetY(obj)),MD)
     Else
      MoveOnce(GetDir(uo.GetX(),uo.GetY(),Lx2,Ly2),MD)
     EndIf
    EndIf
   EndIf
  EndIf
  If (UO.GetDistance(Obj)<=3) Then
   Wait(MoveDelay*(4-UO.GetDistance(Obj)))
  EndIf
  If UO.GetDistance(Obj)<>Des Then
   If (Lx2==uo.getx()) and (Ly2==uo.gety()) Then
    If (Sx<>uo.getx()) or (Sy<>uo.gety()) Then
     J=0
    EndIf
    J=J+1
    UO.Resend()
    Sx = uo.getx()
    Sy = uo.gety()
    Stun(uo.GetX(obj),uo.GetY(obj),J)
   EndIf
  EndIf
 Wend
 UO.Exec('terminate PermResend')
endsub

Sub abs(a)
 Var b
 If a<0 Then
  b=-a
 Else
  b=a
 endif
 return b
endsub

Sub max(A,B)
 Var C
 If A>B Then
  C=A
 Else
  C=B
 EndIf
 Return C
EndSub

Sub hiding()
uo.WarMode(0)
 while not UO.Hidden()
  UO.UseSkill('Stealth')
  wait(3500)
 wend
end sub

sub grabore()
if uo.waiting() then
uo.canceltarget()
endif
VAR a,Exit
VAR UnloadCont='0x401C9BAF' ; ID ñóíäóêà äëÿ ðóäû 
DIM Ore[5]
Ore[0]=0x19B9 ; 4 and more ore
Ore[1]=0x19B7 ; 1 ore
Ore[2]=0x19BA ; 2 ore
Ore[3]=0x19B8 ; 3 ore
UO.SetReceivingContainer(UnloadCont)
wait(500)
For a=0 to 3
Exit=0
repeat
UO.FindType(Ore[a])
if UO.GetQuantity('finditem')>0 then
UO.Grab('0','finditem')
wait(1500)
Else
Exit=1
endif
until Exit==1
Next
UO.UnSetReceivingContainer()
endsub

var pickaxe
sub kopka()
var mx, my, mz, i, j, f
   mx = UO.GetX('self')
   my = UO.GetY('self')
   mz = UO.GetZ('self')
   GetPickaxe()
   while 1
      for i = mx-4 to mx+4
         for j = my -4 to my+4
            repeat
               if uo.injournal('You loosen some rocks but fail') then
                  wait(10000)
               endif
               Tohide()
               UO.Print('Êîïàåì â êîîðäèíàòàõ: '+str(mx-i)+' '+str(my-j))
               DigAhole(i,j,mz)
            until not uo.injournal('You loosen some rocks but fail')
         next
      next
   wend
endsub
sub Tohide()
   while not uo.Hidden()
      uo.warmode(0)
      uo.Print('Ïûòàåìñÿ óéòè â õàéä...')
      uo.UseSkill('Hiding')
      wait(4000)
   wend
end sub
sub GetPickaxe()
   var n
   dim instrument[4]
   instrument[1]='0x0F39'
   instrument[2]='0x0F3A'
   instrument[3]='0x0E86'
   instrument[4]='0x0E85'
   for n=1 to 4
      uo.findtype(instrument[n],-1,'my')
      if uo.findcount() then
         pickaxe=uo.getserial('finditem')
         return
      endif
   next   
   while 1
      uo.print(' pickaxe not found ')
      wait(3000)
   wend
endsub
sub DigAhole(i,j,mz)
   var f
   for f=0 to 10
      checklag()
      uo.waittargettile('1341',i,j,mz)
      uo.useobject(pickaxe)
      if waitforore()==1 then
         return
      endif
   next
endsub
sub waitforore()
   var n
   for n=0 to 50
      if uo.injournal('no ore here|location|far away|in rock|You have been revealed|You put') then
         return 1
      endif
      if uo.injournal('but fail') then
         return
      endif
      wait(500)
   next
endsub
sub CheckLag()
   repeat
      UO.DeleteJournal()
      UO.Click('backpack')
   until backpack()==1
endsub
sub backpack()
   var n
   for n=0 to 200
      if uo.injournal('a backpack') then
         return 1
      endif
      wait(200)
   next
endif
endsub 


#################çàùèòà îò ýëåìîâ###################### 

sub Pause() ; Ïàóçà ñêðèïòà åñëè âûêîïàëè Ýëåìà (ïðîäîëæèòü ñêàçàâ GO )
UO.DeleteJournal()
REPEAT
 uo.playwav("C:\exit.wav")
 WAIT(1000)
 UO.Print("!!!ÑÊÐÈÏÒ ÍÀ ÏÀÓÇÅ!!!!")
 WAIT(10000)
 st()
UNTIL UO.InJournal('GO')
UO.Print("!!!ÑÊÐÈÏÒ ÏÐÎÄÎËÆÅÍ!!!!")
endif
end sub

Sub st()
uo.msg('\w Rayva òàùè ñâîþ Æ ñïàñàòü ìîåãî êîïàëêó ')
WAIT(200)
uo.msg('\w Ona Ona Onana: òàùè ñâîþ Æ ñïàñàòü ìîåãî êîïàëêó ')
end sub

Sub CheckLag()
   UO.DeleteJournal('backpack')
   UO.Click('backpack')   
   repeat
   wait(100)
   until UO.InJournal('backpack')
   wait(300)
end sub

sub GMstep()
If UO.GetGlobal('GMstepCheck')=='on' Then
    UO.SetGlobal('GMstepCheck','off')
    UO.Print("GM Step: Off")
    UO.Morph('0')
Else
    UO.SetGlobal('GMstepCheck','on')
    UO.Print("GM Step: On")
    UO.Morph('0x03DB')
    Wait(100)
    UO.Msg(".resync")
End If
end sub


я вот так както переделал свой скрипт и скрипт какойто с этого форума....но в нем он копает доупора...как проверку сделать когда скрипт должен закончится и ити выгружать ??