Page 1 of 2
Как отличить НПЦ от игрока?
Posted: 2012-01-17 17:04:17
by DeffoDen
Всем привет , вот задумал написать скрипт на поиск игроков и "юзание" их , столкнулся с проблемами
а) типов больше чем 2 , 190 и 191 , так же игроки могут быть в полиморфе , тип меняется...
б) как вернуть значение имени обьекта?? GetName() возвращает либо 0 либо последнюю фразу игрока , хотя внизу экрана имена пишет нормально (по ласт статусу видимо) , но даже если ласт статус гетнеймить , выходит ноль.
Re: Как отличить НПЦ от игрока?
Posted: 2012-01-17 18:37:31
by Mirage
1) Человека-игрока от человека-НПС (0x0190 и 0x0191) отличить никак нельзя. Физически.
Человека в полиморфе можно отличить от животного только по нестандартному нику и поведению.
2)
Code: Select all
sub TestArmor()
var name, ob = '0x40B0D372'
UO.TextOpen()
UO.TextClear()
uo.DeleteJournal( )
UO.Click( ob ) ; <===== ключевой момент
wait(1000)
name = UO.GetName( ob )
UO.TextPrint( name )
endsub
Re: Как отличить НПЦ от игрока?
Posted: 2012-01-17 19:11:22
by DeffoDen
спасибо.
Re: Как отличить НПЦ от игрока?
Posted: 2012-01-31 06:34:29
by Askaneli
Mirage wrote:1) Человека-игрока от человека-НПС (0x0190 и 0x0191) отличить никак нельзя. Физически.
Можно

Делали

Re: Как отличить НПЦ от игрока?
Posted: 2012-01-31 12:47:50
by Mirage
И как?
Цвет кожи генерируется у всех произвольно. Если админ намеренно не создаст всяких малиновых НПС и белых игроков.
Тип тела один и тот же.
Шмотки одеть можно на любого. (Вендоры которые одеваются в точности как хозяин)
Фразами реагировать можно научить.
По свитку у ног разве только, но это пинцет...
Так без примера что гон и понты сударь

Re: Как отличить НПЦ от игрока?
Posted: 2012-02-01 07:24:31
by Askaneli
Пусть будет гон.

Я придумал в своё время как реализовать, Сфаг реализовал и крутил скрипт на скупку на ДРВ очень и очень удачно. Я получал на халяву реги покупные, свитки и прочее.
Если порытся, то в истории этого форума есть мой пост в котором я написал что удаляю описание схемы по просьбе Сфага

Дерзайте

Re: Как отличить НПЦ от игрока?
Posted: 2012-02-01 09:08:18
by Mirage
все темы которые смог найти за чаем с участием тебя и вендоров были завернуты на ID вендоров. А автору нужен тип. То-есть, если я правильно понял, чтобы скрипт определял кто к нему подходит - игрок или управляемый компьютером персонаж. Вот такой вариант проработать скриптом не получится.
Если считать что вендор стоит всегда в одной точке (+ - полэкрана) и у него один ID то оно конечно можно.
Re: Как отличить НПЦ от игрока?
Posted: 2012-04-20 08:46:12
by admir
Уже забыл инжекет, Но вроде бы была команда на просмотр профиля у игрока? профиля у нпс нету.
Может быть с гет статусом поигратся, может у нпс всегда одно и тоже макс хп..?
Когда говоришь buy, hi - нпс поворачивается к тебе лицом, можно сделать проверку на направление персонажей.
Бывает иногда сами нпс чего-то там бормочат...
Поробовать сунуть чару любой предмет. Если игрок то открывается диалоговое окно обмена, проверка на контейнер есть. Нпс либо берет либо падает в пак обратно.
Re: Как отличить НПЦ от игрока?
Posted: 2012-04-20 10:51:04
by Mirage
Профиль у НПС человеков по умолчанию на сфере включен и аналогичен игроку. Соответственно работает только как частный случай.
gethp показывает одинаковое количество жизни НЕ У СЕБЯ. Всегда 100.
реагирования на слова не вариант - как определить повернулся игрок или НПС? Притом что часто фразы отключают или звучат по другому.
Бывает иногда сами нпс чего-то там бормочат... = Бывает иногда сами игроки чего-то там бормочат...
Остается только последняя проверка на "сунуть". Но всем не насуешься - сувалка отвалится

ПО умолчанию НПС БЕРЕТ предмет. Либо скажет что он мне не нужен.
Re: Как отличить НПЦ от игрока?
Posted: 2012-04-21 10:28:10
by Yura
DeffoDen wrote:Всем привет , вот задумал написать скрипт на поиск игроков и "юзание" их , столкнулся с проблемами
а) типов больше чем 2 , 190 и 191 , так же игроки могут быть в полиморфе , тип меняется...
б) как вернуть значение имени обьекта?? GetName() возвращает либо 0 либо последнюю фразу игрока , хотя внизу экрана имена пишет нормально (по ласт статусу видимо) , но даже если ласт статус гетнеймить , выходит ноль.
Можно смотреть по id персонажа, на некоторых шардах id игроков $4xxxxxxx, id NPC $0000xxxx или id игроков в определенном диапазоне.
Re: Как отличить НПЦ от игрока?
Posted: 2012-04-21 11:10:56
by Mirage
Абсолютно редкий частный случай
ID=0x008EE1CB
ID=0x001C797E
ID=0x00F3A8F8
ID=0x00599714
ID=0x00EEDDA1
ID=0x009CFDD4
ID=0x00CF4B55
ID=0x00DCA2F1
ID=0x00B83890
ID=0x0040E0FC
Угадай кто из них НПС а кто игроки?

Re: Как отличить НПЦ от игрока?
Posted: 2012-04-21 19:46:19
by ZeroDX
игроки внизу
Re: Как отличить НПЦ от игрока?
Posted: 2012-04-21 22:09:33
by Mirage
блин

Re: Как отличить НПЦ от игрока?
Posted: 2012-04-22 15:03:37
by Juicy Fruit
Code: Select all
uo.msg(uo.GetName(obj)+" buy")
wait(1000)
uo.findtype('0x2AF8',-1,obj)
if uo.findcount() then
uo.print(uo.getname(obj)+' - торговый НПС.')
else
uo.print(uo.getname(obj)+' - не торговый НПС или игрок.')
endif
obj - Серийник НПСя.
0x2AF8 - типа стор бокса у веника.
Но это прокатит только в тех случаях, если у вена есть товар.
Re: Как отличить НПЦ от игрока?
Posted: 2012-04-23 13:22:25
by Nmy
https://www.google.lv/#sclient=psy-ab&h ... =askaneli+нпс+site:yoko.uokit.com&oq=askaneli+нпс+site:yoko.uokit.com&aq=f&aqi=&aql=&gs_nf=1&gs_l=hp.3...16398.16876.7.17047.3.3.0.0.0.1.320.320.3-1.1.0.RixZGzvTtx8&pbx=1&bav=on.2,or.r_gc.r_pw.,cf.osb&fp=2a54a25ac6b043e1
viewtopic.php?f=3&t=1822&start=20Juicy Fruit wrote:obj - Серийник НПСя.
0x2AF8 - типа стор бокса у веника.
Но это прокатит только в тех случаях, если у вена есть товар.
Судя по тексту от Асканели, то он нашел способ отличить нпс от игрока, прежде тем как сделать покупку.
Как понимаю секрет он так и не раскроит.

Re: Как отличить НПЦ от игрока?
Posted: 2012-04-23 15:34:21
by Juicy Fruit
Nmy wrote:Судя по тексту от Асканели, то он нашел способ отличить нпс от игрока, прежде тем как сделать покупку.
Не, сам допирал.
В скупке: делаем сию проверку, если это не торговый НПС - забиваем его серийник в буффер, перед каждой попыткой скупить - проверяем, есть ли данный серийник в буффере. Если есть - игнорим.
Но может возникнуть лажа, если у торгового НПС совсем нет товаров - скрипт подумает что это не торгаш и будет постоянно его игнорить(
Re: Как отличить НПЦ от игрока?
Posted: 2012-04-23 16:46:31
by Mirage
2 Nmy
Mirage wrote:все темы которые смог найти за чаем с участием тебя и вендоров были завернуты на ID вендоров. А автору нужен тип.

вот и весь секрет. Он использовал готовую базу ID или имен предварительно забирую. Сие есть фу
PS кстати я ту тему только заметил, и там обсуждается практически все что тут понаписано. Все таки история циклична...
Re: Как отличить НПЦ от игрока?
Posted: 2012-04-24 09:40:27
by Nmy
Хочу услышать официальную версию как Асканели это решил 8 лет назад

ид это или не ид, ник нейм это или не ник нейм
Re: Как отличить НПЦ от игрока?
Posted: 2012-05-05 08:52:04
by admir
цвет имени вендора? на каждом шарде свои.
К тому же наша задача изначально стоит по другому: разделить НПС ( а они не обязательн могут быть торгашами) от игроков.
Re: Как отличить НПЦ от игрока?
Posted: 2012-05-05 11:34:29
by Mirage
Заметил одну особенность нуждающуюся в тестировании.
Сфера 56. С выключенным TWI команда ,info с прицелом на игрока выдает
X=65535 Y=65535 Z=0 C=0xFFFFFFFF F=0x00
тот же прицел на НПС выдает его координаты правильно:
X=6102 Y=1197 Z=0 C=0xFFFFFFFF F=0x00
Как вариант можно использовать это я думаю. Но надо протестировать другие версии и сервера - у меня щаз доступны только 2 набора файлов.