Doob
Гуру-
Публикации
1 089 -
Зарегистрирован
-
Посещение
-
Победитель дней
141
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя Doob
-
Это да, если сопрут устройство с которого осуществляется доступ, то все средства тоже сопрут. Можно использовать генерацию ключей по паролю - игрок задает сид своим паролем и из него генерируется ключевая пара. В итоге ключи существуют только во время связи с сервером. А для регистрации, игроку нужно будет только стоять возле основного сервера на сенсоре движения (в кабинке, как предложил SergOmarov) и вбить в регистрационную форму свой ключ - публичный ключ уходит на сервер, с сенсора отправляется имя. А потом уже доступ только по ключу, из любой точки карты, где есть связь с сервером.
- 123 ответа
-
- 1
-
-
- opencomputers
- lua
-
(и ещё 1 )
Теги:
-
Вообще-то в кубе)) Изначально, я сделал по фильму Cube - 18х18х18 комнат, при переходе из одной комнаты в другую, дальние комнаты выгружались, новые появлялись, без всяких смещений и телепортаций. Но все делалось при помощи комблока - каждый блок приходилось ставить отдельно, комп на циклах без слипов подвисал, вылетал, крашил майн. В OpenComputers же, создать базовую комнату можно двумя командами setBlocks (в MC1.8 лучше задействовать стандартные fill и clone) Самое сложное это алгоритм генерации, тут у меня просто нет идей, только смена маршрутов по таймеру и предыдущим переходам. P.S. Как вариант - виртуальное пространство заполненное тессерактами, но это слишком примитивно.
- 37 ответов
-
- 2
-
-
Симметричное шифрование решает все проблемы. Как одолею лень - переведу RSA на Lua, ибо рабочих библиотек не видел.
- 123 ответа
-
- opencomputers
- lua
-
(и ещё 1 )
Теги:
-
Ну вся фишка в том, что система должна обрабатывать каждого игрока индивидуально и всех вместе. Внешне это будет выглядеть как висящие в пустоте ячейки для каждого игрока, когда один игрок переходит в комнату рядом с другим игроком, то его ячейка удаляется и подгружается к уже существующей. Если игрок покидает общую ячейку, то для него создается новая. Находясь внутри, переходы не заметны, т.к. переход совершается в заранее созданную комнату и при телепортации полностью сохраняется положение игрока.
- 37 ответов
-
По ссылкам читал, но не понял, как ускорить запись циклами, конвертировать и обезьяна сможет, а вот процедурная генерация звуков намного интересней.
- 3 ответа
-
- opencomputers
- lua
-
(и ещё 1 )
Теги:
-
Как можно побыстрей записывать информацию на кассеты? И вообще, где можно почитать описание формата, в котором хранятся данные на кассетах? А то возможности звукоизвлечения почти бесконечны, но на запись минуты звука уходит несколько часов.
- 3 ответа
-
- opencomputers
- lua
-
(и ещё 1 )
Теги:
-
Код Грея мог бы помочь, хотя вряд-ли, ускорить обновление блоков невозможно. http://www.computercraft.info/forums2/index.php?/topic/16414-chat-via-redstone-but-its-not-reading-incoming-messages/
-
Круто, на CC делал подобное, но теперь там есть http://www.computercraft.info/2015/07/01/introducing-computercraftedu/
-
Шахтеры да фермеры, чую, скоро админы перестанут пускать с такими программами, но человек пишет программку, значит интересуется.
- 12 ответов
-
- lua
- opencomputers
-
(и ещё 2 )
Теги:
-
Ну это если связи совсем случайные. Тогда это не лабиринт, а пытка рандомом.
- 37 ответов
-
Не совсем случайно, по системе, игрок определивший систему связей становится могущественней, но правила генерируются бесконечно, так что возможности не ограничены, а если лабиринт пятимерный, то игроки изучающие лабиринт становятся богами, потому что они могут управлять конфигурацией комнат в которых они побывали. В The Talos Principle не играл, играл в Antichamber - там связи жестко зафиксированы и решить задачу можно просто рандомно бегая в разные двери.
- 37 ответов
-
Таблицы же https://ru.wikipedia.org/wiki/CSV
- 123 ответа
-
- opencomputers
- lua
-
(и ещё 1 )
Теги:
-
Появляешься в комнате [1] с четырьмя дверьми, идешь в первую попавшуюся - оказываешься в комнате [3] с кучей зомбей, бежишь назад - оказываешься в комнате [17]. В комнате [17] стоит печка, верстак и табличка, на табличке надпись "Ты всегда можешь вернуться сюда, войдя в ту же дверь, из которой вышел". Идешь в первую попавшуюся дверь - попадаешь в комнату [109], она пустая, идешь в первую попавшуюся дверь - попадешь в комнату [108], там растет дерево со стволом из коблы и "листвой" из досок. Ну и в таком духе...
- 37 ответов
-
БД удобней хранить в CSV - оптимально и универсально. А вот до GUI библиотек у меня руки не доходят. GML, к примеру хорош, но очень тяжел. На ComputerCraft куча удобных, со всеми современными фичами и довольно легковесных, а на OpenComputers я таких не находил. Надобно затачивать либу под определенные задачи, чтобы не плодить сущности.
- 123 ответа
-
- opencomputers
- lua
-
(и ещё 1 )
Теги:
-
Как-то ковыряясь с комблоком я вспомнил фильм "Cube", начал делать алгоритм пермутаций, попутно пытаясь сделать переброс пространства через время и наоборот, потом энтузиазм затух. Потом пытался сделать мини-игру, где кубы тессеракта спроецированы в 2d шестиугольники, игрокам надо было бегать по пространству заполненному тессерактами, и по определенным правилам линковать кубы удаленные друг от друга на огромные расстояния, так же была идея сделать полноценную игру-песочницу, с бесконечным фрактальным миром, где можно сокращать расстояния преобразовывая время в пространство. Но, так как во все это никто играть не будет, то даже и не пытался сделать что-либо внятное. В minecraft, при помощи комблока, можно сделать что угодно, но все упирается ресурсы сервера. Суть лабиринта в том, что игрок бегает не по коридорам, а по комнатам с несколькими дверьми, и зайдя в определенной последовательности в определенные двери, игрок перемещается в недоступные обычными переходами места. Весь лабиринт хранится в памяти, а новые комнаты подгружаются и материализуются, когда игрок совершает переход, старые комнаты исчезают и в мире постоянно остаются только 6 кубов вокруг комнаты, в которой находится игрок и комнаты, в которые можно попасть задействовав гиперсвязь. Но я никак не мог придумать нормальный алгоритм генерации связей гиперпереходов, рандом не может создавать достаточно осмысленный лабиринт, необходима какая-то формула, в математике я - дуб... как-то пытался разобраться с кватернионами, чтобы сделать кубик Рубика, даже не понял магию выражения векторов через мнимые единицы.
- 37 ответов
-
- 4
-
-
Код был, когда я сидел на ComputerCraft, там я делал сохранение блоков в scoreboard игрока, была жуткая конвертация таблиц, на выходе получалась каша, но зато работало. Идея была в том, что мир можно стереть, а игроков со своими ресурсами оставить (на самом деле не ресурсами, а постройками). Вся проблема в том, что мне лень рисовать удобный интерфейс и переводить RSA на Lua.
- 123 ответа
-
- opencomputers
- lua
-
(и ещё 1 )
Теги:
-
Так точно.
- 123 ответа
-
- opencomputers
- lua
-
(и ещё 1 )
Теги:
-
%PLAYERNAME% имеет %ITEMNAME%, в кoличетcве n, у негo зaбиты cундуки вcяким хлaмoм, ендерчеcт вooбще трещит пo-швaм. Мoжнo иcпoльзoвaть виртуaльные хрaнилищa AE, нo caм мoд cлишкoм лaгучий и c дoлгим рaзвитием. Мoя идея cocтoит в тoм, чтoбы cделaть aльтернaтиву AE в OpenComputers, чтoбы oблегчить жизнь игрoкaм и cерверу. Любoй игрoк, имеющий кoмпьютер c WiFi кaртoй, мoжет coздaть личнoе виртуaльнoе хрaнилище cкaчaв прoгрaмму и зaрегиcтрирoвaв cебя в cиcтеме. Функции cерверa: Перенoc предметoв из инвентaря в личнoе/oбщеcтвеннoе виртуaльнoе хрaнилище (ВХ). Мaтериaлизaция предметoв из ВХ. Мaтериaлизaция предметoв, кoтoрых нет в ВХ, нo для кoтoрых еcть рецепт и реcурcы в ВХ игрoкa. Перевoд предметoв из cвoегo ВХ в oбщеcтвеннoе/перевoд в ВХ другoгo игрoкa. Сoздaние oбщеcтвеннoгo хрaнилищa c дocтупoм пo пaрoлю. Сoздaние oбменнoй cделки (кaк в тoргoвых aвтoмaтaх IC) Уничтoжение предметa в ВХ Функции клиентa:Сoбcтвеннo, интерфейc к функциям cерверa.Вoзле cерверa cтoят терминaлы, чтoбы игрoки caми зaбивaли рецепты - игрoк кидaет предметы в вoрoнку, нa мoнитoре в виртуaльнoм oкне крaфтa зaбивaет рецепт, рoбoт рacклaдывaет рецепт и прoбует cкрaфтить, еcли true, тo рецепт coхрaняетcя нa cервере. Тaк же, мoжнo cделaть aдминcкoе беcпaрoльнoе виртуaльнoе хрaнилище c беcкoнечными дешевыми вoзoбнoвляемыми реcурcaми (деревo/кaктуc/aрбузы/трocтник), тoгдa игрoкaм не нaдo будет делaть лaгo-фермы, oни будут зaнимaтьcя чем-тo бoлее oтвлеченным. Мoжнo oгрaничить время жизни хрaнилищa (хaлявных cундукoв не бывaет), чтoбы дaвнo не игрaвшие игрoки удaлялиcь из БД, a чтoбы прoдлевaть жизнь хрaнилищa, неoбхoдимo в нем cжигaть oпределенные предметы (невoзoбнoвляемые реcурcы)
- 123 ответа
-
- 2
-
-
- opencomputers
- lua
-
(и ещё 1 )
Теги:
-
А разве дебаг-плата и драйвер комблока не возвращает результат исполнения команды?
-
Ok))
- 22 ответа
-
- 6
-
-
- opencomputers
- textures
- (и ещё 3 )
-
Немного добавил и подновил.
- 22 ответа
-
- opencomputers
- textures
- (и ещё 3 )
-
Пытался прикрутить брутфорс, выяснил, что средствами OpenComputers ломать бессмысленно. Из-за того, что мощность процессора регулируется не замедлением реальных тактов, а жесткими фризами, то даже на самой мощной железяке выходит примерно так: алфавит 92 символа - 0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ !?@#$%^&*()_+=-*/[]{}:;'".,<> время перебора: 1 символ = 0.42 секунд 2 символа = 39 секунд 3 = около получаса 4 = больше трех дней 5 = почти год Если брутить голым lua, то скорость возрастает где-то в 2000 раз. А если в ключе использовать рандомные символы юникода, то ломать вообще бессмысленно (при длине пароля не меньше 10 символов).
- 19 ответов
-
- 1
-
-
- lua
- encryption
-
(и ещё 1 )
Теги:
-
А если взять голопроекторы, то память эффектней и эффективней +понтов больше
-
Если надо зашифровать сообщение, но не хватает ресурсов, можно использовать XOR. Но нельзя использовать короткий циклический ключ, XOR хорош, когда можно получить рандомный ключ, равный длине сообщения. Если в math.random нету дыр, то можно использовать его. Функция подгоняет длину ключа к длине сообщения и прогоняет через XOR. local function encrypt(message, key) unicode = require('unicode') nKey = '' for i = 1, unicode.len(key) do nKey = nKey..key:byte(i) -- переводим ключ в number end math.randomseed(tonumber(nKey)) -- засеиваем генератор ключом tKey = {} sNewKey = '' for j = 1, unicode.len(message) do tKey[j] = '' while unicode.len(tKey[j]) ~= unicode.len(message.byte(j)) do tKey[j] = tKey[j]..math.random(0, 9) -- создаем рандомный код для ключа end sNewKey = sNewKey..unicode.char(bit32.bxor(message:byte(j), tKey[j])) -- записваем результат end return sNewKey end Пример использования: a = encrypt('сообщение', 'ключ') -- шифруем print(encrypt(a, 'ключ')) -- расшифровываем
- 19 ответов
-
- 3
-
-
- lua
- encryption
-
(и ещё 1 )
Теги:
-
Проблема в получении слота с диском? component.filesystem.slot и вообще, слотов для дисков всего два Запоминаем адреса файловых систем по дефолту, при срабатывании программы ищем новую файловую систему, на нее и пишем.
