Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
написать в пм NPC, проверка времени
#1
Парочка вопросов. Очень хочу разобраться:

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().

Заранее примного вам благодарен!
[Изображение: ck.gif]
Ответ
#2
со вторым вопросом разобрался. пожалуйста подскажите насчет первого. значит написал я что-то вроде:

в 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];
}

растолкуйте пожалуйста, что я делаю не так =\
[Изображение: ck.gif]
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Ядро. Проверка на скилы Andro 5 1,649 11-15-2015, 08:27 PM
Последний пост: Andro
  Доброго времени суток (Команда + реализация) Creat1v 0 1,020 01-11-2015, 11:22 AM
Последний пост: Creat1v
  Проверка Map 13 2,783 07-27-2014, 09:14 AM
Последний пост: Map
  Проверка на пустую таблицу doDie 3 1,465 07-26-2013, 07:15 PM
Последний пост: Mifesto
  Спаун НПЦ через Х времени после запуска сервера mego4el 11 2,857 06-22-2013, 11:41 PM
Последний пост: KilRoy
  Изменение времени каста артефакта Kanabis 12 2,247 01-06-2013, 02:54 PM
Последний пост: Zubastic
  Вычисление координаты движущегося объекта в момент времени. krisadr 15 3,252 11-26-2012, 01:18 AM
Последний пост: krisadr
  проверка на IP halaymoon 6 2,130 10-14-2012, 06:10 PM
Последний пост: DiagoD
  Проверка в скрипте телеворта deadmarcel10 8 1,950 07-04-2012, 01:04 AM
Последний пост: VISTALL
  Всем доброго времени, суток есть сборка но нету где её поставить. Eligant 12 2,907 12-22-2011, 04:37 PM
Последний пост: NotSpecified

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)