Page 1 of 1
Как написать?
Posted: 2004-11-24 16:39:34
by 666Man666
Можно ли подсчитывать итемы кучек в сумме?
например 65000 в одной а в другой 20000 например.... и чтобы выводило на экран их сумму? просто если зделать по
Code: Select all
uo.findtype('что-то','-1','Где-то')
uo.TextOpen()
uo.TextPrint('Всего: '+str(uo.GetQuantity('finditem')))
не получается.... нефига
Re: Как написать?
Posted: 2004-11-24 16:53:08
by Sfagnum
так пробуй:
Code: Select all
i = 0
uo.findtype('что-то','-1','Где-то')
while UO.FindCount() > 0
i = i + uo.GetQuantity('finditem')
uo.ignore('finditem')
uo.findtype('что-то','-1','Где-то')
wend
uo.TextOpen()
uo.TextPrint('Всего: '+str(i))
uo.ignorereset
в бакпаке просто UO.Count('что-то','-1')
Re: Как написать?
Posted: 2004-11-24 21:24:22
by Yoko
666Man666 wrote:Можно ли подсчитывать итемы кучек в сумме?
например 65000 в одной а в другой 20000 например.... и чтобы выводило на экран их сумму? просто если зделать по
Code: Select all
uo.findtype('что-то','-1','Где-то')
uo.TextOpen()
uo.TextPrint('Всего: '+str(uo.GetQuantity('finditem')))
не получается.... нефига
странно, должно работать
Posted: 2004-11-24 21:58:27
by 666Man666
Не работает чёто
Code: Select all
sub Info()
var i
i = 0
uo.findtype('Что-то','-1','Где-то')
while UO.FindCount() > 0
uo.print('1:'+str(uo.GetQuantity('finditem'))) - тут выводит 2 раза кол-во двух кучек, всё ок
i = i + uo.GetQuantity('finditem')
uo.ignore('finditem')
uo.findtype('Что-то','-1','Где-то')
wend
uo.TextOpen()
uo.TextPrint('All: '+str('i')) - а тут выводит 0, почему так?
uo.ignorereset()
end sub
Re: Как написать?
Posted: 2004-11-24 22:43:22
by AGRS
Yoko wrote:666Man666 wrote:Можно ли подсчитывать итемы кучек в сумме?
например 65000 в одной а в другой 20000 например.... и чтобы выводило на экран их сумму? просто если зделать по
Code: Select all
uo.findtype('что-то','-1','Где-то')
uo.TextOpen()
uo.TextPrint('Всего: '+str(uo.GetQuantity('finditem')))
не получается.... нефига
странно, должно работать
Почему должно работать? Должно выводить только количество предметов в стопке finditem.
Posted: 2004-11-24 22:58:53
by AGRS
Code: Select all
sub main()
UO.Print(STR(get_amount('0x????','0x????','0x????????')))
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')
EndIf
UO.Ignore('finditem')
UO.FindType(Type, Color, Cont)
EndIf
Until UO.FindCount()<1
UO.IgnoreReset()
Return item_amount
END SUB
Posted: 2004-11-24 23:55:30
by 666Man666
Спасибо АГРС, надеюсь это работает

Posted: 2004-11-25 00:46:06
by 666Man666
AGRS wrote:Code: Select all
sub main()
UO.Print(STR(get_amount('0x????','0x????','0x????????')))
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')
EndIf
UO.Ignore('finditem')
UO.FindType(Type, Color, Cont)
EndIf
Until UO.FindCount()<2
UO.IgnoreReset()
END SUB
К сожелению выводит "0"...
Указываю например логи или стрелы, без разницы....
указываю контейнер (сумку, возле чара на полу)....
но не получается... Выводится 0...
Posted: 2004-11-25 07:52:11
by AGRS
Хмм... Ретурн исчез.
Code: Select all
...
UO.IgnoreReset()
Return item_amount
END SUB
так должно быть.
Posted: 2004-11-25 12:56:51
by 666Man666
А вот с ретурном выводится
Но всёравно выводит число кучки в каторой больше итемов... сумму не хотит ((
наверно это хардкодед......
Posted: 2004-11-25 13:21:38
by AlexeyVorotnikov
Until UO.FindCount()<1
Posted: 2004-11-25 15:24:07
by 666Man666
Урааааааа

!!!!! работает
Спасибо всем ! > Вот код если кому нужно...
Code: Select all
sub Info()
uo.TextOpen()
uo.TextPrint('All: '+STR(get_amount('0x1BDD','-1','0x40005FCB')))
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')
EndIf
UO.Ignore('finditem')
UO.FindType(Type, Color, Cont)
EndIf
Until UO.FindCount()<1
UO.IgnoreReset()
Return item_amount
END SUB
Posted: 2004-11-25 20:01:47
by AGRS
AlexeyVorotnikov wrote:Until UO.FindCount()<1
Точно.

Наверное забыл на сэйв нажать, последние изменения и откатались.
