Небольшой тюнинг
Теперь должен открывать ящики и ещё кое что
Code:
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