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

Doob

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

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

  • Посещение

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

    141

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


  1. А что за текстур пак?

     

    Мой, сегодня дорисую.

     

     

    Выход/вылет/warp - одним/обеими игроками - как обрабатывать?

     

    Никак, хотя, можно через детекторы движения, но Базар по-лучше будет, ибо можно закинуть и купить товар в любое время.


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

     

    Ok, в кабинки заходят игроки, кликают по мониторам - поршни запирают вход.

    Игроки кидают предметы в воронки, на мониторы выводятся названия предметов и количество, когда оба игрока жмакают "обмен" - робот выплевывает предметы через дропперы.


  3. Велосипеды изобретаете. Все уже изобретено до нас. Какие коммивояжеры? Какие вычисления?

    Берем GPS API, берем Vector API, сканируем, перебором вычисляем рудные жилы (условие: несколько блоков ожидаемой плотности), заносим рудные жилы по-блочно в массив, в цикле трилатерируем ближайший нужный блок, едем в него, удаляем его из массива. И так далее, до каждого блока.


  4. Хех, ты ведь дочитал до того места где написано, что карточный ридер возвращает ник игрока?

    Написать гибкую, надежную и удобную защитную систему - тут-то и кроется вызов программисту.

    А карточки - это только еще одно средство, и еще один вариант.

     

    Читал на английском и по-диагонали))

    А система проста как тапок - детектор сущностей сверяет координаты хозяина с массивом координат дверей/ловушек и при нахождении в определенном радиусе, активирует устройства из массива. Можно еще добавить проверку по векторам и монстрам, чтобы не-было ложных срабатываний и система защищала хозяина в режиме реального времени.


  5. "Класть в робота образцы руд" что простите?! Может лучше образцы мусора тогда?

     

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


  6. Пфф... Недавно в чате спрашивал, как защитить ключи доступа к дому. Автор мода видать играет без PvP или вообще не играет. Если меня убьет какой-нибудь чувак в кванте, то он станет хозяином моего дома.

     

    Бессмысленный мод, хотя детектор сущностей очень нужен.


  7. Для управления дроном/роботом я использую modem.send() - сначала подхожу в упор к устройству, синхронизирую адреса со слабой силой сигнала через modem.broadcast() и потом играюсь.
     
    Недавно подумал, что кому-нибудь надо таким способом сообщить удаленно адрес модема.
     
    Эта программа написана, чтобы не вбивать адреса модемов вручную, а загружать их из файла.

     

    При запуске можно выбрать порт и имя устройства, например: /#cm 999 Doob

     

    Код здесь: pastebin get hGZsNALr cm

     

    Картинки:

     

     

     

    2KoeoiA.png

     

    8MH4fK4.png

     

     


  8. Без самозаправки он далеко не уедет.

    if(computer.energy()/computer.maxEnergy())<0.01 then
      for i =  1, 16 do
        component.generator.insert(64)
      end
    end
    

    И как-то непонятно он копает. Лучше было бы змейкой, с отступом 2 блока.


  9. Всё работает) Не стал числа сокращать. Спасибо за помощь

     

     

    Вот это приводит время в человеко-читаемый вид

    print(math.floor(os.time())..':'..math.floor((os.time()-math.floor(os.time()))*60))
    

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

     

    А, понял, надо распознавать жилы/не жилы и бегать только по жилам. Это спорт такой, или есть практическое применение? Как по мне, тупая копалка туннелей с выжиранием встреченных жил намного эффективней и проще.


  11. В ComputerCraft есть библиотеки GPS и Vector, можно перенести на OpenComputers, поставить навигационные вышки на микроконтроллерах, конвертировать относительные координаты в абсолютные и гонять робота между ближайшими необходимыми блоками и будет не важно, находятся они в одной жиле или в разных.

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


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

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

     

    Вот пример для фермы цветов, в сундук перед запуском надо кинуть костную пыль, роботу нужен контроллер инвентаря и солнечная батарея (farmer - имя библиотеки).

     

     

    local component = require('component')
    local computer = require('computer')
    local robot = require('robot')
    local term = require('term')
    local farmer = require('farmer')
    
    local function findBoneMeal()
      robot.select(1)
      for sl = 1, component.inventory_controller.getInventorySize(3) do
        if component.inventory_controller.getStackInSlot(3, sl) == nil then
        else
          item = component.inventory_controller.getStackInSlot(3, sl)
          if item.name == 'minecraft:dye' and item.damage == 15 then
            component.inventory_controller.suckFromSlot(3, sl)
          end
        end
      end
    end
    
    robot.turnAround()
    findBoneMeal()
    robot.turnAround()
    
    while true do
      energy = computer.energy()/computer.maxEnergy()
      if energy <= 0.1 then --  если энергии меньше 10%
        print('Уровень энергии менее 10%')
        os.sleep(300) -- спим 5 минут
      else
        term.clear()
        x = math.random(1, 10)
          if x <= 1 then
    	    robot.select(1)
            robot.placeDown() -- ставит под себя костную муку, с вероятностью 10%
          end
        robot.swingDown() -- срезаем цветы и траву
    	robot.suckDown()
    	farmer.killer() -- если спереди есть сущность - убиваем
        robot.forward() -- делаем шаг
        if farmer.killer() then -- если нашли твердый блок
          robot.swingDown()
    	  if farmer.turn() then -- переходим на новую линию
            if farmer.findChest() then -- ищем сундук
              for i= 2, robot.inventorySize() do  -- выбрасываем все, кроме сундка
                robot.select(i)
                robot.drop()
              end
              findBoneMeal() -- ищем костную муку
              robot.turnAround()
              os.sleep(30)
            end
          end
        end	
      end
    end
    

     

     


  13. А как, интересно ты будешь проходить лавовые озера? 

     

    Я буду ехать выше уровня генерации лавы)) А вообще, эта идея была для черепах из CC, чтобы можно было летать окруженным черепахами или захватывать мобов и привозить домой.


  14. Зачем между задним роботом и игроком блок земли? Он без этого блока толкаться не может?

     

    Ну да, этот поршень на сущностях не пашет.

     

     

    Лагучий червь.

     

    В суперплоскости все было нормально))

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


  15. Пока не уловил сути. Они что, тебя по земле толкать начинают? Типа на автомобильчике едешь? А если неровность какая встретится?

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


  16. Ногами не пинать, это только ради фана. :D

     

    На дронах можно летать, все видели?

    А я катаюсь на роботах.

    Хоть по воздуху, хоть под землей.

     

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

     

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

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

    На оба робота загружаем программу: http://pastebin.com/r4mJsSnS

    На заднем (который с поршнем) ничего не меняем, а переднему в первой строке меняем 'back' на 'front'.

    Заднему запускаем программу без аргументов.

    Ну а с переднего управляем всей этой ересью.

     

    Надо стоять прямо за рулевым, и писать команды:

      cart go [расстояние]

      cart turn left/right

    cart - название программы

     

    [1][2][3][4]

    [<][P][ ][<]

    1, 4 - роботы

    P - игрок

     

    :facepalm:

     

    Прога жутко примитивная, но думаю, суть ясна))


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

    не говоря о том что встань на пути игрок или корова или зомби - привет твоей ферме

     

    У меня таких проблем нет, проверку на сущности я убрал, чтобы не крашилось с самой слабой памятью.

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

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