Chebuya
-
Публикации
609 -
Зарегистрирован
-
Посещение
-
Победитель дней
72
Сообщения, опубликованные пользователем Chebuya
-
-
Только что, eu_tomat сказал:Да, микроконтроллер является хорошим вариантом. И, кстати, он у меня ни разу не сгорал. Но при использовании беспроводной сети возникает вопрос: кто включит погасший микроконтроллер? Они с компьютером будут постоянно обмениваться пакетами? Но это повысит нагрузку на сервер.
А зачем его включать? Вручную 1 раз включил, если погас - значит что-то плохое происходит. Пусть разбирается тот, кто монтировал реактор. Нет смысла предугадывать лаги майна, лучше обесточить 1 реактор, чем получить дырку вместо базы.
-
Только что, eu_tomat сказал:Поэтому часть обвязки редстоуном оказывается в горячей зоне, рано или поздно сгорает, и компьютер теряет возможность автоматического включения. Этот способ не работает с горячими реакторами.
Микроконтроллер с редстоуном и платой беспроводной сети. Сгорел микроконтроллер или кончился заряд - реактор остывает. И редстоун-факела не нужны.
-
8 часов назад, eu_tomat сказал:Предлагаю всем неравнодушным ядерщикам подумать над следующими вопросами:
- Как не допустить отключения управляющего компьютера?
- Как в кратчайшие сроки включить погасший управляющий компьютер?
- Как не допустить расплавления компонентов реактора или взрыва, пока компьютер выключен, а реактор предоставлен самому себе?
- Как всё это сделать с минимальной нагрузкой на сервер?
1. Редстоун-плата подаёт красный камень, инвертируем его красным камнем. Если компьютер выключился - подаётся редстоун-сигнал на компьютер. Так же сделать резервное питание компьютеру на случай отключения.
2. Записать программу на EEPROM.
3. Ядерный реактор отключится, когда компьютер выключится. Он же от редстоун-сигнала работает.
4. Это последнее что должно заботить. Пара факелов и 1 компьютер не сильно нагрузит сервер.
-
1 час назад, Argames13th сказал:Когда обновление?
Жду с нетерпениемЦитируя @ECS
Цитатаbecause OS development is finished. Some critical fixes will be done - but that's all.
-
Небольшое обновление:
- Добавлена поддержка локализаций. Пока что не вынесено в отдельный файл - возможно вынесу. Сменить язык можно изменив stuff.language на EN - английский, RU - русский, соответственно.
- Убраны часы, добавлен показатель расхода оперативной памяти. (Стырено с майнос)
- Добавлен "компас". Позволяет проще ориентироваться, в какую сторону смотрит дрон.
- И самая здоровская фича которая была добавлена - автодополнение. Теперь, интерпретатор вообще ничем не отличается от того, что есть в стандартной поставке OpenOS. Огромное спасибо @hohserg.
Небольшая гифка:
Скрытый текст
-
4
-
5 минут назад, eu_tomat сказал:Насколько я понимаю, дело не в наличии OpenOS, а в наличии других носителей с файловыми системами.
Добавил проверку.
-
Всем иногда приходится получать реальное время в OC. Обычно я использую такой код:
local fs = require("filesystem") local function getTime() local f = io.open("/tmp/time", "w") f:write("time") f:close() local timestamp = fs.lastModified("/tmp/time") / 1000 + 3600 * 3 --Умножаем на часовой пояс, в моём случае GMT +3 return os.date("%d.%m.%Y %H:%M:%S", timestamp) --Реальное время в формате День.Месяц.Год Час:Минута:Секунда end print(getTime)
Тут всё просто и понятно. Открываем файл в (Это важно!) /tmpfs, записываем любое значение, и получаем метку времени последнего изменения файла. Про этот способ, наверное, уже все знают, и тем не менее.
И тут недавно меня осенило. Я всегда знал, что эта файловая система есть и на голых компьютерах без ЖД, дронах.
Но если /tmpfs есть даже у микроконтроллеров, зачем тянуть время с интернета? Предлагаю вот такой код:
local filesystem = component.proxy(computer.tmpAddress()) local function getTime() local handle = filesystem.open("/time", "w") filesystem.write(handle, "time") filesystem.close(handle) local timestamp = filesystem.lastModified("/time") / 1000 + 3600 * 3 return os.date("%d.%m.%Y %H:%M:%S", timestamp) end
Этот код будет работать на любом компьютере. Вывод - тянуть время с интернета не нужно - например так сделано у @Asior в теме с бинарными часами:
Скрытый текстВсё гениальное - просто. @Fingercomp предлагаю добавить этот код сюда https://fingercomp.gitbooks.io/oc-cookbook/content/lua/real-time.html
Возможно, это я такой идиот, а все остальные использовали /tmpfs. Но надеюсь кому-то поможет.
-
5
-
1
-
-
Я тут посмотрел, и моя программа в целом может запускаться без OpenOS. Нужно только формат вещей адекватно продумать, а так - переделать не сложно, я думаю. И конфиг можно адекватно настроить. @Doob
Можно конкретики?
-
18 минут назад, eu_tomat сказал:Насколько я помню, этот радар не показывает координаты игроков. Соответственно, мы не знаем, находится ли другой игрок в нашей кабинке или же соседней. Можно, конечно, поставить радар на достаточном удалении от стен кабинки, но тогда компактность страдает.
Можно указать, на каком расстоянии сканирует радар. К тому же, возвращает он абсолютные координаты, т.е на первичной настройке можно указать координаты кабинки.
-
1 минуту назад, eu_tomat сказал:Правда, возможности гарантированно обнаружить постороннего игрока тоже может не быть. Существует ли что-то кроме сенсора из OpenPeripheral, способное обнаружить неподвижных игроков?
Computronics радар обнаруживает игроков/предметы.
1 минуту назад, eu_tomat сказал:Вполне безопасно, если проверять наличие посторонних игроков в кабинке. А наилучший способ передачи предметов зачастую определяется не теорией, а конкретным игровым сервером: где-то транспозер не работает с интерфейсом игрока, где-то админы запретили PIM. Что тогда остаётся использовать кроме робота?
Моё мнение - не играть там.
-
2 минуты назад, Doob сказал:В смысле, не когда пользователь захочет, а когда обновится в репозитории.
А, так у меня тоже не ручное скачивание же. Небольшой патч в лаунчере и скачивается свежая версия и запускается.
Всё же не понятно, что за доп. структура для фильтирации
-
1 минуту назад, eu_tomat сказал:А в чём небезопасность роботов?
Заходит другой игрок пока другой получает товары, ну вот и небезопасность. Либо просить админов отключить телепорты/эндержемчуги, но там где я играю - есть куча предметов, которые помогут проникнуть в кабинку. PIM/транспозер - надёжнее.
-
1 минуту назад, Doob сказал:Сейчас в пятый раз перерабатываю концепцию с нуля. Никаких зависимостей, моментальный старт прямо с EEPROM, автообновление, работы на ванильных контейнерах, без лишних модов.
Сильно.
В каком смысле автообновление?
Как хочешь добавить поддержку oreDict?
Работа на ванильных контейнерах - это как? Будешь делать огромные поля из сундуков?
Работа на транспозерах - нечестно, ибо на 1.7.10 работать с инвентарём игрока через транспозер не представляется возможным=\
-
@Doob Есть, к слову, тоже пару рипов.
1 - это робот. Постоянно, просто постоянно игроки лезли в чужие кабинки, когда были не свободные кабинки, а с дверью. А с роботом вообще ни о какой безопасности речи быть не может =\
2 - сериализация openos'овская. Рип же, не эффективно. А как делать, если случайно утопил жёсткий диск в лаве? Да и жд получается дёргается очень часто.
-
Только что, hohserg сказал:Сделай дружественный UI, чтобы юзер не мог неосознанно стрелять себе в ногу
Да ну его, если честно. На сервере постоянно говорят, мол у меня ресы отобрали, а монеты не дали(думают, что дают серверные монеты).
Кому надо - пусть переделывает.
Только что, hohserg сказал:А какие там файлики вообще хранятся?
Ну в основном сейчас в .txt файлах хранятся данные о пользователе. Дата регистрации, последнего входа, баланс, кол-во транзакций, следующее время до бесплатной еды, отзыв.
-
4 часа назад, Doob сказал:Это рип. Посмотрел в конфиг, вообще рип.
Пимка - рип.
Админские ключи пихать в опенкомпы это совсем рип. Их любой игрок может из памяти прочитать. А если постараться, то прямо из потока.
Пимка разрешена, почему нет. Несложно приделать какого-нибудь робота.
А что не так с админскими ключами? Да какому-нибудь читаку проще мэ сломать и ресы себе забрать. Ну забрали ключ, поменяю. (Учитывая, что просто открыть конфиг и забрать не получится.).ККакие-то проблемы, которые малореализуемы.4 часа назад, Doob сказал:Ты сподвиг меня, в очередной раз переписать свой маркет. Давно хотел минимализм и нормальную поддержку OreDict с автообновлением и телеметрией.
Тот что был у тебя, меня не устраивал. Но я рад, что кого-то замотивировал. Да и писал я для себя, кому надо - пусть сами разбираются. Мне всё просто и понятно.
37 минут назад, hohserg сказал:- Магаз не умеет искать нужные предметы по всему инвентарю
- Не обойтись одними лишь средствами игры(нужна vds)
А что если больше одного игрока встанут на одну PIM?
Я думал так сделать, но просто игроки на сервере могут нажатием кнопки продать весь свой инвентарь, а потом возмущаться, мол ресурсы украли. Мне оно не нужно, если честно.
По поводу вдс - сначала был игровой сервер, но потом понял, что вытаскивать все файлики в случая чего - жуткий геморрой. Увы, переделывать обратно я не буду.
По поводу пима - пим захватывает инвентарь того игрока, что встал первый. Если стоит два игрока, и авторизовавшийся выйдет - авторизуется тот, что стоял на пим'е
-
1
-
-
Для тех, кто торопится: https://github.com/BrightYC/RipMarket/tree/master
Всем привет, решил выложить свою программу-магазин. Экономикой, в отличии от
не обладает.
Так же, интерфейс позаимствован с программы выше.
Скажу сразу, программа писалась для себя.
Работать без OpenPeripheral/AE2 не будет.
Возможности:
- Продажа/покупка товара
- Обменник руды(Коэффицент можно настроить в файлике items.lua - ratio)
- Раздатчик бесплатной еды(Кол-во выдаваемой еды настроить можно только через код =\, но по стандарту - 16 яблок/арбузов)
- Лотерея(Делалось наспех, для заполнения меню)
- Инфо-панель(Поддерживает только цвета, настроить можно в начале - FAQ
- Возможность оставить отзыв об магазине
Установка:
Настройка, увы, не из простых. Нужно заиметь какой-нибудь vds, так как вся информация хранится на стороне. По стандарту, NodeJS сервер запускается на 1414 порту.
После, нужно придумать уникальный ключ, и вставить его в код всех терминалов. Так же, нужно разместить таблицу со всеми предметами, и вставить ссылку в код(В таблице хранится вся информация - какую руду обработать, какая еда доступна к выдаче и т.д)
По поводу хранения информации всех пользователей - они хранятся в виде txt файлов в JSON. Хранятся они в относительном пути, где установлен сервер. К примеру:
/home/user/pi/ripmarket/usersЛоги покупок/регистраций хранятся по такому же пути, но вместо users - logs
/home/user/pi/ripmarket/logsМонтирование всего в игре - к каждому терминалу нужно подключить PIM, снизу PIM'а мэ интерфейс(мэ интерфейс нужно подключить к МЭ сети). Ко всему этому надо подключить адаптеры. В видео можно увидеть как это всё выглядит в игре.
Запуск:
Желательно запускать код через start.lua, который есть в репозитории. Так как если будет какая-то ошибка - программа вылетит. Поэтому нужен лаунчер.
Все логи терминала(Не путать с сервером!) хранятся в директории /home/logs
Видеодемонстрация:
Скрытый текст-
8
-
Только что, eu_tomat сказал:@BrightYC Почему в названии темы присутствует термин "вирус"? Что вирусного в этой программе?
Да ничего, собственно. Сделано для привлечения внимания.
-
2 часа назад, Doob сказал:...
Сделано оно было не по причине причинить кому-то вред, а ради красивой иконки ошибки(Лично мне оно нравится)
-
Всем привет.
Сегодня вечером сделал довольно простенькую вещицу.
Это недо-вирус(Сам себя не распространяет, запускает его злоумышленник)
Скрытый текст
Вообще, если кто не в курсе - эта ошибка возникает у тех, кто хочет сэкономить, и покупает Xiaomi китайской версии(Т.е для продажи только для китайского рынка) и пытаются сделать её глобальной - и в итоге убивают прошивку.
Скрытый текст
Что делает эта штука в OC - перетирает все файловые системы(ака rm -rf /), прошивает EEPROM и делает его ридонли.
Запустить довольно просто - работает в MineOS, или OpenOS - запустите его в интерпретаторе, или еще где-нибудь.Код:
Полная версия https://raw.githubusercontent.com/BrightYC/Other/master/full-virus.lua
Минифицированная https://raw.githubusercontent.com/BrightYC/Other/master/minified-virus.lua
-
7
-
1
-
-
2 минуты назад, 8urton сказал:Очень странно, что я не заметил эту систему на форуме. Но как по мне, это просто удобная графическая оболочка для OpenOS (хотя она ейчас обходит мою систему по функционалу)
Увы, особого смысла в операционных системах для "ведёр" нет. Ибо в любом случае, дискеты с этими OC'ами не поставляется в моде. Поэтому, нужно делать интернет-карту. А для интернет-карты надо обсидиан, жемчуг. Для обсидиана нужны алмазы. Если есть алмазы - есть и золото, чтобы сделать более-менее нормальный компьютер. А если компьютер сделан ненадолго(Прошить EEPROM/Протестировать что-то) - то и OpenOS хватит.
-
-
1 минуту назад, hohserg сказал:Значит че-то неправильно с моими конкретными дроном-планшетом.
Версия OC 1.12.2-1.7.4.153
Очень странно. Та же самая версия - ничего не тупит. =\
-
Протестировал. Да норм всё, ответ приходит мгновенно.
На счёт N/A - в программе при запуске есть функция send("data"), что исключает возможность N/A если дрон включен. Какие-то локальные проблемы. У меня всё нормально =\
Напиши, пожалуйста, версию OC, и версию майна.
-
1
-

Микроконтроль ядерных реакторов IC2exp
в Программирование
Опубликовано: · Изменено пользователем BrightYC
Перефразирую: