
Я интересуюсь, мона пересчитать все предметы, через некоторое время пересчитать еще раз и узнать тип/ID вновь прибывшего придмета?
Moderators: Murderator+, Murderator
FindCount - кол - во кучекBeyonder wrote:Да кстати, у меня тоже проблема с подсчетом. Как посчитать число вещей в кучке которая не в рюкзаке моего персонажа?
UO.FindType() - возвращает число кучек
UO.Count() - возвращает количество в рюкзаке
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
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