Перейти к содержанию

Умножения предметов в руке игрока


Рекомендуемые сообщения

В теме 25 сообщений

Допустим игрок в зоне dx=2, dy=2, dz=2 держит n кол-во железных слитков в main руке. Нужно увеличить кол-во железных слитков в main руке в 4 раза. Как это сделать?
Думал, что можно как-то сделать с помощью execute store, но сам понять не смог.

Ссылка на комментарий
Поделиться на другие сайты

Привет! сделал небольшой датапак для этого, ты не уточнил версию поэтому сделал без макросов. Использование такое, выполняешь команду от лица игрока у которого ты хочешь умножить количество железных слитков: /execute as [nickname] run function look:store , и количество слитков в руке игрока умножаются в 4 раза. А насчет зоны думаю ты уж сам разберешься. Ссылка на датапак: https://drive.google.com/drive/folders/1dtxXQes93AWOiRdv5DOhqI84qcDHbXaN?usp=sharing

 

Ссылка на комментарий
Поделиться на другие сайты

16 минут назад, garmxd сказал:

Привет! сделал небольшой датапак для этого, ты не уточнил версию поэтому сделал без макросов. Использование такое, выполняешь команду от лица игрока у которого ты хочешь умножить количество железных слитков: /execute as [nickname] run function look:store , и количество слитков в руке игрока умножаются в 4 раза. А насчет зоны думаю ты уж сам разберешься. Ссылка на датапак: https://drive.google.com/drive/folders/1dtxXQes93AWOiRdv5DOhqI84qcDHbXaN?usp=sharing

 

Метод классный, однако на моём сервере по какой-то причине датапаки не работают. Поэтому мой инструментарий ограничен ком. блоками. После того как я создал тему, у меня появилась идея сделать следующий алгоритм:
1. Записать кол-во железных слитков в руке игрока в scoreboard scrb на имя игрока
2. Удалить это кол-во железных слитков у игрока
3. С помощью scoreboard operation умножить значение игрока на COUNTER(=2)
4. Выдать кол-во слитков игроку согласно новому значению

Проблема у меня возникает на 1 и 4 этапе, я не знаю как эти этапы реализовать с помощью команд

P.s.: прочитал код в твоей функции и понял, что там и работает такой алгоритм

Ссылка на комментарий
Поделиться на другие сайты

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

 

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, garmxd сказал:

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

 

Forge 1.18.2

Ссылка на комментарий
Поделиться на другие сайты

Попробуй опять скачай датапак я заменил название папок. Просто на новых версиях в датапаках пишется function, а не functions как на старых. Из-за этого он скорее всего не работал

 

А если что могу зайти на сервер и помочь , если дашь айпи конечно

 

Ссылка на комментарий
Поделиться на другие сайты

Все-все понял причину, на это версии в этой команде execute store result score @s items run data get storage minecraft:temp Items.count - слово count пишется с большой буквы, а у меня в датапаке она с маленькой. щас исправлю и можешь опять скачать, ну или сам поменять

 

 

Ссылка на комментарий
Поделиться на другие сайты

5 минут назад, garmxd сказал:

Все-все понял причину, на это версии в этой команде execute store result score @s items run data get storage minecraft:temp Items.count - слово count пишется с большой буквы, а у меня в датапаке она с маленькой. щас исправлю и можешь опять скачать, ну или сам поменять

 

 

Сделал, но сейчас система забирает все железные слитки и ничего не выдаёт. scoreboard items содержит 0, minecraft:temp хранит моё кол-во железных слитков

Ссылка на комментарий
Поделиться на другие сайты

ты скорее всего не так поменял, должно быть так:
scoreboard players set #mnoz mnoz 4
data modify storage minecraft:temp Items set from entity @s SelectedItem
execute store result score @s items run data get storage minecraft:temp Items.Count
item replace entity @s weapon.mainhand with air
scoreboard players operation @s items *= #mnoz mnoz

Или ты просто датапак не перезапустил, /datapack disable "file/store" и потом /datapack enable "file/store"

 

Ссылка на комментарий
Поделиться на другие сайты

3 минуты назад, garmxd сказал:

ты скорее всего не так поменял, должно быть так:
scoreboard players set #mnoz mnoz 4
data modify storage minecraft:temp Items set from entity @s SelectedItem
execute store result score @s items run data get storage minecraft:temp Items.Count
item replace entity @s weapon.mainhand with air
scoreboard players operation @s items *= #mnoz mnoz

Всё было также, но на всякий скопировал и вставил. Ничего не изменилось

Ссылка на комментарий
Поделиться на другие сайты

Только что, garmxd сказал:

перезапустил датапак?

 

/datapack disable "file/store" и потом /datapack enable "file/store"

 

 

Да

1 минуту назад, garmxd сказал:

перезапустил датапак?

 

/datapack disable "file/store" и потом /datapack enable "file/store"

 

 

image.png.de11b03bc5facefb71bb76ec6c26212c.png

Ссылка на комментарий
Поделиться на другие сайты

весьма странно, я только что проверил на этой версии и все работает. Тоесть просто предмет забирается и не выдается? или датапак вовсе не работает?

 

 

Ссылка на комментарий
Поделиться на другие сайты

Тогда да, это скорее всего приколы работы датапаков на сервере. Попроуй вручную ввести эти комадны и скинь что напишется в чат
1. /data modify storage minecraft:temp Items set from entity @s SelectedItem
2. /execute store result score @s items run data get storage minecraft:temp Items.Count
 

Ссылка на комментарий
Поделиться на другие сайты

Только что, garmxd сказал:

Тогда да, это скорее всего приколы работы датапаков на сервере. Попроуй вручную ввести эти комадны и скинь что напишется в чат
1. /data modify storage minecraft:temp Items set from entity @s SelectedItem
2. /execute store result score @s items run data get storage minecraft:temp Items.Count
 

image.png.f72d37866d47e7a2f5410048db8050e5.png

Ссылка на комментарий
Поделиться на другие сайты

1 минуту назад, garmxd сказал:

ну да так оно работает, тогда это уже проблемы с работой датапаков на серверах. Не знаю  даже что сказать

 

Самое удивительное, что после применения последней команды, items принял правильные значения, но при работе функии - нет.

 

Ссылка на комментарий
Поделиться на другие сайты

У меня все также работает на сервере. Может дело в модах. Попробуй в server-properties поменять значение function-permission-level=2 , на function-permission-level=4, и перезапустить сервер. Увеличвает права функций. И не забудь после перезапустить сервер

 

Ссылка на комментарий
Поделиться на другие сайты

9 минут назад, garmxd сказал:

У меня все также работает на сервере. Может дело в модах. Попробуй в server-properties поменять значение function-permission-level=2 , на function-permission-level=4, и перезапустить сервер. Увеличвает права функций. И не забудь после перезапустить сервер

 

Изменил, перезапустил, переподключил ещё датапак на всякий. Ничего не поменялось

Ссылка на комментарий
Поделиться на другие сайты

Только что, garmxd сказал:

Тогда вообще без понятия в чем дело 🤐

Выполняя команды в ручную все команды работают

Ссылка на комментарий
Поделиться на другие сайты

7 часов назад, garmxd сказал:

Привет! сделал небольшой датапак для этого, ты не уточнил версию поэтому сделал без макросов. Использование такое, выполняешь команду от лица игрока у которого ты хочешь умножить количество железных слитков: /execute as [nickname] run function look:store , и количество слитков в руке игрока умножаются в 4 раза. А насчет зоны думаю ты уж сам разберешься. Ссылка на датапак: https://drive.google.com/drive/folders/1dtxXQes93AWOiRdv5DOhqI84qcDHbXaN?usp=sharing

 

А если игроков одновременно будет несколько? Сработает?

Ссылка на комментарий
Поделиться на другие сайты

  • YAKMUVE закрыл тема
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...