Chebuya
Пользователи-
Публикации
609 -
Зарегистрирован
-
Посещение
-
Победитель дней
72
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя Chebuya
-
Моё мнение - вырубать реактор при ТПС ниже допустимого. Нашёл старенький код, позволяющий определить кол-во тиков в секунду. local c, fs = require("component"), require("filesystem") local gpu = c.gpu local TC, RO, RN, RD, TPS = 2, 0, 0, 0 gpu.setForeground(0x99b2f2) gpu.set(1, 2, "TPS Сервера:") local function time() local f = io.open("/tmp/TF", "w") f:write("test") f:close() return(fs.lastModified("/tmp/TF")) end while true do RO = time() os.sleep(TC) RN = time() RD = RN - RO TPS = 20000 * TC / RD TPS = string.sub(TPS, 1, 5) nTPS = tonumber(TPS) gpu.set(13, 2, " ") if nTPS <= 10 then gpu.setForeground(0xcc4c4c) elseif nTPS <= 15 then gpu.setForeground(0xf2b233) elseif nTPS > 15 then gpu.setForeground(0x7fcc19) end gpu.set(13, 2, TPS) end Когда тпс в норме - включаем реактор. На лаги майна лучше не надеяться.
-
Плюс надо учесть, что реактор у нас высокоэффективный, т.е контроль за ним нужен соответствующий. Тут уж с нагрузкой ничего не поделать. Можно, конечно, постоянно в цикле гонять пинг-понг, но всё же мне кажется, что если микроконтроллер не отвечает - либо он сгорел, либо реактор выдохся.
-
Перефразирую:
-
А зачем его включать? Вручную 1 раз включил, если погас - значит что-то плохое происходит. Пусть разбирается тот, кто монтировал реактор. Нет смысла предугадывать лаги майна, лучше обесточить 1 реактор, чем получить дырку вместо базы.
-
Микроконтроллер с редстоуном и платой беспроводной сети. Сгорел микроконтроллер или кончился заряд - реактор остывает. И редстоун-факела не нужны.
-
1. Редстоун-плата подаёт красный камень, инвертируем его красным камнем. Если компьютер выключился - подаётся редстоун-сигнал на компьютер. Так же сделать резервное питание компьютеру на случай отключения. 2. Записать программу на EEPROM. 3. Ядерный реактор отключится, когда компьютер выключится. Он же от редстоун-сигнала работает. 4. Это последнее что должно заботить. Пара факелов и 1 компьютер не сильно нагрузит сервер.
-
Небольшое обновление: Добавлена поддержка локализаций. Пока что не вынесено в отдельный файл - возможно вынесу. Сменить язык можно изменив stuff.language на EN - английский, RU - русский, соответственно. Убраны часы, добавлен показатель расхода оперативной памяти. (Стырено с майнос) Добавлен "компас". Позволяет проще ориентироваться, в какую сторону смотрит дрон. И самая здоровская фича которая была добавлена - автодополнение. Теперь, интерпретатор вообще ничем не отличается от того, что есть в стандартной поставке OpenOS. Огромное спасибо @hohserg. Небольшая гифка:
- 52 ответа
-
- 4
-
-
- drone
- управление
-
(и ещё 1 )
Теги:
-
Всем иногда приходится получать реальное время в 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. Но надеюсь кому-то поможет.
- 4 ответа
-
- 6
-
-
-
Я тут посмотрел, и моя программа в целом может запускаться без OpenOS. Нужно только формат вещей адекватно продумать, а так - переделать не сложно, я думаю. И конфиг можно адекватно настроить. @Doob Можно конкретики?
-
Можно указать, на каком расстоянии сканирует радар. К тому же, возвращает он абсолютные координаты, т.е на первичной настройке можно указать координаты кабинки.
-
Computronics радар обнаруживает игроков/предметы. Моё мнение - не играть там.
-
А, так у меня тоже не ручное скачивание же. Небольшой патч в лаунчере и скачивается свежая версия и запускается. Всё же не понятно, что за доп. структура для фильтирации
-
Заходит другой игрок пока другой получает товары, ну вот и небезопасность. Либо просить админов отключить телепорты/эндержемчуги, но там где я играю - есть куча предметов, которые помогут проникнуть в кабинку. PIM/транспозер - надёжнее.
-
Сильно. В каком смысле автообновление? Как хочешь добавить поддержку oreDict? Работа на ванильных контейнерах - это как? Будешь делать огромные поля из сундуков? Работа на транспозерах - нечестно, ибо на 1.7.10 работать с инвентарём игрока через транспозер не представляется возможным=\
-
@Doob Есть, к слову, тоже пару рипов. 1 - это робот. Постоянно, просто постоянно игроки лезли в чужие кабинки, когда были не свободные кабинки, а с дверью. А с роботом вообще ни о какой безопасности речи быть не может =\ 2 - сериализация openos'овская. Рип же, не эффективно. А как делать, если случайно утопил жёсткий диск в лаве? Да и жд получается дёргается очень часто.
-
Да ну его, если честно. На сервере постоянно говорят, мол у меня ресы отобрали, а монеты не дали(думают, что дают серверные монеты). Кому надо - пусть переделывает. Ну в основном сейчас в .txt файлах хранятся данные о пользователе. Дата регистрации, последнего входа, баланс, кол-во транзакций, следующее время до бесплатной еды, отзыв.
-
Пимка разрешена, почему нет. Несложно приделать какого-нибудь робота. А что не так с админскими ключами? Да какому-нибудь читаку проще мэ сломать и ресы себе забрать. Ну забрали ключ, поменяю. (Учитывая, что просто открыть конфиг и забрать не получится.).ККакие-то проблемы, которые малореализуемы. Тот что был у тебя, меня не устраивал. Но я рад, что кого-то замотивировал. Да и писал я для себя, кому надо - пусть сами разбираются. Мне всё просто и понятно. Я думал так сделать, но просто игроки на сервере могут нажатием кнопки продать весь свой инвентарь, а потом возмущаться, мол ресурсы украли. Мне оно не нужно, если честно. По поводу вдс - сначала был игровой сервер, но потом понял, что вытаскивать все файлики в случая чего - жуткий геморрой. Увы, переделывать обратно я не буду. По поводу пима - пим захватывает инвентарь того игрока, что встал первый. Если стоит два игрока, и авторизовавшийся выйдет - авторизуется тот, что стоял на пим'е
-
Для тех, кто торопится: 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 Видеодемонстрация:
-
Всем привет. Сегодня вечером сделал довольно простенькую вещицу. Это недо-вирус(Сам себя не распространяет, запускает его злоумышленник) Вообще, если кто не в курсе - эта ошибка возникает у тех, кто хочет сэкономить, и покупает 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
-
Увы, особого смысла в операционных системах для "ведёр" нет. Ибо в любом случае, дискеты с этими OC'ами не поставляется в моде. Поэтому, нужно делать интернет-карту. А для интернет-карты надо обсидиан, жемчуг. Для обсидиана нужны алмазы. Если есть алмазы - есть и золото, чтобы сделать более-менее нормальный компьютер. А если компьютер сделан ненадолго(Прошить EEPROM/Протестировать что-то) - то и OpenOS хватит.
- 30 ответов
-
- opencomputers
- operating system
-
(и ещё 1 )
Теги:
-
Похоже, что у @LexaDriver появились конкуренты =)
- 30 ответов
-
- opencomputers
- operating system
-
(и ещё 1 )
Теги:
