ProgramCrafter
-
Публикации
245 -
Зарегистрирован
-
Посещение
-
Победитель дней
41
Сообщения, опубликованные пользователем ProgramCrafter
-
-
Вот, видимо, то, что надо: https://github.com/hohserg1/HoverHelm/blob/master/server/home/hoverhelm/update-or-repair.lua
(Как раз в той теме нашлось.)
-
1
-
-
6 часов назад, rootmaster сказал:чее какого моего мода?
Ну и вот этого:
6 часов назад, rootmaster сказал:если файл пренедлежит аддону
-
В 15.01.2022 в 10:06, Taoshi сказал:гибридные схемы
А гибридные схемы - это про несколько реакторов с разными схемами или про совместное использование урана и МОХ?
И, кстати, МОХ учитывает соседство с ураном?
-
15 часов назад, eu_tomat сказал:реакторную схему можно выложить одним транспозером всего за один такт
А зачем тогда сносить реактор? Можно же просто транспозером убрать все ТВЭЛы.
Если надо избавиться от тепла - достать ТВЭЛы, снести, поставить, разложить схему.
P.S. Пока писал, понял. А нельзя перенести нагретые теплоотводы в жидкостный реактор и получить от их охлаждения ещё больше энергии?
-
2 часа назад, vx13 сказал:силы сигнала хватило
Так силу сигнала и уменьшить ведь можно (команда setStrength у беспроводной карты)
-
2 часа назад, Disc2 сказал:добавить каскадную генерацию
Потому максимальная дальность у сетевой карты и выставлена в 400 блоков. Если вокруг и источника, и приёмника сгенерировано по 13 чанков, между ними гарантированно (или почти гарантированно) не будет новых чанков.
-
2 часа назад, eu_tomat сказал:А как это подтвердить
Экспериментально - сложно сказать, но код такой точно есть:
Скрытый текстdef computeReachableFrom(endpoint: WirelessEndpoint, strength: Double) = { dimensions.get(dimension(endpoint)) match { case Some(tree) if strength > 0 => val range = strength + 1 tree.query(offset(endpoint, -range), offset(endpoint, range)). filter(_ != endpoint). map(zipWithSquaredDistance(endpoint)). filter(_._2 <= range * range). map { case (c, distance) => (c, Math.sqrt(distance)) } filter isUnobstructed(endpoint, strength) map(_._1) case _ => Iterable.empty[WirelessEndpoint] } }Так что надо изучать, как ведёт себя функция isUnobstructed.
-
1
-
1
-
-
1. Опечатка небольшая в 92 и 102 строках - reqire вместо require;
2. Прикольный кэш
os.time() точно возвращает то, что надо?
Если нет, можно использовать такой же lastModified, но для какого-нибудь временного файла.
-
1
-
-
В 12.12.2021 в 13:29, Belzebub сказал:странно что git юзает такую древность
О смене хешей вроде в 2017 году задумались. Но не могу понять, сделали ли уже, чтобы можно было нормально работать с SHA-256.
Может быть, сработает вот этот фокус с репозиторием (но это не точно):
git convert-repo --to-hash=sha-256 --frobnicate-blobs --climb-subtrees \ --liability-waiver=none --use-shovels --carbon-offsets -
В 23.10.2021 в 01:45, Bumer_32 сказал:что бы на роботе алмазы фармить?
Чтобы на роботе нечто вроде реального биткоина (Duino-Coin какой-то, видимо) майнить. Чисто ради фана.
-
Насколько я понял из кода:
15 часов назад, Qwe сказал:как его в него конвертировать
Надо скомпилировать файл ice.c и запустить программу с ключом -i <путь к исходному видео>.
15 часов назад, Qwe сказал:видео нужно на кассету записать
На кассету вроде записывается звук (в формате DFPWM). Команда обычная - tape write <файл>.
Видео остаётся на диске.
Чтобы запустить воспроизведение, надо запустить ice-player.lua <путь к видео>.ice.
(Могу ошибаться, не проверял).
-
1
-
-
12 часа назад, ECS сказал:опенкомповские диски прям сильно лимитированы по I/O операциям
Надо бы ещё проверить, как ведут себя кассеты из аддонов, особенно самая большая.
(Если кому-то понадобится ФС, поддерживающая кучу файлов, для кассет - можете меня тыкать, у меня осталось немного доработать.)
-
1
-
-
Где-то год-полтора тому назад я увидел список модов, которые планировалось добавить на TechnoCraft. Моё внимание особенно привлекли ThaumCraft (с аддонами, конечно) и EnderIO - два мода, с которыми я не был знаком.
Я стал изучать таум, и обнаружил там интересные вещи - например, големы, магический огонь в склянках (кстати, я двумя видами огней почти полностью сжёг свой мир и уронил ТПС до 1), жезл с набалдашником на телепортацию и подобные вещи. До EnderIO у меня, к сожалению, не дошли руки.
Сейчас меня интересует вот что: какие из модов эффективнее использовать для чего? Я догадываюсь, что большая часть игроков изучает либо технические, либо магические моды, но обычно не все сразу. В то же время огонь Ordo из таума может с некоторой вероятностью переплавить руду эффективнее, чем дробилка, рудомывка и центрифуга из IC2.
Предлагаю объединиться и обсудить, какой вариант лучше использовать для какого дела (список проблем ниже).
Добыча ресурсов
Добыча руды с камнем. Доступные варианты:
- геомайнер (OC)
- рекурсивный копатель (OC)
- копатель с буром 3x3 (OC+IC2)
- копатель с лазером (OC+IC2)
- продвинутая буровая (IC2)
- репликатор (IC2)
- какое-то сырьё и тигель (Thaumcraft)
Добыча песка, земли и т.п.:
- копатель с простой лопатой (OC)
- копатель с буром 3x3 (OC+IC2)
- копатель с лазером (OC+IC2)
- големы (Thaumcraft)
- репликатор (IC2)
- какое-то сырьё и тигель (Thaumcraft)
Добыча дерева:
- робот с топором (OC)
- робот с топором из таума, рубит дерево с одного раза (OC+TC)
- робот с лазером (OC+IC2)
- големы (Thaumcraft)
- репликатор (IC2)
- автоферма (Forestry)
Пчеловодство (Forestry):
- пасека, управляемая компьютерами (OC)
- просто шины импорта/экспорта (AE2)
* Целью пчеловодства может являться выведение конкретного вида пчёл или получение пчёл с нужным эффектом (выдача опыта/отравление всех вокруг/...)
Фермерство:
- использование деревенских фермеров и редстоуна
- фермы на дронах (OC)
- фермы на роботах (OC)
- жёрдочки, автоферма (IC2)
- автоферма (Forestry)
- репликатор (IC2)
- что-то и тигель (Thaumcraft)
Хранение ресурсов
Тут, думаю, сундучно-транспозерные хранилища (OC+AE2+IronChests) точно побеждают.
Единственный вопрос в скорости.
(Вопрос знатокам AE2 - с какой скоростью работает шина экспорта? Самому искать лень.)
Передача
Передача предметов:
- ванильная железная дорога
- магические зеркала (Thaumcraft)
- тессеракт (аддоны к OC)
- дроны-транспортники (OC)
- фейковые игроки (подключение OpenComputers к серверу как игрока).
Передача мобов:
- железная дорога
- дроны-транспортники (OC)
- захват души моба (EnderIO)
Передача информации между мирами и удалёнными друг от друга областями:
- Stem или другой интернет-мост (OC)
- кассеты (OC)
Обработка ресурсов
Переплавка руд:
- обычная печь
- железная/электрическая печь (IC2)
- дробилка, рудомывка и центрифуга (IC2)
- огонь Ordo (Thaumcraft)
- тигель, алхимические фокусы (Thaumcraft)
Строительство
- поршневые системы
- роботы (OC)
- дроны (OC)
Если я пойму, что в майне есть ещё возможности, оптимизируемые разными модами по-разному, я добавлю их в статью.
Дельные предложения:
- пока нет таких)
-
1
-
-
10 часов назад, eu_tomat сказал:Тогда почему эта тема находится в разделе "Программы"? Чем не устраивают разделы "Идеи" или "Беседка"?
Так, понял, кажется, код придётся выкладывать...
Код
https://pastebin.com/gj1Wa3eZ. Пока со сжатием не работает - т.е. поддерживает только блоки α.
Как строится блок хранилища
В центре размещается адаптер, над ним транспозер; вокруг адаптера кольцом размещаются ещё восемь транспозеров.
После этого вокруг каждого транспозера ставятся сундуки:
На каждый из 8 транспозеров в кольце, начиная с северо-западного, надо привязать МФУ. Затем МФУ надо сложить в этом порядке в деревянный сундук.
После этого компьютер (от которого идёт кабель к центральному адаптеру) может управлять любым из транспозеров по выбору - достаточно только переместить нужный МФУ в адаптер. Такой контроллер нужен, чтобы медленнее упираться в лимит доступных компонентов.
Чем отличаются блоки разного типа
Только тем, что именно хранится в алмазных сундуках - сами вещи, МЭ ячейки или какие-нибудь сумки. Возможно, место одного или двух сундука будет занято "компрессором", пакующим переданные предметы, но в целом архитектура блока остаётся такой же.
-
1
-
1
-
-
Пока что это только концепт хранилища, я его ещё не строил.
А кодт сверхмаленького хранилища (как у @Doob) ещё не допилен - иногда перемещает предметы неоптимально.
-
1
-
-
Что это
ОЗА, или Огромный Запускатель Армагеддона - это хранилище, позволяющее достичь плотности до 2 квадриллионов предметов на кубический метр.
Небольшая версия имеет меньшую плотность хранения (50 миллиардов предметов на блок), но помещается в 2x2 чанка - спокойно влезет в приват.
Как это
Хранилище состоит из шестнадцати блоков четырёх типов - α, β, γ и δ.
αβγδ βγδγ γδγβ δγβα
Каждый блок имеет такую архитектуру (С - сундук, Т - транспозер, К - контроллер):
С С С СТСТСТС С С С СТСКСТС С С С СТСТСТС С С С
Чем одни типы блоков отличаются от других:
- α - вещи просто лежат в алмазных сундуках.
- β - вещи складываются в МЭ ячейки хранения, те в сундуки.
- γ - блок хранилища вырезается пространственными пилонами AE2, полученная ячейка складывается в сундук.
- δ - пространственные ячейки складываются в бездонные сумки из Thaumcraft или что-то подобное.
Сколько хранится предметов
(Я не помню точно ёмкости сумки из таума и ячейки хранения AE2, но в любом случае порядок величин будет таким.)
Маленькое хранилище:
- α - 80 слотов/м3 * 64 предмета/слот = 5 120 предм./м3
- β - 5120 предм./м3 * 64 (слота в ячейке хранения AE2) = 327 680 предм./м3
- γ - 327680 предм./м3 * 24 (сундука вырезается) * 80 (ячеек в новом сундуке) = 629 145 600 предм./м3
- δ - 629 145 600 предм./м3 * 80 (ячеек в бездонной сумке) = 50 331 648 000 предм./м3
За счёт чего можно увеличить это хранилище? Можно увеличить количество сундуков в пространственной ячейке!
Самая большая ячейка имеет размеры 128*128*128 блоков, половину из них можно занять сундуками (половина нужна на транспозеры).
Тогда новая плотность хранения будет равна:
- α - 80 слотов/м3 * 64 предмета/слот = 5 120 предм./м3
- β - 5120 предм./м3 * 64 (слота в ячейке хранения AE2) = 327 680 предм./м3
- γ - 327680 предм./м3 * 1000000 (сундуков вырезается) * 80 (ячеек в новом сундуке) = 26 214 400 000 000 предм./м3
- δ - 26 214 400 000 000 предм./м3 * 80 (ячеек в бездонной сумке) = 2 097 152 000 000 000 предм./м3
К чему это приведёт
К ярости админов сервера, конечно. Если это построить и заполнить.
Сервер может прекратить своё существование ещё до того, как кончится место в ОЗЕ. Если на один стак будет расходоваться 4 байта, то малое хранилище потратит четыре гигабайта памяти и места на диске. Кроме того, достаточно много данных будет отправляться клиентам - если поставить в это хранилище чанклоадер, можно достичь того, что никто не сможет войти на сервер.
Если заполнить большое хранилище, то будет проблематичным даже чистить мир по чанкам - вероятнее всего, админу придётся удалять целый регион.
Для чего использовать?
Проще всего использовать это хранилище как свалку. В нём слишком много слотов, чтобы можно было что-либо найти.
Однако можно использовать это и как хранилище иридия или жидкого опыта - главное, чтобы был механизм, производящий их в таком объёме.
-
1
-
Новый ход лагеря злоумышленников:
Теперь у злоумышленников вместо робота стоит компьютер с интернет-картой, подключающийся к какому-нибудь эмулятору OC.
После создания соединения он посылает запрос на авторизацию у сервера "хороших", все сетевые пакеты передаёт в эмулятор.
Как контрить этот вариант? Задержка ответа будет весьма незначительной.
-
2 часа назад, eu_tomat сказал:В этом решении я вижу уязвимость
Теперь к сообщению для пробуждения можно добавить код исходного EEPROM и отрезать его при запросе. При этом робот лишается возможности загрузки по сети, но успешно представляется своим.
-
27 минут назад, eu_tomat сказал:Какие ещё инструменты остались в распоряжении взломщика?
Интернет-карта не подойдёт взломщику: её можно пихать в каждого дрона/робота и создавать максимальное число соединений куда угодно.
Например, взломщик может прокидывать запросы через свой компьютер, в обход дрона (правда, это будет вызывать дополнительную задержку). Однако, если сервер "хороших" будет учитывать задержку, он не сможет связаться с роботами в 400 блоках и дальше: слотов под связанные карты у компьютеров немного, а беспроводная карта перестанет доставать.
Но, по-моему, есть ещё один фокус: данные можно хранить в сообщении для пробуждения у модема/связанной карты. Их тоже надо забивать псевдослучайными данными?
-
1
-
1
-
-
11 час назад, BrightYC сказал:текущий component.eeprom не был подменен
Немного не в теме: имеется в виду программная подмена компонента или вставка нового EEPROM?
И кто должен убедиться в неизменности EEPROM: сам робот/дрон/кто-то там или компьютер, общающийся с ним по сети?
-
Планировал создать автономный рой дронов, но столкнулся с такими двумя проблемами:
1. Как дрон может добывать руду? (Подойдут почти любые методы, вроде динамитных шашек из IC2 или плоскости уничтожения из AE2. Важно, чтобы дрон оставался после этого целым.)
2. Может ли квадрокоптер активировать сборщик, чтобы создать нового дрона?
-
1
-
-
Наверное, вместо
while true do
нужно поставить
while base[1].fuelConversion < 9800 do
(Код читал по диагонали, реакторов из Draconic Evolution не видел, так что могу ошибаться.)
-
5 минут назад, BrightYC сказал:но на практике обычного pcall'а достаточно
Главное, чтобы оператор АЭС не задумал посмотреть что-нибудь на рабочем компе.
Иначе с реактором может случиться бо-ольшой бабах...
-
1
-
2
-
-
4 часа назад, kifrid сказал:Проблема в том, что я мону находится далеко от сервера и он не будет работать
Тогда можно использовать для соединения связанную или интернет карту (мост Stem - stem.fomalhaut.me).
Главное, чтобы чанк с сервером был всегда загружен (например, чанклоадером).
P.S. Где-то видел библиотеку под OpenOS для подключения сетевого диска, ссылку сейчас не вспомню.

Карта приватов для робота. Роботы и приваты.
в TechnoCraft
Опубликовано: · Изменено пользователем ProgramCrafter
Только что проверил - работает.
Подозреваю, что сервер отваливался на какое-то время.