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

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.

Ответ
Опции темы
Непрочитано 07.08.2011, 23:50   #1
Пользователь

Автор темы (Топик Стартер) Ивент в точное время

Здравствуйте.
Я сделал свой ивент который крутится каждые 2 часа, НО я хочу что бы он был например только по воскресеньям и только в 12.00, 17.00, 21.00(по МСК). Подскажите как бы я мог это сделать? Надо полная автоматизация.
NiddUA вне форума Ответить с цитированием
Непрочитано 08.08.2011, 08:43   #2
Аватар для Azagthtot
Эксперт

По умолчанию Re: Ивент в точное время

Написать скедулер. Вот вам пример кода, который находит ближайшее воскресенье, 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 например) через наденное время
Azagthtot вне форума Отправить сообщение для Azagthtot с помощью ICQ Отправить сообщение для Azagthtot с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 08.08.2011, 13:00   #3
Пользователь

Автор темы (Топик Стартер) Re: Ивент в точное время

возможно я не прав, но для того что бы использовать Calendar в начале надо дописать импорт? (Calendar cal = Calendar.getInstance(); )

что то типо такого?
from net.sf.l2j.gameserver.model.quest import Quest

вот только где находится этот календарь? я что то не нахожу =/



не понятным убразом, чисто случайно я нашел =)
from java.util import Calendar
думаю это то...



и как понять cal.add(Calendar.DAY_OF_YEAR,1); ?
тоже самое использовать для.. например понедельника?
NiddUA вне форума Ответить с цитированием
Непрочитано 08.08.2011, 13:16   #4
Аватар для Azagthtot
Эксперт

По умолчанию Re: Ивент в точное время

Именно этот. Calendar - сдандартный Java класс
ЧТо именно понять? Добавляем сутки к установленной дате. Читаем javadoc по классу Calendar
Azagthtot вне форума Отправить сообщение для Azagthtot с помощью ICQ Отправить сообщение для Azagthtot с помощью Skype™ Ответить с цитированием
Непрочитано 08.08.2011, 13:18   #5
Пользователь

Автор темы (Топик Стартер) Re: Ивент в точное время

извиняюсь за свой "нюббизм" но где эго найти?
я искал в l2jserver.jar не нашел...

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

и еще тогда вопрос по скриптингу... можно ли проверить есть ли на чаре определённый баф?
NiddUA вне форума Ответить с цитированием
Непрочитано 08.08.2011, 13:22   #6
Аватар для Azagthtot
Эксперт

По умолчанию Re: Ивент в точное время

в питоне цикл организовываем чуток по-другому
Код:
 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 я не понял?
Azagthtot вне форума Отправить сообщение для Azagthtot с помощью ICQ Отправить сообщение для Azagthtot с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 08.08.2011, 13:28   #7
Пользователь

Автор темы (Топик Стартер) Re: Ивент в точное время

Цитата:
Сообщение от Azagthtot Посмотреть сообщение
в питоне цикл организовываем чуток по-другому
Код:
 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(скилл)

то есть что то вроде if player.getFirstSkillEffect(6316) == true
вот так? или там по другому?
и еще... где можно найти туториал со всеми этими функциями?

Цитата:
И простите, что вы ищите в l2jserver.jar я не понял?

я просто не сразу понял что вы написали, теперь всё понятно
NiddUA вне форума Ответить с цитированием
Непрочитано 08.08.2011, 13:29   #8
Аватар для Azagthtot
Эксперт

По умолчанию Re: Ивент в точное время

if player.getFirstSkillEffect(6316) : на то уж пошло, ибо он возвращает L2Effect если есть, и null если нет.
Документация - сгенерите javadoc по ядру, а так в основном примеры и разбор кода
Azagthtot вне форума Отправить сообщение для Azagthtot с помощью ICQ Отправить сообщение для Azagthtot с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 08.08.2011, 13:36   #9
Пользователь

Автор темы (Топик Стартер) Re: Ивент в точное время

и еще...
раньше мой ивент стартовал по функции
def init_LoadGlobalData(self)
сразу после рестарта...

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

вот что у меня было....
Код:
 def init_LoadGlobalData(self) :
     self.startQuestTimer("open_reg", Time_to_start_after_restart *1000, None, None)
  return
NiddUA вне форума Ответить с цитированием
Непрочитано 08.08.2011, 13:40   #10
Аватар для Azagthtot
Эксперт

По умолчанию Re: Ивент в точное время

Для начала не плохо изучить Python. Очень помогает.
Azagthtot вне форума Отправить сообщение для Azagthtot с помощью ICQ Отправить сообщение для Azagthtot с помощью Skype™ Ответить с цитированием
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
У кого есьть Ивент kros Lineage II 1 30.05.2011 19:40
Ивент OkoPwnz Работа со скриптами 7 13.05.2011 20:56
ивент пекло OkoPwnz Lineage II 0 06.08.2010 15:12
Точное описание квест рейтов Ultimate Lineage II 2 14.04.2010 16:57
Ивент на Хелбоунд Richi Lineage II 0 05.08.2008 00:45


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

Вверх