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

num_pi

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

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

  • Посещение

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

    7

Все публикации пользователя num_pi

  1. Я может плохо смотрел, но по своему опыту скажу что если избавится от json и на клиенты слать сразу lua table, можно увеличить скорость обработки данных в разы.
  2. Поясню за хейт по поводу орфографии, говорю лично за себя, но предполагаю что возможно и у других участников форума, текст с явными и грубыми орфографическими ошибками вызывает такие же чувства и эмоции. Дело всё в том, что такой текст, трудно читать, мы как привыкшие с детства видеть текста написанные грамотно, такие текста для нас легко читаются, а когда мы встречаемся с текстом написанным без грамотно, с ошибками, мы вынужденны напрягать своё внимание, для чтения, а напрягаться очень лень, трудно, и вызывает жжение в области ниже копчика. Посему, рекомендую автору, если он не может самостоятельно выявить в своём тексте орфографические ошибки, хотя бы пользоваться word или онлайн-сервисом по типу https://rustxt.ru/check-spelling
  3. Тут нельзя говорить про такое
  4. Какие моды доступны? ae2, openperipheral? Какой сервер и проект?
  5. Это было бы круто, и очень удобно, мне проще скачать jar-ник, который сам всё подтянет и играть, чем выкачивать отдельно моды, и что-то ешё ставить, думаю и новичкам было бы так же проще, если бы ещё была авторизация в лаунчере и сайт, то совсем отлично. Может можно с администрацией сайта договорится, по поводу сайта, на поддомене, всё равно, сервер как я понял computercraft - ориентированный.
  6. Эта программа написана под мод openPeripheral, соответственно и функции для заказа крафта взяты от туда, причина проста, это - nbt_nash. И узнать об статусе крафта, не представляется возможным, я бы сам хотел бы знать статус крафта, но увы и ах..
  7. А попробовав разные варианты, с топикастером, пришли к выводу об не рентабельности любых схем, кроме как на лазурите, увы...
  8. Сама прога сыроватая, множно полностью переделать, но мне лень
  9. 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
  10. Ну на сколько мне известно, асинхронности в компах нету
  11. openperipheral вот где ответ, ну если этот мод конечно есть в сборке, с его помощью можно у не стандартных предметов узнать nbt_hash и уже по нему ориентироваться, но можно ли его api использовать для робота в автокрафте, это вопрос, это да, можно проверить
  12. Каким образом ты собрался поставлять промежуточные компоненты для крафта?
  13. Всё что будет доступно из под eeprom, https://ocdoc.cil.li/tutorial:custom_oses . В том числе и компоненты робота, если ты их объявишь.
  14. Ну что я могу сказать, реализовал задуманный функционал самостоятельно. Тему можно закрывать.
  15. math.random(48, 57). Число 48 это unicode символ, а именно число 0, соответственно для числа 57, почти тоже самое, это число 9. Получается что я, говорю math.random, дай мне рандомный unicode char, с 48 по 57, потом делаю конкатенацию в for. Главное что работает, и делает именно то что просил человек.
  16. В том что оно работает =) Что конкретно тут сложно? Попробуй убрать string.char, посмотри что из этого получится.
  17. Из расчета, 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). Дальше можно не считать, схема мусор . Почему? Хорошо если тут на 5 циклов, сжигания охл. стержней 10к хватит, с той материей что реактор отдаст за ВСЮ свою работу, в плоть до выпадения стержней в обедненные стержни mox.
  18. Если я всё правильно посчитал, то при такой схеме, если использовать стержни на 10к, при полной отработке цикла реактора, получается, 25 материи, при условии что у нас на сервере на 1 материю затрачивается 60кк энергии, что не густо и печально, на само поддержание реактора даже не хватит.
  19. Держи готовую функцию. 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
  20. В своём магазе я сделал всё на голых вызовах и обращениях к gpu. На прямую.
  21. Там где играю я, плоскость формирования запрещена, а ставить реакторы может только игрок. Как мне кажется, создатель темы играет там же.
  22. Cама схема считаю не очень стабильна, тем более в условиях низкого тпс-а. Позволяет получить 1620 eu/t, время горения теплоотводов до +- 8000 dmg, 12.6 сек. Но стабильное время это 10 секунд. Но я бы спроектировал бы, и остановился бы на 1000 eu/t +-.
  23. Понимаешь, тут в условиях запрета лазуритовых конденсаторов, и на редстоуне тоже кстати, стоит вопрос об в принципе самой возможности получения больше чем 420 eu/t, на обычном уране, как и об большем количестве пережигания стержней в камере реактора за один цикл загрузки стержней.
×
×
  • Создать...