ОИД непися - при убегании\подбегании\релоге к клиенту приходит и зная ИД нпс можно узнать искомое. Можно считывать ОИД с первого клика клиента и далее (на время работы) оставлять его неизменным (наподобие встать у нпс, запустить скрипт, кликнуть по нпс - скрипт возьмет ОИД из пакета action от клиента)
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 04.08.2010 в 20:51.
ampeg, начнем с простого, пакет UseItem. Как вы уже поняли надо узнать ObjectID и подставить его в пакет. Чтобы узнать ObjectID нужного итема придется проверить пакет в котором хранится содержимое сумки (я не помню его ид и названия и сейчас нету возможности глянуть), этот пакет приходит после отправки клиентом пакета 0F=RequestItemList. Пример разборки этого пакета можете посмотреть в скрипте на заточку NLObP. Если там будет что непонятно - объясню.
С определением ObjectID нпц не намного сложнее. Просто проверяйте все пакеты 16=NpcInfo, число что будет в ReadD(6) являет собой id нпц и если оно будет таким как вам нужно читайте число ReadD(2) и узнаете нужный ObjectID.
__________________
В любом из нас спит гений. И с каждым днем все крепче.
Так у него в пакете на закупку - используется ИД заточек, а не их ОИД ( на примере "1f 44 78 2D D6 01 00 00 00 B1 19 00 00 01 00 00 00" - только ИД листа меняется, так что сумку перебирать необязательно наверно (а если и требуется получить ОИД итема - можно привязать к удалению\выбрасыванию итема), дело только в нпс...
Цитата:
Сообщение от J-Fobos
Breadfan, мы уже проблему с BuyList решили
да я то заметил когда решил повнимательнее полистать
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 04.08.2010 в 21:00.
а как правильно реализовать, чтобы при старте скрипта он запоминал нужные пакеты, после этого действия в игре, т.е. я кликнул по итему, кликнул по нпц, скрипт запоминл?
Ну я описал полностью автоматическое распознавание ObjectID, без кликов, без ничего, запустился скрипт и ObjectID становятся известны. Но можно так как и вы написали, чтобы сразу после запуска скрипта человек указывал нпц и предмет. Это проще реализовать:
Код:
если (пакет пришел от клиента) и (пакет юз итем) и (ObjectID предмета = 0) тогда запомнить ObjectID предмета;
если (пакет пришел от клиента) и (пакет акшин) и (ObjectID нпц = 0) тогда запомнить ObjectID нпц;
Ну при запуске скрипта надо задать что ObjectID было равно нулю и все
__________________
В любом из нас спит гений. И с каждым днем все крепче.
var
OIDnpc:integer;
........
procedure Init; //Вызывается при включении скриптаbegin
......
OIDnpc:=0;
.....
end;
if fromclient and(pck[1]=#$04)and(OIDnpc=0)then OIDnpc:=(ReadD(2));
- по аналогии и ОИД итема, только использовать пакет на юз итема
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 04.08.2010 в 22:51.