Как отличить НПЦ от игрока?

General Injection issues

Moderators: Murderator+, Murderator

DeffoDen
Posts: 4
Joined: 2012-01-13 16:55:06

Как отличить НПЦ от игрока?

Post by DeffoDen »

Всем привет , вот задумал написать скрипт на поиск игроков и "юзание" их , столкнулся с проблемами
а) типов больше чем 2 , 190 и 191 , так же игроки могут быть в полиморфе , тип меняется...
б) как вернуть значение имени обьекта?? GetName() возвращает либо 0 либо последнюю фразу игрока , хотя внизу экрана имена пишет нормально (по ласт статусу видимо) , но даже если ласт статус гетнеймить , выходит ноль.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Как отличить НПЦ от игрока?

Post 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
DeffoDen
Posts: 4
Joined: 2012-01-13 16:55:06

Re: Как отличить НПЦ от игрока?

Post by DeffoDen »

спасибо.
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Re: Как отличить НПЦ от игрока?

Post by Askaneli »

Mirage wrote:1) Человека-игрока от человека-НПС (0x0190 и 0x0191) отличить никак нельзя. Физически.


Можно :) Делали :)
Сделал дело - флуди смело !!!
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Как отличить НПЦ от игрока?

Post by Mirage »

И как?
Цвет кожи генерируется у всех произвольно. Если админ намеренно не создаст всяких малиновых НПС и белых игроков.
Тип тела один и тот же.
Шмотки одеть можно на любого. (Вендоры которые одеваются в точности как хозяин)
Фразами реагировать можно научить.
По свитку у ног разве только, но это пинцет...

Так без примера что гон и понты сударь :twisted:
Askaneli
Sphere expert
Posts: 1143
Joined: 2004-10-01 08:27:38
Location: Уфа

Re: Как отличить НПЦ от игрока?

Post by Askaneli »

Пусть будет гон. :)
Я придумал в своё время как реализовать, Сфаг реализовал и крутил скрипт на скупку на ДРВ очень и очень удачно. Я получал на халяву реги покупные, свитки и прочее.
Если порытся, то в истории этого форума есть мой пост в котором я написал что удаляю описание схемы по просьбе Сфага :)
Дерзайте :)
Сделал дело - флуди смело !!!
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Как отличить НПЦ от игрока?

Post by Mirage »

все темы которые смог найти за чаем с участием тебя и вендоров были завернуты на ID вендоров. А автору нужен тип. То-есть, если я правильно понял, чтобы скрипт определял кто к нему подходит - игрок или управляемый компьютером персонаж. Вот такой вариант проработать скриптом не получится.

Если считать что вендор стоит всегда в одной точке (+ - полэкрана) и у него один ID то оно конечно можно.
admir
Posts: 528
Joined: 2005-01-13 07:20:54

Re: Как отличить НПЦ от игрока?

Post by admir »

Уже забыл инжекет, Но вроде бы была команда на просмотр профиля у игрока? профиля у нпс нету.
Может быть с гет статусом поигратся, может у нпс всегда одно и тоже макс хп..?
Когда говоришь buy, hi - нпс поворачивается к тебе лицом, можно сделать проверку на направление персонажей.
Бывает иногда сами нпс чего-то там бормочат...
Поробовать сунуть чару любой предмет. Если игрок то открывается диалоговое окно обмена, проверка на контейнер есть. Нпс либо берет либо падает в пак обратно.
все для альфы , [url=http://newvlad.nm.ru/prog]здесь[/url]
модернизация ремонт продажа игровых консолей
Sky: admirka1 Москва
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Как отличить НПЦ от игрока?

Post by Mirage »

Профиль у НПС человеков по умолчанию на сфере включен и аналогичен игроку. Соответственно работает только как частный случай.
gethp показывает одинаковое количество жизни НЕ У СЕБЯ. Всегда 100.
реагирования на слова не вариант - как определить повернулся игрок или НПС? Притом что часто фразы отключают или звучат по другому.
Бывает иногда сами нпс чего-то там бормочат... = Бывает иногда сами игроки чего-то там бормочат... :mrgreen:
Остается только последняя проверка на "сунуть". Но всем не насуешься - сувалка отвалится :) ПО умолчанию НПС БЕРЕТ предмет. Либо скажет что он мне не нужен.
Yura
Posts: 71
Joined: 2008-03-03 09:19:21
Location: SPB

Re: Как отличить НПЦ от игрока?

Post by Yura »

DeffoDen wrote:Всем привет , вот задумал написать скрипт на поиск игроков и "юзание" их , столкнулся с проблемами
а) типов больше чем 2 , 190 и 191 , так же игроки могут быть в полиморфе , тип меняется...
б) как вернуть значение имени обьекта?? GetName() возвращает либо 0 либо последнюю фразу игрока , хотя внизу экрана имена пишет нормально (по ласт статусу видимо) , но даже если ласт статус гетнеймить , выходит ноль.


Можно смотреть по id персонажа, на некоторых шардах id игроков $4xxxxxxx, id NPC $0000xxxx или id игроков в определенном диапазоне.
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Как отличить НПЦ от игрока?

Post by Mirage »

Абсолютно редкий частный случай



ID=0x008EE1CB
ID=0x001C797E
ID=0x00F3A8F8
ID=0x00599714
ID=0x00EEDDA1

ID=0x009CFDD4
ID=0x00CF4B55
ID=0x00DCA2F1
ID=0x00B83890
ID=0x0040E0FC

Угадай кто из них НПС а кто игроки? :mrgreen:
ZeroDX
Posts: 718
Joined: 2006-12-08 10:51:50
Location: Москва
Contact:

Re: Как отличить НПЦ от игрока?

Post by ZeroDX »

игроки внизу
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Как отличить НПЦ от игрока?

Post 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 - типа стор бокса у веника.
Но это прокатит только в тех случаях, если у вена есть товар.
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Re: Как отличить НПЦ от игрока?

Post 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=20

Juicy Fruit wrote:obj - Серийник НПСя.
0x2AF8 - типа стор бокса у веника.
Но это прокатит только в тех случаях, если у вена есть товар.


Судя по тексту от Асканели, то он нашел способ отличить нпс от игрока, прежде тем как сделать покупку.
Как понимаю секрет он так и не раскроит. :?
Juicy Fruit
Posts: 820
Joined: 2011-06-11 19:54:23

Re: Как отличить НПЦ от игрока?

Post by Juicy Fruit »

Nmy wrote:Судя по тексту от Асканели, то он нашел способ отличить нпс от игрока, прежде тем как сделать покупку.


Не, сам допирал.
В скупке: делаем сию проверку, если это не торговый НПС - забиваем его серийник в буффер, перед каждой попыткой скупить - проверяем, есть ли данный серийник в буффере. Если есть - игнорим.
Но может возникнуть лажа, если у торгового НПС совсем нет товаров - скрипт подумает что это не торгаш и будет постоянно его игнорить(
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Как отличить НПЦ от игрока?

Post by Mirage »

2 Nmy
Mirage wrote:все темы которые смог найти за чаем с участием тебя и вендоров были завернуты на ID вендоров. А автору нужен тип.

:roll: вот и весь секрет. Он использовал готовую базу ID или имен предварительно забирую. Сие есть фу :mrgreen:

PS кстати я ту тему только заметил, и там обсуждается практически все что тут понаписано. Все таки история циклична...
Nmy
Expert!
Posts: 2152
Joined: 2005-09-14 15:31:58
Location: Latvia

Re: Как отличить НПЦ от игрока?

Post by Nmy »

Хочу услышать официальную версию как Асканели это решил 8 лет назад :) ид это или не ид, ник нейм это или не ник нейм
admir
Posts: 528
Joined: 2005-01-13 07:20:54

Re: Как отличить НПЦ от игрока?

Post by admir »

цвет имени вендора? на каждом шарде свои.
К тому же наша задача изначально стоит по другому: разделить НПС ( а они не обязательн могут быть торгашами) от игроков.
все для альфы , [url=http://newvlad.nm.ru/prog]здесь[/url]
модернизация ремонт продажа игровых консолей
Sky: admirka1 Москва
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Как отличить НПЦ от игрока?

Post 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 набора файлов.
Post Reply