hohserg
-
Публикации
433 -
Зарегистрирован
-
Посещение
-
Победитель дней
37
Сообщения, опубликованные пользователем hohserg
-
-
Обновлено: добавлена возможно конвертировать массив в строку и назад
-
Что это
Маленькая библиотека для работа с последовательностями бит
Как юзать
local bit_array = require("bit_array") --Создаем массив битов разметом 100, заполненный единицами local a = bit_array.create{sizeInBits = 100, fill = 1} --можно еще так и так local a = bit_array.create(100, 1) local a = bit_array.create(100, true) --Создаем массив битов разметом 100, заполненный нулями local a = bit_array.create{sizeInBits = 100, fill = 0} --можно еще так и так local a = bit_array.create{sizeInBits = 100} local a = bit_array.create(100) local a = bit_array.create(100, false) --Устанавливаем первый бит на 1 a:set(1, true) --можно еще так a:set(1, 1) --Устанавливаем первый бит на 0 a:set(1, false) --можно еще так a:set(1, 0) --Получаем значение второго бита local second = a:get(2) --Схватываем ошибку выхода за пределы массива a:set(101, true) a:get(101) --Получаем количество единичных битов local ones = a:countOf(true) --можно еще так a:countOf(1) --Получаем количество нулевых битов local zeros = a:countOf(false) --можно еще так a:countOf(0) --Устанавливаем биты одного массива другому начиная с индекса 3 local b = bit_array.create(10, 1) a:setArray(3, b) --Создаем новый массив, который содержит биты из массива а, с первого по девятый local c = bit_array.createBasedOn{array = a, fromIndex = 1, toIndex = 9} --Преобразовываем в строку local stringRepr = a:toString() --Создаем из строки local b = bit_array.fromString(stringRepr)
Исходный код
https://github.com/hohserg1/OpenComputersPrograms/blob/master/simple_libs/bit_array.lua
Команда для скачивания
wget https://raw.githubusercontent.com/hohserg1/OpenComputersPrograms/master/simple_libs/bit_array.lua /home/lib/bit_array.lua
-
2
-
-
А можно сделать фичу, чтобы оценивало необходимое место на диске и если влезает, то записывало расшифрованный файл в tmp? И где-нить в уголке показывало иконкой, куда был сохранен файл, чтобы понимать, насколько безопасно текущее использование
-
Можно в пост добавь ссыль нагитхаб-репу?
-
Представляю вам сервер, специализированный для игры с OpenComputers: ProjectOC3
Особенности:
- Возможность работать со своими HDD и дискетами через FTP
- Куча аддонов для ОС
- Крафт чанклоадеров выключен, но в кит-старте есть 10 шт :DD
- Весь контент из ОС разрешен, даже дроны
- Инструменты ломаются в руках робота медленней в 100 раз
- В дискорде сервера иногда(я еще ни разу не застал) проводятся конкурсы(джемы)
- Версия майна 1.12.2
- Лицензионный
Модпак:
Скрытый текст-
OpenComputers и аддоны:
- Computronics
- OCDevices
- OCSensors
- OpenGlasses
- OpenLights
- OpenModularTurrets
- OpenScreens
- OpenPrinter
- OpenPython
- OpenSecurity
- OpenFM
- Zettaindustries
- Alchemistry
- AliensVsPredator
- AppliedEnergistics2
- ArchitectureCraft
- AE2Stuff
- BetterFPS
- BiomesOPlenty
- ChestTransporter
- Chisel
- ChiselAndBits
- Clipboard
- Comforts
- Controlling
- CompressedBlocks
- DoggyTalents
- EnchantingPlus
- EnderIO
- EnderIO Conduits
- EnderStorage
- FastLeafDecay
- FTBUtilities
- Gravestone
- IronChest
- IronJetpacks
- LittleTiles
- MalisisDoors
- MmmMmmMmmMmm
- ModernLights
- Morpheus
- Morph-o-Tool
- MouseTweaks
- MultiHotbar
- NuclearCraft
- PneumaticCraft:Repressurized
- ProjectRedBase
- ProjectRedCompat
- ProjectRedFabrication
- ProjectRedIntegration
- ProjectRedLighting
- Railcraft
- RetroComputers
- RSGauges
- SimpleFluidTanks
- ThermalExpansion
- ThermalDynamics
- Thut'sElevators
- Tinkers'Construct
- Tinkers'ToolLeveling
- VeinMiner
- WirelessCraftingTerminal
Клиентские:
- ChunkAnimator
- Jei
- SoundFilters
- TheOneProbe
- InventoryTweaks
Дискорд: https://discord.gg/v927kk7
Модпак на технике: https://www.technicpack.net/modpack/projectoc-reboot.1745971
Тред на англоязыком форуме: https://oc.cil.li/topic/2604-projectoc-3-oc-focused-suvival-server-with-ftp-disk-access/
-
4
-
1
-
7 часов назад, eu_tomat сказал:Куда возвращать управление? В зависшую программу while true do end?
Туда, куда возвращает управление computer.pullSignal и некоторые методы компонентов
7 часов назад, eu_tomat сказал:злонамеренно зацикленные скрипты.
А можешь привести пример таких скриптов?
-
13 часа назад, eu_tomat сказал:Поэтому меня больше интересует не борьба с TLWY, а вопрос, как сделать механизм TLWY более гибким, чтобы, например, не выключались компы во время загрузки OpenOS, а скрипты с интенсивными вычислениями наоборот бы, блокировались.
Почему механизм защиты от лагливого кода вообще должен вырубать компы
Насколько я понимаю, логика выбрасывания TLWY находится тут: https://github.com/MightyPirates/OpenComputers/blob/master-MC1.7.10/src/main/resources/assets/opencomputers/lua/machine.lua#L45-L54
Почему бы вместо error(tooLongWithoutYielding) не возвращать управление? Таким образом управление будет возвращаться всегда, даже если в выполняющемся коде оно не предусмотрено
-
13 часа назад, ProgramCrafter сказал:а выполняется уже системой (то есть система выполняет роль виртуальной машины Lua).
Имеешь ввиду свою систему? Предлагаешь сделать среду выполнения луа внутри среды выполнения луа?
-
6 часов назад, ProgramCrafter сказал:4. Интерпретировать байткод Lua
Как это может помочь с TLWY?
-
10 часов назад, Bs0Dd сказал:Не совсем. Да, ее можно в теории загрузить с еепром, но вес в 15кб этого не позволит, поэтому она загружается обычным Lua BIOS
Ну т.е. программа не требует какой-то оси, работает с голым железом. Поэтому она уже совместима с HoverHelm
-
16 часов назад, Bs0Dd сказал:Хм, система интересная, но... не хотелось бы прибегать к использованию дополнительных компьютеров, да и в любом случае нужен жесткий диск, просто будет ли он стоять на компьютере-замке или компьютере-сервере, по моему разница невеликая + нужна сетевая карта и комплектующие на компьютер-сервер.
Компьютеров-замков может быть сколько угодно. И любых других компов, выполняющих другие функции тоже может быть сколько угодно на один жесткий диск
~~~
Ох, а программа замка в текущем состоянии для eeprom, верно? Тогда она уже совместима с HoverHelm и конечные пользователи могут запускать ее, не выделяя отдельный жесткий диск для компа-замка
-
Можно использовать HoverHelm в качестве платформы. Там и библиотеки можно будет подключать и физический жесткий диск один на всю систему и при этом не будет ограничение на объем программы и хранимых данных
-
Для начала разберись, как работать с одним компонентом.
local all = component.list("redstone") --its a table with iterator local fisrtAddress = all() --use as iterator local first = component.proxy(fisrtAddress) first.setOutput(...)
Подробнее:
https://minecraft-ru.gamepedia.com/OpenComputers/Component_API
-
У свинки слишком мало хп, чтобы затестить это. Она сразу умирает даже если опускается плавно.
Также если слегка взлететь и сразу же сесть, то урона меньше. Вероятно, урон зависит от времени пребывания в воздухе
-
1
-
-
Имеешь ввиду эту штучку?

Вообще да, у компа может быть много компонентов одного типа и все они будут видны. При помощи component.list("redstone") можно получить список адресов всех компонентов с этим именем
-
36 минут назад, Bs0Dd сказал:При необходимости можно перенастроить программу, нажав на "(c)" в строке копирайта (а вы думали он тут просто так?)
В режиме перенастройки также можно очистить список "отпечатков" доверенных пользователей (система отпечатков работает аналогично таковой в CodeDoors).
А можно эту фичу заблокировать?
-
При любом приземлении на ванильную слизь свинка не получает урона.
Слизь из тинкерса немного продавливается(когда ходишь в ней, то погружаешься примерно на пол блока), кажется, из-за этого свинка может иногда дамажиться, при тестах у меня один раз ударилась, хотя воспроизвести не смог.
-
1
-
-
На форуме было как минимум две программы, которые позволяют летать на свинье, которую несет на поводке дрон. Одна из главных проблем такого метода в приземлении: если свинка ударится о блоки, то умрет от падения.
Обычно для того, чтобы предотвратить это, рекомендуют разбивать воду(или другие нейтральные жидкости) в местах приземления.
Однако жидкости могут быть не очень удобным решением, ибо замедляют движение игрока. В сборках можно найти более удобные блоки, предотвращающие урон от падения.
Например, в версии 1.12 есть блоки слизи. При достаточно точном позиционировании приземления можно использовать минимум один блок слизи на возвышении.
В 1.7.10 можно использовать похожие блоки слизи из TinkersConstuct
-
1
-
-
Какие минимальные системные требования?
-
В какой области должен работать робот? Всего лишь одно дерево?
-
1
-
-
1 час назад, serafim сказал:Рекомендую проголосовать за удалении этой темы как потенциально нежелательной
Рекомендую заархивировать ее как пример потенциально нежелательной
-
1
-
-
Ок, грузи не сразу, а по кускам. Но после каждого чтения куска закрывать файл и сохранять место чтения. Суть в том ,чтобы убрать ограничение на количество клиентов и количество открытых(выглядящих открытыми) файлов
-
1
-
-
14 часа назад, Bs0Dd сказал:На сервере может находиться до 14 человек, но каждый может открыть только по одному файлу.
А почему бы не сделать в этом случае виртуальные файлы с очередью записи на диск?
Типо, если юзер открывает файл для чтения, то он читается полностью и помещается в таблицу, а файл закрывается.
Если юзер открывает файл для записи, то запись идет в таблицу, а при закрытии добавляется в очередь записи на диск.
Плюс еще какие-то условия для соблюдения прозрачности.
-
1
-
1
-
-
Конечно выпусти, поднимешь с полу активность в разделе. Давно никто проги не писал

OCLIDE - IDE для OpenComputers
в За пределами Minecraft
Опубликовано:
Архитектура IDE позволяет легко добавить поддержку других
эмуляторовсред выполнения, например, Оцелота или самого майна. Последнее может быть особо полезно при разработке программ для железа из аддонов