Вторник, 24.06.2025, 20:16
[nIrVaNa]
Приветствую Вас Призывник | RSS

Меню сайта
Ultima Online
  • Ultima Online DRW
  • .::Games::.
  • EVE Online
  • Russia EVE-RU
  • Ukrainian EVE-UA
  • [6OP3bIE CAHTEXHuru] EVE
  • L2Europa.com
  • Clan Viktoria L2Europa.com
  • Мини-чат
    Главная » Статьи » Мои статьи

    Скрипт на Копка со скал
    sub pusk()
    while not uo.dead()
      GoToTile(5150,3660,0, False )
      kopka()
      GoToTile(5151,3653,0, False )
      kopka()
       
      GoToTile(5151,3647,0, False )
      kopka()
       
      GoToTile(5153,3641,0, False )
      kopka()
       
      GoToTile(5154,3634,0, False )
      kopka()
       
      GoToTile(5152,3627,0, False )
      kopka()
       
      GoToTile(5151,3621,0, False )
      kopka()
       
      GoToTile(5151,3613,0, False )
      kopka()
       
      GoToTile(5153,3606,0, False )
      kopka()
       
      GoToTile(5156,3598,0, False )
      kopka()
       
      GoToTile(5159,3592,0, False )
      kopka()
       
      GoToTile(5156,3598,0, False )
      kopka()
       
      GoToTile(5153,3606,0, False )
      kopka()
       
      GoToTile(5151,3613,0, False )
      kopka()
       
      GoToTile(5151,3621,0, False )
      kopka()
       
      GoToTile(5152,3627,0, False )
      kopka()
       
      GoToTile(5154,3634,0, False )
      kopka()
       
      GoToTile(5153,3641,0, False )
      kopka()
       
      GoToTile(5151,3647,0, False )
      kopka()
       
       
      grabore() 
      wend 
      endsub 
      #При работе должна быть "отжата" кнопка NumLock 
    Var MoveDelay=1000 # Промежуток между шагами 
    Var Ep=0.172 # Значение ширины угла хождения при определении направления. Если на пути встречаются сложные и широкие препятствия - увеличить. 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() 
     var ms1="You have hidden" 
     var ms2="You can't" 
     repeat 
      uo.deletejournal() 
      UO.WarMode(0)
      uo.useskill('Hiding') 
      repeat 
      wait(100) 
      until uo.injournal(ms1) or uo.injournal(ms2) 
     until uo.injournal(ms1) 
    endsub 



    sub grabore() 
    if uo.waiting() then 
    uo.canceltarget() 
    endif 
    VAR a,Exit 
    VAR UnloadCont='0x401DDBF7' ; 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 

    Sub kopka() 
     var kirka='0x0E85' 
     var i,j,x,y,z 
     var ms1="Try mining" 
     var ms2="You put" 
     var ms3="There is no ore" 
     var ms4="You loosen" 
     x=uo.getx('self') 
     y=uo.gety('self') 
     z=uo.getz('self') 
     hiding() 
     for i=-1 to 1 
      for j=-1 to 1 
      repeat 
      uo.deletejournal() 
      uo.waittargettile(0,x+i,y+j,z) 
      uo.usetype(kirka) 
      repeat 
      wait(100) 
      until uo.injournal(ms1) or uo.injournal(ms2) or uo.injournal(ms3) or uo.injournal(ms4) 
      until uo.injournal(ms1) or uo.injournal(ms3) or uo.injournal("Elemental" ) 

    if UO.injournal("Elemental") then 
      pwavw()
     Pause() 
     
     Endif
      next 
     next 

    endsub 

    #################защита от элемов######################  

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

    sub pwavw(); звук при появлении elemental
    uo.playwav("C:\YokoInjection\LoopyMusic.wav") 
    endsub 

    sub st() 
    uo.msg('\w Irbiss тащи свою Ж спасать моего копалку ') 
    WAIT(200)
    uo.msg('\w Anna Karenina тащи свою Ж спасать моего копалку ')
    end sub






    Категория: Мои статьи | Добавил: -=DavidJones=- (15.11.2008)
    Просмотров: 1258 | Комментарии: 3 | Рейтинг: 0.0/0
    Всего комментариев: 1

     26.02.2009
    0  
      а как менять координаты ?? сколько не пробовал все в пустую, чар начинает идти в совсем противоположную сторону и в другой конец карты
    Ответ Цитата

    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]

    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Наш опрос
    Как Вам наш сайт
    Всего ответов: 244
    Copyright MyCorp © 2025