Перекладывание вещей
Moderators: Murderator+, Murderator
Перекладывание вещей
Как можно переложить много однотипных вещей, из бекпака в мешок, который в бек паке?
Если можно, без установки приемного контейнера.
Если можно, без установки приемного контейнера.
Шард [b]Антарес[/b]
[color=blue][b]Ururu[/b][/color]
[color=blue][b]Ururu[/b][/color]
Code: Select all
VAR Bag = '0x0E76' ; тип мешка
VAR Enchant = '0x1869' ; тип энчатаЕсли можно только с указанием приемного контейнера, то как его потом отменить?
Шард [b]Антарес[/b]
[color=blue][b]Ururu[/b][/color]
[color=blue][b]Ururu[/b][/color]
-
Question_GimFlex
- Posts: 188
- Joined: 2007-03-24 08:12:51
https://yoko.uokit.com/viewtopic.php?t=10475&highlight=
там есть отличный скрипт на перекладку в мешки ознакомься разберись и если получится разобраться больше никогда не попросишь
там есть отличный скрипт на перекладку в мешки ознакомься разберись и если получится разобраться больше никогда не попросишь
ХМ.. нарыл по теме. Так он кидает все энчаты в мешок. Но продолжает их искать и находит, уже перекинутые. Скрипт не заканчивается.
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Шард [b]Антарес[/b]
[color=blue][b]Ururu[/b][/color]
[color=blue][b]Ururu[/b][/color]
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.
Спасибо, но тоже самое.
находит энчаты в мешке, поэтому не заканчивает скрипт.
Code: Select all
until uo.count()Шард [b]Антарес[/b]
[color=blue][b]Ururu[/b][/color]
[color=blue][b]Ururu[/b][/color]
Странно, мы же игнорим все итемы, которые нашни в мешке... И через энное количиство витков цикл должен закончиться, т.к. у нас будут заигнорены все энчанты и при findtype будет выдавать в uo.count ноль.Ururu wrote:Спасибо, но тоже самое.
находит энчаты в мешке, поэтому не заканчивает скрипт.Code: Select all
until uo.count()
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
С этим вариантом выдает что нет энчатов.
Попробовал
Скрипт продолжает висеть в процессах.
Попробовал
Code: Select all
until uo.count() > 0
Last edited by Ururu on 2007-05-14 06:43:56, edited 1 time in total.
Шард [b]Антарес[/b]
[color=blue][b]Ururu[/b][/color]
[color=blue][b]Ururu[/b][/color]
Попробовал. Пишет нет энчатов.
Раз нехочет так, то попробовал ласт таймер вставить. Но неполучилось =)
Раз нехочет так, то попробовал ласт таймер вставить. Но неполучилось =)
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Шард [b]Антарес[/b]
[color=blue][b]Ururu[/b][/color]
[color=blue][b]Ururu[/b][/color]
-
Question_GimFlex
- Posts: 188
- Joined: 2007-03-24 08:12:51
Блиииииин ) я понял в чём дело. Дело в том что Но мы же ничего в это функцию не передавали ) и следовательно она всё время возвращана ноль. А там надо использовать функцию uo.findcount()
Code: Select all
uo.Count(type,[color])
Возвращает суммарное количество во всех стопках обьекта указаного типа type (и цвета color если указано) в вашем бекпаке и подсумках. Учитываются только те подсумки которые хоть раз открывались, иначе их содержимое не известно.-
Question_GimFlex
- Posts: 188
- Joined: 2007-03-24 08:12:51
догадались наконец вот видите можете когда хотитеRivory wrote:Блиииииин ) я понял в чём дело. Дело в том чтоНо мы же ничего в это функцию не передавали ) и следовательно она всё время возвращана ноль. А там надо использовать функцию uo.findcount()Code: Select all
uo.Count(type,[color]) Возвращает суммарное количество во всех стопках обьекта указаного типа type (и цвета color если указано) в вашем бекпаке и подсумках. Учитываются только те подсумки которые хоть раз открывались, иначе их содержимое не известно.
Спасибо. 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Шард [b]Антарес[/b]
[color=blue][b]Ururu[/b][/color]
[color=blue][b]Ururu[/b][/color]
А можно спросить?
Почему, в вышенаписанном скрипте, переменные указываются до начала скрита, в смысле до sub Shift()?
И могут ли другие SUB-ы использовать эти переменные? А массивы?
Кстати, при указании приёмного контейнера(uo.setreiceivingContainer('backpack')), uo.count() ищет в последнем открытом мешке(бэкпаке)? А если сначала открыл мешок откуда премещю, а потом, мешок куда перемещаю и уже после этого задаю приёмный контейнер(тот из которого...) он начинает поиск в последнем открытом?
Если так то многое становится понятным...
А ежели нет... THEN ????
... и ещё вопрос а пичиму Sub main(), не виден в поле "Run function:", а вот если с маленькой буковки - "sub" - тады пжалста?
Почему, в вышенаписанном скрипте, переменные указываются до начала скрита, в смысле до sub Shift()?
И могут ли другие SUB-ы использовать эти переменные? А массивы?
Кстати, при указании приёмного контейнера(uo.setreiceivingContainer('backpack')), uo.count() ищет в последнем открытом мешке(бэкпаке)? А если сначала открыл мешок откуда премещю, а потом, мешок куда перемещаю и уже после этого задаю приёмный контейнер(тот из которого...) он начинает поиск в последнем открытом?
Если так то многое становится понятным...
А ежели нет... THEN ????
... и ещё вопрос а пичиму Sub main(), не виден в поле "Run function:", а вот если с маленькой буковки - "sub" - тады пжалста?