HeroBrine1st
Пользователи-
Публикации
134 -
Зарегистрирован
-
Посещение
-
Победитель дней
21
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя HeroBrine1st
-
Нельзя отправить разом несколько значений, как в component.modem, так же любая программа, которая создана для component.modem, при бездумом переписывании modem на zn, перестает работать, и для ее работы надо использовать костыли через serialization.
- 46 ответов
-
- OpenComputers
- ретранслятор
- (и ещё 3 )
-
легче создать proxy диска компьютера, который сам будет обращаться к другому компу и получать с него данные, а потом возвращать. потом через fs.mount смонтировать, или работать напрямую через прокси
- 29 ответов
-
- TSR
- pullSignal
-
(и ещё 1 )
Теги:
-
биос(программа) завершил(а) работу и компьютеру (дрону) просто нечего делать. насчет того что у тебя дрон я уже знаю
-
Поскольку в нашем 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 папки. Если вы укажете не то значение, либо укажете путь не к папке, а к файлу, вылетит ошибка (специально сделал с защитой от дурака) Нельзя монтировать папки с других файловых систем, иначе вы будете работать не с той папкой, с которой хотели. Обходится монтированием нужной системы в корень с последующей монтировкой папки, а затем все возращаете назад.
-
Таблица не воссоздаётся из строки
HeroBrine1st ответил в вопрос HeroBrine1st в Разные (отсортировать)
@Tororo, короче надо через string.gsub убрать все переносы и добавить в начале через пробел return, затем полученную строку пропустить через load и pcall. много времени прошло, я уже и забыл про эту тему) -
При запуске скачивает файл, добавляет его в таблицу типа {"я еще так думаю"} (да, текст в таблице - уже не пример, а сама таблица - да) https://github.com/HeroBrine1st/OpenComputers/blob/master/MCBios/applications.txt - сама таблица. т.к. загрузка идет как {функция}, то создавать единую таблицу, объединяющую все, в файле не нужно. Код ошибки на скриншоте. дублируются еще эти темы, блин...
