Радиус захвата цели - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Ответ
Опции темы
Непрочитано 17.11.2015, 15:52   #1
Аватар для Map
Пользователь

Автор темы (Топик Стартер) Радиус захвата цели

Здравствуйте, хотел спросить - есть скрипт:
Код:
Broadcast.announceToOnlinePlayers(player.getClan() != null ? Config.RAID_BOSS_DEFEATED_BY_CLAN_MEMBER_MSG.replace("%raidboss%", getName()).replace("%player%", killer.getName()).replace("%clan%", player.getClan().getName()) : Config.RAID_BOSS_DEFEATED_BY_PLAYER_MSG.replace("%raidboss%", getName()).replace("%player%", killer.getName()));
Показывает сообщение в синьку, убившего РБ. Интересует вопрос, как его переписать, чтобы оно захватывало всех игроков которые его били? в определенном радиусе?
Map на форуме Ответить с цитированием
Непрочитано 17.11.2015, 16:52   #2
Аватар для Donatte
Герой

По умолчанию Re: Радиус захвата цели

Взять всех игроков из его knownList.

Код:
getKnownList().getKnownObjects(L2PcInstance.class)
__________________
Родился, живу и когда-нибудь умру.
Donatte вне форума Ответить с цитированием
Непрочитано 17.11.2015, 16:55   #3
Аватар для Map
Пользователь

Автор темы (Топик Стартер) Re: Радиус захвата цели

Цитата:
Сообщение от Donatte Посмотреть сообщение
Взять всех игроков из его knownList.

Код:
getKnownList().getKnownObjects(L2PcInstance.class)
Это я понимаю, и понимаю как взять определенный радиус, но как его записать правильно с тем скриптом?
Map на форуме Ответить с цитированием
Непрочитано 17.11.2015, 19:40   #4
Аватар для n3k0nation
Antihero

По умолчанию Re: Радиус захвата цели

Код:
	public void announcePlain(List<L2PcInstance> list, String text) {
		CreatureSay say = new CreatureSay(0, SystemChatChannelId.Chat_Announce, "", text);
		for (int i = 0; i < list.size(); i++) {
			final L2PcInstance player = list.get(i);
			if(player.isOfflineTrade() || player.isNoCarrier()) {
				continue;
			}
			player.sendPacket(say);
		}
	}
"Скриптом"? Мда.
__________________
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
n3k0nation вне форума Ответить с цитированием
Непрочитано 18.11.2015, 19:21   #5
Аватар для Map
Пользователь

Автор темы (Топик Стартер) Re: Радиус захвата цели

Цитата:
Сообщение от Pointer*Rage Посмотреть сообщение
Код:
	public void announcePlain(List<L2PcInstance> list, String text) {
		CreatureSay say = new CreatureSay(0, SystemChatChannelId.Chat_Announce, "", text);
		for (int i = 0; i < list.size(); i++) {
			final L2PcInstance player = list.get(i);
			if(player.isOfflineTrade() || player.isNoCarrier()) {
				continue;
			}
			player.sendPacket(say);
		}
	}
"Скриптом"? Мда.
И что с этим делать, не подскажите?))), попытался вставить это все в aCis, подправил, но методов isOfflineTrade и isNoCarrier нету...
Map на форуме Ответить с цитированием
Непрочитано 18.11.2015, 19:56   #6
Аватар для 4ipolino
Пользователь

По умолчанию Re: Радиус захвата цели

Цитата:
Сообщение от Map Посмотреть сообщение
И что с этим делать, не подскажите?))), попытался вставить это все в aCis, подправил, но методов isOfflineTrade и isNoCarrier нету...
зачем вам такая аватарка

п.с проверку можно спокойно удалить если нет аналогов в вашей сборке
Код:
if(player.isOfflineTrade() || player.isNoCarrier()) {
				continue;
			}
4ipolino вне форума Отправить сообщение для 4ipolino с помощью ICQ Ответить с цитированием
Непрочитано 19.11.2015, 16:08   #7
Аватар для Map
Пользователь

Автор темы (Топик Стартер) Re: Радиус захвата цели

Цитата:
Сообщение от 4ipolino Посмотреть сообщение
зачем вам такая аватарка

п.с проверку можно спокойно удалить если нет аналогов в вашей сборке
Код:
if(player.isOfflineTrade() || player.isNoCarrier()) {
				continue;
			}
Я понял, что это можно удалить, но как мне его использовать для моих целей, а именно чтобы захватывало всех игроков убившего РБ?
Map на форуме Ответить с цитированием
Непрочитано 20.11.2015, 11:28   #8
Аватар для KID
Пользователь

По умолчанию Re: Радиус захвата цели

Map, убивший рб может быть только один, остальные разве что могли только помочь ему его коварном деле уроном. но в данном случае вам лучше начать с hello world и дальше по нарастающей. на данный момент у вас нет знаний для решения этого вопроса самостоятельно, даже с примером как это должно выглядеть.
KID вне форума Отправить сообщение для KID с помощью Skype™ Ответить с цитированием
Непрочитано 20.11.2015, 12:06   #9
Аватар для Donatte
Герой

По умолчанию Re: Радиус захвата цели

KnownList любого из списка атакующих содержит все инстансы которым необходимо отправить сообщение. Поэтому берём knownList киллера и спамим о том, что РБ успешно заовнен. Что может быть легче? Зачем придумывать сложные структуры для элементарных механизмов?

Код:
Broadcast.toKnownPlayers(killer, new CreatureSay(0, SystemChatChannelId.Chat_Announce, "", "Congratulations!!! Raid Boss was owned!"));
Если в Broadcast нет такого метода, то добавляем
Код:
	public static void toKnownPlayers(L2Character character, L2GameServerPacket mov)
	{
		for (L2PcInstance player : character.getKnownList().getKnownType(L2PcInstance.class))
			player.sendPacket(mov);
	}
Да и вообще, зачем проверять на статус инстанса? Пакет шлётся клиенту. И если у инстанса клиента нет - getClient() == null (NO CARRIER или OFFLINE TRADE), то отсылка пакета игнорится (в нормальных L2J форках). Хотя, опять же, я не имею понятия как реализовано это в вашем коде сервера. Может быть, всё гораздо тоскливо и проверки необходимы во избежание NPE при отправке пакетов.
__________________
Родился, живу и когда-нибудь умру.
Donatte вне форума Ответить с цитированием
Непрочитано 20.11.2015, 13:52   #10
Аватар для Map
Пользователь

Автор темы (Топик Стартер) Re: Радиус захвата цели

Цитата:
Сообщение от Donatte Посмотреть сообщение
KnownList любого из списка атакующих содержит все инстансы которым необходимо отправить сообщение. Поэтому берём knownList киллера и спамим о том, что РБ успешно заовнен. Что может быть легче? Зачем придумывать сложные структуры для элементарных механизмов?

Код:
Broadcast.toKnownPlayers(killer, new CreatureSay(0, SystemChatChannelId.Chat_Announce, "", "Congratulations!!! Raid Boss was owned!"));
Если в Broadcast нет такого метода, то добавляем
Код:
	public static void toKnownPlayers(L2Character character, L2GameServerPacket mov)
	{
		for (L2PcInstance player : character.getKnownList().getKnownType(L2PcInstance.class))
			player.sendPacket(mov);
	}
Да и вообще, зачем проверять на статус инстанса? Пакет шлётся клиенту. И если у инстанса клиента нет - getClient() == null (NO CARRIER или OFFLINE TRADE), то отсылка пакета игнорится (в нормальных L2J форках). Хотя, опять же, я не имею понятия как реализовано это в вашем коде сервера. Может быть, всё гораздо тоскливо и проверки необходимы во избежание NPE при отправке пакетов.
сделал так, Broadcast.toKnownPlayers(killer, new CreatureSay(0, Say2.ANNOUNCEMENT, "", "Congratulations!!! Raid Boss was owned!")); - результата нету, ничего не выводиться, так же пробовал сделать toKnownPlayersRadius, но так же результата нету, убиваю РБ, нету сообщения кто убил
Map на форуме Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
itamename-e.dat UFODriverr Lineage II 5 28.02.2021 18:17
PetInfo или... ? WoWan-SM Lineage II 4 19.04.2014 13:26
Уменьшить радиус /target ShadowName Игровой клиент 5 10.02.2014 17:29
Радиус Antig Работа со скриптами 20 01.10.2013 11:59
Гварды на осаде после захвата [STIGMATED] Lineage II 3 07.10.2009 08:30


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 15:59. Часовой пояс GMT +3.

Вверх