Page 1 of 1

Пересчте предметов

Posted: 2005-04-29 05:21:31
by Destruction
Вобщем у меня скрипт, я вот думаю, как бы задавать поменьше данных, и вообще, чтобы было все проще. :P

Я интересуюсь, мона пересчитать все предметы, через некоторое время пересчитать еще раз и узнать тип/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