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

Chebuya

Пользователи
  • Публикации

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

  • Посещение

  • Победитель дней

    72

Сообщения, опубликованные пользователем Chebuya


  1. 8 часов назад, NEO сказал:

    Конечно неинтересен. Майн выдохся что ясно всем, чего в реакторе нового можно найти спустя кучу лет после выхода мода?

    Перефразирую:

    Цитата

    Конечно не интересен. Жизнь выдохлась что ясно всем, чего в жизни нового можно найти спустя миллиарды лет после большого взрыва?

     

    • Ха-ха 1

  2. Только что, eu_tomat сказал:

    Да, микроконтроллер является хорошим вариантом. И, кстати, он у меня ни разу не сгорал. Но при использовании беспроводной сети возникает вопрос: кто включит погасший микроконтроллер? Они с компьютером будут постоянно обмениваться пакетами? Но это повысит нагрузку на сервер.

    А зачем его включать? Вручную 1 раз включил, если погас - значит что-то плохое происходит. Пусть разбирается тот, кто монтировал реактор. Нет смысла предугадывать лаги майна, лучше обесточить 1 реактор, чем получить дырку вместо базы.


  3. Только что, eu_tomat сказал:

    Поэтому часть обвязки редстоуном оказывается в горячей зоне, рано или поздно сгорает, и компьютер теряет возможность автоматического включения. Этот способ не работает с горячими реакторами.

    Микроконтроллер с редстоуном и платой беспроводной сети. Сгорел микроконтроллер или кончился заряд - реактор остывает. И редстоун-факела не нужны. 


  4. 8 часов назад, eu_tomat сказал:

    Предлагаю всем неравнодушным ядерщикам подумать над следующими вопросами:

    • Как не допустить отключения управляющего компьютера?
    • Как в кратчайшие сроки включить погасший управляющий компьютер?
    • Как не допустить расплавления компонентов реактора или взрыва, пока компьютер выключен, а реактор предоставлен самому себе?
    • Как всё это сделать с минимальной нагрузкой на сервер?

    1. Редстоун-плата подаёт красный камень, инвертируем его красным камнем. Если компьютер выключился - подаётся редстоун-сигнал на компьютер. Так же сделать резервное питание компьютеру на случай отключения.

    2. Записать программу на EEPROM.

    3. Ядерный реактор отключится, когда компьютер выключится. Он же от редстоун-сигнала работает.

    4. Это последнее что должно заботить. Пара факелов и 1 компьютер не сильно нагрузит сервер.


  5. Небольшое обновление:

    • Добавлена поддержка локализаций. Пока что не вынесено в отдельный файл - возможно вынесу. Сменить язык можно изменив stuff.language на EN - английский, RU - русский, соответственно.
    • Убраны часы, добавлен показатель расхода оперативной памяти. (Стырено с майнос)
    • Добавлен "компас". Позволяет проще ориентироваться, в какую сторону смотрит дрон.
    • И самая здоровская фича которая была добавлена - автодополнение. Теперь, интерпретатор вообще ничем не отличается от того, что есть в стандартной поставке OpenOS. Огромное спасибо @hohserg.

    Небольшая гифка:

    Скрытый текст

    8zcTKRR.gif

     

    • Нравится 4

  6. Всем иногда приходится получать реальное время в 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

  7. Я тут посмотрел, и моя программа в целом может запускаться без OpenOS. Нужно только формат вещей адекватно продумать, а так - переделать не сложно, я думаю. И конфиг можно адекватно настроить. @Doob

    Можно конкретики?

     


  8. 18 минут назад, eu_tomat сказал:

    Насколько я помню, этот радар не показывает координаты игроков. Соответственно, мы не знаем, находится ли другой игрок в нашей кабинке или же соседней. Можно, конечно, поставить радар на достаточном удалении от стен кабинки, но тогда компактность страдает.

    Можно указать, на каком расстоянии сканирует радар. К тому же, возвращает он абсолютные координаты, т.е на первичной настройке можно указать координаты кабинки.


  9. 1 минуту назад, eu_tomat сказал:

    Правда, возможности гарантированно обнаружить постороннего игрока тоже может не быть. Существует ли что-то кроме сенсора из OpenPeripheral, способное обнаружить неподвижных игроков?

    Computronics радар обнаруживает игроков/предметы. 

    1 минуту назад, eu_tomat сказал:

    Вполне безопасно, если проверять наличие посторонних игроков в кабинке. А наилучший способ передачи предметов зачастую определяется не теорией, а конкретным игровым сервером: где-то транспозер не работает с интерфейсом игрока, где-то админы запретили PIM. Что тогда остаётся использовать кроме робота?

    Моё мнение - не играть там.


  10. 2 минуты назад, Doob сказал:

    В смысле, не когда пользователь захочет, а когда обновится в репозитории.

    А, так у меня тоже не ручное скачивание же. Небольшой патч в лаунчере и скачивается свежая версия и запускается. 

    Всё же не понятно, что за доп. структура для фильтирации


  11. 1 минуту назад, eu_tomat сказал:

    А в чём небезопасность роботов?

    Заходит другой игрок пока другой получает товары, ну вот и небезопасность. Либо просить админов отключить телепорты/эндержемчуги, но там где я играю - есть куча предметов, которые помогут проникнуть в кабинку. PIM/транспозер - надёжнее.

     


  12. 1 минуту назад, Doob сказал:

    Сейчас в пятый раз перерабатываю концепцию с нуля. Никаких зависимостей, моментальный старт прямо с EEPROM,  автообновление, работы на ванильных контейнерах, без лишних модов.

    Сильно.

    В каком смысле автообновление? 

    Как хочешь добавить поддержку oreDict? 

    Работа на ванильных контейнерах - это как? Будешь делать огромные поля из сундуков? 

    Работа на транспозерах - нечестно, ибо на 1.7.10 работать с инвентарём игрока через транспозер не представляется возможным=\

     


  13. @Doob Есть, к слову, тоже пару рипов.

    1 - это робот. Постоянно, просто постоянно игроки лезли в чужие кабинки, когда были не свободные кабинки, а с дверью. А с роботом вообще ни о какой безопасности речи быть не может =\

    2 - сериализация openos'овская. Рип же, не эффективно. А как делать, если случайно утопил жёсткий диск в лаве? Да и жд получается дёргается очень часто. 


  14. Только что, hohserg сказал:

    Сделай дружественный UI, чтобы юзер не мог неосознанно стрелять себе в ногу

    Да ну его, если честно. На сервере постоянно говорят, мол у меня ресы отобрали, а монеты не дали(думают, что дают серверные монеты). 

    Кому надо - пусть переделывает.

    Только что, hohserg сказал:

    А какие там файлики вообще хранятся?

    Ну в основном сейчас в .txt файлах хранятся данные о пользователе. Дата регистрации, последнего входа, баланс, кол-во транзакций, следующее время до бесплатной еды, отзыв.


  15. 4 часа назад, Doob сказал:

    Это рип. Посмотрел в конфиг, вообще рип.

    Пимка - рип.

    Админские ключи пихать в опенкомпы это совсем рип. Их любой игрок может из памяти прочитать. А если постараться, то прямо из потока.

    Пимка разрешена, почему нет. Несложно приделать какого-нибудь робота.
     А что не так с админскими ключами? Да какому-нибудь читаку проще мэ сломать и ресы себе забрать. Ну забрали ключ, поменяю. (Учитывая, что просто открыть конфиг и забрать не получится.).ККакие-то проблемы, которые малореализуемы.

    4 часа назад, Doob сказал:

    Ты сподвиг меня, в очередной раз переписать свой маркет. Давно хотел минимализм и нормальную поддержку OreDict с автообновлением и телеметрией.

    Тот что был у тебя, меня не устраивал. Но я рад, что кого-то замотивировал. Да и писал я для себя, кому надо - пусть сами разбираются. Мне всё просто и понятно.

    37 минут назад, hohserg сказал:

    - Магаз не умеет искать нужные предметы по всему инвентарю

    - Не обойтись одними лишь средствами игры(нужна vds)

     

    А что если больше одного игрока встанут на одну PIM?

    Я думал так сделать, но просто игроки на сервере могут нажатием кнопки продать весь свой инвентарь, а потом возмущаться, мол ресурсы украли. Мне оно не нужно, если честно.

    По поводу вдс - сначала был игровой сервер, но потом понял, что вытаскивать все файлики в случая чего - жуткий геморрой. Увы, переделывать обратно я не буду. 

     

    По поводу пима - пим захватывает инвентарь того игрока, что встал первый. Если стоит два игрока, и авторизовавшийся выйдет - авторизуется тот, что стоял на пим'е

    • Спасибо 1

  16. Для тех, кто торопится: 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

  17. Всем привет. 

    Сегодня вечером сделал довольно простенькую вещицу.

    Это недо-вирус(Сам себя не распространяет, запускает его злоумышленник)

    Скрытый текст

    NMX947a.png

    Вообще, если кто не в курсе - эта ошибка возникает у тех, кто хочет сэкономить, и покупает Xiaomi китайской версии(Т.е для продажи только для китайского рынка) и пытаются сделать её глобальной - и в итоге убивают прошивку.

    Скрытый текст

    ZV6vZ6c.jpg

    Что делает эта штука в 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

  18. 2 минуты назад, 8urton сказал:

    Очень странно, что я не заметил эту систему на форуме. Но как по мне, это просто удобная графическая оболочка для OpenOS (хотя она ейчас обходит мою систему по функционалу)

    Увы, особого смысла в операционных системах для "ведёр" нет. Ибо в любом случае, дискеты с этими OC'ами не поставляется в моде. Поэтому, нужно делать интернет-карту. А для интернет-карты надо обсидиан, жемчуг. Для обсидиана нужны алмазы. Если есть алмазы - есть и золото, чтобы сделать более-менее нормальный компьютер. А если компьютер сделан ненадолго(Прошить EEPROM/Протестировать что-то) - то и OpenOS хватит.


  19. Протестировал. Да норм всё, ответ приходит мгновенно. 

    image.png.faeefd788abdc1f568c6fd0bc4ed76dd.png

    На счёт N/A - в программе при запуске есть функция send("data"), что исключает возможность N/A если дрон включен. Какие-то локальные проблемы. У меня всё нормально =\

    Напиши, пожалуйста, версию OC, и версию майна.

    • Нравится 1
×
×
  • Создать...