Page 1 of 3

Поиск в паке выкопанной выхи

Posted: 2006-10-27 09:00:54
by DIKIY
Такая проблема. Нужно определить кол-во и тип выкопанной выхи в паке и вывести это списком в
uo.textopen()
UO.TextPrint ()

Нужно чтобы было как в скрипте на рубку. только нужно схитрить... Чтобы если выхи небыло в паке в текст ничего не выводилось. Шард ДРВ.

Заранее спасибо.
На поиске был.

Posted: 2006-10-27 09:49:00
by Askaneli

Code: Select all


Var Sunduk1='0x40096DF6'  ## ИД контейнера куда складываем простую руду
Var Sunduk2='0x402D88B6'  ## ИД контейнера куда складываем выху



Var FName='MiningLog.txt' ## Имя файла лога

Code: Select all


   DIM Ore[14]
   Ore[01]='0x19B7'  ; 1 ore
   Ore[02]='0x19BA'  ; 2 ore
   Ore[03]='0x19B8'  ; 3 ore
   Ore[04]='0x19B9'  ; 4 and more ore
.......
   UO.asmLogAdd(FName, UO.asmGetDate('dd/mm/yy')+" - "+UO.asmGetTime('hh:nn:ss')+" - "+"Выгружаем нарытое непосильным трудом на ацком скрипте !!!")
   for i=1 to 4 ## Руда всех цветов и оттенков
      uo.findtype(Ore[i],'-1','backpack')
      while uo.findcount()>0
         uo.click('finditem')
         Cheklag()
         tColor = uo.getcolor('finditem')
         if (tColor>='0x09A4') or (tColor=='0x0060') or (tColor=='0x0085') or (tColor=='0x008F') or (tColor=='0x010F') then
            UO.asmLogAdd(FName, UO.asmGetDate('dd/mm/yy')+" - "+UO.asmGetTime('hh:nn:ss')+" - "+"Выгружаем - "+uo.getname('finditem'))
            uo.moveitem('finditem','-1',Sunduk2)
         else
            uo.moveitem('finditem','-1',Sunduk1)
         end if
         wait(1000)
         uo.findtype(Ore[i],'-1','backpack')
      wend
   next


Вся фигня выгружается в Sunduk1, а выха в Sunduk2.
Лог ведётся ASMом так что это должно быть встроено в инжу.
Файл лога будет валятся в папке инжи.

Posted: 2006-10-27 09:56:17
by DIKIY

Code: Select all

     UO.asmLogAdd(FName, UO.asmGetDate('dd/mm/yy')+" - "+UO.asmGetTime('hh:nn:ss')+" - "+"Выгружаем - "+uo.getname('finditem')) 

На эту строчку ругается. Пишет Runtime Error

Posted: 2006-10-27 09:57:34
by Askaneli
АСМ стоит ?

Posted: 2006-10-27 09:57:44
by DIKIY
и если не сложно - не в файл а как я написал, чтобы туда выводил.... без переброски в сундук, просто инфо о наличии выхи

Posted: 2006-10-27 09:58:01
by DIKIY
Askaneli wrote:АСМ стоит ?


видимо нет

Posted: 2006-10-27 10:00:16
by DIKIY
в
uo.textopen()
UO.TextPrint (СЮДА)

Posted: 2006-10-27 10:00:35
by Askaneli
не вижу смысла в том чтоб выводить на дисплей
то что у тебя в паке ешо не твоё вовсе, а того ПК что в шахту бежит в это время ...

Posted: 2006-10-27 10:04:05
by DIKIY
Ты не понял, я в випке копаю. у меня стоит такой лог:

Code: Select all

uo.textopen() 
UO.TextPrint('Выгрузка произведена: '+Space +Time) 


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

всё...

Posted: 2006-10-27 10:08:42
by Askaneli
Вон тот скрипт навирху выкладывает всю руду и пишет скока выложил в лог файл...
Если выложил выху то пишет во сколько, если не выкладывал то не пишет ничего ...

Posted: 2006-10-27 10:10:01
by DIKIY
ну можешь его переделать чтобы он ничего не делал с рудой просто считал и писал ?

Posted: 2006-10-27 10:13:12
by Askaneli
DIKIY wrote:ну можешь его переделать чтобы он ничего не делал с рудой просто считал и писал ?


Нет. Тада придётся игнорить руду. А если заигнорить, то потом неразигнорится и не выложится.
Считать нада во время выгрузки.

Posted: 2006-10-27 10:14:32
by DIKIY
как отдельныйц SUB сделать

Posted: 2006-10-27 10:15:50
by Askaneli
Не вижу смысла.

Posted: 2006-10-27 10:20:49
by DIKIY
Вот, короче сам переделал...

Code: Select all

sub info()
var i
var tColor = uo.getcolor('finditem')
DIM Ore[14]
   Ore[01]='0x19B7'  ; 1 ore
   Ore[02]='0x19BA'  ; 2 ore
   Ore[03]='0x19B8'  ; 3 ore
   Ore[04]='0x19B9'  ; 4 and more ore

   for i=1 to 4 ## Руда всех цветов и оттенков
      uo.findtype(Ore[i],'-1','backpack')
      while uo.findcount()>0
         uo.click('finditem')
          CheckLag()
         if (tColor>='0x09A4') or (tColor=='0x0060') or (tColor=='0x0085') or (tColor=='0x008F') or (tColor=='0x010F') then
          uo.textopen()
          UO.TextPrint('Выха: '+uo.getname('finditem')) 
         else
         end if
         wait(1000)
         uo.findtype(Ore[i],'-1','backpack')
      wend
   next
end sub


Но у меня получаеться тут он открывает окно, пишет название руды и циклиться, т.е. строчки плодит ((

Posted: 2006-10-27 10:22:19
by Askaneli
Про что я тебе и говорил ...
лучше сбрасывать лог при выгрузке, тада инжа второй раз уже выху не зачтёт и циклится не будет
а так она просто каждый раз находит одну и ту же орину ...

Posted: 2006-10-27 10:23:23
by DIKIY
хмммм....

Выха: a Dragon ore
Выха: a Dragon ore
Выха: a Dragon ore
Выха: a Dragon ore

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

Posted: 2006-10-27 10:23:56
by Askaneli

Code: Select all

tColor = uo.getcolor('finditem')

эта нада поставить перед каждой проверкой руды ващет ...

Posted: 2006-10-27 10:25:02
by Askaneli
Что тебе мешает сразу мувать руду в сундук. Скажи мне плиз. Я видимо что то недопонимаю ...

Posted: 2006-10-27 10:25:20
by DIKIY
ну таже хрень...