Zer0Galaxy
Гуру-
Публикации
1 220 -
Зарегистрирован
-
Посещение
-
Победитель дней
189
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя Zer0Galaxy
-
Asummonster, меня интересует именно упаковка данных. Ты какой способ используешь? И еще. У тебя как бы особый статус. Пустит ли тебя Алекс на сервер? Я не против, но надо уточнить.
-
Хочу перенести на сервер строение, которое когда то строил в сингле. Для этой цели планирую использовать компьютер с отладочной платой. Описание: Требуется программа, позволяющая сканировать некую область пространства, сохранять в виде файла и в последствии восстанавливать эту область в другом месте. Возможно это будут две программы: одна сохраняет, другая строит. Такую программу я мог бы создать и сам, а может даже перенести админскими методами, но хочется дать кому то возможность попасть в белый список, поэтому ... Награда: - белый список. Установка: ПК любой комплектации + отладочная плата. Требования: программа сканирования должна принимать в качестве параметров координаты левого нижнего угла области сканирования, размер области и имя файла, в который будет сохраняться результат. При сохранении в файл следует учитывать, что строение состоит из большого количества однотипных блоков, расположенных рядом. А значит не нужно каждый блок сохранять по отдельности иначе никакого диска не хватит. Как вариант, сохранять области, занятые однотипными блоками. При сканировании допускается разрушение сканируемой постройки. Вопросы и предложения в этой теме.
-
Срочно лайкнул Алекса
-
@AlexCC @Asummonster А я так понял: ты идешь в шахту с буром и планшетиком. Копаешь там десять стеков алмазов. Набираешь на планшетике команду "перенести инвентарь в хранилище". Планшет через OpenNet или еще как то связывается с сервером хранилища. Тот при помощи КБ опрашивает твой инвентарь, сохраняет его в некой базе данных и очищает инвентарь. Ты налегке возвращаешься домой. По пути тебя грабят криперы и отбирают планшетик. Дома ты берешь другой планшетик. вводишь команду "перенести из хранилища в инвентарь" и получаешь свои алмазы. В отличии от банка и сундуков, доступ к такому хранилищу есть везде где работает планшет.
- 123 ответа
-
- 1
-
-
- opencomputers
- lua
-
(и ещё 1 )
Теги:
-
Никто не говорит о высоких скоростях. Лучшее на что я рассчитываю - 1 бит/сек. Но для понимания работы этого достаточно. Можно даже осциллограф сделать, что бы смотреть циклограмму.
-
Передача информации по редстоуну вряд ли найдет практическое применение. Поэтому поднятую тему считаю интересной только с точки зрения изучения работы реальных последовательных протоколов передачи данных. Ни один из реальных известных мне цифровых протоколов не использует силу сигнала как способ передачи информации. Только наличие/отсутствие. Посему предлагаю автору темы реализовать протокол UART как используемый в известных интерфейсах RS-232 и RS-485. Если это кому то кажется абракадаброй, готов помочь чем смогу. Моё мнение может отличаться от мнения других участников форума.
-
На сколько я понял, картинка на экране отражает расстояние до того или иного блока, но не отражает свойства самого блока.
- 15 ответов
-
- camera
- computronics
-
(и ещё 3 )
Теги:
-
Шифрование само по себе не решает проблемы идентификации. Как вариант: регистрация пользователя производится со специализированного терминала, а остальная работа - с произвольного компьютера.
- 123 ответа
-
- opencomputers
- lua
-
(и ещё 1 )
Теги:
-
- Запустил я Norton Commander. Вижу слева диск С и справа диск С. Думаю, нафига мне два диска С. Взял и грохнул один. (Старый-старый анекдот) Для людей, не привыкших работать с командной строкой, создан файловый менеджер Midday Commander. Разработчики: МС поддерживает работу с экранами разного разрешения и цветовой гаммой Возможно даже его удастся запустить на роботе. За основу внешнего вида взят известный линуксовский ФМ Midnight Commander, а также незабвенный Norton Commander. Кто постарше, тот помнит, поэтому проблем с интерфейсом быть не должно. Экран МС делится на две панели, в которых размещаются списки каталогов и файлов, имеющихся на дисковых устройствах компьютера. Каталоги помечены символом "/" и сгруппированы вначале списка. Ниже панелей находятся командная строка и меню основных операций, которые вызываются нажатием соответствующей функциональной клавиши. Навигация по панелям осуществляется клавишами Вверх/Вниз. Клавиша Tab переводит курсор на соседнюю панель. Для запуска программы или смены директории наведите курсор на программу или директорию и нажмите Enter. Чтобы запустить программу с параметрами, нажмите клавишу Enter, удерживая Ctrl. При этом имя программы переместится в командную строку. Введите параметры и нажмите Enter. F1 - выдает помощь по работе с МС F4 - открывает выбранный файл на редактирование. В качестве редактора используется стандартный редактор edit.lua. Чтобы создать новый файл, нажмите Shift+F4 и в открывшемся окошке "File name:" введите имя создаваемого файла и нажмите Enter. Для выбора пункта Cancel используйте кнопку Tab. F5 - копирует выбранный файл в директорию, открытую на соседней панели. В окошке "Copy file:" можно указать новое имя, под которым файл будет скопирован. F6 - перемещает файл. F7 - создает новую директорию F8 - удаляет файл или директорию. Перед удалением будет выдано предупреждение: Для выбора пункта Cancel используйте кнопку Tab. F10 - выход из МС Для поиска файла или директории на дисках компьютера нажмите Alt+F7 и в открывшемся окне "Find file/dir:" введите искомое имя. Результат поиска будет отображен в окне "Find:" Выбор какого либо из результатов в окне "Find:" приведет к перемещению в соответствующую директорию. При поиске файла можно использовать спецсимволы "?" и "*". ? - замещает собой любой символ; * - замещает любую последовательность символов. Например, для поиска всех файлов, начинающихся с буквы m, введите строку поиска "m*" Скачать Midday Commander можно, выполнив команду: pastebin get kE3jp6nD bin/mc.lua Планы на будущее: 1. русификация 2. поддержка мыши.
-
Даёшь русский гайд по компьютронику!
- 3 ответа
-
- 1
-
-
- opencomputers
- lua
-
(и ещё 1 )
Теги:
-
А как планируется идентифицировать игрока в системе? Я понимаю, логин-пароль. Но где гарантия, что я не зарегистрирую пользователя с именем Doob и не отправлю весь его инвентарь в фонд помощи начинающим хакерам? Можно, конечно обрабатывать события "touch" и "key_down" и определять кто именно за монитором, но если это будет мой компьютер, а не общественный терминал, то он обработает эти события как мне нужно.
- 123 ответа
-
- opencomputers
- lua
-
(и ещё 1 )
Теги:
-
Это сделал человек, который "сегодня утром ничего не знал о Луа"? Не верю!
-
А если в лабиринт войдут два игрока?
- 37 ответов
-
С расстоянием уровень сигнала уменьшается. Такая передача будет работать правильно лишь при определенном расстоянии между приемником и передатчиком. Подумай над передачей двоичным кодом.
-
Ну, тогда жди когда я одолею лень и сделаю службу FTP. Или сам сделай
-
Самым простым решением мне кажется упорядочить таблицу при помощи table.sort, а потом пройтись по возрастающим элементам и найти где закономерность возрастания прервется. Интересно, что после table.sort таблица будет по прежнему содержать один отсутствующий элемент (для таблицы, приведенной в примере), но # будет возвращать фактически максимальный индекс, т.е. 6 а не 3
- 3 ответа
-
- 1
-
-
Тогда подключаешь зарядник к компьютеру, ставишь робота на зарядник, идешь в папку /mnt и ищешь там диск своего робота.
-
Разбирай. Можно робота поставить на зарядник, но ты наверное хочешь и к консоли робота доступ иметь.
-
Вот нашел интересное решение: condition = true a = false b = true x = (condition and {a} or {b})[1] print(x) --> false
-
Как показали последние исследования, десериализация совершенно безопасная. Однако, достаточно взглянуть на код библиотеки serialization, чтобы понять, что процедура сериализации довольно ресурсоемкая. Я стараюсь ее без лишней надобности не использовать. А применительно к задаче Сябро, я этой надобности пока вообще не вижу.
-
Зачем сериализация? На сегодняшний день OpenNet поддерживает передачу до пяти параметров в одном пакете. С внедрением сети второго поколения даже это ограничение будет снято.
-
Создаем собственный сайт в сети OpenNet (часть 0x01)
Zer0Galaxy добавил запись в блоге в Сайт в сети OpenNet
В прошлый раз мы научились подключаться к сети OpenNet, создавать простенький сайт и открывать его на локальном компьютере. Сегодня мы попытаемся получить доступ к сайту удаленно. Чтобы файл index стал доступен по сети, необходимо на сервере запустить специальную программу - WEB-сервер. В стандартный набор программ для работы с Сетью она не входит, но ее всегда можно скачать, выполнив команду: wget -f https://preview.c9.io/krutoy242/opennet/_source/WEB/WEBserver.lua webserv.lua Да, да, не удивляйтесь, именно wget, хоть в составе нашего компьютера и нет интернет-карты. После того, как мы подключились к Сети нам стали доступны все прелести интернет-карты даже при отсутствии оной, а всё благодаря крутому интернет-серверу, функционирующему в Сети. Pastebin, кстати, тоже работает. Загрузили webserver? Запускаем его. Мы должны увидеть вот такую картинку: Запомним IP-адрес нашего сервера (выделено на картинке). Он понадобится в первое время для подключения к серверу. Теперь идем к другому компьютеру, подключенному к Сети, и проверяем наличие связи с сервером: ping c0b.9cf.a4f Если у Вас нет второго компьютера, Вы можете воспользоваться любым свободным в нашем датацентре. Связь есть? Запускаем браузер с указанием адреса нашего сервера. onBrowser c0b.9cf.a4f Как видим, для открытия сайта по сети нет необходимости указывать не только папку /web, но и имя файла index. Дело в том, что папка /web считается корневой для нашего сайта. А если не указать имя файла, то по умолчанию сервер вернет файл index. Все остальные файлы придется указывать. Но я не хочу что бы к моему серверу обращались по ужасному IP-адресу. Хотелось бы имя покороче и лучше запоминаемое. Для этого нужно пройти регистрацию на DNS-сервере. Допустим, я хочу, что бы наш сервер назывался Zer0. Не слишком оригинально, но на первый раз пойдет. Имя это не должно содержать пробелы и конечно же должно быть уникальным, т.е. никто ранее не должен был зарегистрировать такое же имя. Так же не желательно, чтобы имя содержало точки и наклонные черты. В этом случае имя будет зарегистрировано, но в дальнейшем могут возникнуть проблемы с маршрутизацией. Как же происходит процедура регистрации? Можно, конечно, воспользоваться напрямую функциями DNS-сервера, описанными в теме http://computercraft.ru/topic/675-opennetoc-prodolzhenie/?do=findComment&comment=9097, но с некоторого момента я предпочитаю пользоваться утилитой setdns, которая входит в стандартный набор программ OpenNet. Эта утилита позволяет проверить не зарегистрировано ли еще DNS-имя, какие имена зарегистрированы на тот или иной IP, проводить собственно регистрацию или корректировать настройки уже зарегистрированного имени. В будущем планируется реализовать функцию удаления DNS-имени, но пока она не реализована. Первым делом убеждаемся, что выбранное имя еще не никем не занято (пункт 1). Затем запускаем процедуру регистрации (пункт 3). При регистрации необходимо указать желаемое dns-имя, IP-адрес, с которым это имя будет ассоциировано, и пароль. Пароль понадобится, если мы заходим перерегистрировать имя на другой IP. Если регистрация проводится с того компьютера, чей IP ассоциируется с dns-именем, на запрос IP можно ввести пустую строку. После регистрации выбираем пункт 0 для выхода из утилиты setdns. Теперь мы можем обращаться к серверу не по IP, а по удобному имени. Снова запустим webserver на нашем компьютере, а на соседнем onBrowser Zer0 В следующий раз я постараюсь рассказать как сделать наш сайт разноцветным и интерактивным. (продолжение следует) -
Метатаблица должна иметь элемент __index. Он может быть таблицей или функцией и указывает как получить элемент, отсутствующий в нашей таблице. Если __index - таблица, то элемент ищется в этой таблице. Если функция, то отсутствующий элемент вернет значение этой функции. __index не обязательно должен указывать на саму метатаблицу, но должен быть ее элементом.
-
Будет meta1={a=1,b=2} meta1.__index=meta1 meta2={c=3,d=4} meta2.__index=meta2 myTable={e=5,f=6} setmetatable(meta2,meta1) setmetatable(myTable,meta2) print(myTable.a,myTable.b) print(myTable.c,myTable.d) print(myTable.e,myTable.f)
