Как написать?

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Как написать?

Post by 666Man666 »

Можно ли подсчитывать итемы кучек в сумме?
например 65000 в одной а в другой 20000 например.... и чтобы выводило на экран их сумму? просто если зделать по

Code: Select all

uo.findtype('что-то','-1','Где-то')
uo.TextOpen()
uo.TextPrint('Всего: '+str(uo.GetQuantity('finditem')))


не получается.... нефига
Sfagnum
Expert!
Posts: 1284
Joined: 2004-07-04 00:14:58
Contact:

Re: Как написать?

Post 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')
Yoko
Site Admin
Posts: 1964
Joined: 2004-04-03 16:49:38
Contact:

Re: Как написать?

Post by Yoko »

666Man666 wrote:Можно ли подсчитывать итемы кучек в сумме?
например 65000 в одной а в другой 20000 например.... и чтобы выводило на экран их сумму? просто если зделать по

Code: Select all

uo.findtype('что-то','-1','Где-то')
uo.TextOpen()
uo.TextPrint('Всего: '+str(uo.GetQuantity('finditem')))


не получается.... нефига


странно, должно работать
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Post 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
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Re: Как написать?

Post by AGRS »

Yoko wrote:
666Man666 wrote:Можно ли подсчитывать итемы кучек в сумме?
например 65000 в одной а в другой 20000 например.... и чтобы выводило на экран их сумму? просто если зделать по

Code: Select all

uo.findtype('что-то','-1','Где-то')
uo.TextOpen()
uo.TextPrint('Всего: '+str(uo.GetQuantity('finditem')))


не получается.... нефига


странно, должно работать


Почему должно работать? Должно выводить только количество предметов в стопке finditem.
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post 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
Last edited by AGRS on 2004-11-25 20:02:07, edited 2 times in total.
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Post by 666Man666 »

Спасибо АГРС, надеюсь это работает :)
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Post 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...
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

Хмм... Ретурн исчез. :(

Code: Select all

...
  UO.IgnoreReset()
  Return item_amount
END SUB


так должно быть.
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Post by 666Man666 »

А вот с ретурном выводится :)
Но всёравно выводит число кучки в каторой больше итемов... сумму не хотит ((
наверно это хардкодед......
AlexeyVorotnikov
Junior Expert
Posts: 138
Joined: 2004-09-18 15:12:06

Post by AlexeyVorotnikov »

Until UO.FindCount()<1
666Man666
Junior Expert
Posts: 474
Joined: 2004-11-13 00:43:55
Location: Киберзадроцк
Contact:

Post 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
AGRS
Expert!
Posts: 1007
Joined: 2004-04-04 21:40:09
Contact:

Post by AGRS »

AlexeyVorotnikov wrote:Until UO.FindCount()<1

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