Page 1 of 1
Получение списка NPC в пределах экрана
Posted: 2005-02-08 23:41:17
by RENE
Как можно получить список всех NPC находящихся в пределах экрана персонажа и желательно их имена.
Posted: 2005-02-09 00:08:19
by Edred
Поиском по типам мужчин и женщин. У найденных брать сериалы и выводить в текстовое окно.
Posted: 2005-02-09 00:26:21
by RENE
sub getnames()
uo.textclear()
uo.textopen()
uo.findtype('0x0190')
...
Эм, а сюда что?
...
end sub
Типа uo.findtype('0x0190')
uo.getname(finditem)
не канает
Posted: 2005-02-09 00:47:00
by Edred
во-первых, uo.findtype('0x0190', '-1', '1') - тебе же не в паке искать чаров надо, а на земле.
Во-вторых, после нужна проверка найдено ли что:
If UO.FindCount() > 0 Then
; вот здесь возьмем серийник этого чара
; и выведем его в текстовое окно
UO.TextPrint( UO.GetSerial('finditem')
; теперь надо этого чара отправить в игнор и повторить поиск
UO.Ignore('finditem')
Endif
повторение поиска сделай циклом. Чаров может быть и несколько десятков. В конце не забудь поставить
UO.IgnoreReset()
Пости что получилось, обсудим

Posted: 2005-02-09 08:28:52
by RENE
Как из ID получить имя, если на него небыло клика и небыло allnames?
Как можно интепретировать команду allnames в inj?
Для обращения к NPC обязательно использование имя? Например <vendor_name> buy.
Posted: 2005-02-09 14:02:09
by Askaneli
RENE wrote:Как из ID получить имя, если на него небыло клика и небыло allnames?
Как можно интепретировать команду allnames в inj?
Для обращения к NPC обязательно использование имя? Например <vendor_name> buy.
uo.getname(ID)
Posted: 2005-02-09 14:03:22
by Edred
RENE wrote:Как из ID получить имя, если на него небыло клика и небыло allnames?
никак
Как можно интепретировать команду allnames в inj?
Никак
Для обращения к NPC обязательно использование имя? Например <vendor_name> buy.
Да, если ты хочешь обратиться к конкретному НПС в магазине, где их несколько. Если вендор один - имя можешь опустить.
Posted: 2005-02-09 17:30:14
by RENE
После рекола вокруг чара на ростоянии до 5 тейлов стоит 7 вендоров, к ним необходимо обратиться с командой buy ,предварительно получив имена каждого из них, как можно реализовать последнее?
Posted: 2005-02-09 17:39:51
by 666Man666
RENE wrote:После рекола вокруг чара на ростоянии до 5 тейлов стоит 7 вендоров, к ним необходимо обратиться с командой buy ,предварительно получив имена каждого из них, как можно реализовать последнее?
Всё что тибе нужно
- uo.ignore()
- uo.findtype()
- uo.click()
- uo.getname()
Posted: 2005-02-09 18:29:14
by Yoko
чтобы превратить что-то на ссылку в хелпе, например uo.click, нужно написать uo.[уhlp_click], результат такой: uo.[yhlp_click]
Posted: 2005-02-09 18:31:36
by Yoko
Edred wrote:Как можно интепретировать команду allnames в inj?
Никак
макрос делающий клик на всех обьектас с положительным [yhlp_IsNPC] и всех трупах в пределах экрана
Posted: 2005-02-09 19:26:23
by RENE
Вобщем, дело обстоит так, никого он не видит, пока не будет сделано 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, все как и должно быть.
В чем косяк? И как поправить?
Posted: 2005-02-09 20:21:33
by RENE
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() и только после клика вручную
Posted: 2005-02-09 21:37:46
by Edred
Code: Select all
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
Posted: 2005-02-17 21:36:32
by Striker
Edred wrote:Code: Select all
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 в переменную занести ?
Posted: 2005-02-18 10:24:20
by Sfagnum
666Man666 wrote:Всё что тибе нужно

- uo.ignore()
- uo.findtype()
- uo.click()
- uo.getname()
- uo.ignorereset()
- uo.findtype()
- uo.getname()
- uo.ignore()
проблему с получением имени не понимаю... при появлении на экране НПЦ автоматом показывается его имя, эта ф-я вроде как настраивается в клиенте.
И не стоит забывать про девушек
ЗЫ не голословен, т.к. успешно пользую подобную ф-ю на ДРВ.