Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Помогите Поиск и обновление большого кол-ва блоков

ekbasiaa

Активный участник
Пользователь
Баллы
66
Необходимо обновлять уровень роста всех имеющихся культур на сервере в определённое время (1 раз в игровые сутки). Если ли возможность реализовать подобное без лагов?
 
Необходимо обновлять уровень роста всех имеющихся культур на сервере в определённое время (1 раз в игровые сутки). Если ли возможность реализовать подобное без лагов?
Недавно на этом форуме была статья про шедулеры, прочитай
 
Недавно на этом форуме была статья про шедулеры, прочитай
К примеру каждые сутки искать все культуры определённые и менять в них что то? А если этих культур около пару сотен потому что посеяли игроки? Нагрузки не будет? Я так предполагаю по очереди перебирать имеющиеся культуры и с ними работать.
Хотя можно когда игрок ставить такую культуру записывать её в HashMap и число сколько уже оно выросло за эти сутки, так можно делать, когда должно вырасти несколько раз. А потом по очереди перебирать по этим ключам(Location) и обновлять.
 
Хотя можно когда игрок ставить такую культуру записывать её в HashMap и число сколько уже оно выросло за эти сутки, так можно делать, когда должно вырасти несколько раз. А потом по очереди перебирать по этим ключам(Location) и обновлять
Ага, именно
 
https://rubukkit.org/threads/chto-takoe-scheduler.131796/ - BukkitSheduler - Таймер который будет срабатывать каждые игровые сутки(там надо в тики время суток перевести игры).
HashMap/HashSet место где можно хранить локации культур данных.
 
Я так понимаю.. лаги будут только от изменения блоков и если раскидаю по кускам, то +- норм? А сам таймер и перебор работают не в основном потоке?
 
Я так понимаю.. лаги будут только от изменения блоков и если раскидаю по кускам, то +- норм? А сам таймер и перебор работают не в основном потоке?
Как по мне правильней будет для каждого чанка создавать свой шедулер, если чанк прогружен - обновляешь.

Если чанк только что прогрузили - расчитываешь сколько дней прошло и обновляешь на сколько надо.

(естественно если в чанке есть твои культуры, а то 13821312 шедулеров не прикольн)
 
Как по мне правильней будет для каждого чанка создавать свой шедулер, если чанк прогружен - обновляешь.

Если чанк только что прогрузили - расчитываешь сколько дней прошло и обновляешь на сколько надо.

(естественно если в чанке есть твои культуры, а то 13821312 шедулеров не прикольн)
А в чём смысл подобного?
 
Я так понимаю.. лаги будут только от изменения блоков и если раскидаю по кускам, то +- норм? А сам таймер и перебор работают не в основном потоке?
По сути я сказал как делать исходя из твоего сообщения. "Раскидывание по кускам". Или ты уже не понимаешь в чем смысл твоих же слов?
 
По сути я сказал как делать исходя из твоего сообщения. "Раскидывание по кускам". Или ты уже не понимаешь в чем смысл твоих же слов?
Я имел ввиду просто сделать обновление блоков с интервалами) А создание сотен sheduler... хезе)
 
Если без лагов, то в прогруженных чанках делать. Ещё можно выделить территорию (кубоид) и получать его чанки. Ну либо фулл мир, но это издевательство.
 

Поделиться этой страницей

Назад
Верх