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

Totoro

Гуру
  • Публикации

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

  • Посещение

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

    289

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


  1. Тем временем репозиторий потихоньку подбирается к релизу.

    Пофикшена куча багов, и добавлено много плюшек. Сделаю подробный чейндж-лист к релизу.

     

    А пока - самое наверное заметное нововведение за последнее время: мы добавили локализацию репы:D

    Теперь, если у вас есть зарегистрированный аккаунт вы можете зайти в профиль и переключить язык на русский

    (или на английский обратно).

     

    PYMP14N.png

     

    После этого все надписи во всех интерфейсах поменяются на русские (или английские). Но это ещё не все!  :)

     

    Теперь стали доступны специальные языковые теги, которые можно использовать в любом поле с описанием

    (подпись к скрину, или описание пакета, или список изменений версии).

    Выглядит это так (на примере краткого описания к голографическому редактору):

    <en>Hologram editor tool
    <ru>Редактор голограмм

    Если в список пакетов зайдёт пользователь, у которого в настройках включена английская локаль - он увидит только первую строку.

    Если пользователь с русской локалью - только вторую строку.

     

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

    Весь текст после тега <--> будет виден всем (с любой локалью). С такого тега неявно начинаются все описания.

     

    Проверить как это работает вы можете на двух моих пакетах (остальные пока не локализованы).

    https://hel.fomalhaut.me/#packages/holo

    https://hel.fomalhaut.me/#packages/toremi

    Попробуйте позаходить на эти странички и попереключать язык в профиле.
     

     

    Вот в общем и всё. Локализация ещё сыровата. Если попадётся какой-то глюк - смело пишите сюда (или в личку, IRC, issues на Github).

    Сейчас параметр выбранного языка сейвится в local storage, поэтому в каждом браузере у вас может быть выбран свой язык.  :)

    • Нравится 3

  2. Вообще я согласен с первым постом Кверти.

    Дезматч должен быть активным и зрелищным. Бомбы должны взрываться и разбивать роботов. Лазеры - их сбивать.

     

    Может сделать два вида оружия? Лазерная винтовка и бомбы.

    Изначально у роботов есть допустим одна бомба. Остальное надо подбирать посреди боя в появляющихся сундуках. Как в настоящем шутере. =)

     

    Разные виды оружия позволят разнообразить тактику.

    Периметр полигона можно сделать неразрушимым, а в его пределах пусть хоть всё поразносят.

     

    Условие победы - у кого останется больше боеспособных роботов к концу матча.

    Проверить легко - после гонга посылаем от сервера запрос - "кто жив?" и собираем адреса сетевух которые ответили. А в тексте сообщений должно быть название команды.

    Также, можно вместе с синхронизацией такое сообщение посылать, периодически. Чтобы задетектить бой, который кончился быстрее раунда.

     

    Все. Схитрить не получится, ну только если подыграть сопернику. =)

    • Нравится 2

  3. А что ему должно помешать? Скрипту, если он использует голые компоненты, должно быть безразлично, загружена OpenOS или нет.

     

    Забавно, но ты прав.

    Я провёл эксперимент на обычном компьютере:

    local gpu = component.proxy(component.list("gpu")())
    local screen = component.list("screen")()
    local eeprom = component.proxy(component.list("eeprom")())
    
    gpu.bind(screen)
    gpu.set(1,1, '.')
    
    local code = eeprom.get()
    local dots = "'" .. string.match(code, "'(%.+)'") .. ".'"
    local code = string.gsub(code, "'(%.+)'", dots)
    eeprom.set(code)
    
    computer.shutdown(true)
    

    Если прошить чип этим кодом, вставить в компьютер и включить, то на экране отобразится точка.

    Потом компьютер ребутнется и покажет две точки.

    Потом ребутнется и покажет три точки.

    И т.п.

    :)


  4. хмм, толково сделали, удобно, не знал. Ну а по поводу выжирания памяти, то куда ж оно денется. Любая расшифровка адреса и поиск врат на определенных координатах требует, судя по всему, какой-то подгрузки чанка(мира)

     

    По идее, компонент написан на уровне мода. А мод должен без подгрузки чанков знать, где у него и сколько миров по каким адресам.

    Хз как на самом деле оно там сделано.


  5. Если не хочется городить таймер, можно использовать computer.beep() - предел 5 секунд. Поэтому, если надо дольше, то все-равно придется делать цикл.

     

    Слип который я показал выше - это практически каноничная его реализация.

    Каждый раз когда вы пишете os.sleep(x) вызывается очень похожая функция.


  6. Очень интересно. Работа в EEPROM также неочевидна и интересна. Например мне категорически не удалось в EEPROM получить заряд батарей робота. И аналог os.sleep() не придумался.

    local gpu = component.proxy(component.list("gpu")())
    local screen = component.list("screen")()
    
    function sleep(timeout)
      local deadline = computer.uptime() + (timeout or 0)
      repeat
        computer.pullSignal(deadline - computer.uptime())
      until computer.uptime() >= deadline
    end
    
    gpu.bind(screen)
    gpu.setForeground(0xFFFFFF)
    gpu.setBackground(0x000000)
    
    while true do
      gpu.set(1, 1, tostring(computer.energy()))
      sleep(10)
    end
    

  7. она загружается после загрузки package. к тому же MultiROM на андроид так же запускается после ядра. 

     

    Ну, когда мы говорим про мультибут в OpenComputers, то имеем ввиду загрузку разных ОС.

    OpenOS - это уже не ядро всё таки. Ядро типа и так всегда загружено. =)


  8. Не проще повысить время у ценных вещей, типо Алмазов до 3м допустим, а у булыги камня и прочего так же оставить по минуте ?

     

    У меня есть подозрение, что там нет настолько детализированного конфига. Скорее всего есть одна константа Типа:

    когда_все_предметы_протухнут: 2 сек
    

  9. монтирование отдельных файловых систем в R/O, так же будет возможно сделать multiboot с одного raid. применений множество, надо их лишь найти.

     

    Да, но ты писал её для какой-то своей программы? Для чего использовал?

     

    Для того, чтобы использовать в мультибуте, надо чтобы библиотека загружалась до операционной системы, я так понимаю. Но она зависит от библиотек filesystem, component и computer. То есть должна грузиться после OpenOS.

     

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


  10. print("У ВАС ЕСТЬ 15 СЕКУНД ЧТОБЫ, ВСТАВИТЬ ПУСТОЙ EEPROM. ЕСЛИ ВЫ НЕ СОГЛАСНЫ: НАЖМИТЕ CTRL+ALT+C ЧТОБЫ ЗАВЕРШИТЬ ПРОГРАММУ УСТАНОВКИ!")
    

    Я не согласен.

    Хоть это и выглядит прикольно, на практике удобнее сделать тут запрос типа [Y/n].

×
×
  • Создать...