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

1Ridav

Администраторы
  • Публикации

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

  • Посещение

Все публикации пользователя 1Ridav

  1. Написал ОС часть, которую можно подгрузить в свою программу и использовать. Написал об этом в своем блоге
  2. 1Ridav

    Android & OpenComputers

    Пастбин для ОС компьютерной части на nKbGjVPw Разрабатываю удаленное управление компьютерами в игре через android/jar приложение. Ссылка на превью тему с андроид приложением: http://computercraft.ru/topic/347-android-opencomputers/ API ОС части если и изменится, то крайне не существенно. Текущий API OC части: local br = require("bridge") br.init() - Создает соединение с мостом, позволяет использовать дальнейшие функции. Возвращает значение true/false через return. false вернется в случае неудачного соединения. br.auth("ключ в виде строки") - Производит авторизацию на мосту, позволяет найти соединение с партнером по ключу. Возращает значение true/false false вернется в случае неудачной попытки отправить ключ. Если мост найдет партнера с таким же ключем - мост пришлет сообщение CONNECTION WITH КЛЮЧ ESTABLISHED br.send("сообщение") - Посылает сообщение на мост, Если сообщение отослано нормально - вернется true через return функции. Если на мосту нет другого соединения с таким же ключом - мост пришлет сообщение I DO NOT HAVE A PAIR br.receive() - Блокирует процесс до тех пор, пока не придет сообщение от моста, возвращает два значения - true/false и message. true/false означает выполнилась ли функция нормально, message будет содержать сообщение от моста. Возможно значение nil, если соединение потеряно, даже, если первый аргумент будет true. br.finish() - Не имеет return значений, Закрывает соединение. Пример использования без параллельного запуска: local br = require("bridge")br.init() -- Соединяемся с мостомbr.auth("12345") -- Авторизируемся на мостуwhile true do local status, message = br.receive() -- считываем ответ моста, ждем когда он найдет для нас партнера(НЕ ОБЯЗАТЕЛЬНО) print(message) br.send(io.read()) -- Пишем сообщение с клавиатуры и отправляем партнеру, если партнер не найден - мост об этом уведомит endbr.finish() -- ОБЯЗАТЕЛЬНО закрываем за собой соединение
  3. gravityfolls@computercraft.ru Зарегистрирован, первичный пароль отправил в ЛС
  4. Потом выложу кроссплатформенный клиент в jar формате. Можно будет с компьютера соединяться. Он в принципе есть, на нем тестировал и отрабатывал соединения с мостом перед тем, как перевести на андроид
  5. Скачать приложение android Библиотека клиента ОС На нашем форуме уже не мало программ, есть программы для защиты дома, программы для контроля. карьеры на черепахах и роботах. Однако у всех одна и та же проблема - требуется быть в игре для того, чтобы контролировать их работу или запускать что либо. Запускать игру дело не быстрое, ведь нужен компьютер, а он не у всех под рукой. Другое дело - мобильный телефон или планшет. Почти всегда рядом, компактный, легко носить. Это уже так вплелось в нашу жизнь, что мы и не замечаем ничего сверх естественного в этом. Возвращаясь к вопросу об управлении своими компьютерными системами не заходя в игру. Я решил сделать андроид приложение для этих целей. Все очень просто - запустил приложение - получил данные от своих компьютеров и дал им новые задания не заходя в игру. Так это должно быть в идеале. Для соединения требуется лишь запустить программу-клиент на OC компьютере и запустить андроид приложение. Для соединения андроида и игрового компьютера используется некий "ключ", который требуется ввести в оба клиента. Для примера используем ключ "abc789" Соединяться будем с нашим собственным сервером моста(Выложу его потом в общий доступ) После нажатия на Готово или кнопку Connect ниже поля ввода ключа - произойдет попытка соединиться на указанный сервер с заданным ключом. Если соединение успешно - нас перебросит в окно консоли, между окнами можно переключаться путем свайпов или перелистывания справа налево или наоборот. Окно консоли показывает то, что вы принимаете из сети, чуть ниже поле ввода для ввода текста Перелистываем обратно в окно авторизации и видим, что индикатор показывает то, что мы подсоединены к мосту(подробнее об этом можно узнать изучая статью по клиентской части ОС. Ссылка выше.) Попробуем для теста написать что либо и отправить ОС клиент не подключен к сети моста, поэтому мост уведомляет нас о том, что пересылать отправленное нами сообщение некому. Подключаем наш игровой компьютер с интернет платой к мосту () Android приложение получило уведомление о том, что ОС клиент подключен и можно обмениваться данными в виде строк(string) Отправим несколько тестовых строк, в том числе и команды среди них. Затем отключим для демонстрации программу ОС и запустим её снова. Связь восстанавливается, уведомления об этом получаются корректно Вот так выглядит тестовая программка, которая обрабатывает команды set N. ok означает, что команда set N распознана успешно, true - это успешно ли было отослано слово "pong"(true означает, что до моста дошло успешно). Обновление 1: Добавлена кнопка Disconnect&Close - отключает соединение и закрывает фоновый сервис. Добавлен визуальный индикатор состояния подключения(Шкала прогресса ProgressBar и текст), который показывает как на данный момент работает система. Добавлено автоматическое переключение в окно консоли при подключении Исправлен баг в поле ввода ключа. Кнопка Done выглядела не корректно. Обновление 2: Добавлена автоматическая прокрутка в логах консоли Изменен алгоритм обработки сообщений и системных кодов, так что старые версии приложения и ОС части не работают с обновленным мостом, обновляйте библиотеку и приложение. Немного увеличено потребление оперативной памяти в угоду отмены некоторых ограничений. Уменьшен сетевой DATA трафик в режиме ожидания на 28,67% Обновление 3: Добавлена возможность получать Toast и Push нотификации по команде с ОС Исправлена синтаксическая ошибка, которая приводила к невозможности установить приложение на устройство.
  6. Нам удалось найти и договориться с хостинг компаниями о предоставлении нам пространства для сайта oxnull.net и VDS сервера foxcloud.net за их баннеры на нашем сайте. Проект существует с 2014 года, и мы все вместе добились определенных результатов. Разработали и продолжаем разрабатывать что-то новое и интересное. Однако для поддержки проекта требуются денежные средства на: оплату домена computercraft.ru продвижение нашего проекта на рейтинговых сайтах Minecraft. покупку исправлений для модов, плагинов и др. платных услуг приобретение лицензий McMyAdmin для администрирования серверов и др. ПО. Откуда их взять? Платных услуг у нас нет ни в каком виде, мы не заставляем ни за что платить. Все, что можно - сделано доступным для игроков. Реклама на сайте - почти нулевая прибыль из-за небольшого объема посетителей. Если вам понравился наш проект, вы можете исключительно на добровольной основе помочь нам. WebMoney WMR - кошелёк R508463744808 WMZ - кошелёк Z349748353724 WME - кошелёк E169563136502
  7. Вписал в базу brey@computercraft.ru Первичный пароль скинул в личку
  8. fingercomp@computercraft.ru neo@computercraft.ru созданы, первичные пароли скинул в личку. Не забудьте сменить.
  9. duiiies@computercraft.ru зарегистрирован, первичный пароль скинул в личку
  10. Желающим можно зарегистрировать почтовый ящик NICKNAME@computercraft.ru Заявку на почту оставлять в топике. Почта будет выдана при выполнении любого хоть какого-то одного из перечисленных условий: OR минимум 100 сообщ. на форуме OR 2 и более медальки Байта OR голосов за проект > 75 OR репутация > 100 ед. OR материальная поддержка проекта в виде пожертвования средств (от 50 рубл.). OR наличие любой из перечисленных наград: "Победа в ивенте, конкурсе", Помощник администрации, Медаль "На крыльях славы", Знак "Техническая поддержка", Знак "Платиновый геймпад", Осквернитель багов I ст., "Золотая звезда", ТОП-1 в голосовании за месяц, "Орден Верности" Если считаете, что достаточно активны на проекте, то оставьте в этой теме свою заявку. На почту можно зайти через http://mail.computercraft.ru/
  11. Надо будет в свободное время заценить сие чудо
  12. Для этого я как раз и занимаюсь мостом и android приложением для полноценного управления компами с телефона в двухстороннем порядке
  13. Внимательо изучил исходники. Написано просто и понятно. Из минусов надо отметить невозможность изменять os.pullEvent иначе эта библиотека меню попросту перестанет работать. Так же к сожалению не увидел возможность создавать несколко меню и использовать их в зависимости от текущего состояния программы пользователя А так задумка очень даже полезная
  14. Обновлена библиотека, добавлены функции GUI.NO_EXIT() GUI.EXIT() А так же деструктор объектов
  15. Указанный пастбин устарел уже больше месяца назад. Используй эту версию: ZTM3Njm6
  16. p1:addCHILD({b}) GUI.MainPanel:addCHILD({p1}) используй без кавычек {} . То есть GUI.MainPanel:addCHILD(p1) p1:addCHILD(b) Так же функционал надежнее задать через постустановку. b.func = function(s) бла бла бла end Баг в задании функционала
  17. На спавн эти голограммы надо поставить. Заходит игрок и видит аллею произведений искусства! Очень даже поднимет настроение и возможно подтолкнет учиться делать такие штуки
  18. Мне тоже никто за свои программки и уроки ничего не дает... К сожалению...
  19. https://github.com/1Ridav/DailyGift/blob/master/core Выложил исходник на гитхаб
  20. Добавил ссылку на Github, Все обновления будут происходить там
  21. Мой вариант решения: if cx > s.dynX + pos then s.target.setBackgroundColor(s.color_bg) s.target.write(temp) else s.target.write(string.sub(temp, 1, math.floor(s.dynX + pos - cx + 1) ) ) s.target.setBackgroundColor(s.color_bg) s.target.write(string.sub(temp, math.floor(s.dynX + pos - cx + 2), #temp)) end Для справки: Изменено апи _dynRefresh = function(s) px, py = 1, 1 if s._PARENT then px, py = s._PARENT.dynX, s._PARENT.dynY end s.dynX = s.x + px - 1 s.dynY = s.y + py - 1 end,
  22. Дополнил документацию
  23. Необходимо сделать возможность добавления нескольких жильцов в доме.
×
×
  • Создать...