Как сделать систему плотов с сохранениями и загрузкой плота?

tokkyo35

Участник
Регистрация
14 Май 2023
Сообщения
31
Мне срочно нужен код на систему с плотами и сохранениями и выгрузкой плотов. Можно 32x32 а можно 16x16 блоков плоты. Самое главное чтобы работало. Скажу и дам спасибо.
Сообщение объединено:

Пожалуйста
 

EndermanHack19

Участник
Регистрация
3 Май 2023
Сообщения
73
Мне срочно нужен код на систему с плотами и сохранениями и выгрузкой плотов. Можно 32x32 а можно 16x16 блоков плоты. Самое главное чтобы работало. Скажу и дам спасибо.
Сообщение объединено:

Пожалуйста
Где то я это уже видел такую тему 🤔🤔🤔
 

vlados_1

Новичок
Регистрация
26 Май 2023
Сообщения
3
В Ютубе найди там есть такой видио ролик)
Сообщение объединено:

Мне срочно нужен код на систему с плотами и сохранениями и выгрузкой плотов. Можно 32x32 а можно 16x16 блоков плоты. Самое главное чтобы работало. Скажу и дам спасибо.
Сообщение объединено:

Пожалуйста
Найди в Ютубе такой видио ролик был)
Сообщение объединено:

Мне срочно нужен код на систему с плотами и сохранениями и выгрузкой плотов. Можно 32x32 а можно 16x16 блоков плоты. Самое главное чтобы работало. Скажу и дам спасибо.
Сообщение объединено:

Пожалуйста
Найди в Ютубе такой видио ролик был)
 

tokkyo35

Участник
Регистрация
14 Май 2023
Сообщения
31
В Ютубе найди там есть такой видио ролик)
Сообщение объединено:


Найди в Ютубе такой видио ролик был)
Сообщение объединено:


Найди в Ютубе такой видио ролик был)
На ютубе простая система даже без антигрифа
 

tokkyo35

Участник
Регистрация
14 Май 2023
Сообщения
31
Когда мне дадут код на выгрузку и сохранение
 

_PRO_GAMER_PVP_

Участник
Регистрация
7 Май 2023
Сообщения
125
Сохранение легко делать по переменным, типо, генерировать уже с проверками.
 

maxim34a

Гость
Регистрация
10 Июн 2023
Сообщения
540
Когда мне дадут код на выгрузку и сохранение
Честно, не разбираюсь в плотах. Но как я понял, тебе надо сохранять блоки из определенного плота и потом загружать? Сложно..

Первое, что приходит мне на ум — массивы. В массив %player%PlotCoord сохранять координаты блоков, а в %player%PlotBlock сохранять блок этого плота. И при расстановке блоков(Цикличная функция? Скорее всего, будет бить об перенагрузке, но можно попробовать) получать координаты по индексу 1 и блок по индексу 1, чтобы координаты были равны блоку. Такой себе способ, конечно...

А что у тебя вообще за плоты? Если типа того, что в офисе, то тебе не надо сохранять все блоки. Надо только те, что поставил игрок, а остальное делать через копирование блоков в определенное место.
 

tokkyo35

Участник
Регистрация
14 Май 2023
Сообщения
31
Честно, не разбираюсь в плотах. Но как я понял, тебе надо сохранять блоки из определенного плота и потом загружать? Сложно..

Первое, что приходит мне на ум — массивы. В массив %player%PlotCoord сохранять координаты блоков, а в %player%PlotBlock сохранять блок этого плота. И при расстановке блоков(Цикличная функция? Скорее всего, будет бить об перенагрузке, но можно попробовать) получать координаты по индексу 1 и блок по индексу 1, чтобы координаты были равны блоку. Такой себе способ, конечно...

А что у тебя вообще за плоты? Если типа того, что в офисе, то тебе не надо сохранять все блоки. Надо только те, что поставил игрок, а остальное делать через копирование блоков в определенное место.
Плоты с постройками игроков. Мой человек из тимы знает как сделать загрузку и сохранение но он не знает одного, путые блоки как сохрнить. Нужно делать такую систему с нуля а он редко бывает в сети.

Если делать на переменных то получится очень много. ОЧЕНЬ и их нельзя будет удалить, а хранить всю инфу о блоке в переменной это бред.
 

maxim34a

Гость
Регистрация
10 Июн 2023
Сообщения
540
Плоты с постройками игроков. Мой человек из тимы знает как сделать загрузку и сохранение но он не знает одного, путые блоки как сохрнить. Нужно делать такую систему с нуля а он редко бывает в сети.

Если делать на переменных то получится очень много. ОЧЕНЬ и их нельзя будет удалить, а хранить всю инфу о блоке в переменной это бред.
Так я говорю не о переменной, а о массиве. И пустые блоки не надо сохранять. Перед тем как загружать плот ты просто чистишь местность куда надо его загрузить
 

tokkyo35

Участник
Регистрация
14 Май 2023
Сообщения
31
Так я говорю не о переменной, а о массиве. И пустые блоки не надо сохранять. Перед тем как загружать плот ты просто чистишь местность куда надо его загрузить
У меня с массивами всегда проблемы. Был такой момент: нужно было создать айди плотам и отслеживать местоположение. Местоположение храниломь в массиве а мл не умел опрёделать это. Я боюсь что такая же проблема будет тут.
 

maxim34a

Гость
Регистрация
10 Июн 2023
Сообщения
540
У меня с массивами всегда проблемы. Был такой момент: нужно было создать айди плотам и отслеживать местоположение. Местоположение храниломь в массиве а мл не умел опрёделать это. Я боюсь что такая же проблема будет тут.
Основная проблема массивов - нельзя делать "динамическое" название(Типа первый игрок зашёл - название массива 1, второй 2 - название 2). Ну тут можно сделать через %player%Plot это всё. по моему мнению офк
Был такой момент: нужно было создать айди плотам и отслеживать местоположение. Местоположение храниломь в массиве а мл не умел опрёделать это.
Что ты имеешь ввиду? Создать айди плотам... Типа первый плот - координаты? Можно было бы сделать это через Map, если бы его добавили на мл(Map в Java - один из видов массивов, хранит два значения: Key - Value(Ключ - Значение). Ключи всегда уникальны, ключом может быть любой тип переменных). У меня была схожая задача, я решил использовать индекс как ключ, так как индексы впринципе уникальны. То есть когда игрок создает плот, присваиваем переменной plotIndex +1, устанавливаем в %player%PlotIndex значение plotIndex, затем устанавливаем в массив allPlots значение местоположения по индексу plotIndex. Когда надо получить координаты плота - получаем элемент массива allPlots по индексу %player%PlotIndex. Или что ты имел ввиду?

бтв вроде в джаве можно определять индекс в массиве через значение, было бы классно если бы такое-же было на мл

UPD: рад, что ты продолжаешь задавать сложные вопросы. Не скучно.
 
Последнее редактирование:

tokkyo35

Участник
Регистрация
14 Май 2023
Сообщения
31
Основная проблема массивов - нельзя делать "динамическое" название(Типа первый игрок зашёл - название массива 1, второй 2 - название 2). Ну тут можно сделать через %player%Plot это всё. по моему мнению офк

Что ты имеешь ввиду? Создать айди плотам... Типа первый плот - координаты? Можно было бы сделать это через Map, если бы его добавили на мл(Map в Java - один из видов массивов, хранит два значения: Key - Value(Ключ - Значение). Ключи всегда уникальны, ключом может быть любой тип переменных). У меня была схожая задача, я решил использовать индекс как ключ, так как индексы впринципе уникальны. То есть когда игрок создает плот, присваиваем переменной plotIndex +1, устанавливаем в %player%PlotIndex значение plotIndex, затем устанавливаем в массив allPlots значение местоположения по индексу plotIndex. Когда надо получить координаты плота - получаем элемент массива allPlots по индексу %player%PlotIndex. Или что ты имел ввиду?

бтв вроде в джаве можно определять индекс в массиве через значение, было бы классно если бы такое-же было на мл

UPD: рад, что ты продолжаешь задавать сложные вопросы. Не скучно.
С телепортированием на чужие плоты есть проблемы. На координаты которые есть уже в массиве и которые автоматически преобразовываются в нормальные координаты не телепортирует. Даже выводили в чат коорды и все было правильно.

По поводу сохранений построек очень спорный вопрос. С обычной системой плотов было пофикшено много багов. Не получается сделать настройки на плот, а именно режим игры на плоту, музыка на плоту, точка возраждения на плоту, пвп и и т.д.

Я очень хочу доделать эту систему и сделать сохранен е построек и загрузку, это позволит расширить кол-во плотов игроку и обьем плота с 16x16 на 32x32. В эту систему было вложено много усилий и не хочется просто забить на этот проект и забыть опять на 5 месяцов. Мне хочется реализовать хорошую и полноценную систему плотов и дать возможность игрокам показать свое творчество и сохранить это.

Надеюсь ты мне сможешь помочь)
 

maxim34a

Гость
Регистрация
10 Июн 2023
Сообщения
540
только проснулся, так что могу нести немножечко бред
С телепортированием на чужие плоты есть проблемы. На координаты которые есть уже в массиве и которые автоматически преобразовываются в нормальные координаты не телепортирует. Даже выводили в чат коорды и все было правильно.
А на свои телепортирует нормально? Ну давай возьмем такую идею... Если индекс - номер плота, значение - координаты, то для телепортации на чужой плот нам надо знать чужой индекс, так? Допустим игрок пишет @plot maxim34a, значит мы получаем никнейм который он пишет, затем получаем игрока с таким ником через выборку и наверное получаем индекс по %selected% т.е по выборке. Так как у нас хранятся индексы помимо массива еще и в переменных %player%PlotIndex, мы можем получать индексы разных игроков меняя ники в начале. Бтв если будешь использовать обрезку - она работает супер странно, чтобы обрезать первый символ надо вставлять числа 0 и 1, для второго - 1 и 2 и так далее.
По поводу сохранений построек очень спорный вопрос. С обычной системой плотов было пофикшено много багов. Не получается сделать настройки на плот, а именно режим игры на плоту, музыка на плоту, точка возраждения на плоту, пвп и и т.д.
Хм, удивительно. По идеи это не так сложно, возьмем допустим режим игры. Владелец выбирает режим игры в настройках, мы сохраняем это в переменную и когда другой игрок заходит в мир — устанавливаем ему режим игры через ифы(Если переменная режимМира = креатив -> установить режим игры креатив). Единственное что, с другими настройками типа пвп сложнее. Я бы знаешь как сделал... Когда игрок телепортируется на чужой плот, мы сохраняем в переменную ник на чей плот он телепортировался. Затем сделаем что-то подобное: игрок бьет другого игрока -> выбрать игрока по переменной %player%PlotOwnerName(тут у нас хранится имя владельца) -> если значение %selected%PlotSettingsPvp = Disabled { отменяем событие урона, пишем атакующему что бить нельзя }
Бтв лучше через %victim%PlotOwnerName.
Я очень хочу доделать эту систему и сделать сохранен е построек и загрузку, это позволит расширить кол-во плотов игроку и обьем плота с 16x16 на 32x32. В эту систему было вложено много усилий и не хочется просто забить на этот проект и забыть опять на 5 месяцов. Мне хочется реализовать хорошую и полноценную систему плотов и дать возможность игрокам показать свое творчество и сохранить это.
Если не секрет, для какого это режима? И что там у тебя с шумами?
 

tokkyo35

Участник
Регистрация
14 Май 2023
Сообщения
31
только проснулся, так что могу нести немножечко бред

А на свои телепортирует нормально? Ну давай возьмем такую идею... Если индекс - номер плота, значение - координаты, то для телепортации на чужой плот нам надо знать чужой индекс, так? Допустим игрок пишет @plot maxim34a, значит мы получаем никнейм который он пишет, затем получаем игрока с таким ником через выборку и наверное получаем индекс по %selected% т.е по выборке. Так как у нас хранятся индексы помимо массива еще и в переменных %player%PlotIndex, мы можем получать индексы разных игроков меняя ники в начале. Бтв если будешь использовать обрезку - она работает супер странно, чтобы обрезать первый символ надо вставлять числа 0 и 1, для второго - 1 и 2 и так далее.

Хм, удивительно. По идеи это не так сложно, возьмем допустим режим игры. Владелец выбирает режим игры в настройках, мы сохраняем это в переменную и когда другой игрок заходит в мир — устанавливаем ему режим игры через ифы(Если переменная режимМира = креатив -> установить режим игры креатив). Единственное что, с другими настройками типа пвп сложнее. Я бы знаешь как сделал... Когда игрок телепортируется на чужой плот, мы сохраняем в переменную ник на чей плот он телепортировался. Затем сделаем что-то подобное: игрок бьет другого игрока -> выбрать игрока по переменной %player%PlotOwnerName(тут у нас хранится имя владельца) -> если значение %selected%PlotSettingsPvp = Disabled { отменяем событие урона, пишем атакующему что бить нельзя }
Бтв лучше через %victim%PlotOwnerName.

Если не секрет, для какого это режима? И что там у тебя с шумами?
С шумами хз, слишком это сложно чтобы сделать генерацию именно через мл а не скрипты
 

maxim34a

Гость
Регистрация
10 Июн 2023
Сообщения
540
С шумами хз, слишком это сложно чтобы сделать генерацию именно через мл а не скрипты
Да, мл в этом плане очень ограничен, да и дело неблагодарное я имею ввиду, что игрокам всё равно, процедурная генерация у тебя или нет
 
Сверху