num_pi
-
Публикации
57 -
Зарегистрирован
-
Посещение
-
Победитель дней
7
Сообщения, опубликованные пользователем num_pi
-
-
Поясню за хейт по поводу орфографии, говорю лично за себя, но предполагаю что возможно и у других участников форума, текст с явными и грубыми орфографическими ошибками вызывает такие же чувства и эмоции. Дело всё в том, что такой текст, трудно читать, мы как привыкшие с детства видеть текста написанные грамотно, такие текста для нас легко читаются, а когда мы встречаемся с текстом написанным без грамотно, с ошибками, мы вынужденны напрягать своё внимание, для чтения, а напрягаться очень лень, трудно, и вызывает жжение в области ниже копчика. Посему, рекомендую автору, если он не может самостоятельно выявить в своём тексте орфографические ошибки, хотя бы пользоваться word или онлайн-сервисом по типу https://rustxt.ru/check-spelling
-
4
-
-
Тут нельзя говорить про такое
-
Какие моды доступны? ae2, openperipheral? Какой сервер и проект?
-
В 13.06.2022 в 08:15, Wolframoviy сказал:Доброе утречко, не ожидали меня увидеть? Короче, думаю запилить недолаунчер если время будет, ну и сервер пофиксить по возможности.
Это было бы круто, и очень удобно, мне проще скачать jar-ник, который сам всё подтянет и играть, чем выкачивать отдельно моды, и что-то ешё ставить, думаю и новичкам было бы так же проще, если бы ещё была авторизация в лаунчере и сайт, то совсем отлично. Может можно с администрацией сайта договорится, по поводу сайта, на поддомене, всё равно, сервер как я понял computercraft - ориентированный.
-
В 08.06.2022 в 14:13, Taoshi сказал:Не заметил проверки статуса крафта предмета в АЕ: завершён/нет. Для сложных многоуровневых крафтовдлящихся до нескольки минут она актуальна.
В целом - работает и ладно.
Эта программа написана под мод openPeripheral, соответственно и функции для заказа крафта взяты от туда, причина проста, это - nbt_nash. И узнать об статусе крафта, не представляется возможным, я бы сам хотел бы знать статус крафта, но увы и ах..
-
В 21.02.2022 в 15:24, bes_zensuri1 сказал:Вся суть была в том, что лазурит делали на пчелах и не ходили копать совсем)
А попробовав разные варианты, с топикастером, пришли к выводу об не рентабельности любых схем, кроме как на лазурите, увы...
-
Сама прога сыроватая, множно полностью переделать, но мне лень
-
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
-
-
Ну на сколько мне известно, асинхронности в компах нету
В 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
Ага, и всё это в одном потоке выполняется
-
openperipheral вот где ответ, ну если этот мод конечно есть в сборке, с его помощью можно у не стандартных предметов узнать nbt_hash и уже по нему ориентироваться, но можно ли его api использовать для робота в автокрафте, это вопрос, это да, можно проверить
-
Каким образом ты собрался поставлять промежуточные компоненты для крафта?
-
3
-
-
Всё что будет доступно из под eeprom, https://ocdoc.cil.li/tutorial:custom_oses . В том числе и компоненты робота, если ты их объявишь.
-
Ну что я могу сказать, реализовал задуманный функционал самостоятельно. Тему можно закрывать.
-
В 14.01.2022 в 16:54, hohserg сказал:А публиковать не думаешь? Магаз классно выглядит
Как наиграюсь, думаю солью в паблик.
-
1
-
-
23 минуты назад, hohserg сказал:А код имеется?
В наличии)
-
Только что, eu_tomat сказал:Конкретно тут math.random вызывается 8 раз. Разве не достаточно одного раза?
math.random(48, 57). Число 48 это unicode символ, а именно число 0, соответственно для числа 57, почти тоже самое, это число 9.
Получается что я, говорю math.random, дай мне рандомный unicode char, с 48 по 57, потом делаю конкатенацию в for. Главное что работает, и делает именно то что просил человек.
-
11 минуту назад, eu_tomat сказал:А зачем так сложно? В чём преимущество этого решения?
В том что оно работает =) Что конкретно тут сложно? Попробуй убрать string.char, посмотри что из этого получится.
-
Из расчета, 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.
-
-
Держи готовую функцию. 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
-
-
Там где играю я, плоскость формирования запрещена, а ставить реакторы может только игрок. Как мне кажется, создатель темы играет там же.
-
9 часов назад, eu_tomat сказал:А где она есть, и где можно посмотреть её?
Cама схема считаю не очень стабильна, тем более в условиях низкого тпс-а. Позволяет получить 1620 eu/t, время горения теплоотводов до +- 8000 dmg, 12.6 сек. Но стабильное время это 10 секунд. Но я бы спроектировал бы, и остановился бы на 1000 eu/t +-.
-
9 часов назад, eu_tomat сказал:Это в какой версии так работает? Я года два назад проверял под 1.7.10 в industrialcraft-2-2.2.827-experimental.jar. Именно нагретые стержни невозможно было поместить в ЖЯР. Но можно было поместить нагретые теплообменники. Правда, они имеют не столь высокую теплоёмкость, поэтому их приходилось чаще перемещать между реакторами.
Кстати, какую цель решает эта идея? Повысить выход энергии с ТВЭЛ? Да, это будет работать. Но мы-то сейчас обсуждаем схемы с максимальной мощностью. Именно они пользуются спросом у игроков на публичных серверах. Или два таких реактора в паре смогу выдать мощность больше, чем два раздельных реактора?
Понимаешь, тут в условиях запрета лазуритовых конденсаторов, и на редстоуне тоже кстати, стоит вопрос об в принципе самой возможности получения больше чем 420 eu/t, на обычном уране, как и об большем количестве пережигания стержней в камере реактора за один цикл загрузки стержней.







RemoteOS - C# мост
в За пределами Minecraft
Опубликовано:
Я может плохо смотрел, но по своему опыту скажу что если избавится от json и на клиенты слать сразу lua table, можно увеличить скорость обработки данных в разы.