Yoko

All sides of Injection
It is currently 2025-12-22 22:35:59

All times are UTC+02:00




Post new topic  Reply to topic  [ 19 posts ] 
Author Message
 Post subject: uo.getname?
PostPosted: 2008-02-11 21:46:31 
Offline

Joined: 2007-04-26 23:35:15
Posts: 220
На мой взгляд одна из самых кривых функций в инжекте, но бывает очень необходимой.

Вот почему
Code:
uo.getname('self')

или
Code:
uo.getname('0x000000')

работает нормально.

А
Code:
id=uo.getserial(uo.TradeOpponent())
name=uo.getname(id)


или
Code:
uo.GetName('laststatus')

через жопу?

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

Как другими способами узнать имя объекта например для uo.TradeOpponent() ? :roll:


Top
   
 Post subject:
PostPosted: 2008-02-11 22:58:11 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
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.
Skype: d119060


Top
   
 Post subject:
PostPosted: 2008-02-11 23:16:41 
Offline
Expert!
User avatar

Joined: 2006-02-07 08:51:40
Posts: 1348
Location: г. Старый Оскол
Destruction wrote:
uo.TradeName()

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


Есть такой косяк. Почему то когда делаешь:
Code:
VAR name, ser
ser = UO.GetSerial('finditem')
name = UO.GetName(ser)

UO.PrintText(name)

ни чего не выдает. странно правда?


Top
   
 Post subject:
PostPosted: 2008-02-11 23:18:33 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Kynep wrote:
Code:
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.

Top
   
 Post subject:
PostPosted: 2008-02-11 23:21:40 
Offline
Expert!
User avatar

Joined: 2006-02-07 08:51:40
Posts: 1348
Location: г. Старый Оскол
Edred wrote:
Kynep wrote:
Code:
VAR name, ser
ser = UO.GetSerial('finditem')
name = UO.GetName(ser)

UO.PrintText(name)


Чего же тут странного? Раз поиск не делался, значит и finditem пустое. Раз пустое - имени нету. Все естественно.

Блин я утрирую, до этого поиск и все как надо )))
Просто если сделать:
Code:
UO.PrintText(UO.GetName(ser))

То все работает )))


Top
   
 Post subject:
PostPosted: 2008-02-11 23:22:27 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Я уже дописал свой пост, читай выше.

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2008-02-11 23:25:06 
Offline
Expert!
User avatar

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


Уже прочитал. Я в курсе.


Top
   
 Post subject:
PostPosted: 2008-02-11 23:39:13 
Offline
Expert!
User avatar

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


Просто даже если без клика сделать:
Code:
name = UO.GetName('finditem')
UO.PrintText(name)

и
Code:
UO.PrintText(UO.GetName('finditem'))


то в первом случае мы получим 0 а во втором имя. Вам не кажеться это странным?


Top
   
 Post subject:
PostPosted: 2008-02-11 23:41:16 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
Code:
UO.PrintText(UO.GetName('finditem'))

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


А теперь сделай в обратном порядке;)) на предмете чье имя ты еще 100% не знаешь;)


Top
   
 Post subject:
PostPosted: 2008-02-12 00:04:37 
Offline
Expert!
User avatar

Joined: 2006-02-07 08:51:40
Posts: 1348
Location: г. Старый Оскол
Grin wrote:
Code:
UO.PrintText(UO.GetName('finditem'))

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


А теперь сделай в обратном порядке;)) на предмете чье имя ты еще 100% не знаешь;)


Интерестная концепция ))) Я пробовал свои техники, указанные выше на элемах, при их появлении имя попадает в журнал в любом случае, даже без клика. Но вот в представленных мной прмерах получается косяк )))


Top
   
 Post subject:
PostPosted: 2008-02-12 00:07:02 
Offline
Expert!
User avatar

Joined: 2005-05-04 14:05:19
Posts: 2580
Location: Москва
как же все сложно
всем спокойной...


Top
   
 Post subject:
PostPosted: 2008-02-12 00:10:27 
Offline
Expert!
User avatar

Joined: 2006-02-07 08:51:40
Posts: 1348
Location: г. Старый Оскол
Grin wrote:
как же все сложно


В смысле? На что Вы намекаете?


Top
   
 Post subject:
PostPosted: 2008-02-12 00:48:09 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Kynep wrote:
Просто даже если без клика сделать:
Code:
name = UO.GetName('finditem')
UO.PrintText(name)

и
Code:
UO.PrintText(UO.GetName('finditem'))


то в первом случае мы получим 0 а во втором имя. Вам не кажеться это странным?


В первом случае поиск нашел объект, чье имя неизвестно, вот и 0. Во втором случае - объект, чье имя известно, вот и есть имя. Делаешь так: дисконнектишься, закрываешь клиент, запускаешь по-новой, заходишь в игру. Ни по чему не кликаешь, запускаешь скрипт, где у тебя:

Code:
name = UO.GetName('finditem')
UO.PrintText(name)
UO.PrintText(UO.GetName('finditem'))


Любуешься абсолютно одинаковым результатом. А именно - 0.

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

Code:
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.

Top
   
 Post subject:
PostPosted: 2008-02-12 01:11:41 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
Вейт не нужен.

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

Code:
Sub my.getName( object )
    If uo.getName( object ) == "" Then
        uo.click( object )
        checklag()
    EndIf
    return uo.getName( object )
endsub

_________________
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.
Skype: d119060


Last edited by Destruction on 2008-02-12 01:15:32, edited 2 times in total.

Top
   
 Post subject:
PostPosted: 2008-02-12 01:13:45 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
По фиг. Это всего лишь пример того, что функция GetName работает абсолютно корректно, просто надо знать правила, по которым она работает... 8)

_________________
Ни один скрипт не работает? Пора обновить Инжект...

Все работает, но хочется большего? Пора переходить на стелс...


Top
   
 Post subject:
PostPosted: 2008-02-12 01:17:05 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
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.
Skype: d119060


Top
   
 Post subject:
PostPosted: 2008-02-12 02:03:35 
Offline

Joined: 2007-04-26 23:35:15
Posts: 220
Всем спасибо, у меня все получалиось, причем 3-меняспособами 8)


Top
   
 Post subject:
PostPosted: 2008-02-12 02:47:54 
Offline
Junior Expert
User avatar

Joined: 2004-06-24 22:08:56
Posts: 3220
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.
Skype: d119060


Top
   
 Post subject:
PostPosted: 2008-02-12 04:03:58 
Offline

Joined: 2007-04-26 23:35:15
Posts: 220
Destruction wrote:
korzh wrote:
Всем спасибо, у меня все получалиось, причем 3-меняспособами 8)

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

Верно?)


Да, кроме первого.
1. uo.getserial(uo.TradeOpponent())...


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 19 posts ] 

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited