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

Doob

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

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

  • Посещение

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

    141

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


  1. Да ладно вам, есть же data card, в ней есть утилита gpg, почему про нее никто не вспомнил? Все только пытаются обвинить в создании нерабочего велосипеда.

    Генерация ключей в ОС это тот еще костыль, процессоры слишком медленные, поэтому даже в gpg генерирутюся очень короткие ключи и при использовании стандартного ГПСЧ жавы.

     

    Кстати, это меня натолкнуло на мысль - сделать подобие VeraCrypt для OpenOS, правда монтирование дисков в оперативу трудно провернуть из-за ее малого объема, но для этого можно сделать подключаемое облако, куда будут монтироваться шифрованные диски... И куда меня это понесло? Бред, в общем.


  2. Послать 1000 запросов на активацию трех слотов занимает 3 минуты, следовательно, чтобы пройти по всем портам уйдет примерно 3 часа.
    Но люди очень предсказуемые, многие учатся на ютубе, но ничего не узнают, примерно половина пользователей берут прогу nano и даже не меняют порт, поэтому можно за 18 секунд открыть все эффекты))

    Кстати, сразу после введения нанитов у них почему-то постоянно отваливался конфиг и если порт слишком высокий, то он просто пропускал какие-то сообщения и при этом лагал сервер.


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

    Завтра накидаю скрипт для создания труб из транспозеров.

    А про автокрафт на роботах вспоминать смешно, идея, конечно здравая, но далеко от практической пользы.


  4. Трубы в ад! Трубы для слабаков! Роботы, дропперы, воронки, выталкиватели, для чего это все? С автоверстаками они, может и полезны, но чтобы автоматизировать переработку мне хватает и воронок. Воронок, Карл! Если нет мозгов размещать механизмы оптимально, то тут никакие трубы не помогут.

    • Нравится 8

  5. Никак нельзя увеличивать дальность активации, играли с чуваками, начали этих нанитов везде пихать - в пвп арены, торговые автоматы, дверные замки, но потом завелись гриферы (я в их числе) и с планшетами начали убивать всех подряд.

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


  6. Кстати, да, в стандартном конфиге партиклы занимают 41%, положительные эффекты - 31%, отрицательные - 28%. Следовательно, можно предположить, что этот дезинтегратор выпадает с вероятностью 0.21%, если учитывать, что в среднем, после каждой съеденной банки нанитов эффекты занимают 7 слотов.


  7. И стена сразу будет пробиваться? А если не будет, то что?

    С молоком понятно, а зелья какие и зачем нужны? У меня например зелей нет и не предвидится.

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

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

    Вот, кстати его код: https://github.com/MightyPirates/OpenComputers/blob/master-MC1.7.10/src/main/scala/li/cil/oc/common/nanomachines/provider/DisintegrationProvider.scala

     

    Несколько взырвных на реген, потому-что с вероятностью 3% может попасться эффект урона на 6 едениц.


  8. Если бы так и было, то названия эффектов бы появлялись, но кто хочет - может попробовать.
    Вот прога перебора всех пар, жмем любую кнопку, дожидаемся звукового сигнала и идем пробовать пробить собой стену.

     

    local event = require('event')
    local component = require('component')
    local modem = component.modem
    local computer = component.computer
    local port = 1211
    local head = 'nanomachines'
    local tot = 18 --getTotalInputCount
    local msg = nil
     
    modem.open(port)
    modem.broadcast(port, head, 'setResponsePort', port)
     
    local function get()
      modem.broadcast(port, head, 'getActiveEffects')
      msg = {event.pull('modem_message')}
      if msg[6] == head and msg[7] == 'effects' then
        print(msg[8])
      end
    end
     
    local function test(n, st)
      modem.broadcast(port, head, 'setInput', n, st)
      msg = {event.pull('modem_message')}
      if msg[6] == head and msg[7] == 'setInput' and msg[8] == n and msg[9] == st then
        print(n, st)
      end
    end
    
    for i = 1, tot do
      for j = 1, tot do
        if i ~= j then
          print('Press any key to continue.')
          event.pull('key_down')
          computer.beep()
          test(i, true)
          test(j, true)
          get()
          print('Activated: '.. i ..' and '.. j .. '\n')
          computer.beep(900)
          event.pull('key_down')
          test(i, false)
          test(j, false)
        end
      end
    end

     

     


  9. Можно подобрать нанитов с невидимостью и ничего поедать не надо, но все-равно от зелья пузыри видны.

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

    • Нравится 1

  10. Команда же SGSC: police станет доступной сразу после установки кровати (3 шерсти и 3 доски)

     

    Я ничего против не говорил, просто предложил продублировать функцию и для автоматической сигнализации.

    Хотя... Если я буду сидеть на горе в over9000 блоках от дома жертвы и лупить по ней молнией, то тут никакая полиция не поможет.


  11. Программа на 20 строчек ? Тогда добавь туда 21-ю : находится ли вызывающий полицию игрок в своём привате. Это избавит от бегающих с кроватью по миру игроков.

     

    А как это провернуть? Плагин никакой информации о привате не дает. То ли дело, на одном сервере есть был компьютерный приват - граница заливается блоками барьера и все, сервер только проверяет координаты игроков и в определенном радиусе делает для хозяина привата дырку в барьере на несколько секунд.


  12. Раз можно вычислить координаты кровати, то от клиента ничего не надо.

    Какая польза от OpenNET я не понимаю, все равно игроки живут очень далеко друг от друга.

    Если поставить штук 10 серверов, то на всех игроков хватит слотов под связанные карты.


  13. Я бы дополнил, чтобы при отсутствии игрока наказать ушлых гриферов, нужна система связи через связанные карты. Т. е. сигнализация срабатывает, вызывает полицию, со счета снимается дополнительная плата за вызов.

     

    Абонентскую плату сделать не очень большой и все будут спать спокойно.


  14. Как-то все слишком сложно, можно все через один цикл сделать.

    Вот более простая версия:

     

     

    local event = require('event')
    local modem = require('component').modem
    local port = 1
    local head = 'nanomachines'
    local tot = 18 --getTotalInputCount
    local msg = nil
    
    modem.open(port)
    modem.broadcast(port, head, 'setResponsePort', port)
    
    print('input', 'effects')
    
    for i = 1, tot do
      os.sleep(0.1)
      modem.broadcast(port, head, 'setInput', i, true)
      msg = {event.pull('modem_message')}
      if msg[6] == head and msg[7] == 'input' and msg[8] == i and msg[9] == true then
        modem.broadcast(port, head, 'getActiveEffects')
        msg = {event.pull('modem_message')}
        if msg[6] == head and msg[7] == 'effects' then
          print(i, msg[8])
          modem.broadcast(port, head, 'setInput', i, false)
        end
      end
    end
    

     

     

     

    А это экстренный выключатель:

     

     

    local event = require('event')
    local modem = require('component').modem
    local port = 1
    local head = 'nanomachines'
    local tot = 18 --getTotalInputCount
    local msg = nil
    
    modem.open(port)
    modem.broadcast(port, head, 'setResponsePort', port)
    os.sleep(0.1)
    for i = 1, tot do
      modem.broadcast(port, head, 'setInput', i, false)
      msg = {event.pull('modem_message')}
      if msg[6] == head and msg[7] == 'input' and msg[8] == i and msg[9] == false then
        print(i)
      end
    end
    

     

     

     

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

    Копка 3x3 это один из безымянных эффектов, поэтому их надо будет потом проверить вручную.


  15. Можно создать программу, в которой для каждого тьюрмита создается отдельный поток. Например есть один тьюрмит-поток. Ходит-ходит, нажрался и размножается. Создаётся второй тьюрмит-поток и он тоже размножается...

     

    Делал такое, черепаха собирала 8 блоков железной руды и запускала еще одну черепаху, в этом нет смысла.

     

     

    Тьюрмит идет к станции и крафтит там свою детку, а в конце армия тьюрмитов зохавает весь сервер.

    Даешь машинный апокалипсис! )

     

    Было уже, но так как мод для этого не приспособлен получается очень-ОЧЕНЬ большо лагодром.


  16. Все-таки долгий процесс.. Дебаг-картой намного быстрей, да и цвета можно разные сделать.

     

    local r = require("robot")
    
    local function rr()
      if r.detectDown() then
        r.swingDown()
      else
        r.placeDown()
        r.forward()
      end
    end
    
    while 1 do
      for i = 1, 4 do
        for j = 1, 5 do
          rr()
          r.forward()
          r.turnRight()
        end
        r.forward()
      end
      r.turnLeft()
      r.back()
    end
    

    hh0Wryl.pngHrcnNAE.pngAUXChiH.png

     

    • Нравится 1

  17. У роботов в minecraft мире есть одна очень удобная фича - возможность копать и ставить блоки, ну и двигаться от блока к блоку.
    Это дает возможность программировать тьюрмитов с самыми минимальными познаниями в программировании.
    Код тьюрмита прост, но исполнение кода похоже на развитие живого организма - маленькая часть кода генерирует огроммные, замысловатые узоры и фракталы.
     
    Пример для муравья Лэнгтона:

    local r = require('robot')
    
    while 1 do
      if r.detectDown() then
        r.swingDown()
        r.turnLeft()
      else
        r.placeDown()
        r.turnRight()
      end
      r.forward()
    end
    

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

    local r = require('robot')
    
    while 1 do
      if r.detect() then
        r.swing()
        r.turnLeft()
      else
        r.forward()
        r.turnAround()
        r.place()
        r.turnRight()
      end
    end
    

    Результат работы после 10000 шагов:

     

    fX2XKfg.png



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

    • Нравится 5

  18. Да, это все очевидно, но для моей задачи задействовать видеокарту довольно трудно, потому-что надо подбирать код, который будет оптимально работать в minecraft мире.

    В общем, мне нужен редактор генетического кода для саморазвивающихся роботов, общий объем 8 килобайт, для мутации в пределах развитого поколения от 12 до 100 байт, на создание жизнеспособного проекта уйдет от 300k до 800k часов, даже с читерским ускорителем, поэтому надо задать точку отсчета, чтобы роботы развивались не с нуля.

     

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

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

     

    Но в конечном итоге все сводится к клеточным автоматам, хоть и довольно сложным, но бессмысленным.

    • Нравится 1

  19. ...Слишком высокая цена восстановления, несоизмеримые затраты времени...

     

    В некоторых задачах это единственный способ.

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

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