Типы обьектов... автосбор и запись... Как?

Ask for help

Moderators: Murderator+, Murderator

Cka3
Posts: 26
Joined: 2006-05-22 18:11:32

Типы обьектов... автосбор и запись... Как?

Post by Cka3 »

Подскажите как типы обьектов пачками собирать....вот например записать все типы обьектов которы в сумке....
или как конвертировать типы изиуо в инжектовские.
а то на каждый обьект делать инфо...долго и я думаю не нужно.

Или может можно как то записывать в файл по таргету? тоесть появился таргет -> клацнул на предмет -> тип предмета записался в файл.

Пасибо всем кто подскажет.
dmitrykit
Posts: 247
Joined: 2005-06-12 22:12:15

Post by dmitrykit »

nicehgo dolgovo v 'info' na kazdyj obekt netu...
Cka3
Posts: 26
Joined: 2006-05-22 18:11:32

Post by Cka3 »

dmitrykit wrote:nicehgo dolgovo v 'info' na kazdyj obekt netu...


А патом ещё скапиру запеши...а камушки все записать намана? савсем быстро..
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

Cka3 мыслишь правильно, только чтобы такое сделать нужно хелп прочесть.
Только там много буков.

Code: Select all

sub F_Type_Print()
   UO.IgnoreReset()
   UO.TextClear()
   UO.TextOpen()
   var k = 0
   UO.FindType("-1", "-1", "backpack")
   while UO.FindCount()
      UO.TextPrint("LType[" + str(k) + "] = " + UO.GetGraphic('finditem'))
      UO.Ignore('finditem')
      k = k + 1
      UO.FindType("-1", "-1", "backpack")
   wend
endsub


вот что получим...

Code: Select all

LType[0] = 0x0FF1
LType[1] = 0x0EED
LType[2] = 0x0F52
LType[3] = 0x0A28
LType[4] = 0x0E86
LType[5] = 0x0FBB
LType[6] = 0x0E86
LType[7] = 0x0E86
LType[8] = 0x1BF2


ЗЫ инструкцию не прилагаю, лень….
Last edited by omi4 on 2006-05-25 15:41:22, edited 1 time in total.
dmitrykit
Posts: 247
Joined: 2005-06-12 22:12:15

Post by dmitrykit »

Cka3 wrote:
dmitrykit wrote:nicehgo dolgovo v 'info' na kazdyj obekt netu...


А патом ещё скапиру запеши...а камушки все записать намана? савсем быстро..


jazh tebe ru4kami tyrkat' nepredlagaju...
Cka3
Posts: 26
Joined: 2006-05-22 18:11:32

Post by Cka3 »

omi4 wrote:Cka3 мыслишь правильно

А что разве не каждый так мыслит когда доходит дело до макроса?
omi4 wrote:только чтобы такое сделать нужно хелп прочесть.

Я то прочту, но как-то попожее...
omi4 wrote:ЗЫ инструкцию не прилагаю, лень….

А какая тут инструкция нужна? Фсё понятно.
1.Спасибо за ответ.
2.Спасибо за то что угадал что мне надо(массив).
и вот так наферно бидет веселее(Удобнее):

Code: Select all

sub F_Type_Print() 
   UO.IgnoreReset()
   UO.TextClear()
   UO.TextOpen()             
   uo.print('Тыкни в сумку с объектами: ')
   uo.exec('addobject bag')
   wait(5000)
   var k = 0
   UO.FindType("-1", "-1", "bag")
   while UO.FindCount()
      UO.TextPrint("LType[" + str(k) + "] = " + UO.GetGraphic('finditem'))
      UO.Ignore('finditem')
      k = k + 1
      UO.FindType("-1", "-1", "bag")
   wend
endsub
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

а так еще фисилее

Code: Select all

sub F_Type_D()
   var k = 0, LTimer = UO.Timer()
   UO.IgnoreReset()
   UO.TextClear()
   UO.TextOpen()
   UO.AddObject("bag", UO.GetSerial())
   UO.AddObject("bag")
   repeat
      wait(1000)
   until UO.GetSerial("bag") <> UO.GetSerial() || UO.Timer() > LTimer + 100
   if UO.GetSerial("bag") == UO.GetSerial() then
      F_Type_D()
   endif
   UO.FindType("-1", "-1", "bag")
   while UO.FindCount()
      UO.TextPrint("LType[" + str(k) + "] = " + UO.GetGraphic('finditem'))
      UO.Ignore('finditem')
      k = k + 1
      UO.FindType("-1", "-1", "bag")
   wend
endsub
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Code: Select all

   UO.AddObject("bag", UO.GetSerial()) 
   UO.AddObject("bag")
   repeat
      wait(1000)
   until UO.GetSerial("bag") <> UO.GetSerial() || UO.Timer() > LTimer + 100
   if UO.GetSerial("bag") == UO.GetSerial() then
      F_Type_D()
   endif

Действительно очень весело... Не уложился в 10 сек получит еще один принт... а если и в 20 не уложился то еще ... и так далее;))

Code: Select all

UO.AddObject("bag")
while uo.Targeting()
wait(100)
wend
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

Угу + еще проверку на мусор можно заделать

Code: Select all

   if UO.GetSerial("bag") == UO.GetSerial() || UO.GetSerial("bag") == 0x00000000 then
      F_Type_D()
   endif
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Ом утебя все скрипты такие веселые?;))
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

Обработка исключений давно стала привычкой. Вот и получаются такие веселые скрипты..
Только на полуязыке это не всегда выходит, последнее время больше нравится встраивать все нужное прямо в инжу, С для этого больше подходит.
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

так это все была не шутка?;))
Ужас...
Товарищь обрати внимание на рекурсию утебя образовавшиюсю;))
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

Рекурсия совершенно нормальная, произойдет только в двух случаях
Если контейнер сам перс или тыкнули в некуда(а это бывает).

Лишнего там только ADDobject. Если ты про то, что переписывать ХМЛ вредно, то эта проблема уже решена Вендором, он подрубил последнюю версию ДЛЛ. Которая libexpad, глюков с потерей файла не бывает.

Но на всякий случай удалим адд

Code: Select all

sub F_Type_D()
   var k = 0, LTimer = UO.Timer(), bag = UO.GetSerial())
   UO.IgnoreReset()
   UO.TextClear()
   UO.TextOpen()
   repeat
      wait(1000)
   until bag <> UO.GetSerial() || UO.Timer() > LTimer + 100
   if bag == UO.GetSerial() || bag == 0x00000000 then
      F_Type_D()
   endif
   UO.FindType("-1", "-1", bag)
   while UO.FindCount()
      UO.TextPrint("LType[" + str(k) + "] = " + UO.GetGraphic('finditem'))
      UO.Ignore('finditem')
      k = k + 1
      UO.FindType("-1", "-1", bag)
   wend
endsub
Last edited by omi4 on 2006-05-26 09:05:26, edited 2 times in total.
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Ничего вендор не исправил как падало так и падает;)
А последний скрипт вообще лишен смысла;))
Даже интересно а зачем его за пускать;)) рекурсия раз в 10 сек;) интервал большой... Русками аддобджект вводить?;))
Ужас в общем..
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

omi4 wrote:Рекурсия совершенно нормальная, произойдет только в двух случаях
Если контейнер сам перс или тыкнули в некуда(а это бывает).

Code: Select all

sub F_Type_D()
   var k = 0, LTimer = UO.Timer(), bag = UO.GetSerial())
   UO.IgnoreReset()
   UO.TextClear()
   UO.TextOpen()
   repeat
      wait(1000)
   until bag <> UO.GetSerial() || UO.Timer() > LTimer + 100
   if bag == UO.GetSerial() || bag == 0x00000000 then
      F_Type_D()
   endif
   UO.FindType("-1", "-1", bag)
   while UO.FindCount()
      UO.TextPrint("LType[" + str(k) + "] = " + UO.GetGraphic('finditem'))
      UO.Ignore('finditem')
      k = k + 1
      UO.FindType("-1", "-1", bag)
   wend
endsub


1.

Code: Select all

bag = UO.GetSerial())

лишняя скобка здесь

2. Я так думаю, ты параметр у UO.GetSerial() потерял - там явно должен быть lastcontainer по всему тексту скрипта. Без параметра - это сериал своего чара.
Ни один скрипт не работает? Пора обновить Инжект...
Все работает, но хочется большего? Пора переходить на стелс...
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

Grin wrote:Ничего вендор не исправил как падало так и падает;)
А последний скрипт вообще лишен смысла;))
Даже интересно а зачем его за пускать;)) рекурсия раз в 10 сек;) интервал большой... Русками аддобджект вводить?;))
Ужас в общем..


В последнем ты прав ошибка, ну забыл зачем адд был….
Так увлекся поиском патологии от рекурсии

Libexpad.dll это более свежая версия expad.dll, если просто переименовывать то, глюк никуда не исчезнет.
Нужно использовать свежую версию dll. Та что вендор сделал как положено, только dll не включил в архив.

В чем ужас, в отрицании права рекурсии на жизнь? Можно через Goto сделать
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

какой гоу ту то??? скрипты писать подругому надо...
А рекурсия живее всех живых...
Тоесль ко последнее основное действие повторится столько же раз какой уровень рекурсии ты допустил... нах это надо?
И потом как раз клил в никуда был бы более подходящим для отмены действия... а Таргетинг тебе так и не угодил;))
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

Согласен что 10 сек тут нафиг не нужны.
Выход должен быть по исчезновению или отмене таргета.
Зачем замутил такую проверку сам не понял…

Таргетами почти никогда не пользовался, только waittargetы и lastы.

Code: Select all

sub F_Type_D()
   var k = 0, LTimer = UO.Timer()
   UO.IgnoreReset()
   UO.TextClear()
   UO.TextOpen()
   UO.AddObject("bag", UO.GetSerial())
   UO.AddObject("bag")
   repeat
      wait(1000)
   until NOT UO.Targeting()

   if UO.GetSerial("bag") == 0x00000000 then
      F_Type_D()
   endif

   if UO.GetSerial("bag") == UO.GetSerial() then
      return 0
   endif
   UO.FindType("-1", "-1", "bag")
   while UO.FindCount()
      UO.TextPrint("LType[" + str(k) + "] = " + UO.GetGraphic('finditem'))
      UO.Ignore('finditem')
      k = k + 1
      UO.FindType("-1", "-1", "bag")
   wend
endsub
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Code: Select all

sub F_Type_D() 
   var k = 0
   UO.IgnoreReset()
   UO.TextClear()
   UO.TextOpen()
   UO.AddObject("bag")
   repeat
      wait(100)
   until NOT UO.Targeting()
   if UO.GetSerial("bag") == 0 then
      return 0 
   endif
   UO.FindType("-1", "-1", "bag")
   while UO.FindCount()
      UO.TextPrint("LType[" + str(k) + "] = " + UO.GetGraphic('finditem'))
      UO.Ignore('finditem')
      k = k + 1
      UO.FindType("-1", "-1", "bag")
   wend
endsub

зачем тебе рекурсия?
omi4
Posts: 457
Joined: 2005-07-10 21:53:05

Post by omi4 »

Запусти скрипт и отмени прицел Esc.
Объект bag содержит все что угодно только не нули, там будет ид прошлой цели.
А такого объекта в памяти инжи может и не быть, страшного ничего нет, ругнется и все

А рекурсия на случай указания прицелом на статику или землю, можно и не делать.
Пользы от этого не много, хотя и вреда нет. 100 раз промазать можно только специально.


Code: Select all

sub F_Type_D()
   var k = 0, LTimer = UO.Timer()
   UO.IgnoreReset()
   ;UO.TextClear()
   UO.TextOpen()
   UO.AddObject("bag", 0)
   UO.AddObject("bag")
   repeat
      wait(1000)
   until NOT UO.Targeting()

   if UO.GetSerial("bag") == 0 then
      UO.Print("ERORR")
      return 0
   endif

   UO.FindType("-1", "-1", "bag")
   while UO.FindCount()
      UO.TextPrint("LType[" + str(k) + "] = " + UO.GetGraphic('finditem'))
      UO.Ignore('finditem')
      k = k + 1
      UO.FindType("-1", "-1", "bag")
   wend
endsub
Post Reply