Идея Защита от FullBright. Need plugin

Забираю свои слова про "тяжелый" обратно. Можно просто брать корды игрока, получить блоки в радиусе 16 блоков, если сверху есть блоки и в этом радиусе нет источников света - то детишки "родятся".
 
у блока есть метод getLightLevel или что-то такое. Возвращает текущую освещенность блока от 1 до 16
По крайней мере в CraftBlock есть
 
Dereku
а вот этот вариант будет затратный по ресурсам, 16 радиус - диаметр 32 блока, еще нужно проверить вверх и вниз блоки, того набегает приличное кол-во блоков для проверки >200 и это при любом событии разрушения блока

нужно первые проверки делать которые не требуют больших затрат ресурсов сервера, к примеру ввести нижнюю границу проверки, к примеру если Y<40, тогда проверять дальше, эта проверка сразу отбросит тех кто копает на поверхности, потом проверка типа блока, вроде как типы блоков заданы константами и проверка не займет много времени, а потом уже уровень освещенности

вобщем как-то так
 
Dereku
а вот этот вариант будет затратный по ресурсам, 16 радиус - диаметр 32 блока, еще нужно проверить вверх и вниз блоки, того набегает приличное кол-во блоков для проверки >200 и это при любом событии разрушения блока

нужно первые проверки делать которые не требуют больших затрат ресурсов сервера, к примеру ввести нижнюю границу проверки, к примеру если Y<40, тогда проверять дальше, эта проверка сразу отбросит тех кто копает на поверхности, потом проверка типа блока, вроде как типы блоков заданы константами и проверка не займет много времени, а потом уже уровень освещенности

вобщем как-то так

'16' примерное число. Я точно не помню, на сколько далеко ложится свет от факела. Далеко не 32 блока, но и не 6 точно.
 
'16' примерное число. Я точно не помню, на сколько далеко ложится свет от факела. Далеко не 32 блока, но и не 6 точно.
Каждый блок имеет свой уровень света от 0 до 15 включительно. 0 -- абсолютная темнота, 15 -- освещение от солнца, светокамня, ламп, лавы, огня, маяка. У факела уже 14. От луны падает свет в 4 единицы. От источника на каждый контактирующий блок ложится свет на 1 меньше, чем источник. Что возвращает функция из API я не знаю.
 
Каждый блок имеет свой уровень света от 0 до 15 включительно. 0 -- абсолютная темнота, 15 -- освещение от солнца, светокамня, ламп, лавы, огня, маяка. У факела уже 14. От луны падает свет в 4 единицы. От источника на каждый контактирующий блок ложится свет на 1 меньше, чем источник. Что возвращает функция из API я не знаю.
Собственно уровень освещения блока она и возвращает. Поэтому < 4 в принципе уже не поверхность и можно спавнить мобов.
 
@BeYkeR, спасибо, вечерком попробую, отпишусь

сорцы кинешь?
 
@BeYkeR, спасибо, вечерком попробую, отпишусь

сорцы кинешь?
А что тут кидать? декомпилятором прекрасно берётся.
Плагин реагирует на руду и камень(материал) только, и запрещает ломать и спавнит зомби.

Зря конечно запрещает копать, я например в полной темноте немного вижу и вполне копать могу, очень неудобно будет когда уголь нужен а добыть нельзя.
 
та я уже посмотрел сорцы, просто хотелось готовый проект, чтоб закинул в эклипс и можно было скомпилировать.

там на выбор через конфиг, или запрет или спавн.

чувствую сегодня будет нежданчик для читеров :)
 
Идея реализуется за 5 минут)
 
та я уже посмотрел сорцы, просто хотелось готовый проект, чтоб закинул в эклипс и можно было скомпилировать.

там на выбор через конфиг, или запрет или спавн.

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

если будут сорцы, хочу добавить еще проверку Y координаты, нет смысла проверять выше 40 блоков, там пусть копают в темноте.

и еще вопрос оптимизации, в плагине юзается метод block.getType() несколько раз, т.к. сервер и так ресурсоемкий, то нужно бороться за каждую миллисекунду, не будет менее затратней использовать переменную для block.getType() и потом проверять уже ее, а не дергать каждый раз метод .getType() ?

может перестроить условия таким образом, чтоб сначала проверялись менее ресурсоемкие условия? или все это фигня?
@BeYkeR,

что-то не работает
конфиг
Код:
mode: spawn
light: '3'
zombie-amount: 4
Worlds:
  world: true
  world_nether: false
  world_the_end: false
или у меня руки кривые
и ошибок никаких нет
 
в случае со спавном зомби, после 2-3 сломанных блоков подобным образом, желание копать в темноте сразу отпадет, будет везде светло и механизм уже работать не будет.

если будут сорцы, хочу добавить еще проверку Y координаты, нет смысла проверять выше 40 блоков, там пусть копают в темноте.

и еще вопрос оптимизации, в плагине юзается метод block.getType() несколько раз, т.к. сервер и так ресурсоемкий, то нужно бороться за каждую миллисекунду, не будет менее затратней использовать переменную для block.getType() и потом проверять уже ее, а не дергать каждый раз метод .getType() ?

может перестроить условия таким образом, чтоб сначала проверялись менее ресурсоемкие условия? или все это фигня?
@BeYkeR,

что-то не работает
конфиг
Код:
mode: spawn
light: '3'
zombie-amount: 4
Worlds:
  world: true
  world_nether: false
  world_the_end: false
или у меня руки кривые
и ошибок никаких нет

Код:
mode: SPAWN
light: 3
zombie-amount: 4
Worlds:
  world: true
  world_nether: false
  world_the_end: false

Без ковычек.Баг команд)
Обновил плагашь до 1.1:
- Некоторые баг фиксы с командами
- Новая команда и перм: /fb zombie и fb.zombie

Скачать
 
эта версия работает, зомби спавнятся, но застревают в стене.

нужно как-то изменить локацию спавна мобов
может плясать от координат игрока поискать свободное мести в 2 блока высотой и там спавнить?
 
эта версия работает, зомби спавнятся, но застревают в стене.

нужно как-то изменить локацию спавна мобов
может плясать от координат игрока поискать свободное мести в 2 блока высотой и там спавнить?
В файле есть исходники, можешь его взять и переделать.
 
Назад
Верх