num_pi
Пользователи-
Публикации
57 -
Зарегистрирован
-
Посещение
-
Победитель дней
7
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя num_pi
-
Я может плохо смотрел, но по своему опыту скажу что если избавится от json и на клиенты слать сразу lua table, можно увеличить скорость обработки данных в разы.
- 17 ответов
-
- 2
-
-
- сеть
- opencomputers
-
(и ещё 2 )
Теги:
-
Поясню за хейт по поводу орфографии, говорю лично за себя, но предполагаю что возможно и у других участников форума, текст с явными и грубыми орфографическими ошибками вызывает такие же чувства и эмоции. Дело всё в том, что такой текст, трудно читать, мы как привыкшие с детства видеть текста написанные грамотно, такие текста для нас легко читаются, а когда мы встречаемся с текстом написанным без грамотно, с ошибками, мы вынужденны напрягать своё внимание, для чтения, а напрягаться очень лень, трудно, и вызывает жжение в области ниже копчика. Посему, рекомендую автору, если он не может самостоятельно выявить в своём тексте орфографические ошибки, хотя бы пользоваться word или онлайн-сервисом по типу https://rustxt.ru/check-spelling
-
Тут нельзя говорить про такое
-
Это было бы круто, и очень удобно, мне проще скачать jar-ник, который сам всё подтянет и играть, чем выкачивать отдельно моды, и что-то ешё ставить, думаю и новичкам было бы так же проще, если бы ещё была авторизация в лаунчере и сайт, то совсем отлично. Может можно с администрацией сайта договорится, по поводу сайта, на поддомене, всё равно, сервер как я понял computercraft - ориентированный.
-
А попробовав разные варианты, с топикастером, пришли к выводу об не рентабельности любых схем, кроме как на лазурите, увы...
- 96 ответов
-
- opencomputers
- reactor
-
(и ещё 1 )
Теги:
-
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
-
Ну на сколько мне известно, асинхронности в компах нету
-
openperipheral вот где ответ, ну если этот мод конечно есть в сборке, с его помощью можно у не стандартных предметов узнать nbt_hash и уже по нему ориентироваться, но можно ли его api использовать для робота в автокрафте, это вопрос, это да, можно проверить
-
Каким образом ты собрался поставлять промежуточные компоненты для крафта?
-
Всё что будет доступно из под eeprom, https://ocdoc.cil.li/tutorial:custom_oses . В том числе и компоненты робота, если ты их объявишь.
-
Как наиграюсь, думаю солью в паблик.
-
В наличии)
-
math.random(48, 57). Число 48 это unicode символ, а именно число 0, соответственно для числа 57, почти тоже самое, это число 9. Получается что я, говорю math.random, дай мне рандомный unicode char, с 48 по 57, потом делаю конкатенацию в for. Главное что работает, и делает именно то что просил человек.
-
В том что оно работает =) Что конкретно тут сложно? Попробуй убрать 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.
- 96 ответов
-
- opencomputers
- reactor
-
(и ещё 1 )
Теги:
-
Если я всё правильно посчитал, то при такой схеме, если использовать стержни на 10к, при полной отработке цикла реактора, получается, 25 материи, при условии что у нас на сервере на 1 материю затрачивается 60кк энергии, что не густо и печально, на само поддержание реактора даже не хватит.
- 96 ответов
-
- opencomputers
- reactor
-
(и ещё 1 )
Теги:
-
Держи готовую функцию. 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
-
В своём магазе я сделал всё на голых вызовах и обращениях к gpu. На прямую.
-
Там где играю я, плоскость формирования запрещена, а ставить реакторы может только игрок. Как мне кажется, создатель темы играет там же.
- 96 ответов
-
- opencomputers
- reactor
-
(и ещё 1 )
Теги:
-
Cама схема считаю не очень стабильна, тем более в условиях низкого тпс-а. Позволяет получить 1620 eu/t, время горения теплоотводов до +- 8000 dmg, 12.6 сек. Но стабильное время это 10 секунд. Но я бы спроектировал бы, и остановился бы на 1000 eu/t +-.
- 96 ответов
-
- opencomputers
- reactor
-
(и ещё 1 )
Теги:
-
Понимаешь, тут в условиях запрета лазуритовых конденсаторов, и на редстоуне тоже кстати, стоит вопрос об в принципе самой возможности получения больше чем 420 eu/t, на обычном уране, как и об большем количестве пережигания стержней в камере реактора за один цикл загрузки стержней.
- 96 ответов
-
- opencomputers
- reactor
-
(и ещё 1 )
Теги:
