Перекладывание вещей

Anything and all.

Moderators: Murderator+, Murderator

Ururu
Posts: 479
Joined: 2007-02-21 20:15:57

Перекладывание вещей

Post by Ururu »

Как можно переложить много однотипных вещей, из бекпака в мешок, который в бек паке?

Если можно, без установки приемного контейнера.
Шард Антарес
Ururu
u0rypT
Posts: 175
Joined: 2004-12-30 18:13:16
Location: Russia
Contact:

Post by u0rypT »

масмув)
Design, webdev, coding, c#, php, asp.net, xml, perl, sql, ajax, drawing, illustrating, restoration, photo, photoshop, schedule, pron, guitar, lead-guitar, js, jsp, java, dom, html, *nix, struts, cs, etc
Ururu
Posts: 479
Joined: 2007-02-21 20:15:57

Post by Ururu »

И как это реализовать?? Руками 1 итем перекинуть? =)

Я скриптом хочу.
Шард Антарес
Ururu
u0rypT
Posts: 175
Joined: 2004-12-30 18:13:16
Location: Russia
Contact:

Post by u0rypT »

ммм, может получиться масмув после указание действий мув итемом один итем передвинуть ?
Design, webdev, coding, c#, php, asp.net, xml, perl, sql, ajax, drawing, illustrating, restoration, photo, photoshop, schedule, pron, guitar, lead-guitar, js, jsp, java, dom, html, *nix, struts, cs, etc
Ururu
Posts: 479
Joined: 2007-02-21 20:15:57

Post by Ururu »

Code: Select all

VAR Bag = '0x0E76' ; тип мешка
VAR Enchant = '0x1869' ; тип энчата


Нужно все энчаты из бек пака кинуть в мешок. Если не сложно, напиши как.
Если можно только с указанием приемного контейнера, то как его потом отменить?
Шард Антарес
Ururu
Question_GimFlex
Posts: 188
Joined: 2007-03-24 08:12:51

Post by Question_GimFlex »

viewtopic.php?t=10475&highlight=
там есть отличный скрипт на перекладку в мешки ознакомься разберись и если получится разобраться больше никогда не попросишь :wink:
Ururu
Posts: 479
Joined: 2007-02-21 20:15:57

Post by Ururu »

ХМ.. нарыл по теме. Так он кидает все энчаты в мешок. Но продолжает их искать и находит, уже перекинутые. Скрипт не заканчивается.

Code: Select all

var enchant  = '0x1869' 
var bag = '0x0E76'
sub main()
      uo.findtype(enchant,'-1','backpack')
   repeat
uo.moveitem('finditem', '-1', '^0x0E76')
         wait(500)
      uo.findtype(enchant,'-1','backpack')
   until uo.count()
end sub
Шард Антарес
Ururu
Rivory
Posts: 205
Joined: 2005-01-06 11:49:28

Post by Rivory »

Code: Select all

sub main() 
var enchant  = '0x1869'
var bag = '0x0E76'
uo.findtype(enchant,'-1','backpack')
repeat
  uo.moveitem('finditem', '0', '^0x0E76')
  wait(500)
  uo.findtype(enchant,'-1',uo.getserial('0x0E76'))
  while uo.count
    uo.ignore('finditem')
  wend
  uo.findtype(enchant,'-1','backpack')
until uo.count()
uo.ignorereset()
end sub


Хз, работает, нет, т.к. переписывал твой скрипт на коленке, в форме ответа. Но надо что-то в этом духе сделать.
Last edited by Rivory on 2007-05-14 06:31:13, edited 1 time in total.
Ururu
Posts: 479
Joined: 2007-02-21 20:15:57

Post by Ururu »

Спасибо, но тоже самое.

Code: Select all

until uo.count()

находит энчаты в мешке, поэтому не заканчивает скрипт.
Шард Антарес
Ururu
Rivory
Posts: 205
Joined: 2005-01-06 11:49:28

Post by Rivory »

Ururu wrote:Спасибо, но тоже самое.

Code: Select all

until uo.count()

находит энчаты в мешке, поэтому не заканчивает скрипт.


Странно, мы же игнорим все итемы, которые нашни в мешке... И через энное количиство витков цикл должен закончиться, т.к. у нас будут заигнорены все энчанты и при findtype будет выдавать в uo.count ноль.
Rivory
Posts: 205
Joined: 2005-01-06 11:49:28

Post by Rivory »

Code: Select all

sub main() 
var enchant  = '0x1869'
var bag = '0x0E76'
uo.findtype(enchant,'-1','backpack')
if uo.count() then
  uo.massmove(150)
  uo.moveitem('finditem', '0', '^0x0E76')
esle
uo.Print ('No enchants in backpack')
end if
end sub

Я не знаю, почему ты отказываешься от этого варианта ? По идее приемлемый вариант.
Ururu
Posts: 479
Joined: 2007-02-21 20:15:57

Post by Ururu »

С этим вариантом выдает что нет энчатов.


Попробовал

Code: Select all

until uo.count() > 0

Скрипт продолжает висеть в процессах.
Last edited by Ururu on 2007-05-14 06:43:56, edited 1 time in total.
Шард Антарес
Ururu
Rivory
Posts: 205
Joined: 2005-01-06 11:49:28

Post by Rivory »

until uo.count() и until uo.count()>1 равнозначные строки. Попробуй мой последний вариант. Я его выше написал.
Ururu
Posts: 479
Joined: 2007-02-21 20:15:57

Post by Ururu »

Попробовал. Пишет нет энчатов.

Раз нехочет так, то попробовал ласт таймер вставить. Но неполучилось =)

Code: Select all

sub main() 
var enchant  = '0x1869'
var bag = '0x0E76'
VAR LastTimer
uo.findtype(enchant,'-1','backpack')
repeat
  uo.moveitem('finditem', '0', '^0x0E76')
  wait(500)
  uo.findtype(enchant,'-1',uo.getserial('0x0E76'))
  while uo.count ()
    uo.ignore('finditem')
  wend
  uo.findtype(enchant,'-1','backpack')
  LastTimer=uo.timer()
until uo.count() Or UO.Timer()>LastTimer+10
uo.ignorereset()
end sub
Шард Антарес
Ururu
Question_GimFlex
Posts: 188
Joined: 2007-03-24 08:12:51

Post by Question_GimFlex »

а мою ссылку смотрел или думаешь тебе на блюдечке поднесут :) :wink:
Ururu
Posts: 479
Joined: 2007-02-21 20:15:57

Post by Ururu »

По твоей ссылке ходил. Все что написал, исходя из найденного =)
Шард Антарес
Ururu
Rivory
Posts: 205
Joined: 2005-01-06 11:49:28

Post by Rivory »

Блиииииин ) я понял в чём дело. Дело в том что

Code: Select all

 uo.Count(type,[color])

Возвращает суммарное количество во всех стопках обьекта указаного типа type (и цвета color если указано) в вашем бекпаке и подсумках. Учитываются только те подсумки которые хоть раз открывались, иначе их содержимое не известно.
Но мы же ничего в это функцию не передавали ) и следовательно она всё время возвращана ноль. А там надо использовать функцию uo.findcount()
Question_GimFlex
Posts: 188
Joined: 2007-03-24 08:12:51

Post by Question_GimFlex »

Rivory wrote:Блиииииин ) я понял в чём дело. Дело в том что

Code: Select all

 uo.Count(type,[color])

Возвращает суммарное количество во всех стопках обьекта указаного типа type (и цвета color если указано) в вашем бекпаке и подсумках. Учитываются только те подсумки которые хоть раз открывались, иначе их содержимое не известно.
Но мы же ничего в это функцию не передавали ) и следовательно она всё время возвращана ноль. А там надо использовать функцию uo.findcount()


догадались наконец вот видите можете когда хотите :wink:
Ururu
Posts: 479
Joined: 2007-02-21 20:15:57

Post by Ururu »

Спасибо. VolHram помог =) просто указать приемный контейнер нужно, а потом отменить.

Code: Select all

VAR Enchant = '0x1869' ; тип Armor Enchant
VAR Bag = '0x0E76' ; тип Bag
var ID
sub Shift()
      UO.FindType(bag,'-1','backpack')
   If UO.FindCount() Then
         ID=UO.GetSerial('finditem')
   Else
      UO.Print('сумка не найдена')
   End If
      UO.SetReceivingContainer(ID)
      UO.Findtype(enchant,'-1','backpack')
   While UO.FindCount()
      UO.Grab(0,'finditem')
         wait(500) 
   End If
      UO.FindType(enchant,'-1','backpack')
   Wend
      UO.UnSetReceivingContainer()
End Sub
Шард Антарес
Ururu
ADEPT_ABP
Posts: 223
Joined: 2006-05-12 08:03:45
Contact:

Post by ADEPT_ABP »

А можно спросить?
Почему, в вышенаписанном скрипте, переменные указываются до начала скрита, в смысле до sub Shift()?
И могут ли другие SUB-ы использовать эти переменные? А массивы?
Кстати, при указании приёмного контейнера(uo.setreiceivingContainer('backpack')), uo.count() ищет в последнем открытом мешке(бэкпаке)? А если сначала открыл мешок откуда премещю, а потом, мешок куда перемещаю и уже после этого задаю приёмный контейнер(тот из которого...) он начинает поиск в последнем открытом?
Если так то многое становится понятным...
А ежели нет... THEN ???? :mrgreen:
... и ещё вопрос а пичиму Sub main(), не виден в поле "Run function:", а вот если с маленькой буковки - "sub" - тады пжалста?
Post Reply