uo.getname?

Anything and all.

Moderators: Murderator+, Murderator

Post Reply
korzh
Posts: 220
Joined: 2007-04-26 23:35:15

uo.getname?

Post by korzh »

На мой взгляд одна из самых кривых функций в инжекте, но бывает очень необходимой.

Вот почему

Code: Select all

uo.getname('self')
или

Code: Select all

uo.getname('0x000000')
работает нормально.

А

Code: Select all

id=uo.getserial(uo.TradeOpponent())
name=uo.getname(id)
или

Code: Select all

uo.GetName('laststatus')
через жопу?

Была конечно идея получать имя путем клика + дергать последнюю строку журнала, но это работает через то же место.

Как другими способами узнать имя объекта например для uo.TradeOpponent() ? :roll:
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

uo.TradeName()

PS: Никогда не испытывал проблем с uo.getName(), просто вы пользуете видимо неправильно.
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Destruction wrote:uo.TradeName()

PS: Никогда не испытывал проблем с uo.getName(), просто вы пользуете видимо неправильно.
Есть такой косяк. Почему то когда делаешь:

Code: Select all

VAR name, ser
ser = UO.GetSerial('finditem')
name = UO.GetName(ser)

UO.PrintText(name)
ни чего не выдает. странно правда?
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Kynep wrote:

Code: Select all

VAR name, ser
ser = UO.GetSerial('finditem')
name = UO.GetName(ser)

UO.PrintText(name)
Чего же тут странного? Раз поиск не делался, значит и finditem пустое. Раз пустое - имени нету. Все естественно. Это во-первых.

Во-вторых. Инжекту просто негде взять имя чего-либо если клиент это имя не получал от шарда. Поэтому чтобы получить имя - нужно перед этим кликнуть по объекту / чару / НПС. Об этом, вообще-то, я еще во втором или третьем уроке скриптинга писал. Странно, что-то на этом форуме приписками "эксперт" разбрасываются направо-налево... Вон у Грина до сих пор "junior expert", а тут эксперт, который не знает элементарных вещей.
Last edited by Edred on 2008-02-11 23:21:46, edited 1 time in total.
Ни один скрипт не работает? Пора обновить [url=http://www.eof.nm.ru/FiLeS/uoloop.exe]Инжект[/url]...
Все работает, но хочется большего? Пора переходить на [url=http://stealth.od.ua/]стелс[/url]...
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Edred wrote:
Kynep wrote:

Code: Select all

VAR name, ser
ser = UO.GetSerial('finditem')
name = UO.GetName(ser)

UO.PrintText(name)
Чего же тут странного? Раз поиск не делался, значит и finditem пустое. Раз пустое - имени нету. Все естественно.
Блин я утрирую, до этого поиск и все как надо )))
Просто если сделать:

Code: Select all

UO.PrintText(UO.GetName(ser))
То все работает )))
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Я уже дописал свой пост, читай выше.
Ни один скрипт не работает? Пора обновить [url=http://www.eof.nm.ru/FiLeS/uoloop.exe]Инжект[/url]...
Все работает, но хочется большего? Пора переходить на [url=http://stealth.od.ua/]стелс[/url]...
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Edred wrote:Я уже дописал свой пост, читай выше.
Уже прочитал. Я в курсе.
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Edred wrote:Я уже дописал свой пост, читай выше.
Просто даже если без клика сделать:

Code: Select all

name = UO.GetName('finditem')
UO.PrintText(name)
и

Code: Select all

UO.PrintText(UO.GetName('finditem'))
то в первом случае мы получим 0 а во втором имя. Вам не кажеться это странным?
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

Code: Select all

UO.PrintText(UO.GetName('finditem'))

name = UO.GetName('finditem') 
UO.PrintText(name) 
А теперь сделай в обратном порядке;)) на предмете чье имя ты еще 100% не знаешь;)
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Grin wrote:

Code: Select all

UO.PrintText(UO.GetName('finditem'))

name = UO.GetName('finditem') 
UO.PrintText(name) 
А теперь сделай в обратном порядке;)) на предмете чье имя ты еще 100% не знаешь;)
Интерестная концепция ))) Я пробовал свои техники, указанные выше на элемах, при их появлении имя попадает в журнал в любом случае, даже без клика. Но вот в представленных мной прмерах получается косяк )))
Grin
Expert!
Posts: 2580
Joined: 2005-05-04 14:05:19
Location: Москва

Post by Grin »

как же все сложно
всем спокойной...
Kynep
Expert!
Posts: 1348
Joined: 2006-02-07 08:51:40
Location: г. Старый Оскол
Contact:

Post by Kynep »

Grin wrote:как же все сложно
В смысле? На что Вы намекаете?
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

Kynep wrote:Просто даже если без клика сделать:

Code: Select all

name = UO.GetName('finditem')
UO.PrintText(name)
и

Code: Select all

UO.PrintText(UO.GetName('finditem'))
то в первом случае мы получим 0 а во втором имя. Вам не кажеться это странным?
В первом случае поиск нашел объект, чье имя неизвестно, вот и 0. Во втором случае - объект, чье имя известно, вот и есть имя. Делаешь так: дисконнектишься, закрываешь клиент, запускаешь по-новой, заходишь в игру. Ни по чему не кликаешь, запускаешь скрипт, где у тебя:

Code: Select all

name = UO.GetName('finditem')
UO.PrintText(name)
UO.PrintText(UO.GetName('finditem'))
Любуешься абсолютно одинаковым результатом. А именно - 0.

После чего запускаешь скрипт, где у тебя:

Code: Select all

Click('finditem')
wait(1000)
Checklag()
name = UO.GetName('finditem')
UO.PrintText(name)
UO.PrintText(UO.GetName('finditem'))
И опять любуешься одинаковым результатом. А именно - именем объекта. Что и требовалось доказать.

И, наконец, по поводу элема. Не ты ли буквально пару дней назад интересовался, по какому сообщению лучше ловить момент появления элема? Мне кажется, да. Если это так - то все понятно. Как я уже писал, у вас на шарде элемы выкапываются сначала в пак, а потом выпадают под ноги. Так как клиент УО "знает" по именам все объекты, которые находятся у чара в паке (было бы странно, если бы не знал), то абсолютно естественно, что чар (и инжект) знает имя элема без всякого клика на него.
Last edited by Edred on 2008-02-12 01:12:34, edited 1 time in total.
Ни один скрипт не работает? Пора обновить [url=http://www.eof.nm.ru/FiLeS/uoloop.exe]Инжект[/url]...
Все работает, но хочется большего? Пора переходить на [url=http://stealth.od.ua/]стелс[/url]...
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Вейт не нужен.

Насколько я помню из спецификации TCP-протокола, пакетики ходят строго по-порядку.. Ну может быть плохо помню.

Code: Select all

Sub my.getName( object )
    If uo.getName( object ) == "" Then
        uo.click( object )
        checklag()
    EndIf
    return uo.getName( object )
endsub
Last edited by Destruction on 2008-02-12 01:15:32, edited 2 times in total.
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
Edred
Expert!
Posts: 2544
Joined: 2004-04-03 17:36:29
Location: Saint-Petersburg

Post by Edred »

По фиг. Это всего лишь пример того, что функция GetName работает абсолютно корректно, просто надо знать правила, по которым она работает... 8)
Ни один скрипт не работает? Пора обновить [url=http://www.eof.nm.ru/FiLeS/uoloop.exe]Инжект[/url]...
Все работает, но хочется большего? Пора переходить на [url=http://stealth.od.ua/]стелс[/url]...
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

Edred wrote:По фиг. Это всего лишь пример того, что функция GetName работает абсолютно корректно, просто надо знать правила, по которым она работает... 8)
Я ещё в самом начале топика не видел смысла объяснять - увидев объёмы тексту понял - был прав на 100%. В любом случае - есть логика в использовании uo.TradeName().

Вообще - судя по тому, что у него не определяется имя игрока - не стоит галочка "Show names of approaching players" или как её там, а инжект увидев трейд-окошко - не записывает для айдишника имя (блин, хз как правильно сказать, но суть какая-то такая), что не есть гут.. Если вдруг Yoko вернётся - надо будет ему сказать :)
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
korzh
Posts: 220
Joined: 2007-04-26 23:35:15

Post by korzh »

Всем спасибо, у меня все получалиось, причем 3-меняспособами 8)
Destruction
Junior Expert
Posts: 3221
Joined: 2004-06-24 22:08:56

Post by Destruction »

korzh wrote:Всем спасибо, у меня все получалиось, причем 3-меняспособами 8)
Тремя?... Дай угадаю:
1. Поставить галочку в настройка UO - "Show names of approaching players".
2. Делать клац перед использованием uo.getName()
3. Использовать uo.TradeName()

Верно?)
YokoInjection CodeSweeper
Function not found?
Possession of mathematics at the level of art - a gift that is only available for election.
Sorry for my clumsy English.
Telegram: @tatikom
korzh
Posts: 220
Joined: 2007-04-26 23:35:15

Post by korzh »

Destruction wrote:
korzh wrote:Всем спасибо, у меня все получалиось, причем 3-меняспособами 8)
Тремя?... Дай угадаю:
1. Поставить галочку в настройка UO - "Show names of approaching players".
2. Делать клац перед использованием uo.getName()
3. Использовать uo.TradeName()

Верно?)
Да, кроме первого.
1. uo.getserial(uo.TradeOpponent())...
Post Reply