Добор Ресов. Помогите.

Ask for help

Moderators: Murderator+, Murderator

Post Reply
Yo Beggin
Posts: 2
Joined: 2011-09-14 01:11:18

Добор Ресов. Помогите.

Post by Yo Beggin »

Перерыл всё, не мог найти ничего похожего)
Вообщем.. Нужен скриптик на добор Химии (Рефреш, ГХ, Дедликов, Манок, Шринок) и Скролов.
По типу и по цвету, если такое возможно. Ну и чтобы можно было указать какое кол-во чего берёт.)
Заранее спасибо)
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Добор Ресов. Помогите.

Post by Mirage »

Извини за сарказм но я прямо вижу что ты зарегистрировавшись несколько часов назад только и делал что перерывал ВЕСЬ форум которому больше 5 лет. Это скиллы "мегомозг" и "супер чтение" надо иметь. :mrgreen:
А еще "слепоглаз" ибо я фиг знает как не заметить кнопку поиск (если ты читал форум).
Слово ДОБОР выдает 68 найденных страниц.

Если простые скрипты уровня

Code: Select all

      UO.FindType( item, color, cont )
      uo.moveitem('finditem', colich, 'backpack')

тогда вот (последний скрипт на странице) нормальный скрипт на добор.
Yo Beggin
Posts: 2
Joined: 2011-09-14 01:11:18

Re: Добор Ресов. Помогите.

Post by Yo Beggin »

По-моему, юзать поиск можно без реги)
Не нашёл того чего мне надо.
Регнулся - написал..)

В поиске юзал "добор". Может быть чего-то и не увидел. Но, нашёл только на добор регов.

Спасибо.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Добор Ресов. Помогите.

Post by ZeroDX »

А одноцветные и однотипные поты складываются в одну кучу?
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Добор Ресов. Помогите.

Post by ZeroDX »

Скорее всего складываются... Вот

Code: Select all

sub Reload()
  Dim Potion[5]
    Potion[0] = '0x1234 0x1234 5 '  ;Сюда надо вбивать тип, цвет и кол-во потов, которое должно лежать в паке. Все через пробел, и обязательно пробел в конце строки
    Potion[1] = '0x1234 0x1324 5 '
    Potion[2] = '0x1234 0x1234 5 '
    Potion[3] = '0x1234 0x1234 6 '
    Potion[4] = '0x1234 0x1234 10 '
  var i, j, Container, RecContainer, MPause = 300 ; задержка между перемещениeм предметов
  If UO.Targeting() then
    UO.CancelTarget()
  Endif
  UO.AddObject('obj_Store')
  UO.Print('От куда таскать поты?')
  While UO.Targeting()
    Wait(100)
  Wend
  UO.AddObject('obj_Bag')
  UO.Print('Куда таскать поты?')
  While UO.Targeting()
    Wait(100)
  Wend
  For i = 0 to 4
    j = val(GetWord(Potion[i], 3, ' ')) - ItemCount(GetWord(Potion[i], 1, ' '), GetWord(Potion[i], 2, ' '), 'obj_Bag')
    If j < 0 then
      j = -j
      Container = UO.GetSerial('obj_Bag')
      RecContainer = UO.GetSerial('obj_Store')
     else
      Container = UO.GetSerial('obj_Store')
      RecContainer = UO.GetSerial('obj_Bag')
    Endif
    UO.FindType(GetWord(Potion[i], 1, ' '), GetWord(Potion[i], 2, ' '), Container)
    If UO.FindCount() then
      UO.MoveItme('finditem', j, RecContainer)
      Wait(MPause)
     else
      UO.Print('Что-то случилось... RETURN')
      Return
    Endif
  Next
Endsub

Sub ItemCount(type, color, cont)
  var a = 0, Quit = 0
  Repeat
    UO.FindType(type, color, cont)
    If UO.FindCount() then
      a = a + UO.GetQuantity('finditem')
      UO.Ignore('finditem')
     else
      Quit = 1
    Endif
  Until Quit == 1
  UO.IgnoreReset()
  Return a
Endsub

Sub GetWord(str, num, div)
  var tmpst, i, dlin, kol = 0, start = 0
  dlin = len(str)
  For i = 0 to dlin - 1
    If mid(str, i, 1) == div or i == dlin - 1 then
      kol = kol + 1
      If kol == num then
        tmpst = mid(str, start, i - start)
        Return tmpst
       else
        While mid(str, i, 1) == div
          i = i + 1
        Wend
        If kol == num - 1 then
          start = i
        Endif
      Endif
    Endif
  Next
  tmpst = ''
  Return tmpst
Endsub


В скрипте есть гетворд, сделаный Edred
Last edited by ZeroDX on 2011-09-15 18:34:59, edited 1 time in total.
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Добор Ресов. Помогите.

Post by ZeroDX »

Небольшой тюнинг
Теперь должен открывать ящики и ещё кое что

Code: Select all

sub Reload()
  Dim Potion[5]
    Potion[0] = '0x1234 0x1234 5 '  ;Сюда надо вбивать тип, цвет и кол-во потов, которое должно лежать в паке. Все через пробел, и обязательно пробел в конце строки
    Potion[1] = '0x1234 0x1324 5 '
    Potion[2] = '0x1234 0x1234 5 '
    Potion[3] = '0x1234 0x1234 6 '
    Potion[4] = '0x1234 0x1234 10 '
  var i, j, Container, RecContainer, MPause = 300 ; задержка между перемещениeм предметов
  If UO.Targeting() then
    UO.CancelTarget()
  Endif
  UO.AddObject('obj_Store')
  UO.Print('От куда таскать поты?')
  While UO.Targeting()
    Wait(100)
  Wend
  UO.AddObject('obj_Bag')
  UO.Print('Куда таскать поты?')
  While UO.Targeting()
    Wait(100)
  Wend
  UO.UseObject('obj_Bag')
  Wait(100)
  UO.UseObject('obj_Store')
  Wait(100)
  For i = 0 to 4
    Repeat
      j = val(GetWord(Potion[i], 3, ' ')) - ItemCount(GetWord(Potion[i], 1, ' '), GetWord(Potion[i], 2, ' '), 'obj_Bag')
      If j < 0 then
        j = -j
        Container = UO.GetSerial('obj_Bag')
        RecContainer = UO.GetSerial('obj_Store')
      Endif
      If j > 0 then
        If ItemCount(GetWord(Potion[i], 1, ' '), GetWord(Potion[i], 2, ' '), 'obj_Bag') < j then
          UO.Print('Тут должна была быть суровая мессага')
          UO.Print('о том, что поты закончились и скрипт выключается')
          Return
        Endif
        Container = UO.GetSerial('obj_Store')
        RecContainer = UO.GetSerial('obj_Bag')
      Endif
      If j <> 0 then
        UO.FindType(GetWord(Potion[i], 1, ' '), GetWord(Potion[i], 2, ' '), Container)
        If UO.FindCount() then
          UO.MoveItme('finditem', j, RecContainer)
          Wait(MPause)
         else
          UO.Print('Что-то случилось... RETURN')
          Return
        Endif
      Endif
    Until j == 0
  Next
Endsub

Sub ItemCount(type, color, cont)
  var a = 0, Quit = 0
  Repeat
    UO.FindType(type, color, cont)
    If UO.FindCount() then
      a = a + UO.GetQuantity('finditem')
      UO.Ignore('finditem')
     else
      Quit = 1
    Endif
  Until Quit == 1
  UO.IgnoreReset()
  Return a
Endsub

Sub GetWord(str, num, div)
  var tmpst, i, dlin, kol = 0, start = 0
  dlin = len(str)
  For i = 0 to dlin - 1
    If mid(str, i, 1) == div or i == dlin - 1 then
      kol = kol + 1
      If kol == num then
        tmpst = mid(str, start, i - start)
        Return tmpst
       else
        While mid(str, i, 1) == div
          i = i + 1
        Wend
        If kol == num - 1 then
          start = i
        Endif
      Endif
    Endif
  Next
  tmpst = ''
  Return tmpst
Endsub
Post Reply