Типы обьектов... автосбор и запись... Как?
Moderators: Murderator+, Murderator
Типы обьектов... автосбор и запись... Как?
Подскажите как типы обьектов пачками собирать....вот например записать все типы обьектов которы в сумке....
или как конвертировать типы изиуо в инжектовские.
а то на каждый обьект делать инфо...долго и я думаю не нужно.
Или может можно как то записывать в файл по таргету? тоесть появился таргет -> клацнул на предмет -> тип предмета записался в файл.
Пасибо всем кто подскажет.
или как конвертировать типы изиуо в инжектовские.
а то на каждый обьект делать инфо...долго и я думаю не нужно.
Или может можно как то записывать в файл по таргету? тоесть появился таргет -> клацнул на предмет -> тип предмета записался в файл.
Пасибо всем кто подскажет.
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.
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
а так еще фисилее
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
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
Угу + еще проверку на мусор можно заделать
Code: Select all
if UO.GetSerial("bag") == UO.GetSerial() || UO.GetSerial("bag") == 0x00000000 then
F_Type_D()
endif
Рекурсия совершенно нормальная, произойдет только в двух случаях
Если контейнер сам перс или тыкнули в некуда(а это бывает).
Лишнего там только ADDobject. Если ты про то, что переписывать ХМЛ вредно, то эта проблема уже решена Вендором, он подрубил последнюю версию ДЛЛ. Которая libexpad, глюков с потерей файла не бывает.
Но на всякий случай удалим адд
Если контейнер сам перс или тыкнули в некуда(а это бывает).
Лишнего там только 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.
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 по всему тексту скрипта. Без параметра - это сериал своего чара.
Grin wrote:Ничего вендор не исправил как падало так и падает;)
А последний скрипт вообще лишен смысла;))
Даже интересно а зачем его за пускать;)) рекурсия раз в 10 сек;) интервал большой... Русками аддобджект вводить?;))
Ужас в общем..
В последнем ты прав ошибка, ну забыл зачем адд был….
Так увлекся поиском патологии от рекурсии
Libexpad.dll это более свежая версия expad.dll, если просто переименовывать то, глюк никуда не исчезнет.
Нужно использовать свежую версию dll. Та что вендор сделал как положено, только dll не включил в архив.
В чем ужас, в отрицании права рекурсии на жизнь? Можно через Goto сделать
какой гоу ту то??? скрипты писать подругому надо...
А рекурсия живее всех живых...
Тоесль ко последнее основное действие повторится столько же раз какой уровень рекурсии ты допустил... нах это надо?
И потом как раз клил в никуда был бы более подходящим для отмены действия... а Таргетинг тебе так и не угодил;))
А рекурсия живее всех живых...
Тоесль ко последнее основное действие повторится столько же раз какой уровень рекурсии ты допустил... нах это надо?
И потом как раз клил в никуда был бы более подходящим для отмены действия... а Таргетинг тебе так и не угодил;))
Согласен что 10 сек тут нафиг не нужны.
Выход должен быть по исчезновению или отмене таргета.
Зачем замутил такую проверку сам не понял…
Таргетами почти никогда не пользовался, только waittargetы и lastы.
Выход должен быть по исчезновению или отмене таргета.
Зачем замутил такую проверку сам не понял…
Таргетами почти никогда не пользовался, только 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
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
зачем тебе рекурсия?
Запусти скрипт и отмени прицел Esc.
Объект bag содержит все что угодно только не нули, там будет ид прошлой цели.
А такого объекта в памяти инжи может и не быть, страшного ничего нет, ругнется и все
А рекурсия на случай указания прицелом на статику или землю, можно и не делать.
Пользы от этого не много, хотя и вреда нет. 100 раз промазать можно только специально.
Объект 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