Page 1 of 1

Выдаём в окно кол-во и название логов находящихся в паке

Posted: 2006-09-28 04:13:26
by Scripts Writer
Возможно кому то понадобится.

Code: Select all

sub Get_Logs_Count()
  var type='0x1BDD'
  var i
  uo.FindType(type,'-1','backpack')
  uo.TextClear() 
  for i = 0 to uo.FindCount() - 1
    uo.FindType(type,'-1','backpack')
    uo.Click('finditem')
    uo.Print(uo.GetName('finditem'))
    wait(100)
    uo.TextOpen()
    uo.TextPrint(uo.GetName('finditem'))
    uo.Ignore('finditem')
  next
  uo.IgnoreReset()
end sub


Считаем логи в паке, выдавая их название и кол-во в отдельное окно,обновляющееся после каждого запуска скрипта.

Posted: 2006-09-28 15:14:33
by Dominik
А можешь плзз :oops: , сделать чтобы считал руду.
Я не умею с массивами работать. :oops:
Типы руд:

Code: Select all

0x19B9
0x19B7
0x19BA
0x19B8

Пожалуйста. :)

Posted: 2006-09-28 16:24:03
by Scripts Writer

Code: Select all

sub Get_Ore_Count()

  DIM ore[4]

  ore[0]='0x19B9'
  ore[1]='0x19B7'
  ore[2]='0x19BA'
  ore[3]='0x19B8'

  var i , k
uo.TextClear()
for k = 0 to 3
  uo.FindType(ore[k],'-1','backpack')
  for i = 0 to uo.FindCount() - 1
    uo.FindType(ore[k],'-1','backpack')
    uo.Click('finditem')
    uo.Print(uo.GetName('finditem'))
    wait(100)
    uo.TextOpen()
    uo.TextPrint(uo.GetName('finditem'))
    uo.Ignore('finditem')
  next
next
  uo.IgnoreReset()
end sub


Попробуй. Если работает- отпишись сюда

Posted: 2006-09-28 16:32:42
by Nmy

Code: Select all

uo.Click('finditem')

клик просто так или нужен? кажется он неиграет роль при получение "наме" обекта :roll:

Posted: 2006-09-28 16:46:42
by Dominik
Не работает.(
Сначало выдаёт кол-во айрона, затем стирает это, и пишет безконечно пустые строки.
+Потом ещё в скрипте на лут руды в сундук, не может найти руду. Наверно типы как-то сбиваются.

Posted: 2006-09-28 17:02:54
by Scripts Writer
NMY wrote:

Code: Select all

uo.Click('finditem')

клик просто так или нужен? кажется он неиграет роль при получение "наме" обекта :roll:


Играет самую важную роль. Без него ты ничего не определишь, если предварительно не кликнешь.

Posted: 2006-09-28 17:05:36
by Scripts Writer
10 Iron Ore
10 Dull Copper Ore
a Vulcan ore
2 Rose Ore
3 Copper Ore


Code: Select all

sub Get_Ore_Count() 

  DIM ore[4]

  ore[0]='0x19B9'
  ore[1]='0x19B7'
  ore[2]='0x19BA'
  ore[3]='0x19B8'

  var i , k
 
uo.TextClear()
for k = 0 to 3
  uo.FindType(ore[k],'-1','backpack')
  for i = 0 to uo.FindCount() - 1
    uo.FindType(ore[k],'-1','backpack')
    uo.Click('finditem')
    uo.Print(uo.GetName('finditem'))
    wait(100)
    uo.TextOpen()
    uo.TextPrint(uo.GetName('finditem'))
    uo.Ignore('finditem')
  next
next
  uo.IgnoreReset()
end sub


Так как не тестил-не обратил внимания. Ошибка была совсем незначительная- в цикле

Code: Select all

for k = 0 to 3
  ...
next


стояло uo.TextClear() , что чистило окно перед каждым новым поиском типа руды, тем самым что касается айрона-у тебя там не бесконечно пустые строки, а просто тип руды кот. >3 стоит последним в массиве, и на тот момент у тебя в паке был только айрон => он нашел 1 ор руды-вывел- очистил, 2 ора руды-вывел-очистил, 3 ора руды-вывел-очистил , и только потом нашел руду с кол-вом в 4 и больше и остановился. Вобщем, думаю тебе мало что даст моё объяснение, но возможно кто -то кто учится писать скрипты или пытается в этом разобратся поможет эта ошибка , чтобы не допускать таких впредь.

Всё работает. Смотри.

Posted: 2006-09-28 17:12:09
by Scripts Writer
Есть у кого потребность в скрипте, которым можно посчитать руду и логи не только в паке, но и в сундуке кот. можно указать прицелом?!
Переписать на самом деле не стоит особого труда, но возможно кому то это может пригодиться.

Posted: 2006-09-28 17:15:05
by Dominik
Ага. Всё работает.) Спасибо. :D :)

Posted: 2006-09-28 17:18:56
by Scripts Writer
Всегда пож. , лишь бы помогло.

Posted: 2006-09-29 11:05:22
by slonopotam
Отрывок из скрипта от "Elthar aka Duo", на люмб.

Code: Select all

sub InfoLogs() 
uo.Print('У вас всего '+str(uo.Count('0x1BDD'))+' логов в сумке')
uo.Print('Из них '+str(uo.Count('0x1BDD','0x0000'))+' простых и ' +str(uo.Count('0x1BDD')-uo.Count('0x1BDD','0x0000'))+' цветных')
end sub

Posted: 2006-09-29 13:02:21
by Edred
You Must Die wrote:Есть у кого потребность в скрипте, которым можно посчитать руду и логи не только в паке, но и в сундуке кот. можно указать прицелом?!


В топике с моим наследством такого до дури.

Posted: 2006-09-29 15:03:34
by Cornor
sub InfoLogs()
uo.Print('Ó âàñ âñåãî '+str(uo.Count('0x1BDD'))+' ëîãîâ â ñóìêå')
uo.Print('Èç íèõ '+str(uo.Count('0x1BDD','0x0000'))+' ïðîñòûõ è ' +str(uo.Count('0x1BDD')-uo.Count('0x1BDD','0x0000'))+' öâåòíûõ')
uo.Print('Ó âàñ '+str(uo.Count('0x1BDD','0x0498'))+' Àñòåð ëîãîâ â ñóìêå')
end sub


Эт на логи ... меяеш типы и будет на руду.

Posted: 2006-09-29 15:28:58
by Scripts Writer
1Edred Не спорю, но попробуй найди там это.

2Кор Чего ты здесь постишь, я не понимаю? Ты меня пытаешься уличить в том что я скопировал этот скрипт, или что? -Ты содержание темы читал?

Posted: 2006-09-29 20:50:17
by Mihail
я че-то не очень понял - это все нужно для того чтобы в text-окне написать кол-во заданного типа предмета?

Code: Select all

sub inf()
#Mihail
var i
Dim a[3]
a[0]='0x0F36' #сено
a[1]='0x0E21' #бинты
a[2]='0x0F0E' #банки
uo.addobject('infobag') #контейнер, где считать
while uo.targeting()
wait(100)
wend
uo.useobject('infobag')
uo.textclear()
for i=0 to 2
uo.findtype(a[i],-1,'infobag')
if uo.findcount() then
uo.click('finditem')
checklag()
if Right(uo.getname('finditem'),1)=='s' then  #мега-крутая проверка на складываемость предмета в стопку- если последняяя буква "s" - то складывается (empty bottles, logs) :D
uo.textprint('Предмет: '+uo.getname('finditem')+': '+str(uo.getquantity('finditem')))
else
uo.textprint('Предмет: '+uo.getname('finditem')+': '+str(uo.findcount('finditem')))
end if
end if
next
uo.textprint()
uo.textopen()
end sub

Posted: 2006-09-29 21:17:36
by Cornor
You Must Die wrote:2Кор Чего ты здесь постишь, я не понимаю? Ты меня пытаешься уличить в том что я скопировал этот скрипт, или что? -Ты содержание темы читал?


Не всё ок я просто дал норм вариан рабочий... время прочитать небыло.) Помог человеку так терь ещё оказываеся толпа обиделась.)))