Сообщений: 300
Тем: 92
Зарегистрирован: Oct 2010
Репутация:
-132
11-10-2011, 04:20 PM
(Сообщение последний раз редактировалось: 11-11-2011, 12:19 PM mego4el.)
1) Не могу понять, как можно убрать вызов html окна, при диалоге с L2WalkerRoute NPC (бегающий и кричащий нпц). Хочу сделать что бы он просто бегал и кричал, а если на него нажимаешь - то не выскакивало никаких html диалогов, подскажите плз.
2) Что нужно сделать, что бы нельзя было атаковать именно этих нпц-волкеров в городе?, искал в L2NpcInstance, не нашел((
спасибо.
Добавлено через 19 часов 59 минут
люди помогите плз
Сообщений: 300
Тем: 92
Зарегистрирован: Oct 2010
Репутация:
-132
Сообщений: 300
Тем: 92
Зарегистрирован: Oct 2010
Репутация:
-132
Сообщений: 5,670
Тем: 145
Зарегистрирован: Nov 2008
Репутация:
33,771
Посмотрите инстанс вашего нпц, найдите метод onBypassFeedback. Вот на счёт того, что бы не выскакивало при нажатии, тут сомневаюсь, но попробуйте вернуть null в теле метода.
На счёт атаки, можно поставить проверку isAttakable в NpcInfo, но сдесь так же сомневаюсь, будет лишний кастыль.
Web программист\разработчик
— Есть только один способ проделать большую работу — полюбить ее. Если вы к этому не пришли, подождите. Не беритесь за дело.
Сообщений: 3,968
Тем: 90
Зарегистрирован: Nov 2010
Репутация:
15,337
11-14-2011, 02:36 PM
(Сообщение последний раз редактировалось: 11-14-2011, 02:37 PM Ro_0TT.)
На примере фени, как известно все непись, что есть в игре основывается на инстансе L2NpcInstance, при нажатие на непись срабатывает метод:
[src=java]
public void onAction(L2Player player, boolean shift)
{
//код метода
}[/src]
В принципе это асбтрактный метод любых объектов, если мне не изменяет память.
Метод довольно маленький. Как раз он отвечает за открытие диалогового окна и будет ли этот НПЦ отвечать атакой.
В вашем случае прописать этот метод в своем инстансе, пустой метод и тогда этого НПЦ нельзя будет даже затагерить
Добавлено через 47 секунд
[STIGMATED];148076 Написал:Посмотрите инстанс вашего нпц, найдите метод onBypassFeedback. Вот на счёт того, что бы не выскакивало при нажатии, тут сомневаюсь, но попробуйте вернуть null в теле метода.
На счёт атаки, можно поставить проверку isAttakable в NpcInfo, но сдесь так же сомневаюсь, будет лишний кастыль. onBypassFeedback, срабатывает при нажатие на кнопку или ссылку в НПЦ .
Сообщений: 300
Тем: 92
Зарегистрирован: Oct 2010
Репутация:
-132
11-16-2011, 12:51 PM
(Сообщение последний раз редактировалось: 11-16-2011, 12:53 PM mego4el.)
Цитата:В вашем случае прописать этот метод в своем инстансе, пустой метод и тогда этого НПЦ нельзя будет даже затагерить
спасибо большое, так и работает
правда жестковато в игре смотрится), а главное не обьяснимо)
может существуют более оптимальные способы, без особой писанины кода? мне казалось это такая мелочь не дать открыть html'ку и запретить атаку в городе на данный тип нпц..
Добавлено через 1 минуту
сделал так
Код: public void onAction(L2Player player, boolean shift)
{
return;
}
когда нажимаешь - нпц не выделяется, но когда жмешь куда-нибудь идти, то чар стоит на месте, пока не нажмешь на себя (как бы перетаргет) чар не побежит никуда), вот в чем косяк(
Сообщений: 1,326
Тем: 10
Зарегистрирован: Apr 2010
Репутация:
2,078
в методе onAction проверяйте
- нпц на таргере у игрока?
- если нет, то шлите пакет MyTargetSelect
- если да, то шлите пакет ActionFail
Сообщений: 300
Тем: 92
Зарегистрирован: Oct 2010
Репутация:
-132
Цитата:- нпц на таргере у игрока?
я понимаю, как написать что бы нельзя было бить всех нпц в городе.
мне просто нужно что бы это конкретно коснулось моего инстанса L2NpcWalkerInstance.. как быть?(
Сообщений: 1,326
Тем: 10
Зарегистрирован: Apr 2010
Репутация:
2,078
Переписать существующий, или kext
Сообщений: 300
Тем: 92
Зарегистрирован: Oct 2010
Репутация:
-132
11-21-2011, 10:26 PM
(Сообщение последний раз редактировалось: 11-22-2011, 12:52 PM mego4el.)
простите не понял о чем вы..(
Добавлено через 14 часов 26 минут
получилось чтото вроде:
Код: public void onAction(L2PcInstance player)
{
if(getObjectId() != player.getTargetId())
{
player.setTarget(this);
MyTargetSelected my = new MyTargetSelected(getObjectId(), 0);
player.sendPacket(my);
player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, null);
}
else
{
player.sendPacket(ActionFailed.STATIC_PACKET);
player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, null);
}
}
но в данном случае, если два раза кликнуть на нпц, за ним даже бежать нельзя. но зато не выскакивает html окно, что и надо было!
как быть с запретом атаки данного нпц, в городе? именно через CTRL!??
|