La2Bash 87 Опубликовано 12 апреля, 2013 Всем добра! Вопрос - как реализовать в ядре автоанонсы из xml как это на ion было? Я полагаю что рыть в сторону переноса сурсов этой функции из иона во фрозены - так? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Anderson 36 Опубликовано 12 апреля, 2013 (изменено) Ну вообще, не знаю как было на ion, но сделать такое довольно просто. Добавляем в папку instancemanager новый файл, например AutoAnnounce и в него пишем такое: public class AutoAnnounce { public AutoAnnounce () { ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoAnnounceScheduler(), 0, 300000); //300000 - время инициализации } private class AutoAnnounceScheduler implements Runnable { @Override public void run() { Broadcast.toAllOnlinePlayers(new CreatureSay(0, Say2.CRITICAL_ANNOUNCE, "", "Текст анонса")); ThreadPoolManager.getInstance().scheduleGeneral(this, 1800000); //1800000 - время через которое будет анонсить } } } Ну и добавляем его в загрузку сервера. На этом примере можно сделать любой анонсер. Добавить хтм парсер, и считывать анонсы и их промежутки, но тут подумать уже нужно. Изменено 12 апреля, 2013 пользователем Anderson Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Jumper 551 Опубликовано 12 апреля, 2013 на питоне))) import sys from import Announcements from import ThreadPoolManager from java.lang import Runnable INTERVAL = 45 ANNOUNCEMENT_1="текст текст текст" ANNOUNCEMENT_2="текст текст текст" ANNOUNCEMENT_3="текст текст текст" print "Loaded: Auto Announce - OK" class myTask( Runnable ): def __init__( self ): self.name = "autoAnnounce" def run( self ): Announcements.getInstance().announceToAll(ANNOUNCEMENT_1) Announcements.getInstance().announceToAll(ANNOUNCEMENT_2) Announcements.getInstance().announceToAll(ANNOUNCEMENT_3) startInstance = myTask() ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(startInstance,INTERVAL*60000,INTERVAL*60000) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
deluxe13 16 Опубликовано 14 апреля, 2013 А не проще ли просто добавить в БД в таблицу auto_announcements текст и интервал и будут автоанонсы. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Anderson 36 Опубликовано 14 апреля, 2013 А не проще ли просто добавить в БД в таблицу auto_announcements текст и интервал и будут автоанонсы. А каким это чудом? Магия в ядре код напишет считки с таблицы и сенда сообщений? Я бы делал .хмл файл и в него все анонсы с инициализацией и интервалом, или даже временем когда. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
deluxe13 16 Опубликовано 14 апреля, 2013 (изменено) Во фрозенах есть поодержка автоанонсов уже, таблица тоже есть. Я у себя добавлял и работало прекрасно. Там интервалы есть. Зачем изобретать колесо? Изменено 14 апреля, 2013 пользователем deluxe13 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
La2Bash 87 Опубликовано 17 апреля, 2013 у меня l2jlink Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
deluxe13 16 Опубликовано 17 апреля, 2013 Название темы: Автоанонсы Для L2Jfrozen и текст первого поста: Я полагаю что рыть в сторону переноса сурсов этой функции из иона во фрозены - так? Ваш вопрос тогда не корректен! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
La2Bash 87 Опубликовано 17 апреля, 2013 l2jlink базируется на фрозенах. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты