Идея Чанковая регенерация по таймеру (сложная)

Статус
Закрыто для дальнейших ответов.

skynetxxx

Старожил
Пользователь
Баллы
123
Имя в Minecraft
skynetxxx
Всем привет. Практически на всех виденных мною популярных серверах Minecraft с высоким онлайном карта выглядит ужасно.
На некоторых серверах эту проблему решают модераторы, которые летают и регенят разрушенный мир, но это малоэффективно.
Интересную вещь придумали разработчики Everquest Landmark - у них мир за пределами привата генерируется примерно каждые 20 минут после последнего события разрушения/установки блока.
Эту механику можно перенести и в Minecraft, разбив генерацию на чанки. Я встречал всего один плагин, похожий на эту идею, но был недостаточно проработан.
К примеру было-бы неплохо, чтобы можно было задавать области с разным временем регенерации чанков (WorldGuard не подойдёт по той причине, что без дополнительных костылей он не совсем нормально работает с вложенными территориями, поэтому лучше уж отдельный "велосипед").

То есть плагин выглядит следующим образом:
При старте из конфига считываются следующие значения:
1. время регенерации за пределами областей
2. время таймера проверки списка чанков
3. число регенируемых чанков за секунду
4. задержка в миллисекундах для 3 пункта
5. список областей вида: имя области, приоритет области (int), позиция чанка по x, позиция чанка y, радиус (квадратный), время до регенерации

При разрушении блока проверяется:
1. Есть ли на нём приват от Factions, если да то выход.
2. Проверяется на вхождение в одну из областей из конфигурации, после из которых выбирается с наибольшим приоритетом.
3. Время до регенерации вместе с координатами чанка заносятся в список на регенерацию (или обновляется, если он уже был в списке).

По таймеру (из конфига, для примера - 1 минута) выполняется:
1. Уменьшается время для всего списка чанков на регенерацию.
2. Запускается поток, который генерирует определённое количество чанков за секунду (настраивается в конфиге, во избежание проседания сервера), после чего продолжает спустя определённый промежуток времени (мс, тоже настраивается в конфиге).

Вот собственно говоря и вся идея плагина.
Реализация очень нужна, заплачу нормальную сумму (ОТ двух тысяч рублей).
Качество тоже очень важно, поэтому желателен опыт работы со сложными плагинами.
Спасибо за внимание.
 
Последнее редактирование:
Всем привет. Практически на всех виденных мною популярных серверах Minecraft с высоким онлайном карта выглядит ужасно.
На некоторых серверах эту проблему решают модераторы, которые летают и регенят разрушенный мир, но это малоэффективно.
Интересную вещь придумали разработчики Everquest Landmark - у них мир за пределами привата генерируется примерно каждые 20 минут после последнего события разрушения/установки блока.
Эту механику можно перенести и в Minecraft, разбив генерацию на чанки. Я встречал всего один плагин, похожий на эту идею, но был недостаточно проработан.
К примеру было-бы неплохо, чтобы можно было задавать области с разным временем регенерации чанков (WorldGuard не подойдёт по той причине, что без дополнительных костылей он не совсем нормально работает с вложенными территориями, поэтому лучше уж отдельный "велосипед").

То есть плагин выглядит следующим образом:
При старте загружается время регенерации время таймера проверки, число регенируемых чанков за секунду, задержка за секунду, время регенерации территории за пределами областей и список областей вида:
имя области, приоритет области (int), позиция чанка по x, позиция чанка y, радиус (квадратный), время до регенерации

При разрушении блока проверяется:
1. Есть ли на нём приват от Factions, если да то выход.
2. Проверяется на вхождение в одну из областей из конфигурации, после из которых выбирается с наибольшим приоритетом.
3. Время до регенерации вместе с координатами чанка заносятся в список на регенерацию (или обновляется, если он уже был в списке).

По таймеру (из конфига, для примера - 1 минута) выполняется:
1. Уменьшается время для всего списка чанков на регенерацию.
2. Запускается поток, который генерирует определённое количество чанков за секунду (настраивается в конфиге, во избежание проседания сервера), после чего продолжает спустя определённый промежуток времени (мс, тоже настраивается в конфиге).

Вот собственно говоря и вся идея плагина.
Реализация очень нужна, заплачу нормальную сумму (ОТ двух тысяч рублей).
Качество тоже очень важно, поэтому желателен опыт работы со сложными плагинами.
Особенно призываются в тему @fromgate и @ptnk.
Спасибо за внимание.

У меня есть некоторое похожее решение.
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх