- Баллы
- 66
- Имя в Minecraft
- TheMrQuake
Подскажите как сделать так чтобы когда игрок ломал блок и выполнялось какое то действие например выдача предмета. Но при этом выполнялась проверка что блок был сгенерирован а не поставлен игроком.
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
фу. фу. фу.Самое премитивное, когда игрок ставит блок записываем в конфиг дату блока(содержит его имя,расположение и т.д), далее если игрок ломает блок, то при помощи BlockBreakEvent делаем обратное действие, теперь выгружаем дату этого блока и ищем совпадающие в конфиге при помощи .contains(blockData)
Дальше если есть совпадение то выполняем нужное действие...
Java:if (config().getString("четатам").contains(blockData) == true) { // Выполняем нужное нам действие! }
Садомазафу. фу. фу.
фу. фу. фу.
фу. фу. фу
Как можно такое советовать то?
Ладно бы еще в БД, но в конфиг...
Извращенцы...
Я хочу сделать так чтобы когда игрок ломал руду ему давалась валюта. Руда не должна быть поставлена игроком.Чую я пахнет неправильным подходом.
Для начала давай ты расскажешь что хочешь делать с ним)
Нет там по другому. Там когда игрок ставит блок у него снимаются деньги.Кажется, в Jobs было что-то подобное, когда за работу добытчика давали деньги только если сломанный блок был сгенерирован. Можете посмотреть, как там устроено.
Спасибо. Обязательно попробую.Кажется, в Jobs было что-то подобное, когда за работу добытчика давали деньги только если сломанный блок был сгенерирован. Можете посмотреть, как там устроено.
Там есть именно профессия добытчика, а есть строителя.Нет там по другому. Там когда игрок ставит блок у него снимаются деньги.
Где хоть ты столько игроков возьмешь? У тебя проект лучше Hypixel'ятебя сломают 100кк+ руды ты поймешь что на это уходит много оперативной памяти, скорее тогда уже при загрузке чанка подгружать то что в нем ломали и соответственно выгружать.
Блок у меня записывался в таком формате X;Y;ZНу вот только когда у тебя сломают 100кк+ руды ты поймешь что на это уходит много оперативной памяти, скорее тогда уже при загрузке чанка подгружать то что в нем ломали и соответственно выгружать.
К примеру 400 уникальных людей в день, каждый идет в шахту и добывает 10 стаков руды в день, что выходит 256000 руды в день или около 7кк за месяц, за год работы сервера это число приблизится к 100кк.Где хоть ты столько игроков возьмешь? У тебя проект лучше Hypixel'я
Ну так хранить - не очень, можно использовать байтовую запись в файл и хранить все int;byte;int, тем самым на одну руду уйдет всегда 9 байт, а если мир меньше 32к блоков то можно использовать short;byte;short, уменьшив количество байт до 5. Все дело не в занимаемой памяти, ну точнее не только в ней, если у тебя наберется хотя бы 10кк сломанной руды ты будешь выполнять поиск по координатам долго, около секунды.Блок у меня записывался в таком формате X;Y;Z
Примерно выглядело так 1785;75;-98788
1 символ кушает примерно 1 байт(точно не знаю)
100.000.000 блоков, по нашему примеру - это примерно 1.400.000.000 байт
Перевести в мегабайты - выйдет 1400мб(1.4G) - что собственно не так уж и много при таком кол-во блоков..
На нормальном сервере где установлен сервер с 16G-~ 32G+ памяти, эти цифры копейки..
В любом случае это лучше чем чекать блок из Базы данных или уж тем более конфига..Если у тебя наберется хотя бы 10кк сломанной руды ты будешь выполнять поиск по координатам долго, около секунды.