Перейти к содержимому
  • 0
DrZeon

Как вывести информацию о предметах в сундуке?

Вопрос

Как вывести информацию о предметах в сундуке? 

Поделиться сообщением


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

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

6 минут назад, DrZeon сказал:

Как вывести информацию о предметах в сундуке? 

О каком моде идёт речь? ComputerCraft или OpenComputers? Есть ли в сборке аддон OpenPeripheral?

Поделиться сообщением


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

Здравствуйте мод ComputerCraft

А мода OpenPeripheral нет в сборке

Поделиться сообщением


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

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

chest = peripheral.wrap("top")
stacks = chest.getAllStacks()
for slot,item in pairs(stacks) do print(slot .. " " .. item.basic().raw_name) end

Другая информация о предметах находится в той же таблице, что и имя.

Поделиться сообщением


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

Понятно спасибо сейчас попробую

Поделиться сообщением


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

Есть проблема  мне пишет 

/test. lua:2: attempt to index global 'chest' (a nil value) 

Line 2 

stacks = chest.getAllStacks() 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
6 минут назад, DrZeon сказал:

Есть проблема  мне пишет 

/test. lua:2: attempt to index global 'chest' (a nil value) 

Так может происходить в случае, если сундук с указанной стороны не найден.

 

Указав параметр со значением "top" в строке chest = peripheral.wrap("top"), я запрашиваю подключение к сундуку, стоящему над компьютером.

 

Для решения проблемы потребуется либо установить сундук над компьютером, либо указать ту сторону, где сундук установлен.

Поделиться сообщением


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

Понятно большое спасибо 

 

Поделиться сообщением


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

Но но как будет назывался пораметр когда подключение сундука происходит с его задней стороны? 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 минут назад, DrZeon сказал:

Но но как будет назывался пораметр когда подключение сундука происходит с его задней стороны?

Судя по всему, back.

Возможные названия сторон: "top", "bottom", "left", "right", "front" and "back".

 

Взято отсюда:

https://tweaked.cc/module/redstone.html#v:getSides

Поделиться сообщением


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

Понятно большое спасибо за ответ

Поделиться сообщением


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

Здравствуйте появилась новая проблема 

HRAN. lua:3: attempt to call field 'getAllStacks'

(a nil value) 

Line 3

 stacks = chest. getAllStacks () 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, DrZeon сказал:

появилась новая проблема

А при каких обстоятельствах она появилась? Что-то менялось в схеме или в коде?

Поделиться сообщением


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

Здравствуйте нечего 

Поделиться сообщением


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

Вчера я ничего не написал из-за того что пошол спать

Поделиться сообщением


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

Единственное что я поменял в коде это вот  88_1.png?ex=662b7326&is=662a21a6&hm=3cfb

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
5 часов назад, DrZeon сказал:

Единственное что я поменял в коде это вот  88_1.png?ex=662b7326&is=662a21a6&hm=3cfb

Насколько я вижу, строка chest = peripheral.wrap("top") не влияет на дальнейшее выполнение программы , т.к. имя переменной в ней изменено на ches.

 

А в предыдущей строке, которая должна влиять, указано имя переферии minecraft:chest_4, которое, скорее всего, некорректно, что в конечном итоге и вызывает ошибку. Сам я мало играю с модом ComputerCraft, предпочитая ему OpenComputers, и, возможно, что-то в моде изменилось за последнее время. Но я не помню, чтобы были разрешены имена такого вида для периферии.

 

Для поиска подключенных к компьютеру сундуков предлагаю воспользоваться командой:

peripheral.find("chest",function(side,table)print(side," ",table)end)

Какие стороны она выдаёт?

Поделиться сообщением


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

Никакие просто пустое поле

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 минуту назад, DrZeon сказал:

Никакие просто пустое поле

А какие-то сундуки в смежных с компьютером блоках установлены?

Поделиться сообщением


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

2024-04-25_20.28.41.png?ex=662bca76&is=6Вот только это и больше ничего не подключено

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
9 минут назад, DrZeon сказал:

Вот только это и больше ничего не подключено

Теперь понятно. Насколько я помню, компьютер ComputerCraft воспринимает в качестве периферии лишь те объекты, которые находятся в смежных с ним блоках. В смежных. А в приведённой схеме сундук находится через один блок от компьютера, поэтому тот не может считать его периферией. Полагаю, причина именно в этом.

Поделиться сообщением


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

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...