Yoko

All sides of Injection
It is currently 2026-01-17 12:41:02

All times are UTC+02:00




Post new topic  Reply to topic  [ 16 posts ] 
Author Message
PostPosted: 2005-02-08 23:41:17 
Offline

Joined: 2005-02-07 23:49:03
Posts: 7
Как можно получить список всех NPC находящихся в пределах экрана персонажа и желательно их имена.


Top
   
 Post subject:
PostPosted: 2005-02-09 00:08:19 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Поиском по типам мужчин и женщин. У найденных брать сериалы и выводить в текстовое окно.


Top
   
 Post subject:
PostPosted: 2005-02-09 00:26:21 
Offline

Joined: 2005-02-07 23:49:03
Posts: 7
sub getnames()
uo.textclear()
uo.textopen()
uo.findtype('0x0190')
...
Эм, а сюда что? :)
...
end sub

Типа uo.findtype('0x0190')
uo.getname(finditem)

не канает


Top
   
 Post subject:
PostPosted: 2005-02-09 00:47:00 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
во-первых, uo.findtype('0x0190', '-1', '1') - тебе же не в паке искать чаров надо, а на земле.

Во-вторых, после нужна проверка найдено ли что:

If UO.FindCount() > 0 Then
; вот здесь возьмем серийник этого чара
; и выведем его в текстовое окно
UO.TextPrint( UO.GetSerial('finditem')
; теперь надо этого чара отправить в игнор и повторить поиск
UO.Ignore('finditem')
Endif

повторение поиска сделай циклом. Чаров может быть и несколько десятков. В конце не забудь поставить
UO.IgnoreReset()

Пости что получилось, обсудим ;)


Top
   
 Post subject:
PostPosted: 2005-02-09 08:28:52 
Offline

Joined: 2005-02-07 23:49:03
Posts: 7
Как из ID получить имя, если на него небыло клика и небыло allnames?
Как можно интепретировать команду allnames в inj?
Для обращения к NPC обязательно использование имя? Например <vendor_name> buy.


Top
   
 Post subject:
PostPosted: 2005-02-09 14:02:09 
Offline
Sphere expert
User avatar

Joined: 2004-10-01 08:27:38
Posts: 1143
Location: Уфа
RENE wrote:
Как из ID получить имя, если на него небыло клика и небыло allnames?
Как можно интепретировать команду allnames в inj?
Для обращения к NPC обязательно использование имя? Например <vendor_name> buy.

uo.getname(ID)

_________________
Сделал дело - флуди смело !!!


Top
   
 Post subject:
PostPosted: 2005-02-09 14:03:22 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
RENE wrote:
Как из ID получить имя, если на него небыло клика и небыло allnames?


никак

Quote:
Как можно интепретировать команду allnames в inj?


Никак

Quote:
Для обращения к NPC обязательно использование имя? Например <vendor_name> buy.


Да, если ты хочешь обратиться к конкретному НПС в магазине, где их несколько. Если вендор один - имя можешь опустить.


Top
   
 Post subject:
PostPosted: 2005-02-09 17:30:14 
Offline

Joined: 2005-02-07 23:49:03
Posts: 7
После рекола вокруг чара на ростоянии до 5 тейлов стоит 7 вендоров, к ним необходимо обратиться с командой buy ,предварительно получив имена каждого из них, как можно реализовать последнее?


Top
   
 Post subject:
PostPosted: 2005-02-09 17:39:51 
Offline
Junior Expert
User avatar

Joined: 2004-11-13 00:43:55
Posts: 474
Location: Киберзадроцк
RENE wrote:
После рекола вокруг чара на ростоянии до 5 тейлов стоит 7 вендоров, к ним необходимо обратиться с командой buy ,предварительно получив имена каждого из них, как можно реализовать последнее?
Всё что тибе нужно :)
  • uo.ignore()
  • uo.findtype()
  • uo.click()
  • uo.getname()


Top
   
 Post subject:
PostPosted: 2005-02-09 18:29:14 
Offline
Site Admin
User avatar

Joined: 2004-04-03 16:49:38
Posts: 1964
чтобы превратить что-то на ссылку в хелпе, например uo.click, нужно написать uo.[уhlp_click], результат такой: uo.[yhlp_click]


Top
   
 Post subject:
PostPosted: 2005-02-09 18:31:36 
Offline
Site Admin
User avatar

Joined: 2004-04-03 16:49:38
Posts: 1964
Edred wrote:
Quote:
Как можно интепретировать команду allnames в inj?


Никак

макрос делающий клик на всех обьектас с положительным [yhlp_IsNPC] и всех трупах в пределах экрана


Top
   
 Post subject:
PostPosted: 2005-02-09 19:26:23 
Offline

Joined: 2005-02-07 23:49:03
Posts: 7
Вобщем, дело обстоит так, никого он не видит, пока не будет сделано uo.info()

в окне 'text' печатается сделующее:

ID=0x00000000 Type=0x0000 YC Name=
Quantity: 0 Colour: 0x0000 Layer: 0 Has: 0
X=65535 Y=65535 Z=0 C=0xFFFFFFFF F=0x00

ID=0x0001D5F2 Type=0x0191 EXVG Name=
Quantity: 0 Colour: 0x0000 Layer: 0 Has: 0
X=65535 Y=65535 Z=0 C=0xFFFFFFFF F=0x00

ID=0x0001D5F2 Type=0x0191 EXVG Name=Idola
Quantity: 0 Colour: 0x0000 Layer: 0 Has: 0
X=65535 Y=65535 Z=0 C=0xFFFFFFFF F=0x00

т.е нормальный ID и имя NPC появились только после третьего запуска uo.info() и кликав на вендора вручную.
после того как я это сделал, команда uo.textprint(uo.getname('0x0001D5F2')) стала выдавать имя: Idola, все как и должно быть.

В чем косяк? И как поправить?


Top
   
 Post subject:
PostPosted: 2005-02-09 20:21:33 
Offline

Joined: 2005-02-07 23:49:03
Posts: 7
sub cast()
uo.textopen()
uo.textclear()
uo.ignore('self')
uo.set('finddistance','50')
uo.findtype('0x0191','-1','1')
while uo.findcount() > 0
uo.info('finditem')
uo.ignore('finditem')
uo.findtype('0x0191','-1','1')
wend
uo.ignorereset()
end sub



Если заменить в findtype('0x0191'... на findtype ('-1'..., то найдутся все объекты, но без имени, при повторном uo.info() появятся и имена, но опять же кроме вендоров, они находятся только после тройного использования команды uo.info() и только после клика вручную


Top
   
 Post subject:
PostPosted: 2005-02-09 21:37:46 
Offline
Expert!

Joined: 2004-04-03 17:36:29
Posts: 2544
Location: Saint-Petersburg
Code:
sub cast() 
   uo.textopen()
   uo.textclear()
   uo.ignore('self')
   uo.set('finddistance','14')
   ; больше тебе все равно шард не даст
   uo.findtype('0x0191','-1','1')
   while uo.findcount() > 0
      UO.Click( 'finditem' )
      wait(500)
      UO.TextPrint( 'Найден вендор ' + UO.GetName('finditem') + '. Serial = ' + UO.GetSerial('finditem') )
      uo.ignore('finditem')
      uo.findtype('0x0191','-1','1')
   wend
   uo.ignorereset()
end sub


Top
   
 Post subject:
PostPosted: 2005-02-17 21:36:32 
Offline

Joined: 2005-02-16 23:43:57
Posts: 8
Edred wrote:
Code:
sub cast() 
   uo.textopen()
   uo.textclear()
   uo.ignore('self')
   uo.set('finddistance','14')
   ; больше тебе все равно шард не даст
   uo.findtype('0x0191','-1','1')
   while uo.findcount() > 0
      UO.Click( 'finditem' )
      wait(500)
      UO.TextPrint( 'Найден вендор ' + UO.GetName('finditem') + '. Serial = ' + UO.GetSerial('finditem') )
      uo.ignore('finditem')
      uo.findtype('0x0191','-1','1')
   wend
   uo.ignorereset()
end sub


ктонить знает как из текста ID в переменную занести ?


Top
   
 Post subject:
PostPosted: 2005-02-18 10:24:20 
Offline
Expert!
User avatar

Joined: 2004-07-04 00:14:58
Posts: 1284
666Man666 wrote:
Всё что тибе нужно :)
  • uo.ignore()
  • uo.findtype()
  • uo.click()
  • uo.getname()

  • uo.ignorereset()
  • uo.findtype()
  • uo.getname()
  • uo.ignore()
проблему с получением имени не понимаю... при появлении на экране НПЦ автоматом показывается его имя, эта ф-я вроде как настраивается в клиенте.

И не стоит забывать про девушек ;)

ЗЫ не голословен, т.к. успешно пользую подобную ф-ю на ДРВ.


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

All times are UTC+02:00


Who is online

Users browsing this forum: No registered users and 5 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:  
cron
Powered by phpBB® Forum Software © phpBB Limited