Управление скоростью лодки.
Прапорщик (1606194)5 лет
Ranger
Сообщений: 207
Рег. 4.04.2018
18 мая 2018 19:23
Сообщение #1
Обзавелся мотором и встал вопрос, как бы автоматизировать переключение скорости. На максимуме не удобно к трупу подплывать, а каждый раз бегать и тыкать руками лень. Нужен минимум: 1 кнопка - максимум, 2 кнопка - минимум.
На скоренькую накидал (в меру знаний, а точнее их отсутствия) вот такой скриптик:
sub SpeedDown()          
   uo.click('0x40BA6970')
   Wait(250)
   UO.SendGumpSelect(1)
   Wait(150)
   UO.SendGumpSelect(1)
   Wait(150)
   UO.SendGumpSelect(1)
   Wait(150)
   UO.SendGumpSelect(1)
   Wait(150)
   UO.SendGumpSelect(1)
   Wait(150)
   UO.SendGumpSelect(1)
endsub

И все меня устраивало, и радости моей не было предела... До первого поворота и потом я вспомнил что ID у шипмейкера уже другой. В последствии скриптик чуть-чуть разросся:
sub SpeedUP()
   UO.FindType( '0x3E50', '-1', '1' )
   If UO.FindCount() > 0 Then
   wait(1000)            
   uo.click('finditem')
   Wait(250)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Else
   UO.FindType( '0x3E4E', '-1', '1' )
   If UO.FindCount() > 0 Then  
   wait(1000)            
   uo.click('finditem')
   Wait(250)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Else
   UO.FindType( '0x3E55', '-1', '1' )
   If UO.FindCount() > 0 Then
   wait(1000)            
   uo.click('finditem')
   Wait(250)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Else
   UO.FindType( '0x3E4B', '-1', '1' )
   If UO.FindCount() > 0 Then
   wait(1000)            
   uo.click('finditem')
   Wait(250)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   end if
   end if
   end if
   end if
endsub

И, по мимо того что написан хер пойми как (кстати работает), стал срабатывать только стоя впритык к пушке, хотя в первой версии работал от мачты. Так-как я не могу сообразить как мне убрать поиск всех 4 типов в один массив, просьба к более компетентным лицам меня направить.
P/s - 10 уроков уже прочитал, не помогло.
Прапорщик (1606194)5 лет
Ranger
Сообщений: 207
Рег. 4.04.2018
18 мая 2018 20:54
Сообщение #2
Разобрался сам, оставлю тут. Может быть кому пригодится, а может найдется тот - кто его поправит, если он говнячий. Скрипт для 6-ти тайлового корабля, снижает скорость до 3-х, увеличивает до максимума. Регулировать можно количеством строчек:
UO.SendGumpSelect(2)

Для ускорения и:
UO.SendGumpSelect(1)

Для замедления.
Сами скрипты:
Ускорение
Sub SpeedUp()

dim RabNaGalere[4]
    RabNaGalere[0]     = 0x3E50
    RabNaGalere[1]     = 0x3E4E
    RabNaGalere[2]     = 0x3E55
    RabNaGalere[3]     = 0x3E4B

var Index

  for Index = 0 to 3
    if UO.FindType(RabNaGalere[Index], -1, 'ground', 5) <> '' then
      UO.ColorPrint(0x042B, 'Ускоряемся, блеать!')
        UO.click('finditem')
        if UO.GetFoundedTextID() == 2 then
          UO.Ignore('finditem')
        end if
    end if
  next
  Wait(250)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
   Wait(150)
   UO.SendGumpSelect(2)
end sub


Замедление

Sub SpeedDown()

dim RabNaGalere[4]
    RabNaGalere[0]     = 0x3E50
    RabNaGalere[1]     = 0x3E4E
    RabNaGalere[2]     = 0x3E55
    RabNaGalere[3]     = 0x3E4B

var Index

  for Index = 0 to 3
    if UO.FindType(RabNaGalere[Index], -1, 'ground', 5) <> '' then
      UO.ColorPrint(0x042B, 'Притормози, братюня!')
        UO.click('finditem')
        if UO.GetFoundedTextID() == 2 then
          UO.Ignore('finditem')
        end if
    end if
  next
  Wait(250)
   UO.SendGumpSelect(1)
   Wait(150)
   UO.SendGumpSelect(1)
   Wait(150)
   UO.SendGumpSelect(1)
   wait(150)
end sub

Старший Лейтенант (5006416)14 лет
Администратор
Сообщений: 19669
Рег. 31.07.2009
18 мая 2018 21:10
Сообщение #3

Up        Повысить скорость на один тайл (требуется Sail Improvement Tools)
Down        Снизить скорость на один тайл (требуется Sail Improvement Tools)
Max, Maximum    Установить максимальную скорость (требуется Sail Improvement Tools)
Min, Minimum    Установить минимальную скорость (требуется Sail Improvement Tools)

--------------------
Прапорщик (1606194)5 лет
Ranger
Сообщений: 207
Рег. 4.04.2018
18 мая 2018 21:40
Сообщение #4
Цитата: Jose Cuervo
Sail Improvement Tools

Упс... Не знал. Но, тем не менее, новые знания будут полезны (я про скрипт) :crazy:
Последние посетители (0):

 
Сейчас: 28 марта 2024 11:05