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