Page 1 of 1
Пересчте предметов
Posted: 2005-04-29 05:21:31
by Destruction
Вобщем у меня скрипт, я вот думаю, как бы задавать поменьше данных, и вообще, чтобы было все проще.
Я интересуюсь, мона пересчитать все предметы, через некоторое время пересчитать еще раз и узнать тип/ID вновь прибывшего придмета?
Posted: 2005-04-29 06:47:14
by Beyonder
Да кстати, у меня тоже проблема с подсчетом. Как посчитать число вещей в кучке которая не в рюкзаке моего персонажа?
UO.FindType() - возвращает число кучек
UO.Count() - возвращает количество в рюкзаке
Posted: 2005-04-29 08:39:10
by Sfagnum
Beyonder wrote:Да кстати, у меня тоже проблема с подсчетом. Как посчитать число вещей в кучке которая не в рюкзаке моего персонажа?
UO.FindType() - возвращает число кучек
UO.Count() - возвращает количество в рюкзаке
FindCount - кол - во кучек
GetQuantity - кол-во айтемов в кучке.
ЗЫ AGRS выкладывал подсчёт предметов в указаном контейнере, ищи по слову amount - вроде как
или жди до вечера - выложу... если не забуду

Posted: 2005-04-29 09:16:24
by Beyonder
Сенкс.
Posted: 2005-04-29 09:21:49
by flake
Вы, наверное, об этом:
Code: Select all
# Скрипт для подсчета всех объектов в любом
# контейнере. Запращивает прицел на
# контейнер. Потом считает объекты в контейнере и выдает на
# экран результат.
# (c) Edred, based on unknown script
#####################################################################
sub CountResource()
VAR ContSer, last
UO.Print( 'Click target to container' )
UO.Info( 'self' )
last = UO.GetSerial( 'lasttarget' )
UO.CancelTarget()
UO.Info()
while last == UO.GetSerial( 'lasttarget' ) AND UO.Targeting()
wait(100)
wend
ContSer = UO.GetSerial( 'lasttarget' )
UO.FindType( -1, -1, ContSer )
UO.Print( 'I find ' + str( UO.FindCount() ) + ' items' )
endsub
Posted: 2005-04-29 09:34:48
by Sfagnum
flake wrote:Вы, наверное, об этом:
я - нет.
Posted: 2005-04-29 12:31:38
by Destruction
UO.FindType( -1
Вот именно об этом! Пасибо

Posted: 2005-04-29 12:42:49
by Sfagnum
я вот это имел ввиду.
ЗЫ слизано у AGRS'a и адаптировано для своих нужд
Code: Select all
var idBag
uo.addobject('objBag')
while uo.targeting()
wait(100)
wend
idBag = UO.GetSerial('objBag')
UO.UseObject(idBag)
uo.addobject('objItem')
while uo.targeting()
wait(100)
wend
uo.TextOpen()
uo.TextPrint('All: '+STR(get_amount(UO.GetGraphic('objItem'),UO.GetColor('objItem'),idBag)))
end Sub
Sub get_amount(Type, Color, Cont)
Var item_amount = 0
UO.IgnoreReset()
Repeat
UO.FindType(Type, Color, Cont)
If UO.FindCount()>0 Then
If UO.GetQuantity('finditem')==0 Then
item_amount = item_amount + 1
Else
item_amount = item_amount + UO.GetQuantity('finditem')
End If
UO.Ignore('finditem')
UO.FindType(Type, Color, Cont)
EndIf
Until UO.FindCount()<1
UO.IgnoreReset()
Return item_amount
END Sub