Лидеры
Популярный контент
Показан контент с высокой репутацией 27.03.2021 во всех областях
-
4 баллаСтановится достаточно интересно, косяк у программы никто не подметил, но наофтопили про смысл бытья и поиски сокровенного.
-
3 баллаПроблема: мы с друзьями живём в различных измерениях или на огромном расстоянии друг от друга, из-за чего беспроводные модемы использовать невозможно. При этом нам нужна система, позволяющая отправлять приватные сообщения конкретному человеку, зная адрес получателя. Очевидным решением будет использование связанных плат, но что если нужно работать более чем с 1 получателем? Связанные платы, увы, лимитированы. Что если мы играем с GalactiCraft, имеем базу на Земле, и кровь из носу хочется контролировать добычу камня на Луне, реакторы на Марсе и ферму урана на Венере с одного компьютера? Решение: объединить множество связанных плат в кластер! Принцип работы системы проще пареной репы: каждый новый клиент, подключаемый к сети, должен предоставить 1 из 2 скрафченных связанных плат. Первую мы вставляем в кластер, а вторую - в компьютер клиента. Чтобы отослать сообщение другому клиенту кластера, нужно знать имя канала его связанной платы. Далее - дело техники: если сервер получает сообщение от связанной платы, то осуществляется поиск платы-получателя в нём же. Если плата-получатель не найдена, то сообщение перенаправляется через широковещательный пакет проводного модема всем серверам кластера, чтобы те в свою очередь попытались найти получателя. Если получатель найден - ему отсылается имя канала отправителя и само сообщение. Теперь подумаем, как лучше объединить связанные платы. Каждая плата может быть вставлена только в Tier 3 слот компьютера или сервера. Оптимальным решением для экономии пространства будет использование серверных стоек, т.к. каждый Tier 3 сервер имеет целых 2 Tier 3 слота. Поэтому каждый сервер сможет обслуживать максимум 2 клиента сети. В итоге схема расположения стоек и конфигурация серверов должна быть примерно такой: Процессор не важен, память не важна, и требования если не нулевые, то минимальные. Разумеется, каждый сервер будет работать на микропрограмме EEPROM, ибо крафтить для этого жёсткие диски было бы нецелесообразно. Берем код и прошиваем столько EEPPROM'ов, сколько требуется: https://gist.github.com/IgorTimofeev/15b75915caa93a344c2be25dac308138 После включения сервер будет доступен для взаимодействия. Как же отправить сообщение получателю? Используем функцию tunnel.send(), и первым аргументом указываем имя канала получателя. Его можно получить через tunnel.getChannel(): local tunnel = require("component").tunnel local receiver = "867a85de-ae4c-4359-b06f-0d30c5dad6f1" tunnel.send(receiver, "Привет") Это всё замечательно - но где же практический пример? Давайте запустим чат! Да простят меня боги, старые и новые, но я буду использовать MineOS, т.к. общаться через GUI мне банально удобнее. Во всех компьютерах сети создаем новое приложение, открываем файл Main.lua для редактирования: Берём исходник чата: https://gist.github.com/IgorTimofeev/724992e8641245a51cef57ac883f541f Вставляем его содержимое вместо имеющегося в Main.lua и запускаем приложение. Для отсылки сообщения необходимо ввести канал связанной платы получателя, а также отправляемый текст. Вот пример интеллектуальной беседы двух величайших умов современности: Кроме того, каждый сервер кластера поддерживает протокол для обновления прошивки по сети, а также удаленного отключения и запуска всех серверов. Для этого вам потребуется отдельный компьютер, находящийся в локальной сети с кластером. Для удобства я также накатал мини-приложение: https://gist.github.com/IgorTimofeev/0fe93bd4549aa32161b9dbbba59425e8 Подытоживая, хотелось бы отметить, что этот софт находится в разделе "программы новичков", он не преследует никаких глобальных целей и не реализует "киллер-фич", ориентируясь больше на прикладное использование. Разумеется, серверную часть можно улучшить по своему вкусу, добавив поддержку широковещательных пакетов, PING-систему и системные события по типу дисконнекта/доступности серверов, а для клинетского чата можно реализовать систему контактов и отсылку медиа-файлов. Было бы время и желание... Однако в своё время даже такой функционал неплохо сохранил нам нервы во время войн с серверной цензурой, а также экономил время, которое потребовалось для длительных полётов на разбросанные по уголкам вселенной базы. Надеюсь, для кого-нибудь эта схема будет так же полезна, как и для нас c:
-
1 баллОписание Данная программа позволяет видеть местоположение руды вокруг игрока. Работает следующим образом: Планшет с геосканером и сетевой картой сканирует область вокруг игрока и отправляет на стационарный компьютер информацию о найденных блоках Компьютер с терминалом OpenGlasses2 и сетевой картой принимает информацию о блоках и рисует этим блокам подсветку. Фичи и особенности Используется методика из исследования Дуба, которая позволяет весьма точно определять руду Настраиваемые параметры сканирования c валидацией и коррекцией сохраняются в конфиг при выходе из программы Понятный ui Подсветка границ области сканирования Отображение на очках с использованием всего 2 виджетов фпс снижается меньше Это программа работает на версии игры 1.12.2 с аддоном OpenGlasses2 теоретически можно портировать на 1.7.10 Скриншоты Видео Установка Требуемое железо Планшет, минимальное Планшет, рекомендуемое Стационарный компьютер Вместо системного блока 3 тира можно юзать серверную стойку с сервером 2 тира. Также вместо связанной карты можно юзать беспроводную сетевую, однако, радиус действия в этом случае будет ограничен. Все процессоры нужно переключить на Lua 5.3(шифт+пкм). На планшет и компьютер устанавливаем OpenOS. На планшет устанавливаем программу и ее либы wget https://raw.githubusercontent.com/hohserg1/OpenComputersPrograms/master/oresense/oresense_tablet.lua wget https://raw.githubusercontent.com/hohserg1/OpenComputersPrograms/master/simple_libs/bit_array.lua lib/bit_array.lua pastebin get iKzRve2g lib/forms.lua На комп устанавливаем программу и ее либы wget https://raw.githubusercontent.com/hohserg1/OpenComputersPrograms/master/oresense/oresense_server.lua wget https://raw.githubusercontent.com/hohserg1/OpenComputersPrograms/master/simple_libs/bit_array.lua lib/bit_array.lua Использование Привязываем очки к терминалу и надеваем. Запускаем на компе oresense_server. Программа будет работать в фоновом режиме, поэтому комп можно юзать для чего-нибудь еще. Запускаем на планшете oresense_tablet. Синие поля позволяют настроить параметры. Большая красная кнопка запускает сканирование. Во время этого процесса лучше не сдвигаться с места. По окончанию сканирования оглядитесь вокруг - руда будет подсвечена красными каркасными кубами. Благодарности Спасибо @Doob и всем, кто ему помогал, за исследование принципов работы геолайзера и статью об этом Спасибо @Zer0Galaxy за либу гуи forms Спасибо @BrightYC за реью гуи и идею мэйн-картинки Спасибо @Sainthozier за реью гуи Спасибо @Fingercomp за функцию индексации координат, к сожалению, она не понадобилась Спасибо людям из irc-чата за саппорт по ОС и Lua Ссылки Гитхаб: https://github.com/hohserg1/OpenComputersPrograms/tree/master/oresense
-
1 баллНе могу не задать свой любимый вопрос. Что будет, если я попробую отправить пакет больше 8 килобайт? Такой вариант предусмотрен, или мне самому нужно разбивать и собирать большие пакеты?
-
1 баллПолностью согласен. Я сам на игровых серверах использую исключительно приватные сети, а широковещательные пакеты в беспроводных сетях посылаю только для аварийной коммуникации, когда секретность перестаёт быть приоритетной. Дудосеры вряд ли исчезнут, они тоже отыгрывают роль в игровом процессе, внося дополнительное разнообразие.
-
1 баллДа, принцип схож. Однако эта схема локальна и служит для обмена сообщениями среди ограниченной группы машин, да и работает на любом мусоре - были бы слоты под карты. Как следствие, никто не будет спамить широковещательными пакетами на беспроводные точки, из-за чего связь не отвалится, и проблема "дудосеров с 9 планшетами" около роутера 2 уровня просто не возникнет. Как бы выразиться поточнее... тут возникает щекотливая ситуация, когда с точки зрения интересности отыгрыша роли на IT-сервере использование OpenNet или ZN реально веселее. Также это помогает изучить нюансы работы реальных сетей на примитивном игровом уровне. А с точки зрения практичности для клана с десятком компьютеризированных электростанций/ферм в различных мирах централизованная и приватная схема надёжнее и быстрее. Имхо, пока не настанет всесерверная утопия, пока не передохнут диссиденты-дудосеры, игроки будут ориентироваться на локальные сети
-
1 баллЭто очень странно выглядит. А если снести этот улей и построить заново, не помогает?
-
1 баллЯ уже понял, что основной смысл использования таких чатиков заключается в отыгрывании определённых ролей. Для меня этот вопрос исчерпан. Спасибо за объяснение.
-
1 баллКак ни странно первое желание я узнал про функционал сетевых карт было написать что-то вроде похожего чатика... Вообще если исключить факт существования внешних средств коммуникации между игроками (Скайп, дискорд и прочие) то это даже могло-бы послужить хорошим дополнением к игре. Например на сервере существует сеть по которой игроки могут общаться, а радиус чата в.т.ч. личного ограничен скажем 64мя блоками. Глобальный чат отсутствует. Можно даже прилепить к подобным прогам чатбокс для трансляции сообщений из чата-в чат на расстоянии, а с помощью мостов и хорошей сети передавать сообщения в.т.ч и между серверами...
-
1 баллНедостаток очков в том, что они не защищают голову, а с шлемами они несовместимы. А так да, в своём доме можно и в очках бегать.
-
1 баллЗачем свою прогу для каждого друга? Можно сделать конфигурационный файл с именами друзей и адресами карт. Ну, а для группового чата можно и широковещательными пакетами пользоваться. При этом также сохранится возможность проверить, настоящий друг или нет, если вдруг адрес сетевой карты не совпал.
-
1 баллНедавно возникла проблема с тем, что понадобилось быстро загружать репозитории с несколькими файлами + я хотел поиграться с реквестами. Решение воспроизвелось в виде Ziphyr (или зефира) - работающий на апи гитхаба (сори юзеры гитлаба) аналог git. Утилита нужна для обновления и скачивания целого репозитория, так как для остального уже существуют OPPM или wget сырых файлов с гитхаба. При клоне рекурсивная функция проверяет весь репозиторий и скачивает по очереди файлы, сохраняя их хэши. А при нужде пулла прога сверяет хэши и загружает последние версии файла. Работает с пробелами, так что люди, ставящие пробелы в названии .app тоже не помеха. # Текущие функции 1. Клонирование репозиториев по веткам/тегам/коммитам 2. Пулл репозиториев # Будущие функции (расположены по возрастанию даты реализации) 1. Пуш репозиториев 2. Диффы между версиями файла 3. Мультитрединг 4. Поддержка гитлаба # Установка: pastebin run 1BNSnN2X В бандле идет скрипт env, который упрощает создание переменных среды, а также библиотеки json и sha1 # Использование: ziphyr clone KoshakLoL/Ziphyr - клон репозитория в [ТЕКУЩАЯ_ПАПКА]/[НАЗВАНИЕ_РЕПОЗИТОРИЯ] ziphyr clone -d KoshakLoL/Ziphyr - клон реопозитория в [ТЕКУЩАЯ_ПАПКА] ziphyr clone --dir=[КАКАЯ-ТО ПАПКА] KoshakLoL/Ziphyr - клон реопозитория в [КАКАЯ-ТО ПАПКА] ziphyr clone --ver=[ТЭГ/РЕЛИЗ/КОММИТ] KoshakLoL/Ziphyr - клон репозитория в [ТЕКУЩАЯ_ПАПКА]/[НАЗВАНИЕ_РЕПОЗИТОРИЯ] с какой-либо версией ziphyr pull [КАКАЯ-ТО ПАПКА] - для пулла репозитория, содержащегося в [КАКАЯ-ТО ПАПКА] Все остальное (включая лицензию) можно найти на соответствующем репозитории (программа находится в еще очень ранней версии, с говнокодером в размере одного человека, так что... не судите строго) (за частичную реализацию директорий спасибо MrAbad)
-
1 баллВы же помните OpenNet? Сетка такая была для OpenComputers. Хорошая вещь, только непонятно, как она работает, как её обслуживать, а ещё она централизованная. И огромная. В общем, неудобно. Поэтому предлагаем вам решение. Удобное и простое. Вкратце Zn (читать как "дзен") — это очень простая (код без комментов занимает меньше четырёх килобайт) децентрализованная (нет центрального сервера, все узлы сети равны) неструктурированная (отсутствует какая-либо структуризация клиентов) сетка для OpenComputers, созданная мною и @Totoro. Сеть абсолютно не защищена от какого-либо вмешательства: все в радиусе рестранслятора могут получить исходное сообщение и подменить его. Поэтому если требуется что-то более надёжное, нужно сделать систему шифрования. Из-за того, что мы выбросили защиту от подмены и структуризацию, к сети подключиться может любой хост: как сервер, планшет, робот и компьютер, так и дрон или микроконтроллер. Для последних двух хостов есть специальный билд. Каждый подключённый к сети клиент является её узлом: он может ретранслировать, отсылать, броадкастить, принимать сообщения и пинговать соседей. Кроме того, при отправке сообщения можно запросить подтверждение его получения. API Функции zn.connect(): boolean Подключиться к сети. Аргументы Нет. Возврат true, если всё ок. false, если клиент уже подключён. zn.disconnect(): boolean Отключиться от сети. Аргументы Нет. Возврат true при успешном отключении. false, если уже отключён. zn.send(address: string, message: string): boolean Отправить сообщение какому-либо узлу. Аргументы address — адрес модема конечного узла. message — сообщение для отправки. Возврат true — сообщение отправлено (не обязательно успешно доставлено). zn.broadcast(message: string): boolean Послать сообщение для всех узлов сети. Аргументы message — сообщение для отправки. Возврат true. zn.ping() Пингануть соседние узлы. Аргументы Нет. Возврат Нет. События zn_message(message: string, receiverAddr: string, senderAddr: string) Получено сообщения от узла сети. Аргументы message — сообщение. receiverAddr — адрес модема, поймавшего сообщение. senderAddr — адрес модема отправителя. zn_ping(senderAddr: string, distance: number) Получен запрос на пинг. Аргументы senderAddr — адрес модема отправителя. distance — расстояние до узла. zn_pong(senderAddr: string, distance: number) Получен ответ на пинг. Аргументы senderAddr — адрес модема отправителя. distance — расстояние до узла. Пример кода local event = require('event') local zn = require('zn') zn.connect() zn.broadcast("Hello Zn members!") while true do local _, message = event.pull("zn_message") if message == "bye" then break else print(message) end end zn.disconnect() Установка Качаем hpm: http://computercraft.ru/topic/1855-repozitorii-programm-hel/?do=findComment&comment=27287 Ставим пакет: hpm install zn. Версия для EEPROM хранится в /usr/share/zn/eeprom.lua. Чтобы записать его, вставьте чистый EEPROM в комп и пропишите $ flash -q /usr/share/zn/eeprom.lua "Zn node" А затем вставьте EEPROM в дрона, µC или куда-либо ещё. Ссылка на пакет.
-
1 баллВы раздуваете из мухи слона. Все эти атаки, прослушки, переполнения и прочее легко решаются. Система Zn сети намеренно сделана максимально простой. Она поощряет модификации. В распоряжении человека, который строит систему на основе Zn сети есть множество инструментов: * 60к уникальных портов, которые не вдруг подберёшь * white- и black- листы модемных адресов * кастомные модификации протокола, которые позволят легко определять чужие пакеты * огромный простор для самописных инструментов контроля трафика и исключения из сети флудо-источников * end-to-end шифрование любым алгоритмом * и т.д. и т.п. Жаловаться на то, что Zn не обеспечила вам 100% уровень безопасности и комфорта так же глупо, как жаловаться на то, что библиотека OpenGL позволяет вам залагать видеокарту.
-
1 баллЯ не говорю, что это бессмысленный код. Просто это будет алиас для обычного листенера. Что писать zn.listen(function() ... end), что писать event.listen("zn_message", function() ... end) - разницы практически нет. А поскольку библиотека стремится быть максимально легковесной, то особого смысла добавлять лишние функции, которые не несут функциональности - тоже нет. Хотя первое выглядит конечно лаконичнее и красивее.
-
1 баллНу нет я не согласен. Ты просто предлагаешь добавить библиотеке больше логики, сделать её толще. Основная концепция библиотеки - это расширенный модем. Это легковесная библиотека, которая обладает функционалом модема, но кроме передачи сообщений на соседний компьютер, обеспечивает проброс сообщений по цепочке компьютеров, таким образом связывая их в единую сеть. Она основана на эвентах, так же как и связь через обычный модем. Мы даже выбросили из библиотеки аналог TCP, когда библиотека ждёт подтверждения получения отправленного сообщений. Сериализация, шифрование, подтверждение приёма, кастомные протоколы - это всё легко реализуется поверх библиотеки.
-
1 баллИногда случается такое, что ваши компьютеры расположены на расстоянии большем, чем стандартные 400 блоков. Wi-Fi отказал, а вам надо связать компьютеры по сети. Какие тут есть варианты? 1) Повысить лимит в конфиге. Это просто, но не всегда возможно. 2) Использовать linked карту. С её помощью можно пробить любое расстояние, да. Но тут есть несколько своих проблем. Она связывает компьютеры только попарно. Для связи нескольких компьютеров надо уже делать сложную систему проброса сообщений. Она занимает дополнительный слот. И т.п. 3) Использовать цепочку Wi-Fi карт Казалось бы, чем это проще второго варианта? А проще оно тем, что тут есть уже готовые библиотеки. =) Интермедия Когда-то в стародавние времена, когда трава была зеленее и птички пели громче, собралась на нашем сервере компания крутых парней и написала OpenNet. Это была полноценная компьютерная сеть. Этакий местный интернет. Она обладала своей строгой и надёжной топологией. Каждый узел - своим местом и адресом в сети. Никакой анархии. Хочешь - в чатике общайся. Хочешь - сайты строй. К сожалению, исходники и гайды до сих пор разбросаны по частям по всему форуму. Чтобы собрать это снова вместе, потребуется немало усилий. Да и зачем нам поднимать полноценный "интернет", если всё, чего мы хотим - это пробросить парочку сообщений туда-сюда? Поэтому в более новые и не такие добрые времена (птички потише, трава потускнее), некто Totoro и fingercomp придумали систему попроще и погибче. И назвали её Zn. Приступаем к решению Итак, как нам связать Васю и Олю, которые живут на противоположных краях Земного Блина? 1) Через микроконтроллёр Самое дешёвое в плане ресурсов решение - собрать микроконтроллёр, прошить его и закопать где-нибудь в лесу на полпути между Васей и Олей. Сначала нам потребуется код прошивки. Он идёт в комплекте с Zn библиотекой. Как цивилизованные современные люди, мы скачаем её с Hel-репозитория: hpm install zn Теперь в папке /usr/share/zn/ у нас есть файлик eeprom.lua. Который мы и прошиваем на чистый EEPROM: flash -q /usr/share/zn/eeprom.lua "Zn node" Всё. Осталось вставить чип в контроллер, включить его и закопать. Сеть создана! 2) Через компьютер Более солидное и основательное решение. Строим в лесу будку. В будке ставим компьютер. На компьютер устанавливаем OpenOS и HPM (если он не идёт в комплекте). Снова качаем библиотеку: hpm install zn Создаём мини скрипт: edit node.lua Пишем в нём такой код: (require ('zn')).connect() Сохраняем, выходим, запускаем его: node Всё! Скрипт выполнится и завершится, а в фоновом режиме останется работать демон Zn-сети, который будет пробрасывать сообщения. По желанию можно сделать скрипт более сложным - например выводить на экран сетевой трафик и другую полезную инфу. Также можно добавить скрипт в автозапуск компьютера, чтобы даже неожиданные сбои питания (белка залезла в трансформатор) не смогли повалить сеть. Эти два варианта обладают некоторыми недостатком, конечно. Чтобы ретранслятор работал автономно, надо ставить чанклодер и источник энергии. Однако, в силу своей гибкости, Zn сеть можно организовать и по другому. Поднять, так сказать, "лайт версию" ретранслятора. 3) Через планшет Устанавливаем на планшет OpenOS и ставим библиотеку и скрипт по методике #2. Далее, вручаем планшет соседу Пете и забиваем ему стрелку в том самом лесу. На протяжении X минут (где X зависит от терпения Пети) у вас будет полноценная сеть! Игрок будет служить чанклодером, а батарея планшета источником питания. 4) Через робота Строим робота, устанавливаем скрипт по методике #2. Затем ставим робота где-нибудь в незаметном месте (можно спрятать в кроне дерева, так чтобы свет солнца падал на солнечную батарею). Всё, мобильный ретранслятор готов. Если чанклодеры к роботам разрешены, он может существовать автономно долгое время, питаясь солнечной энергией. 5) Через дрон Прошиваете EEPROM как для микроконтроллёра, заряжаете в дрона. Дрона запускаете в свободный полёт над лесом. Готово! Хотя чанклодер всё равно нужен. Так что вам наверное придётся пастись где-то рядом. Этот вариант самый сложный, потому что если вы хотите управлять дроном (например, с планшета) то вам потребуется модифицировать прошивку и добавить блок управления. Зато запустив 1000 дронов, вы можете почувствовать себя Илоном Маском, или Цукербергом, раздающим Интернет папуасам. А как теперь этой сетью пользоваться? Все просто. Это делается почти как с обычным модемом. Только вместо модема вы используете библиотеку Zn. Если вы знаете адрес модема адресата - можете послать сообщение прямо на него. И не важно, через сколько промежуточных узлов оно должно будет пройти. До тех пор пока адресат в радиусе досягаемости хотя бы одного узла вашей сети - он ваше сообщение получит. -- подключаем библиотекуlocal zn = require('zn')-- коннектимся к сетиzn.connect()-- посылаем Оле сообщениеzn.send("адрес модема Оли", "сообщение для Оли")-- при завершении программы не забываем закрыть коннект-- (можно и не закрывать, но зачем тратить ресурсы компа зазря)zn.disconnect() Ну а если адресат неизвестен, можно кинуть сообщение бродкастом. Тогда его получат все, кто подключен к сети. И адресат, конечно тоже. local zn = require('zn')zn.connect()-- посылаем сообщение всем, кто подключён к сети (Оле в том числе)zn.broadcast("сообщение для Оли")zn.disconnect() Удачи в построении своих сетей. Enjoy Zn!
-
1 баллНебольшой гайд, который показывает вариант практического применения библиотеки: Zn: строим простой ретранслятор
-
1 баллОпеннеты на мой вкус были немного переусложнены. Это как с UT. Первоначальная тема очень громоздкая, и там никто понятия не имеет, как оно должно выглядеть. Но потом мы взяли идею, вытряхнули весь мусор и оставили замое простое и интересное. И получился нормаьный эвент. Так и ОпенНет. Он работает, и в общем хорошо. Но он сложен. По нему нет внятных гайдов. Его исходники не вдруг модифицируешь. У него централизованная структура, что само по себе имеет как плюсы так и минусы. Но мне кажется в атмосфере постоянных изменений p2p сети рулят. И вот сейчас мы взяли идею серверной сети, вытряхнули из неё всё лишнее и оставили предельно простую, гибкую и удобную систему. Поставить ноду Zn-сети на компьютер сейчас можно двумя командами: hpm install zn -- ставим либу с терминала require('zn').connect() -- запускаем ноду с интерпретатора (или из программы-однострочника) Она не обеспечивает никакой безопасности данных? Да, не обеспечивает. Хакеры будут отдыхать в Zn-сети как на Гавайах? Я буду очень раз если так. Это будет значить, что есть ещё одно интересное программерское занятие на серве.
-
1 баллКонец света приближается, силы тьмы овладевают умами. У одного уже есть банк круче тоторовского, осталось лишь найти того, кто сможет написать программу. Второй дарит крутую идею по написанию мобильной оси, и ожидает толпы клюнувших на эту сладкую задачу. Третий всего лишь за четверть ваших ресурсов предлагает вступить в ряды поднимающих OpenNet. Что будет дальше, страшно представить.
-
1 баллВыкладываю инфу по OpenNet для тех, кто захочет этим заняться. Сеть является трехуровневой. 1-й уровень: Роутеры первого уровня являются ядром всей Сети. Они должны быть расположены компактно и объединены друг с другом в локальную сеть при помощи проводных сетевых карт. Кроме того, каждый роутер должен иметь как можно большее число связанных карт (tunnel) для обмена с роутерами второго уровня. ПО роутера 1-ого уровня: https://preview.c9users.io/krutoy242/opennet/_source/on_router/ONrouter.lua Так же роутеры 1-ого уровня требуют наличия библиотеки thread. 2-й уровень: Роутеры второго уровня или WiFi-роутеры располагаются в произвольных точках карты и могут находиться даже в других мирах. WiFi-роутер должен иметь в своем составе связанную карту, чья карта-близняшка стоит соответствующем роутере 1-ого уровня. Так же WiFi-роутер должен иметь беспроводную сетевую карту для связи с ОН-клиентами. Опыт показывает, что надежный доступ к Сети обеспечивается в радиусе 350 блоков от WiFi-роутера. ПО роутера 2-ого уровня: https://preview.c9users.io/krutoy242/opennet/_source/WiFi/WFrouter.lua 3-й уровень: ОН-клиенты - компьютеры конечных пользователей. Требуют наличия беспроводной сетевой карты и библиотеки opennet.lua https://preview.c9users.io/krutoy242/opennet/client/lib/opennet.lua
-
0 балловПривет читатель! Играя с друзьями у меня появилась необходимость обмениваться сообщениями ТОЛЬКО по компьютерам(самодельный приват) Жили мы в разных домах, у каждого замок на двери. В интернете ничего годного я не нашёл, так что решил написать свой чат. Плюсы: Обмена сообщениями без чата Не требует много ресурсов и почти ничего не весит Хватит друзьям Команды Создатель чата - !( Del )! (или если хотите - Деф) Специальное спасибо serafim за предоставление своей версии чата. Код был нагло скомунижжен позаимствован оттуда и немного переработан. Ах,да... Ссылка на сообщение Так же была использована немного переработанная библиотека для шифрования цезарем. Ссылка на гитхаб предоставлена Установка: pastebin run 1Y1KnTen Кому интересно порыться в библиотеке, ссылка будет тут всегда
Эта таблица лидеров рассчитана в Москва/GMT+03:00
