open door

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
Bangbuss
Posts: 228
Joined: 2005-07-06 18:17:24

open door

Post by Bangbuss »

kak otkrivat` i zakrivat` srazu 2 dveri? u menja dom takoj i nado 6tob bistro mozhno bilo zakrit` 2 dveri srazu.
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

В одном из моих скриптов есть такая функция, возьми ее за основу для своего скрипта:

Code: Select all

Sub OpenMyDoor( x1, y1 )
   UO.Set( 'finddistance', '2' )
   DIM ClosedDoor[4]
   DIM OpenedDoor[4]
   DIM ChangeX[4]
   DIM ChangeY[4]
   ; дверь 1-9
   ; левая створка
   ClosedDoor[0] = '0x06AD'
   OpenedDoor[0] = '0x06AE'
   ChangeX[0] = -1
   ChangeY[0] = -1
   ; правая створка
   ClosedDoor[1] = '0x06AF'
   OpenedDoor[1] = '0x06B0'
   ChangeX[1] = -1
   ChangeY[1] = 1
   ; дверь 7-3
   ; левая створка
   ClosedDoor[2] = '0x06A5'
   OpenedDoor[2] = '0x06A6'
   ChangeX[2] = 1
   ChangeY[2] = -1
   ; правая створка
   ClosedDoor[3] = '0x06A7'
   OpenedDoor[3] = '0x06A8'
   ChangeX[3] = -1
   ChangeY[3] = -1
   VAR i, flag = 0, SerFI, DoorX, DoorY, s
   VAR nemogu = "You can't reach that."
   # Поехали!
   DeleteJournal( nemogu )
   For i = 0 To 3
      UO.FindType( OpenedDoor[i], '-1', '1' )
      If UO.FindCount() > 0 Then
         DoorX = UO.GetX( 'finditem' ) + ChangeX[i]
         DoorY = UO.GetY( 'finditem' ) + ChangeY[i]
         GoToXY( str( DoorX ), str( DoorY ), '0', Timeout )
         CheckLag()
         UO.Print( 'Already open' )
         return
      Endif
   Next
   For i = 0 To 3
      UO.FindType( ClosedDoor[i], '-1', '1' )
      If UO.FindCount() > 0 Then
         SerFI = UO.GetSerial( 'finditem' )
         UO.OpenDoor()
         flag = 1
         wait(500)
         CheckLag()
         UO.FindType( OpenedDoor[i], '-1', '1' )
         If UO.FindCount() > 0 Then
            DoorX = UO.GetX( 'finditem' ) + ChangeX[i]
            DoorY = UO.GetY( 'finditem' ) + ChangeY[i]
            GoToXY( str( DoorX ), str( DoorY ), '0', Timeout )
            CheckLag()
            UO.Print( 'Allright' )
            return
         Else
            If UO.InJournal( nemogu ) Then
               GoToXY( str( x1 ), str( y1 ), '0', Timeout )
            Endif
            wait(1000)
            ; Не получилось мытьем, попробуем катаньем
            UO.Print( 'Use double click...' )
            s = 0
            repeat
               UO.UseObject( SerFI )
               wait( 1000 )
               CheckLag()
               s = s + 1
               UO.FindType( OpenedDoor[i], '-1', '1' )
            until UO.Findcount() OR s > 10
            If s > 10 Then
               return
            Endif
            DoorX = UO.GetX( 'finditem' ) + ChangeX[i]
            DoorY = UO.GetY( 'finditem' ) + ChangeY[i]
            GoToXY( str( DoorX ), str( DoorY ), '0', Timeout )
            CheckLag()
            UO.Print( 'Allright' )
            return
         Endif
      Endif
   Next
endsub
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
ZWERb
Posts: 122
Joined: 2006-03-08 11:59:41

Post by ZWERb »

Встроенный макрос клиента!!!! OpenDoor(s)
Иногда проще пользоватца встроенными макросами клиента чем парить мозги над инжой =-)
СМЕРТЬ ФЛУДЕРАМ!
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

У дверей есть сериал и тип. Если это двери твоего дома то просто юзаешь сериал и проверяешь тип.
Savage
Expert!
Posts: 1205
Joined: 2004-04-04 11:13:54
Location: Балаково, Саратовская обл.
Contact:

Post by Savage »

опендоор может открыть самую неожиданную дверь :) так что не канает
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Post by Askaneli »

Причём стоя у дверей дома может открыть калитку которая дальше находится. Лучше всё таки сериал юзать и тип проверять ...
Сделал дело - флуди смело !!!
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Еще добавлю: если дверь двойная, opendoor() может открыть не ту половинку, перед которой стоит чар. И тогда, если чар на макре, зайдет он или нет - будет зависить от продвинутости ходилки...
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
Post Reply