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

num_pi

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

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

  • Посещение

  • Победитель дней

    7

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


  1. Поясню за хейт по поводу орфографии, говорю лично за себя, но предполагаю что возможно и у других участников форума, текст с явными и грубыми орфографическими ошибками вызывает такие же чувства и эмоции. Дело всё в том, что такой текст, трудно читать, мы как привыкшие с детства видеть текста написанные грамотно, такие текста для нас легко читаются, а когда мы встречаемся с текстом написанным без грамотно, с ошибками, мы вынужденны напрягать своё внимание, для чтения, а напрягаться очень лень, трудно, и вызывает жжение в области ниже копчика. Посему, рекомендую автору, если он не может самостоятельно выявить в своём тексте орфографические ошибки, хотя бы пользоваться word или онлайн-сервисом по типу https://rustxt.ru/check-spelling

    • Нравится 4

  2. В 13.06.2022 в 08:15, Wolframoviy сказал:

    Доброе утречко, не ожидали меня увидеть? Короче, думаю запилить недолаунчер если время будет, ну и сервер пофиксить по возможности.

    Это было бы круто, и очень удобно, мне проще скачать jar-ник, который сам всё подтянет и играть, чем выкачивать отдельно моды, и что-то ешё ставить, думаю и новичкам было бы так же проще, если бы ещё была авторизация в лаунчере и сайт, то совсем отлично. Может можно с администрацией сайта договорится, по поводу сайта, на поддомене, всё равно, сервер как я понял computercraft - ориентированный.


  3. В 08.06.2022 в 14:13, Taoshi сказал:

    Не заметил проверки статуса крафта предмета в АЕ: завершён/нет. Для сложных многоуровневых крафтовдлящихся до нескольки минут она актуальна.

    В целом - работает и ладно.

    Эта программа написана под мод openPeripheral, соответственно и функции для заказа крафта взяты  от туда, причина проста, это - nbt_nash. И узнать об статусе крафта, не представляется возможным, я бы сам хотел бы знать статус крафта, но увы и ах..


  4. В 21.02.2022 в 15:24, bes_zensuri1 сказал:

    Вся суть была в том, что лазурит делали на пчелах и не ходили копать совсем)
     

     

     

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


  5. local computer = require("computer")
    local component = require("component")
    local unicode = require("unicode")
    
    function proxy(cT)
        local address = component.list(cT)()
        if address then
            return component.proxy(address)
        end
    end
    
    internet = proxy("internet")
    chat_box = proxy("chat_box")
    me_interface = proxy("me_interface")
    
    computer.addUser("addyourself_here")
    
    pcall(function ()
        chat_box.setName("PC")
    end)
    
    
    function getITL()
        local handle, data, chunk = internet.request("ссылка на pastebin raw со списком крафта"), "" -- Строки-таблица вида "return {{}, {}, {}, и так далее}"
    
        while true do
            chunk = handle.read(math.huge)
    
            if chunk then
                data = data .. chunk
            else
                break
            end
        end
        return data
    end
    
    function sleep(timeout)
        local deadline = computer.uptime() + (timeout or math.huge)
        repeat
            computer.pullSignal(deadline - computer.uptime())
        until computer.uptime() >= deadline
    end
    
    function execute(data, stdin, sandbox)
        local chunk, err = load(data, stdin, "t", sandbox and
                                    setmetatable({},
                                                 {__index = _G, __metatable = ""}))
        if not chunk and err then
        else
            local data = table.pack(xpcall(chunk, debug.traceback))
            if data[1] then
                if data.n > 1 then return table.unpack(data, 2, data.n) end
            else
          end
        end
    
    end
    
    items = {}
    items = execute(getITL(), "items", true)
    pcall(function () chat_box.say("Cписок вещей для крафта загружен", 32) end)
    sleep(1)
    if items ~= nil then
        while true do
            local err, meTbl = pcall(me_interface.getAvailableItems,"none")
            for curINDEX = 1, #items do
    
                itemName = items[curINDEX]["itemName"]
                itemLabel = items[curINDEX]["itemLabel"]
                itemDamage = items[curINDEX]["itemDamage"]
                autoStockQty = items[curINDEX]["autoStockQty"]
                itemmaxSize = items[curINDEX]["itemmaxSize"]
                nbt_hash = items[curINDEX]["nbt_hash"]
    
                storedItemQty = 0
                craftAmount = 0
                
                        for i = 1, #meTbl do
                            if type(nbt_hash) == "string" then
                                if meTbl[i]["fingerprint"].id == itemName and meTbl[i]["fingerprint"].dmg == itemDamage and meTbl[i]["fingerprint"].nbt_hash == nbt_hash and meTbl[i].size ~= nil then
                                        storedItemQty = meTbl[i].size
                                        goto CRAFT
                                end
                            elseif type(nbt_hash) ~= "string" then 
                                if meTbl[i]["fingerprint"].id == itemName and meTbl[i]["fingerprint"].dmg == itemDamage and meTbl[i]["fingerprint"].nbt_hash == nil and meTbl[i].size ~= nil then
                                    storedItemQty = meTbl[i].size
                                    goto CRAFT
                                end
                            end
                        end
    
                ::CRAFT::
    
                if storedItemQty < (autoStockQty == 0 and itemmaxSize or autoStockQty) then
    
                    craftAmount = ((autoStockQty == 0 and itemmaxSize or autoStockQty) - storedItemQty)
                    if craftAmount <= 0 then
                        craftAmount = 0
                        break
                    end
                    -- pcall(function () chat_box.say(tostring(itemLabel .." в мэ хранится: "..storedItemQty.." заказываю количеством "..craftAmount), 2) end)
                    local err, res = pcall(function () 
                        if type(nbt_hash) == "string" then me_interface.requestCrafting({id=itemName, dmg = itemDamage, nbt_hash = nbt_hash}, 0) 
                        else me_interface.requestCrafting({id=itemName, dmg = itemDamage}, craftAmount) end end)
                        sleep(8)
                    if err == false then
                        chat_box.say(tostring(" Recipe404: " ..itemLabel), 5)
                        sleep(0.1)
                    end
                end
                
            end
            sleep(300)
            pcall(function () chat_box.say(tostring(" M-F: " ..tostring(math.floor(computer.freeMemory() / 1024))), 32) end)
    
        end
    else
        pcall(function () chat_box.say("TBL EMPTY", 20)end)
    end

     

    • Нравится 1

  6. Ну на сколько мне известно, асинхронности в компах нету

     

    В 30.05.2022 в 16:49, ProgramCrafter сказал:

    Самый простой способ - использовать event.pull(0, "modem_message"). Тогда, если сообщение ещё не пришло, будет возвращаться nil.

    Есть возможность использовать event.listen, но с ним работать немного сложнее.

    
    event.listen('modem_message', print)
    
    while true do
      robot.forward()
    end

     

    Ага, и всё это в одном потоке выполняется


  7. openperipheral вот где ответ, ну если этот мод конечно есть в сборке, с его помощью можно у не стандартных предметов узнать nbt_hash и уже по нему ориентироваться, но можно ли его api использовать для робота в автокрафте, это вопрос, это да, можно проверить


  8. Только что, eu_tomat сказал:

    Конкретно тут math.random вызывается 8 раз. Разве не достаточно одного раза?

    math.random(48, 57). Число 48 это unicode символ, а именно число 0, соответственно для числа 57, почти тоже самое, это число 9.

    Получается что я, говорю math.random, дай мне рандомный unicode char, с 48 по 57, потом делаю конкатенацию  в for. Главное что работает, и делает именно то что просил человек.


  9. 11 минуту назад, eu_tomat сказал:

    А зачем так сложно? В чём преимущество этого решения?

    В том что оно работает =) Что конкретно тут сложно? Попробуй убрать string.char, посмотри что из этого получится. 


  10. Из расчета, 166 минут горят все охл. стержни, 13 800 000 делим на 85 секунд, узнаем сколько энергии в секунду будет идти с этой схемы, а именно получается 162352,941176471, узнаем сколько секунд в 166 минутах = 9960 секунда, 162352,941176471 * 9960 = 1617035294,117647059 столько энергии получится при идеальных условиях, если стержни будут гореть почти до конца. 1617035294,117647059 / на 60 000 000 = 26,950588235 материи. Что в своей сути, 25, это хорошо если 25 получится. Из 3-ех материи получаем на сервере, 32 оловянной руды, ну будем считать по среднему значению что с 32 руды получим 64 слитка, если 25 материи поделить на 3 = 8,333333333, узнаем сколько получим если 32 * 8,333333333 = 266,666666656 оловянной руды, и если 266,666666656 * на 2 = 533,333333312(534). Дальше можно не считать, схема мусор :D. Почему? Хорошо если тут на 5 циклов, сжигания охл. стержней 10к хватит, с той материей что реактор отдаст за ВСЮ свою работу, в плоть до выпадения стержней в обедненные стержни mox.


  11. Если я всё правильно посчитал, то при такой схеме, если использовать стержни на 10к, при полной отработке цикла реактора, получается, 25 материи, при условии что у нас на сервере на 1 материю затрачивается 60кк энергии, что не густо и печально, на само поддержание реактора даже не хватит.

    sh2.png


  12.  

    Держи готовую функцию. for i = 1, 8 do: здесь поменяй 8, на большее число, если нужно что бы рандомное возвращаемое число было больше. 

    function rand()
    	local res = ""
    	for i = 1, 8 do
    		res = res .. string.char(math.random(48, 57))
    	end
    	return tonumber(res)
    end

     


  13. В 09.03.2020 в 19:30, Doob сказал:

    Свой, конечно, не хочется, чтобы оно опять превратилось в тыкву. Да и тащить целую гуи-либу ради одного списка и пары кнопок это оверхед.

    В своём магазе я сделал всё на голых вызовах и обращениях к gpu. На прямую.

    1.png

    2.png

    3.png

    4.png

    • Нравится 6

  14. 9 часов назад, eu_tomat сказал:

    А где она есть, и где можно посмотреть её?

    Cама схема считаю не очень стабильна, тем более в условиях низкого тпс-а. Позволяет получить 1620 eu/t, время горения теплоотводов до +- 8000 dmg, 12.6 сек. Но стабильное время это 10 секунд. Но я бы спроектировал бы, и остановился бы на 1000 eu/t +-.

    shematic.png


  15. 9 часов назад, eu_tomat сказал:

    Это в какой версии так работает? Я года два назад проверял под 1.7.10 в industrialcraft-2-2.2.827-experimental.jar. Именно нагретые стержни невозможно было поместить в ЖЯР. Но можно было поместить нагретые теплообменники. Правда, они имеют не столь высокую теплоёмкость, поэтому их приходилось чаще перемещать между реакторами.

     

    Кстати, какую цель решает эта идея? Повысить выход энергии с ТВЭЛ? Да, это будет работать. Но мы-то сейчас обсуждаем схемы с максимальной мощностью. Именно они пользуются спросом у игроков на публичных серверах. Или два таких реактора в паре смогу выдать мощность больше, чем два раздельных реактора?

     

     

    Понимаешь, тут в условиях запрета лазуритовых конденсаторов, и на редстоуне тоже кстати, стоит вопрос об в принципе самой возможности получения больше чем 420 eu/t, на обычном уране, как и об большем количестве пережигания стержней в камере реактора за один цикл загрузки стержней. 

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