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

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

Описание темы:вопросы по java

Ответ
Опции темы
Непрочитано 18.07.2012, 16:18   #1
Пользователь

Автор темы (Топик Стартер) написать в пм NPC, проверка времени

Парочка вопросов. Очень хочу разобраться:

1. Немного покопав ядро L2jFrozen, нашел такую фишку, как пм игроку при старте. после - увидел эти строчки в конфиге. И меня заинтересовало - реально ли сделать наоборот. Вот допустим не существующий, или существующий нпц, имеет свой ник(имя) - и что бы игрок просто мог написать ему в ПМ, что угодно. пусть для начала - без ответа. просто написать в пм. Если возможно, то как это примерно реализовать? Собираю один интересный эвент, обязательно поделюсь на форуме. очень надо помогите!

2. У меня в ГСе вшито примерно такое:

Код:
ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(HappyEvent.getInstance(), 90000, getRandomTime());
где getRandomTime - случайное время, из заранее подготовленных значений (допустим 1с, 2с, 3с и тд, список примерно до 10с).

это что-то вроде викторины, где каждое случайное время - нпц пишет в чат вопросы. я думаю, очевидно почему случайное - что бы никто не мог ожидать когда будут вопросы.

в общем то с этим все нормально работает. но меня интересует вот что:

днем и ночью, этот эвент бомбит вопросами в по одинаковым, случайным значениям времени. но ночью - игроков практически нет (ну до 10-15 в лучшем случае), а кол-во вопросов из стандартного рандомтайма - достаточно большое, и задержка между вопросами - маленькая.

нужно написать функцию чека времени сервера, например каждые 3 часа. и что бы если на сервере было больше 00:00 (12 ночи), и до 7 утра - сообщения в чат выводились, так скажем по второй функции getRandomTime2(), в которой будут другие значения времени (более большая задержка вопросов).
ну а с 7 утра и до 12 ночи - все выводилось с первой ф-й задержки getRandomTime().

Заранее примного вам благодарен!
__________________
mego4el вне форума Ответить с цитированием
Непрочитано 26.07.2012, 09:19   #2
Пользователь

Автор темы (Топик Стартер) Re: написать в пм NPC, проверка времени

со вторым вопросом разобрался. пожалуйста подскажите насчет первого. значит написал я что-то вроде:

в SAY2.java
Код:
//проверяем на совпадение имен, если совпало - отправляем ПМ не существующему игроку с введенным именем

if (_target == MyClass55.getFakeName())
{
activeChar.sendPacket(new CreatureSay(activeChar.getObjectId(), _type, "->" + _target, _text));
}

//если введенное имя игрока, не совпало с подготовленным списком, выполняем стандарт действия:

else
{
SystemMessage sm = new SystemMessage(SystemMessageId.S1_IS_NOT_ONLINE);
sm.addString(_target);
activeChar.sendPacket(sm);
sm = null;
}
break;
т.е. мы добавляем еще одну проверку, ДО окончательного элса, в котором отсылается сист. меседж, что игрок оффлайн.

После "попытки" написать в пм, из списка по getFakeName(), получаю эррор в ГСе:
Код:
java.lang.ArrayIndexOutOfBoundsException: 514
...
наверное я что-то не правильно написал в самом получении значения из массива ников:

Код:
private static final String[] pnames =
{
		"xxSMEGOLxx",
		"BadHabito",
		"MAFIOSI",
		"Kelt",
		"HuGpUToSHa",
		"Bloodkiller",
		"HuKaDuM",
		"MrCrazyTH"
};

...

// и получение имен, для сравнения с _target:

public static String getFakeName()
{
	return pnames[pnames.length];
}
растолкуйте пожалуйста, что я делаю не так =\
__________________
mego4el вне форума Ответить с цитированием
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Синхронизация времени ToniPW Perfect World 0 23.05.2012 15:20
помогите написать аи Darvin Lineage II 7 12.12.2011 22:21
Нужно кое-что написать. CS 1.6 haw Рынок / Marketplace 4 27.10.2011 23:29
Изменение времени осад! Ramzessuss Lineage II 3 08.01.2010 12:53
сколько времени вы уже знакомы с Л2? zor4 Курилка / Yak floor 165 20.12.2008 01:32


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

Вверх