Вопрос по выдаче предметов

tushonca

Новичок
Регистрация
9 Май 2023
Сообщения
4
Столкнулся с проблемой, надо ставить выдавать блоки по его айди а не по виду блока, не знаю как решить (если просто положить динам.переменную то её и выдает игроку а нужно выдать или просто поставить блок по его айди ). Помогите пожалуйста, заранее спасибо.
 

GromoverGets

Эксперт
Регистрация
2 Май 2023
Сообщения
206
Столкнулся с проблемой, надо ставить выдавать блоки по его айди а не по виду блока, не знаю как решить (если просто положить динам.переменную то её и выдает игроку а нужно выдать или просто поставить блок по его айди ). Помогите пожалуйста, заранее спасибо.
Есть действие в том же разделе "выдать переменную". Оно выдает предмет игроку, если он там содержится
 

tushonca

Новичок
Регистрация
9 Май 2023
Сообщения
4
Не получилось опять критует код или я не правильно чтото сделал? ( Идет обрезка коменды ' @give 3 ' вырезаеться весь текст после пробела и он в динам переменой оказывается, и мне этот айди нужно выдать )
 

__MrBerk__

Новичок
Регистрация
11 Янв 2024
Сообщения
9
Не получилось опять критует код или я не правильно чтото сделал? ( Идет обрезка коменды ' @give 3 ' вырезаеться весь текст после пробела и он в динам переменой оказывается, и мне этот айди нужно выдать )
Привет, если я не ошибаюсь, ты пытаешься выдать предмет по числовому айди предмета/блока, но так не будет работать, т.к. код к+ работает только через ItemStack{<BLOCK> x <COUNT>} и через установить предмет, т.к. же можно указать мету, описание, кол-во и т.д, но текстом этого никак не сделать.
  • Если ты хочешь выдать землю, то тебе надо писать "@give DIRT" и выдавать переменную с "ItemStack{DIRT x 1}"
  • Если камень, то @give STONE и выдавать "ItemStack{STONE x 1}"
 
Последнее редактирование:

tushonca

Новичок
Регистрация
9 Май 2023
Сообщения
4
Привет, если я не ошибаюсь, ты пытаешься выдать предмет по числовому айди предмета/блока, но так не будет работать, т.к. код к+ работает через ItemStack{<BLOCK> x <COUNT>}, т.к. же можно указать мету, описание и т.д.
  • Если ты хочешь выдать землю, то тебе надо писать "@give DIRT" и выдавать переменную с "ItemStack{DIRT x 1}"
  • Если камень, то @give STONE и выдавать "ItemStack{STONE x 1}"

Тоесть на каждый блок писать свой обработчик и свою выдачу отдельно предмета? Просто не хочу это все писать (
 

GromoverGets

Эксперт
Регистрация
2 Май 2023
Сообщения
206
Тоесть на каждый блок писать свой обработчик и свою выдачу отдельно предмета? Просто не хочу это все писать (
Есть конечно усложнённый вариант, где ты запихиваешь в сохранённый массив по индексу переменные с теми блоками, которые тебе нужны, но тогда а) это муторно и б) отлетают всякие 1:3 айдишники
 

tushonca

Новичок
Регистрация
9 Май 2023
Сообщения
4
Есть конечно усложнённый вариант, где ты запихиваешь в сохранённый массив по индексу переменные с теми блоками, которые тебе нужны, но тогда а) это муторно и б) отлетают всякие 1:3 айдишники
Я уже там итак с массивами работал так что эт не проблема, да и мне айдишники 1:3 не нужны мне просто главное получить блок по его айди из чата)
 

GromoverGets

Эксперт
Регистрация
2 Май 2023
Сообщения
206
Я уже там итак с массивами работал так что эт не проблема, да и мне айдишники 1:3 не нужны мне просто главное получить блок по его айди из чата)
ну по сути ты ставишь огромное действие, которое забивает один раз массив нужными айдишниками по нумерации, а потом банально получаешь элемент массива по индексу, который идентичен айди предмета
 

__MrBerk__

Новичок
Регистрация
11 Янв 2024
Сообщения
9
разве не ItemStack{<ITEM> x <COUNT>}
Вообще там без разницы, я сказал условно, тем более он про блок говорил. А если углубляться в апишку, то там вообще ItemStack{<TYPE> x <AMOUNT>}
Сообщение объединено:

Вот к примеру метод ItemStack'а PaperMC API, но по факту они везде одинаковы, т.к. под капотом везде ведрянка
 

onn512

Эксперт
Регистрация
2 Май 2023
Сообщения
111
б) отлетают всякие 1:3 айдишники
Верим! 112% правды! Но то, что какой-то нн512 с ютуберкой, используя код, сетает как обычным ворлдэдитом (рандомное заполнение блоками), с использованием настоящих айди - это 512% неправда.

А теперь по делу. У нас есть массив с блоками, например:
Код:
1 - КАМЕНЬ,
2 - ДЁРН,
3 - ЗЕМЛЯ,
4 - БУЛЫЖНИК
И у нас есть полученный текст от игрока, например: «1:3».

Нам нужно разделить текст по символу ":", и мы получим массив, где первый элемент - айди блока, а второй - дата блока. Айди парсим и получаем по нему блок из массива с блоками. Дату блока тоже парсим, и полученные переменные пихаем в «Поставить блок» - переменную с блоком, полученным из массива с блоками, в слот для дим. переменной. А переменную с датой блока в слот для даты блока.

Для создания массива с почти всеми основными блоками нужно 7 полных строк кода:1707011730473.png

tushonca написал(а):
надо ставить выдавать блоки
Так тебе ставить или выдавать? Выдавать таким способом увы нельзя, только ставить.


МЛ топ, как всегда. В голосование попадает всё, но только не обновления каких-то слабых мест в коде, например, работа с предметами и инвентарем.
 
Последнее редактирование:

GromoverGets

Эксперт
Регистрация
2 Май 2023
Сообщения
206
Верим! 112% правды! Но то, что какой-то нн512 с ютуберкой, используя код, сетает как обычным ворлдэдитом (рандомное заполнение блоками), с использованием настоящих айди - это 512% неправда.
Так у него команда @give и у него выдача, там разделение как в сете не катит, потому я и написал, что отлетает
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
297
Так у него команда @give и у него выдача, там разделение как в сете не катит, потому я и написал, что отлетает
в чём трабл? ввести @give id:meta, получить предмет из массива под id, и установить в прочность meta
 

GromoverGets

Эксперт
Регистрация
2 Май 2023
Сообщения
206
в чём трабл? ввести @give id:meta, получить предмет из массива под id, и установить в прочность meta
походу давно я IIE не использовал, забыл что в блоках прочность как мета помечается
 

tushonca

Новичок
Регистрация
9 Май 2023
Сообщения
4
С массивами можно выделить 5(условно) массива и парсить первую часть смотреть блок , а если есть мета то из другого массива брать блок, но я так и не понял как получить именно блок из этого массива.
 

Mee8YT

Эксперт
Регистрация
3 Май 2023
Сообщения
297
С массивами можно выделить 5(условно) массива и парсить первую часть смотреть блок , а если есть мета то из другого массива брать блок, но я так и не понял как получить именно блок из этого массива.
зачем?
ввести @give id:meta, получить предмет из массива под id, и установить в прочность meta
вот решение
 
Сверху