Перейти к содержимому

Поиск по сайту

Результаты поиска по тегам 'openComputers'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Блоги

  • Робот Байт
  • Fingercomp's Playground
  • 1Ridav' - блог
  • Totoro Cookies
  • Блог cyber01
  • IncluderWorld
  • KelLiN' - блог
  • Крутой блог
  • eutomatic blog
  • Programist135 Soft
  • Сайт в сети OpenNet
  • PieLand
  • Очумелые ручки
  • Блог недоблоггера
  • В мире Майнкрафт
  • LaineBlog
  • Квантовый блог
  • Блог qwertyMAN'а
  • some blog name
  • Дача Игоря
  • Путешествия Xytabich'а
  • Рецепты программирования
  • Шкодим по крупному
  • 123

Форумы

  • Программирование
    • Программы
    • База знаний
    • Разработчикам
    • Вопросы
  • Игровой раздел
    • Игровые серверы
    • Моды и плагины
    • Жалобы
    • Ивенты и конкурсы
    • Файлы
  • Общение
    • Задать вопрос
    • Обратная связь
    • Беседка
    • Шкатулка
  • Технический раздел
    • Корзина

Группы продуктов

Нет результатов для отображения.


Искать результаты в...

Искать результаты, которые...


Дата создания

  • Начать

    Конец


Последнее обновление

  • Начать

    Конец


Фильтр по количеству...

Зарегистрирован

  • Начать

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


ВКонтакте


Gtalk


Facebook


Twitter


Город


Интересы

Найдено 290 результатов

  1. ItsMakar

    mOS

    ~~В общем исходного кода нет пока ибо автор не за пк соответственно не может его закинуть на гитхаб~~ Короче mOS - самая лучшая (нет) ос в опен компухтерах которая была написана за несколько дней половина методов были культурно украдены из openOS а несколько методов для загрузчика из CyanBIOS есть чето вроде шелла но он нифига не работает почти просто выполняет луа файл который указан
  2. Доброго времени суток , недавно задумывался о том чтобы создать комнату для системы безопасности... Как и в любом стратегическом помещении в комнате должна быть кодовая дверь... посмотрел на OpenSecurity и тут понеслась... накидал основу +- пару часов на добавление плюшек и вот что получилось: >жмяк< . | pastebin get iA7jGLCd door | Как оно работает? > Для начала нужно установить аппарат на котором будет базироваться наша дверь : В моем случае это компьютер с характеристиками: > Далее собираем саму дверь: Обязательно: Door Controller. Keypad. Security Door. Дополнительно: Entity Detector. ЧатБокс (OpenTechnology) Запуск. > При первом запуске программы нужно ввести пароль который будет использоваться для открытия двери. Внимание!!! -! При запуске программы все двери закроются. -! При перезапуске программы пароль не сохраняется. -! При верном пароле откроются все двери подключенные к вашему аппарату. -! Не стоит подключать более 1 ЧатБокса , а также более 1 Entity Detector'a. Итог:
  3. jammer312

    GPSv2

    Я уже закидывал сюда похожую прогу года три назад, но она кривая-косая, не очень надежная, ну и геморная в плане развертки. Эта версия более компактная (и простая в постройке), использует упрощенные вычисления и более эффективный механизм передачи сообщения меж компонентами; помимо этого используются особенности микроконтроллеров для автоматической конфигурации системы. Код в репозитории, для контроллера и периферии. Для постройки одного модуля нужно 3 микроконтроллера второго уровня и один компьютер второго уровня, начинка одинаковая, в каждом нужен процессор, плата оперативной памяти и беспроводная плата второго уровня. Операционная система на компьютер не нужна. В данном контексте компьютер будет контроллером, микроконтроллеры - периферией. Код для них пишется на eeprom. Помимо кода на eeprom можно записать параметры работы (в сегмент данных), для периферии это просто одно число - порт, на котором ожидаются запросы, для контроллера эта строка вида "port: \d+, key: \w+, anchor: \{-?\d, -?\d, -?\d\}", в ней записаны порт, на котором ожидаются запросы и с которого отправляются ответы, ключ-пароль (для настройки координат через беспроводные сообщения, об этом потом), а также якорь - координаты компьютера. По умолчанию используется 312 порт, ключ-пароль admin, и координаты {0, 0, 0}. Схема постройки простая, нужно установить где-либо компьютер-контроллер, а потом вплотную к трем его сторонам установить микроконтроллеры-периферию, при этом не должно быть такого, что контроллер расположен между двумя периферийными микроконтроллерами (если с одной стороны есть микроконтроллер, на противоположную ставить нельзя). Помимо этого лицевые стороны микроконтроллеров (одна из 6 сторон имеет иную картинку, и, что важно, к ней не присоединяются провода) не должны смотреть на контроллер. После постройки нужно единожды включить каждый из 4 компонентов, они при этом сами быстро выключатся. Это нужно для настройки модема, для того, чтобы компонент просыпался при получении определенного сообщения. После этого система уже готова к работе, но при этом не знает (если это не было заранее записано в сегмент данных eeprom контроллера) своих координат, и будет отвечать на все запросы относительными. Для включения системы достаточно отправить сообщение "gps_wake", при этом система запустится, сконфигурируется, и после этого отброадкастит сообщение "gps_ready". Такое же сообщение, но на адрес того, от кого пришло "gps_wake", отправится в случае, если система уже активна на момент получения запроса. Для того, чтобы сообщить координаты контроллеру, нужно отправить сообщение "gps_anchor", после которого идет ключ-пароль (записан в сегменте данных eeprom контроллера), после которого идут координаты (3 числа) контроллера. Координаты при этом запишутся на eeprom, т.е. при выключении-включении они все так же будут известны контроллеру. Для использования системы достаточно отброадкастить "gps_request", контроллер ответит (именно тому, от кого запрос) сообщением "gps_response", после которого идут 3 числа - координаты x, y, z. Таймаут обработки запроса - 1 секунда, если вдруг 1 секунда прошла, а ответа не пришло - что-то не так. При этом контроллер при таймауте запроса забывает все его данные, поэтому кривой запрос (например, отправленный сквозь толстую стену, которая снизила мощность сигнала настолько, что он дошел лишь до части системы) не будет "портить" последующие. Имеет смысл "включить" систему перед первым запросом (послать "gps_wake" и дождаться ответа "gps_ready"), на непосредственно включение уйдет до примерно 2 секунд (вообще с потолка взял, на деле должно шустрее, но внутри таймаут привязки стоит именно 2 секунды, после этого он отправляет 3 сообщения периферии и посылает сообщение о готовности), включенная же сразу ответит. Картинка для референса:
  4. Итак сегодня я наконец сделал свою "мега-крутую" программу. Это так сказать "криптовалюта" только без того самого крипта, блокчейна и всякие другие вещи которые есть в реальных криптовалютах. Но, все принципы майнинга здесь есть - вы жрете электричество и мощности своего компьютера чтобы заработать монетку работает это крайне примитивно, НО РАБОТАЕТ! Так как всё-таки это бета версия. То тут всё ещё есть баги и код написан не очень хорошо, в дальнейшем это будет всё фикситься и т.д. Работа программы: В моей программе клиент/сервер в клиентской стороне - 3 программы и серверный код на PHP который будет на каком-нибудь веб-хостинге. Итак разбор скриптов: Сервер: Клиент: Скриншоты: Установка и авторы Загрузка: wget https://raw.githubusercontent.com/LaineZ/OCCoins/master/Client/installer.lua Установка: installer.lua Авторы: kikito - автор библиотеки md5.lua ECS - автор библиотеки windows.lua Laine_prikol - автор программы и серверных скриптов Репо на гитхабе ------- ЛОВИТЕ БАГИ И ГЛЮКИ -------
  5. Прошу помощи в создании программы для автоматической замены стержней и лазуритовых конденсов в реакторе. А также защиту, чтобы когда реактор начинал перегреваться он отключался и когда происходит замена стержней. Основная проблема в том, что тпс на сервере как правило 1-3, поэтому нужна оч хорошая система защиты. Для OC 1.6.1 версии (вообщем версия старая в этом тоже есть проблема) С использованием адаптеров, красного камня(из oc) и компьютера (без роботов) Схема представлена на скрине (чисто для этой схемы, чтобы упростить задачу) Буду очень благодарен за помощь! мод OpenPer имеется
  6. Эта тема является продолжением решения вопроса о трудностях обмена пакетами в беспроводной сети OpenComputers. Здесь обсуждается влияние на дальность доставки пакетов не только силы сигнала и препятствий в виде блоков, но и других факторов. Откуда такие сведения? Вроде нет такой физики в OpenComputers.
  7. Всем ку! Ищу сервера с opencomputers и computercraft, нигде не могу найти таковых( Желательно с чанклоадерами, но и без них норм. Спасибо! P.S ProjectOS 3 Мёртв(
  8. Нужно посмотреть, что внутри сундука и вывести информацию на мониторе
  9. Я отсылаю на порт робота, возьмём 1, функцией broadcast, a робот не принимает с event.pull, оно не принимает ничего, почему? Но если с пк на пк, то получается. У робота есть сетевая карта, и пк тоже, так почему? Может из-за того что я на сервере?
  10. Почти с месяц назад я представил во флудилке пару скриншотов разрабатываемого мной браузера и приличному количеству людей оно тогда понравилось. Поэтому сегодня, спустя пол года кодинга, нескольких переходов с одного движка на другой и кучи потраченных нервов я могу наконец представить его вам. Знакомьтесь, Memphisto. Примите во внимание, что браузер находится в тестовой стадии, еще предстоит сделать много всего, поэтому возможно наличие неприятных багов (два глаза все не отловят). Основные характеристики: Используется движок NyaDraw, который является портом движка Screen из MineOS. Поэтому браузер весьма быстро (для таких ПК) отрисовывает и прокручивает страницы. Для страниц используется язык NFPL, специально разработанный с учетом особенностей OpenComputers. Поддержка гиперссылок, загрузочных ссылок, рисование векторной графикой и многое другое. Поддержка картинок формата OCIF5 и OCIF6. А так же их использование в качестве графических ссылок. Возможность просматривать страницы оффлайн, то есть с жесткого диска (полезно при написании страниц). Для поднятия своего сайта достаточно обычного HTTP(S) сервера. Системные требования: Минимальные: Процессор: Уровень 1. Видеокарта: Уровень 2. ОЗУ: 768Кб. Жесткий диск: не меньше 42Кб свободного места. Интернет карта Рекомендуемые: Процессор: Уровень 3. Видеокарта: Уровень 3. ОЗУ: 1Мб или больше. Жесткий диск: не меньше 42Кб свободного места. Интернет карта Скачать: pastebin run EUZQRkwF Репозиторий на GitHub Полезное: Руководство по языку NFPL (Network Formatted Page Language). Первый NFPL сайт - bs0dd.github.io (запущен в тестовом режиме). Руководство по графическому движку NyaDraw. Увы, одного человека слишком мало для реализации задуманного, поэтому ищутся люди, хорошо понимающие в Lua, которые смогут помочь в устранении багов и расширении функционала как языка NFPL так и браузера для него.
  11. https://pastebin.com/LFAEzkP6 Делал погода назад. Откопал в бекапах.
  12. Оказывается, Сангар на днях работал над новой версией ОС https://github.com/fnuecke/oc2 O_o
  13. Мод Computronics существует уже более 5 лет. Однако почему-то и по сей день нет ни одной более-менее рабочей файловой системы для кассет из этого мода. Будем исправлять ситуацию))) На сей раз я и представляю вашему вниманию файловую систему для этих самых кассет. TapFAT (Tape File Allocation Table) является функционально полной ФС с возможностью фрагментированного хранения данных. Первые идеи о написании ФС для кассет меня посетили еще в октябре, но время появилось лишь к концу декабря, тогда же я начал обдумывать основу системы. К январю начал писать основную библиотеку, вспомогательные утилиты, отлавливал баги, оптимизировал и упорядочивал код. Наконец, к июню месяцу готова первая версия драйвера. ПРЕДУПРЕЖДАЮ! Файловая система - вещь сложная и довольно серьезная. Я постарался устранить все обнаруженные баги, но не исключено, что некоторые могли проскользнуть мимо глаз. Поэтому я не несу ответственности за порчу данных на кассете в следствии сбоя драйвера. Сохраняя данные на кассетах вы действуете на свой страх и риск! Скажу сразу, ФС довольно медленная (виной тому буферы в операционках, ибо запись на кассету больших и мелких кусков занимает, как ни странно, одинаковое количество времени), поэтому она больше подходит для архивации данных. Учитывая, что самая крутая кассета дает нам около 30МБ, туда можно заархивировать очень много информации (не знаю, нужно ли кому столько). Первые 8КБ кассеты зарезервированы под саму таблицу FAT. Она представляет собой обычную сериализоваyную таблицу Lua, которую при желании можно сжать двумя способами, поскольку она немного не экономична. Так при разных режимах в 8КБ таблицы может уместиться: Без сжатия - около 150 файлов Сжатие LZSS - около 580 файлов Сжатие Картой Данных - около 720 файлов Также можно сэкономить пространство таблицы, отключив хранение даты изменения файла, в таком случае все записанные файлы будут иметь дату изменения 0 (т.е. 00:00:00, 1 Января 1970 года). Краткое руководство: Загрузка ОС с кассет: Установка: pastebin run Tq3hbpaz Драйвер также доступен в MineOS App Market Репозиторий на GitHub Планы на будущее: Нормальное кодирование таблицы Шифрование таблицы. Сжатие и шифрование файлов. Ускорение работы файловой системы
  14. Короче решил написать майнер для OC. За основу взял Duino-Coin : https://github.com/revoxhere/duino-coin Вот сам майнер: https://github.com/ReactorNefg/OpenComputer-Miner-Duino Програма полу рабочая (в любой момент может крашнуть) Писал в рофл. Готов выслушать критику по коду и тд.
  15. Это обсуждение было отпочковано от темы Майнинг OpenComputer. local function round(num) return num + (2 ^ 52 + 2 ^ 51) - (2 ^ 52 + 2 ^ 51) end Вот мне просто интересно, каждый раз при вызове функции двойка будет четыре раза возводиться в степень? Не будет ли эффективнее сделать так? local huge = 2 ^ 52 + 2 ^ 51 local function round(num) return num + huge - huge end Да и подход к округлению странный. Чем не устраивает math.floor(num+0.5) ? Зачем для получения timeDifference нужно реальное время? Измерять временнЫе интервалы в OpenOS можно не пропиливая жесткий диск. И самый главный вопрос: откуда будут сыпаться биткойны и много ли уже насыпалось?
  16. Сидел читал форум, наткнулся на тему "Управление роботом с планшета" и сразу понял что моего ума хватит на создание программы которая позволит управлять роботом с НАСТОЯЩЕГО ТЕЛЕФОНА на системе android. И так, представляю вам - RRCM - Robot Remote Controll Mobile Что вам понадибится? 1. Телефон на android 2. Робот с минимальными компонентами и open os 3. Интернет карта на роботе Установка: 1. На робота ставим программу RRCM (pastebin get y2Twekz8 RRCM) 2. Ставим серверный скрипт на сервер/свой пк(если порт 5000 открыт): -- 1. Ставим python -- 2. После установки python3 вводим в терминал/cmd команды: "pip install flusk" "pip install flusk-restful", также если в четвёртом шаге у вас возникнет ошибка, пробуйте "pip3 вместо "pip" -- 3. Скачиваем скрипт - *тык* -- 4. Запускайте скрипт(windows: двойной клик по скрипту, linux: "python3 название_скрипта" 3. Ставим приложение на android - *тык* 4. Запускаем приложение, вводим только домен/ip:port нажимаем connect - если появляются кнопки управления - работает, если приложение виснет - какая-та проблема(скорее всего приложение не видит сервер 5. В скрипте RRCM на роботе изменяем локальный ip:port на ваш домен/ip:port 6. Запускаем RRCM на роботе. 7. Всё должно работать. Если у многих будут проблемы, запишу видео. В будущем планирую сделать скрипт на EFI что-бы не тратится на диск. Не удивляйтесь малому функционалу, проект был заброшен 2 раза, скоро сделаю обнову. (возможно) UPD: Забыл сказать! Для остановки скрипта надо перезагружать робота, но в скором времени сделаю кнопку в приложении для остановки скрипта Если будут ошибки - пишите, разберусь. UPD2: Если вы боитесь за безопасность устройства то вот вам исходник приложения - *тык* Приложение билдить на андроид в unity
  17. Пока что приложение не до конца разработано, есть только сервер и скрипт для робота. Так что - ждите, мои дорогие форумчане. Для чего это нужно? Каким то образом, вы узнали что вас гриферят(допустим так) и решили не отдавать свои ресурсы и взорвать всё к чертям! Но вы не можете зайти на сервер или вы даже не дома! Просто взорвите свой дом роботом! ИЛИ Захотели потроллить друзей? Выйдите с сервера и начните управлять роботом! Они точно афигеют, особенно если их дома будут подорваны роботом. ИЛИ Сидите вы значит на диване и вам лень подойти к компу что-бы что-то сделать? Решение есть! Просто сделайте это с помощью телефона и робота! Выпуск первого релиза был назначен на 30.08.2021, но у меня юнити решила не качать Android Support для билда приложения. Постараюсь как можно быстрее поставить андроид саппорт и дам вам наконец эту безделушку. P.S. В первом релизе будет крайне малый функционал в виде передвижения во все 4 стороны + поднятие и спуск на 1 блок. P.S.2. Это мой первый проект, так что не бомбите от багов и проблем. 03.09.2021 19:50 UPD: Возможно сегодня если приложение будет работать, я выложу всё.
  18. Хотелось бы научится создавать графики, вертикальные, горизонтальные. Например есть выход с реактора и мфсу, хотелось бы сделать прогресс бар заполнения хранилища. Буду благодарен за любую помощь..)
  19. import requests payload = { 'content': 'hello wrold' } headers = { 'authorization': 'token' } r = requests.post("https://discord.com/api/v9/channels/878296304684527653/messages", data=payload, headers=headers) Хотел бы увидеть реализацию на OpenComputer.
  20. Я, кажется, эдак годик (ну ладно-ладно, меньше) назад фигачил чатик и вроде был доволен (нет). Вот тута хранится сей артефакт: http://computercraft.ru/topic/758-chat-dlia-googolglasses/ Как выяснилось впоследствии, чатик был совершенно непродуман и неудобен. К тому же, я изрядно получше научился кодить на Луа. И вот, полностью задолбавшить старым чатиком, я засел писать новый. В этом топике представляю вниманию перевод README на гитхабе. Фичи: Каналы Поддержка беспроводной клавиатуры Модули Сетевой интерфейс Разделённые буферы вывода Конфиг-файл ... Требования: Карта данных или блок данных (OpenSecurity) — нужен для сетевого интерфейса. Соотвественно, мост и очки OpenPeripheral (TODO здесь должна быть картина, наныть у Тоторо). Использование Установка Вам нужны будут мост, очки, адаптер, а также карта или блок данных. Подсоедините адаптер к компьютеру (рядом поставить или кабелем соединить), поставьте мост рядом с адаптером. Вставьте карту данных в компьютер, если вы скрафтили её, или подключите блок данных. Теперь пропишите edit /etc/chat.json и отконфигурируйте по своему желанию. Предсказываю, что наверняка вам хотелось бы сменить список админов, например, чтобы потушить чат по-нормальному. Когда вы морально и физически готовы, пропишите opg-chat. Базовое использование Оденьте очки. Та-даам! Появится на мой взгляд довольно красивый интерфейсик. См. пикчу внизу. Чтобы что-то туды отправить, прямо в чат пишите сообщение, добавив $$ в начало. Чтобы отправить команду, сделайте то же самое, но со / перед сообщением. Кроме того, можно использовать беспроводную клавиатуру, тогда доллары не нужны. Некоторые команды, которые желательно знать stop — стопнуть прогу. Очевидно, только для админов доступно. join <канал> — подключиться к каналу. part [канал/номер вкладки] — покинуть канал. И да, главный канал покинуть нельзя. Приносим извинения. help [команда] — попросить помощи у сервера. Можно дать команду — даст подробную инфу о ней. page <строки> — скроллить историю сообщения на канале. Положительные значения двигают вверх, отрицательные — вниз.На клавиатуре можно просто тыкать [PgUp]/[PgDn]. Продвинутое использование Модули Если вас не устраивает стандартная поставка чата, можно дописать свои модули. Просто создайте файл с разрешением .module в директории /usr/lib/chat-modules и творите магию. Как образец можно использоваться стандартные модули. Окружение (доступные функции) storage — таблица, временная память для всякого. Может быть использована для общения между модулями. apcall(func, args...) — advanced pcall — вырезает всякую ненужную фигню типа номера строчки и пр., оставляя только причину. Использована для показа ошибки пользователям (так как там ошибки для простоты assert'ом гонятся). createChannel — внутренняя функция. addUser(user) — создать пользователя с данным именем. join — рекомендую не использовать функцию. joinN(chan, user) — затаскивает пользователя на канал. Отсылает всякие оповещения, делает события и создаёт канал, если не существует. part — внутрення функция. partN(chan, user[, partMsg]) — заставляет пользователя выйти с канала с опциональной причиной. quitN(user[, quitMsg]) — заставляет его же покинуть вообще все каналы. sendMsgChan(chan, user, msg[, recipients]) — отослать сообщение на канал от имени пользователя. Можно дать таблицу тех, кому будет видно сообщение. sendMsgChanN(chan, user, msg) — то же самое, в принципе, но сделать дополнительные проверки (модерируемый ли канал там, достаточно ли прав). Не всегда полезно может быть — потому используйте функцию выше, если никаких проверок правовых не надо. addObject(surface, objName, funcKey, args...) — рекомендуемый способ для рисования объектов на поверхности (surface). Первым нужно дать таблицу из surfaces, потом задать имя объекту, указать название функции (строкой!) и дать аргументы функции. Нужно, чтобы можно было обратиться к объекту позже. Кроме того, хранит в userdata объекта его имя — если захочется использовать поддержку мыши без напряга. getActiveChannel(user) — вернуть "активный" канал. Т. е. у пользователя открыт возвращаемый канал (вкладка). bridge — прокси моста. surfaces — таблица, содержащая поверхности пользователей. surfaces[user] = { surface = {...}, -- Сама поверхность objects = {...} -- объекты на поверхности, созданные функцией `addObject` } users — список пользователей, созданных функцией addUser. commands — список зарегистрированных команд. isin(tbl, value) — маленькая, но очень полезная функция, которая кочует из одной моей проги в другую. Проходится по таблице и ищет указанное значение. Возвращает true, первый найденный ключ таблицы при успехе и false при неудаче. cfg — таблица с конфигурацией. В неё можно записывать — конфиг сохраняется каждую минуту и при выходе. setMode(chan, user, mode[, arg]) — выставить mode. mode — это параметр типа ±<буква mode>, например, +o, -h. Почти как в IRC. modes — таблица всех доступных modes. getLevel(chan, user) — возвращает маску уровня доступа пользователя. checkLevel(chan, user, levels, any) — проверяет, достаточно ли прав у пользователя. levels — таблица, содержащая уровни ({OP, ADMIN, SERVER}). Если any == true, то пользователя достаточно иметь один из перечисленных уровней для успеха. Иначе, все. reqcom(componentName, required[, msg]) — возвращает прокси компонента. Если его нет, а required ~= true, то вернуть пустой компонент (при его индексации возвращает всегда function() end), если же required == true, то создаст ошибку. Напишет ещё сообщение msg, если дано, а компонента нет. copy(tbl) — тоже очень полезная небольшая рекурсивная функция. Копирует таблицу. Напомню, что в Луа при передачи таблицы в функцию, та не копируется, а даётся той же самой (ну как & в Си-языках), что иногда чрезвычайно полезно, не иногда совсем не нужно. _FILE — строка с именем файла модуля. _MODULE — строка с названием модуля (ну то есть то же имя файла его, но без разрешения) NORMAL, VOICE, HALFOP, OP, ADMIN, SERVER — уровни доступа. PREFIXES — таблица уровень-префикс для вывода на очки. всякие там @, %. addListener(eventName, name, func) — добавить слушатель с данным именем, работающий как event.listen, но игнорирующийся при завершении программы. delListener(eventName, name) — удалить слушатель. command {args} — создать новую команду. Лично я опускаю скобки, так как не люблю их. args = { name = "название команды, которую надо писать через /", level = NORMAL, -- кому позволено писать команду help = "Краткое описание команды в списке /help", doc = [[Длинная документация для команды, можно на несколько строк делать]], func = function(eventName, chan, user, raw, cmd, args...) -- eventName — название события -- chan — канал, откуда отправлено событие -- user — пользователь, запустивший команду -- raw — необработанная команда без / в начале -- cmd — название команды -- args... — аргументы, разделённые пробелом (пробелами) end } Сетевой интерфейс (network.module) Этот модуль позволяет вам создавать своих чат-ботов через сеть. Поддерживает оба типа модемов. Однако, советую знать о Spoofing Card из Computronics — она позволяет указывать адрес отправителя (не только проводная сеть, но и беспроводная). Конфигурация В конфиг-файле (/etc/chat.json) есть секция "net". Пример: "net": { "enabled": true, "modemStrength": 400, "ports": { "6667": true, "6666": ["519187"] } } "enabled" задаёт, загружать ли модуль вообще. Если модем беспроводной, его сила будет установлена в значение параметра "modemStrength". "ports" — список портов, которые программа будет слушать. Левая часть ("6667"), очевидно, порт. Правая часть можно быть или true — тогда программа не будет фильтровать порт, или белый список адресов (или их частей). В моём примере, программа будет принимать соединения на порту 6667 только от адресов, которые начинаются на "519187". Команды <имя пользователя>, "auth", <пароль> — подключиться к серверу. true, "keep", "auth", <сессия> — <сессия> — это временный пароль, требуемый для других команд. <имя пользователя>, "msg", <сессия>, <сообщение> — отправить сообщение или команду на сервер. true, "keep", "ok" — сообщение успешно отправлено. <имя пользователя>, "quit", <сессия>[, причина] — закрыть соединение. true, "close" — успешно закрыто. <имя пользователя>, "chaninfo", <сессия>, <канал> — получить инфу о канале. false, "keep", "you are not on channel" — не на канале. true, "keep", <data> — <data> — это сериализованная таблица со всей информацией. <имя пользователя>, "userinfo", <сессия>, <пользователь> — получить инфу о пользователе. false, "keep", "no such user" — запрошена инфа о несуществующем пользователе. true, "keep", <data> — <data> — это вериализованная таблица, соедржащая инфу о пользователе. Ошибки false, "error", "there is already an open connection for this address" — соединение для данного адреса уже установлено. false, "error", "nickname is already in use" — данное имя пользователя уже используется. false, "error", "no password given" — не дан пароль. false, "error", "could not auth: <причина>" — не смог авторизоваться, неизвестная причина. false, "error", "wrong auth" — нет соединения для авдреса, не тот пользователь или неверная сессия. false, "error", "no message given" — не дано сообщение (3 аргумент). События "event", "chat", <канал>, <пользователь>, <сообщение>, <все>, <получатели> — это собтие создаётся, когда пользователь пишет сообщение на канале. Здесь и ниже, <all> — это булева переменная, которая равна true[/i], когда отдельных получателей не задано (всем на канале отослано), и [il]false в противном случае. Если <all> == true, то <recipients> — сериализованная таблица получателей, иначе — сериализованная строка "all". "event", "notice", <канал>, <типУведомления>, <строкаУведомления>, <получатели> — событие создаётся при уведомлениях. "event", "pm", <пользователь>, <получатель>, <сообщение> — событие создаётся при отправке ЛС. "event", "join", <канал>, <пользователь> — пользователь вошёл на канал. "event", "part", <канал>, <пользователь>, <причина> — пользователь покинул канал. "event", "quit", <пользователь>, <причина> — пользователь вышел с сервера. false, "close", "server is stopping" — сервер завершает работу, соединение закрыто. Пароли Как вы могли заметить, нужен пароль для подключения. Где его взять? Если для пользователя нет пароля (или это имя не было использовано), следует отправлять "" в качестве пароля. Если же он есть, его и нужно отправлять в аргументе. Для установки пароля используйте команду /pass [пароль]. Если аргумент опустить, он будет снят с имени. Пароли хранятся в виде MD5-хешей. Для небольшой программки сойдёт, думаю, и этого. Сессии После небольшого раздумья ко мне пришло решение проблемы со Spoofing card из Computronics. Было решено усложнить жизнь ботам и клиентам, добавив сессию — временный пароль длиной в 16 символов, который даётся при авторизации. Он требуется для большинства других команд. Фуух. А теперь о том, как скачивать. Всё очень просто: устанавливаем OPPM (OpenPrograms Package Manager) и пишем oppm install opg-chat. Вуаля. Кроме того, программа требует OpenOS 1.6 и Lua 5.3. Исходники доступны тут: https://github.com/OpenPrograms/Fingercomp-Programs/tree/master/opg-chat Ах, да, собственно, пикчи этого безобразия:
  21. Ищу сервер с нормальным онлайном и модом OpenComputers
  22. Как получить UNIX время в OpenComputer?
  23. Что это ОЗА, или Огромный Запускатель Армагеддона - это хранилище, позволяющее достичь плотности до 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 байта, то малое хранилище потратит четыре гигабайта памяти и места на диске. Кроме того, достаточно много данных будет отправляться клиентам - если поставить в это хранилище чанклоадер, можно достичь того, что никто не сможет войти на сервер. Если заполнить большое хранилище, то будет проблематичным даже чистить мир по чанкам - вероятнее всего, админу придётся удалять целый регион. Для чего использовать? Проще всего использовать это хранилище как свалку. В нём слишком много слотов, чтобы можно было что-либо найти. Однако можно использовать это и как хранилище иридия или жидкого опыта - главное, чтобы был механизм, производящий их в таком объёме.
  24. У меня есть строка: local reguser = "1.10a4d55a8d778e5022fab701977c5d840bbc486d0,d8f4590320e1343a915b6394170650a8f35d6926,8888" мне надо всё ввести в переменные: versions = 1.1 login = '10a4d55a8d778e5022fab701977c5d840bbc486d0' pass = 'd8f4590320e1343a915b6394170650a8f35d6926' seed = 8888 Как обрезать это?
  25. Я пишу функцию в библиотеке программы, которая при нажатии на кнопку должна закрывать другие программы и сама закрываться Эта функция используется в event.listen("touch",func) Как я могу это сделать?
×
×
  • Создать...