num_pi
-
Публикации
57 -
Зарегистрирован
-
Посещение
-
Победитель дней
7
Сообщения, опубликованные пользователем num_pi
-
-
У меня есть программа, но там нет вывода на очки энергии с реактора, молекулярки, но дописать это совсем не сложно. Вот держи.
local component = require("component") local event = require("event") local keyboard = require("keyboard") local glasses = component.glasses local fs = require "filesystem" local timeConstant = 0.5 --время задержки для измерения тпс local uuid = { {["uuid_radar"] = "bf7955f9-b734-4b0d-9372-d5c034fabacf", ["name"] = "radar_home"} } local whitelist = { --Белый список, горят зеленым "user1", "user2" } local blacklist = { --Не выводим на очки совсем, те кто в ЧОРТном списке. "user3" } local function time() local f = io.open("/tmp/timeFile", "w") f:write("test") f:close() return (fs.lastModified("/tmp/timeFile")) end function addinformation() realTimeOld = time() os.sleep(timeConstant) realTimeNew = time() realTimeDiff = realTimeNew - realTimeOld TPS = 20000 * timeConstant / realTimeDiff tps_widget = glasses.addText2D() tps_widget.addTranslation(100, 14, 0) tps_widget.setText("TPS: ".. string.format("%.3f", TPS)) tps_widget.addColor(255,0,0,1) tps_widget.setFontSize(18) end function SaveListPlayers(Listplayers, TableListNamePlayers) TableListNamePlayers = Listplayers end function players() local location = {"Сейчас дома:"} for s = 1, #uuid do local radar = component.proxy(uuid[s].uuid_radar) local Listplayers = radar.getPlayers() print("ListplayersCount: " ..#Listplayers) print("uuidAmount: " ..#uuid) SaveListPlayers(Listplayers,uuid[s]) if Listplayers[1].name ~= nil then print("PlayersAvalabile: " ..Listplayers[1].name) function keyuuid() sskeyuuid = uuid[s].name.getID() end pcall(keyuuid) print(sskeyuuid) if sskeyuuid == nil then WidgetnameByNAME = uuid[s].name WidgetnameByNAME = glasses.addText2D() WidgetnameByNAME.addTranslation(x + 6,height, 0) WidgetnameByNAME.setText(location[s]) WidgetnameByNAME.addColor(255,215,0,1) WidgetnameByNAME.setFontSize(16) end for i = 1, #Listplayers do print("Listplayers[i].name: "..Listplayers[i].name) WidgetnameByNickName = Listplayers[i].name print("WidgetnameByNickName: " ..WidgetnameByNickName) WidgetnameByNickName = glasses.addText2D() WidgetnameByNickName.addTranslation(x + 10, 12 * i + height, 0) WidgetnameByNickName.addColor(255,0,0,0.4) for p = 1, #whitelist do if Listplayers[i].name == whitelist[p] then WidgetnameByNickName.addColor(0,255,0,0.85) plr = Listplayers[i].name WidgetnameByNickName.setText(plr) WidgetnameByNickName.setFontSize(12) end end for k = 1, #blacklist do if Listplayers[i].name == blacklist[k] then Listplayers[i].name.removeWidget() end end end height = height + #Listplayers * 10 + 10 end end end function main() if keyboard.isKeyDown(keyboard.keys.w) and keyboard.isControlDown() then print("Exiting...") os.exit() end offset = 17 height = 30 x, y = 1, 1 players() addinformation() end while true do pcall(main) os.sleep(6) glasses.removeAll() end
-
14 часа назад, eu_tomat сказал:У меня несколько замечаний по этому заказу.
Звучит как "идеальная программа". Думаю, экстремальные оптимизации лучше выполнять коллективно. Один программист может либо не знать о нюансах быстродействия в той или иной ситуации, или забыть в момент написания. А тут кроме OC накладываются ещё и нюансы AE.
А можно взглянуть на код программы, которую забраковали админы? Может быть, её уже и не написать лучше. Так тоже бывает: ну, будет программа процентов на 10 менее прожорливой, админы её всё равно не разрешат использовать.
В этом месте сразу приходит идея: не надо каждый раз перепроверять все 500 вещей в базе, а все крафты выполнять централизованно на основе OC. Тогда OC будет знать о всех крафтах и актуальных остатках предметов. А если игрок вручную работает с МЭ-системой, то пусть по окончании операции нажимает плиту, например. Тогда не потребуется выполнять ежесекундно по 20 запросов и выполнять по 100500 сравнений. Это основа всех оптимизаций: выполнять вычисления только тогда, когда это необходимо.
А что не так с метатаблицами кроме неявного вызова функций?
Хорошо, вот держи то что я использовал. https://oc.cil.li/topic/1714-ae2-stock-auto-crafting-v13-w-installer/, https://github.com/KaseiFR/ae2-manager
-
Писать без использования мета таблиц! Просто я их не понимаю, а разбираться нет времени
-
Описание: Нужна программа для Авто поддержание заданного типа вещей, заданного количества в мэ системе.
Проблема заключается в том, что существующие программы, для прекрафта вещей в мэ систему, оказывают большую нагрузку на сервер, minecraft, сильно проседает тпс, из-за этого администрация сервера, требует убрать программу, или же без моего участия сетает в 0, компьютер.
Сборка майна версии 1.7.10
Какие моды есть: OC версии 1.6.2, AE2, openPeripheral, и д.р
Требования к ПО: Версия мода, 1.6.2. Наименьшая нагрузка на сервер minecraft, которая только возможна. Стабильная и быстрая работа программы, когда вещей в базе будет 500 и более. Отсутствие GUI у приложения, нужен только лог, лог должен записываться локально, в файл, и разбиваться на вложенные папки, такого вида: год -> месяц -> текущий день.log(01.log). В логе должна содержатся данная информация: какой предмет крафтился, какое его количество, и завершилась ли операция успешно или провалилась. Добавление и удаление вещей из очереди пре-крафта, будет осуществляться мною из собственной веб админ панели, соответственно как вариант хранения списка вещей для пре-крафта, я предлагаю таблицу, локально сохраненную в файл на диске или можете выбрать свой собственный способ и метод для хранения данных, главное условие, нужен будет api для удаления, изменения, и добавления вещей в список вещей пре-крафта, что бы у меня была возможность дописать свой собственный модуль для взаимодействия клиента в minecraft, с админ панелью, используя ваш код.
Писать без использования мета таблиц!
Писать можете как и с использованием openos так и без нее, на голых компонентах, со своим собственным загрузчиком для eeprom, естественно второе для меня предпочтительней.

Авто поддержание заданного типа вещей, заданного количества в мэ системе.
в Новые заказы
Опубликовано:
Очень плохо.