Показано с 1 по 10 из 10

Тема: Кемпинг

  1. #1
    Житель Ультимы (Level 1)
    Регистрация
    13.03.2018
    Сообщений
    69

    Кемпинг

    Поделитесь плз работающим скриптом на кемпинг.
    Спасибо.

  2. #2
    Гейм Мастер (GM)
    Регистрация
    15.02.2018
    Сообщений
    198
    я тоже жду)

  3. #3
    Житель Ультимы (Scout)
    Регистрация
    24.03.2018
    Сообщений
    28
    Тоже подхожу к прокачке кемпинга, так что вечерком, думаю, займусь. Пожелания есть?
    И такой вопрос: помню раньше надо было переходить в клетку где нет кострища, чтобы скилл рос, это все еще так?

  4. #4
    Житель Ультимы (Level 1)
    Регистрация
    13.03.2018
    Сообщений
    69
    Как то так, стоит холд на следующий костер

  5. #5
    Житель Ультимы (Scout)
    Регистрация
    24.03.2018
    Сообщений
    28
    Скрипт написал. Состояние рабочее, но пока тест непродолжителен по времени. Версия инжи на которой писалось 1508.09, если на более ранних версиях будут ошибки - пишите. Для работы вам понадобиться:
    1) Свободный квадрат 5х5 тайлов, мешок, много киндлов и еда(по желанию)
    2) Мешочек (!!!не сундук или ящик!!!) положить на землю в серединку подготовленного квадрата
    3) Изменить 4 переменных в начале скрипта
    4) Время.... много времени...

    Скрипт отредактирован! 29.04.2018 4:25 (GMT+3)
    Код:
    var TrySpirit=1 ### Качаем спирит спик или нет? (1 - да, 0 - нет) ###
    var TryEat=1 ### Будем ли кушать? (1 - да, 0 - нет)               ###
    var CampBag="SerialNumber" ###  Мешочек с ветками и едой            ###
    var foodt='0x097B' ### Тип еды которую будем кушать               ###
    #####################################################################
    var i, cofi, x, y, n, gti, gtz, ssh
    var BagX, BagY, MyX, MyY, CampfireType
    var SpiritTime=UO.Timer()
    var KindlingT='0x0DE1'
    var ssm1="fail your attempt"
    var ssm2="connection"
    var ssm3="stop trying"
    var dtm1="simply too full to eat"
    sub main()
       DIM SpotX[25]
       DIM SpotY[25]
       BagX=UO.GetX(CampBag)
       BagY=UO.GetY(CampBag)
       UO.CancelMenu()
       UO.DeleteJournal()
       UO.Set('finddistance', 0)
       GoToXY(BagX, BagY)
       UO.OpenContainer(CampBag)
       CheckLag()
       wait(500)
       i=0
       for x=-2 to 2
          for y=-2 to 2
             SpotX[i]=BagX+x
             SpotY[i]=BagY+y
             i=i+1
          next
       next
       if TryEat==1 then
          DinnerTime()
       end if
       while UO.SkillVal('Camping')<1000
          for i=0 to 24
             if TrySpirit==1 then
                SpiritSpeak()
             end if
             if CheckKindling()==1 then
                UO.Print("No Kindlings!")
                return 0
             end if
             if GoToXY(SpotX[i], SpotY[i])==1 then
                wait(1000)
                if UO.WaitingMenu() then
                   UO.CancelMenu()
                end if
                if CheckOldFire()==1 then
                   wait(1000)
                else
                   wait(9000)
                   ToCamp()
                end if
             end if  
          next
       wend  
    end sub
    
    Sub ToCamp()
       if UO.SkillVal('Camping')<600 then
          CampfireType="campfire (1 kindling)"
       else
          if UO.SkillVal('Camping')<700 then
             CampfireType="Campfire of Sustance"
          else
             if UO.SkillVal('Camping')<800 then
                CampfireType="Campfire of Refreshment"
             else
                if UO.SkillVal('Camping')<900 then
                   CampfireType="Campfire of Spiritual Regeneration"
                else
                   CampfireType="Campfire of Healing"
                end if
             end if
          end if
       end if
       UO.WaitMenu("Campfires", CampfireType)
       UO.UseType(KindlingT, -1)
       wait(250)
    end sub
    
    Sub CheckKindling()
       UO.FindType(KindlingT, -1, 'backpack')
       if UO.FindCount('finditem')==0 or UO.GetQuantity('finditem')<40 then
          if TryEat==1 then
             DinnerTime()
          end if
          if GetKindling()==1 then
             return 1
          end if
       end if
       return 0  
    end sub
    
    Sub GetKindling()
       n=UO.Str*4-UO.Weight
       UO.FindType(KindlingT, -1, CampBag)
       if UO.FindCount('finditem')==0 or UO.GetQuantity('finditem')<40 then
          return 1
       else
          UO.MoveItem('finditem', n, 'backpack')   
       end if
       return 0
    end sub
    
    Sub CheckOldFire()
       DIM FireT[7]
       FireT[0]='0x0DE3'
       FireT[1]='0x0DE4'
       FireT[2]='0x0DE5'
       FireT[3]='0x0DE6'
       FireT[4]='0x0DE7'
       FireT[5]='0x0DE8'
       FireT[6]='0x0DE9'
       for cofi=0 to 6
          if UO.FindType(FireT[cofi], -1, 'ground') then
             return 1
          end if
       next
       return 0
    end sub
    
    Sub GoToXY(GoToX, GoToY)
       for gti=0 to 60
          MyX=UO.GetX()
          MyY=UO.GetY() 
          if GoToX==myX and GoToY==myY then
             return 1
          end if
          if GoToX<MyX then
             if UO.GetDir()<>6 then
                UO.Press(36)
             end if
             UO.Press(36)
             wait(250)
          end if
          if GoToX>MyX then
             if UO.GetDir()<>2 then
                UO.Press(34)
             end if
             UO.Press(34)
             wait(250)
          end if
          if GoToY<MyY then
             if UO.GetDir()<>0 then
                UO.Press(33)
             end if
             UO.Press(33)
             wait(250)
          end if
          if GoToY>MyY then
             if UO.GetDir()<>4 then
                UO.Press(35)
             end if
             UO.Press(35)
             wait(250) 
          end if 
       next
       return 0
    end sub
    
    Sub SpiritSpeak()
       if SpiritTime+3000<UO.Timer() and UO.SkillVal("Spirit Speak")<1000 then
          repeat
             UO.DeleteJournal(ssm1)
             UO.UseSkill("Spirit Speak")
             ssh=0
             repeat
                wait(250)
                ssh=ssh+1
             until UO.InJournal(ssm1) or UO.InJournal(ssm2) or UO.InJournal(ssm3) or ssh>=60
          until UO.InJournal(ssm2) or UO.InJournal(ssm3) or UO.Dead()
          SpiritTime=UO.Timer()
          UO.DeleteJournal()
       end if
    end sub
    
    Sub DinnerTime()
       if not UO.FindType(foodt, -1, CampBag) then
          UO.Print("No Food!")
       else
          UO.MoveItem('finditem', 50, 'backpack')
          CheckLag()
          wait(500)
          while not UO.InJournal(dtm1)
             UO.UseType(foodt, -1)
             wait(500)
          wend
          while UO.FindType(foodt, -1, 'backpack')
             UO.MoveItem('finditem', 'all', CampBag)
             CheckLag()
             wait(500)
          wend
       end if
       UO.DeleteJournal()
    end sub
    
    Sub CheckLag() 
       UO.Click('backpack') 
       repeat 
          wait(250) 
       until UO.InJournal("Backpack")
       UO.DeleteJournal("Backpack") 
    end sub
    Последний раз редактировалось Shtoltz; 29.04.2018 в 04:25.

  6. #6
    Житель Ультимы (Level 1)
    Регистрация
    13.03.2018
    Сообщений
    69
    Работает, но топорно, просто кидает костер себе под ноги...
    У меня так...
    +кстати кемпинг хреново растет, долго, но мне уже все равно 4к есть...

  7. #7
    Житель Ультимы (Scout)
    Регистрация
    24.03.2018
    Сообщений
    28
    ээм, а как должно работать тогда? я видимо не в курсах

  8. #8
    Житель Ультимы (Scout)
    Регистрация
    24.03.2018
    Сообщений
    28
    или ты имеешь ввиду что скрипт ничего не делает кроме как стоит на месте и кемп качает?

  9. #9
    Житель Ультимы (Level 1)
    Регистрация
    13.03.2018
    Сообщений
    69
    на сколько мне известно, что бы с4коратить холд между зажиганиями костра чар должен перемешаться..

  10. #10
    Житель Ультимы (Scout)
    Регистрация
    24.03.2018
    Сообщений
    28
    Сейчас проверил скриптом зажигающим костры раз в секунду:
    Постоял на месте - зажигается каждый девятый; начал безостановочно ходить/бегать - результат тот же. (т.е. задержка как ни крути - 9 секунд)
    Так же потестил растет ли скилл вообще, если стоять на месте и не двигаться - растет. Медленнее или нет - вопрос сложный, так как надо несколько чаров с одинаковыми скиллами запускать одновременно и сравнивать время прокачки до 100.

    Так что если скрипт работает исправно, то все должно быть в порядке.
    ПС: скрипт должен работать следующим образом: после запуска он встает на клетку с мешком, открывает его, кушает, берет ветки и начинает ходить, разжигая костры, в округе тайл_мешка +-2 тайла с сумарной задержкой примерно 10 секунд между кострами, качать спирит спик каждые 5 минут (первое использование скилла через 5 минту после запуска), повторно кушает во время добора веток

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •