Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Ивент в точное время
#1
Здравствуйте.
Я сделал свой ивент который крутится каждые 2 часа, НО я хочу что бы он был например только по воскресеньям и только в 12.00, 17.00, 21.00(по МСК). Подскажите как бы я мог это сделать? Надо полная автоматизация.
Ответ
#2
Написать скедулер. Вот вам пример кода, который находит ближайшее воскресенье, 12:00
Код:
Calendar cal = Calendar.getInstance();
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
cal.set(Calendar.HOUR_OF_DAY,12);
cal.set(Calendar.MINUTE, 0);
long now  = System.currentTimeMillis();
for(;;) {
  if(cal.getTimeInMillis()>now && cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)
       break;
  cal.add(Calendar.DAY_OF_YEAR,1);
}
Соответственно пишите чтение конфигов. Алогритм определения я вам привел выше, разница между текущим временем и найденным это cal.getTimeInMillis()-now, и скедулите задачу (через ThreadPoolManager например) через наденное время
Ответ
#3
Ответ
#4
Именно этот. Calendar - сдандартный Java класс
ЧТо именно понять? Добавляем сутки к установленной дате. Читаем javadoc по классу Calendar
Ответ
#5
извиняюсь за свой "нюббизм" но где эго найти?
я искал в l2jserver.jar не нашел...

функции вставлять вместо "break"?
я довольно новенький просто =)

и еще тогда вопрос по скриптингу... можно ли проверить есть ли на чаре определённый баф?
Ответ
#6
в питоне цикл организовываем чуток по-другому
Код:
while True :
    if cal.getTimeInMillis()>now and cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY :
          break
    cal.add(Calendar.DAY_OF_YEAR,1)
Проверить наличие бафов
player.getFirstEffect(скилл)
И простите, что вы ищите в l2jserver.jar я не понял?
Ответ
#7
Ответ
#8
if player.getFirstSkillEffect(6316) : на то уж пошло, ибо он возвращает L2Effect если есть, и null если нет.
Документация - сгенерите javadoc по ядру, а так в основном примеры и разбор кода
Ответ
#9
и еще...
раньше мой ивент стартовал по функции
def init_LoadGlobalData(self)
сразу после рестарта...

что теперь надо сделать (def ...) что бы запустить сам ивент?
куда вписывать и что?

вот что у меня было....
Код:
def init_LoadGlobalData(self) :
     self.startQuestTimer("open_reg", Time_to_start_after_restart *1000, None, None)
  return
Ответ
#10
Для начала не плохо изучить Python. Очень помогает.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  время баффов, клиент с3 tpls 4 2,667 05-12-2024, 03:34 AM
Последний пост: Magican
  Время сервера "/time" не совпадает с картой ntking 4 2,177 05-04-2017, 02:52 PM
Последний пост: ntking
  Баф и тп во время боя. Mois 0 1,060 11-20-2015, 02:05 AM
Последний пост: Mois
  время для java Valent 7 2,226 08-15-2015, 10:13 PM
Последний пост: Bacek
  overword ивент TvT определение target Daniel 4 1,671 08-03-2015, 09:01 AM
Последний пост: Gaikotsu
  Скилы Meteor Shower и Star Fall время каста на ХФ? Munhgauzen 10 2,968 11-08-2013, 07:22 PM
Последний пост: Ashtone Grey
  Ивент Transport L2P to OWERVORLD Kosgond 4 2,581 09-09-2013, 12:44 PM
Последний пост: Krickt105
  Время осад замков bybs 4 1,378 01-03-2013, 02:01 AM
Последний пост: orionpvp
  Время Территориальных Воин duhnochi 7 1,713 09-15-2012, 12:56 PM
Последний пост: TheSanya
  Новогодний ивент REANIMATOR1 6 2,263 12-29-2011, 09:36 AM
Последний пост: REANIMATOR1

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


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