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

InsuperablEx

Пользователи
  • Публикации

    5
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем InsuperablEx


  1. 4 минуты назад, eu_tomat сказал:

    1) Похоже, что-то сломано в моде. Даже если он выдаёт размер инвентаря робоита 81, то всё равно не позволит использовать больше 64 ячеек.

    2) Этот код не содержит условия для останова цикла. Остановиться он может только по ошибке. С каким сообщением останавливается программа? Скорее всего, что-то вроде attempt to index a nil valueпри обработке пустого слота.

    Нет, программа завершается без ошибок, а listener остаётся работать


  2. 5 минут назад, eu_tomat сказал:

    Цикл перебирает ячейки инвентаря робота. Но инвентарь робота не может вместить больше 64 ячеек независимо от количества установленных улучшений инвентаря.

    Понимаю, но цикл завершается на 4-х судя по выводу print() если в инвентаре лежит 3 предмета


  3. local component = require("component")
    local event = require("event")
    local serialization = require("serialization")
    local robot = component.robot
    local tunnel = component.tunnel
    local inv = component.inventory_controller
    
    linkedCardAddress = '817a1dc5-324f-46f4-9a27-dfd6cce83d0a' -- Linked Card address
    
    function onMessage(_, _, address, _, _, message)
    	if address == linkedCardAddress then
    		local unSerMessage = serialization.unserialize(message)
    		if unSerMessage.text == "get_count" then
    			local itemSize = 0
    			for i = 1, robot.inventorySize() do
    				print(i)
    				if inv.getStackInInternalSlot(i).label == unSerMessage.getCountLabel then
    					itemSize = itemSize + inv.getStackInInternalSlot(i).size
    					tunnel.send(serialization.serialize(itemSize))
    				end
    			end
    		end
    	end
    end
    event.listen("modem_message", onMessage)

    Цикл не проходит положенные 81 ячейку инвентаря.
    В чем дело?

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