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

HeroBrine1st

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

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

  • Посещение

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

    21

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

  1. Нельзя отправить разом несколько значений, как в component.modem, так же любая программа, которая создана для component.modem, при бездумом переписывании modem на zn, перестает работать, и для ее работы надо использовать костыли через serialization.
  2. легче создать proxy диска компьютера, который сам будет обращаться к другому компу и получать с него данные, а потом возвращать. потом через fs.mount смонтировать, или работать напрямую через прокси
  3. HeroBrine1st

    Запускаем дронов!

    биос(программа) завершил(а) работу и компьютеру (дрону) просто нечего делать. насчет того что у тебя дрон я уже знаю
  4. она загружается после загрузки package. к тому же MultiROM на андроид так же запускается после ядра. P.S. либа filesystem работает через прокси систем, и если ею изменить что-либо в R/O прокси, то выпадет ошибка. при этом proxy не исчезнет
  5. монтирование отдельных файловых систем в R/O, так же будет возможно сделать multiboot с одного raid. применений множество, надо их лишь найти.
  6. Поскольку в нашем opencomputers нет виртуальных папок, я решил их написать. Но кроме этого я сделал возможность выбирать, с какими правами монтировать папку - Read/Only или Read/Write. Поскольку я успешно потерял свой pastebin, я кидаю вам текстом код local filesystem = require("filesystem") local fs = require("filesystem") local component = require("component") local computer = require("computer") local mount = {} function mount.mountFolder(otkyda,kyda,write) --я в курсе, костыли if not type(otkyda) == "string" then error("Bad argument #1 (String expected, got " .. type(otkyda) .. ")") end if not type(kyda) == "string" then error("Bad argument #2 (String expected, got " .. type(kyda) .. ")") end if not type(write) == "boolean" then error("Bad argument #3 (Boolean expected, got " .. type(write) .. ")") end if not filesystem.isDirectory(otkyda) then error("Bad path (Directory expected, got file)") end local rootFS = fs.get(otkyda) local proxy = {} proxy.convertPath = function(path) return fs.concat(otkyda,path) end proxy.address = "VirtualFS" .. tostring(math.random(0x000000,0xFFFFFF)) proxy.type = "filesystem" proxy.label = proxy.address proxy.spaceUsed = fs.get(otkyda).spaceUsed proxy.spaceTotal = fs.get(otkyda).spaceTotal proxy.makeDirectory = function(dir) if write then fs.get(otkyda).makeDirectory(proxy.convertPath(dir)) else error("Permission Denied") end end proxy.isReadOnly = function() return not write end proxy.rename = function(from,to) if write then fs.get(otkyda).rename(proxy.convertPath(from),proxy.convertPath(to)) else error("Permission Denied") end end proxy.remove = function(chto) if write then fs.get(otkyda).remove(proxy.convertPath(chto)) else error("Permission Denied") end end proxy.setLabel = function(label) if write then proxy.label = label end end proxy.size = function(path) return fs.get(otkyda).size(proxy.convertPath(path)) end proxy.getLabel = function() return proxy.label end proxy.exists = function(path) return rootFS.exists(proxy.convertPath(path)) end proxy.open = function(path,mode) if write then return rootFS.open(proxy.convertPath(path),mode) else if mode == "r" then return rootFS.open(proxy.convertPath(path),"r") else error("Permission Denied") end end end proxy.read = function(h, ...) return rootFS.read(h,...) end proxy.close = function(h) return rootFS.close(h) end proxy.write = function(h, ...) if write then return rootFS.write(h,...) else error("Permission Denied") end end proxy.seek = function(h, ...) return rootFS.seek(h, ...) end proxy.isDirectory = function(path) return rootFS.isDirectory(proxy.convertPath(path)) end proxy.list = function(path) return rootFS.list(proxy.convertPath(path)) end proxy.lastModified = function(path) return rootFS.lastModified(proxy.convertPath(path)) end fs.umount(kyda) fs.mount(proxy,kyda) return proxy end return mount Метод только один: mountFolder(otkyda: string,kyda: string,write: boolean): proxy otkyda - откуда будем монтировать папку kyda - куда будем монтировать папку write - если true, то в папку можно записывать данные. Иначе - ошибка при записи/изменении Permission Denied функция возращает proxy папки. Если вы укажете не то значение, либо укажете путь не к папке, а к файлу, вылетит ошибка (специально сделал с защитой от дурака) Нельзя монтировать папки с других файловых систем, иначе вы будете работать не с той папкой, с которой хотели. Обходится монтированием нужной системы в корень с последующей монтировкой папки, а затем все возращаете назад.
  7. @Tororo, короче надо через string.gsub убрать все переносы и добавить в начале через пробел return, затем полученную строку пропустить через load и pcall. много времени прошло, я уже и забыл про эту тему)
  8. При запуске скачивает файл, добавляет его в таблицу типа {"я еще так думаю"} (да, текст в таблице - уже не пример, а сама таблица - да) https://github.com/HeroBrine1st/OpenComputers/blob/master/MCBios/applications.txt - сама таблица. т.к. загрузка идет как {функция}, то создавать единую таблицу, объединяющую все, в файле не нужно. Код ошибки на скриншоте. дублируются еще эти темы, блин...
×
×
  • Создать...