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

vx13

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

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

  • Посещение

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

    14

Все публикации пользователя vx13

  1. Эта докинг-станция для дрона. Устанавливается на трубы билдкрафта. Через эту станцию дрон может заряжаться (на энерготрубе) и сбрасывать вещи (на предметной). Добавляется модом Computronics. Изучать доки компонента в игре (команда components) и экспериментировать.
  2. Не работает на 1.7.10 .
  3. Можно поподробнее, пожалуйста. Я знаю, что в старших версиях MC роботы, могут взаимодействовать со слотами брони игроков и мобов. А вот на счёт инвентаря игрока не знал.
  4. vx13

    Дубокоп

    Ну эту-то проблему, я думаю, админы исправят. А вот проблемы с drop, если они вызваны какой-то оптимизацией - вряд ли. Оптимизацию-то точно не уберут.
  5. vx13

    Дубокоп

    Если не брать во внимание первый ввод, то закономерность прослеживается: 5 из 10 раз мимо сундука = каждая вторая. Создай файл 05_0dropbug.lua в папке /boot с таким содержимым (требуется перезагрузить робота): local component = require "component" if component.isAvailable("robot") then local defDrop = component.robot.drop component.robot.drop = function(side, n) defDrop(side, 0) defDrop(side, n) end end Если прога в eeprom или установлена вместо init достаточно вставить: local defDrop = component.robot.drop component.robot.drop = function(side, n) defDrop(side, 0) defDrop(side, n) end в начало программы. Пользовался когда-то таким скриптом (только не помню на каком из серверов), помогало. Если не поможет, то остаётся только просить админов это исправить.
  6. vx13

    Дубокоп

    Упаковка, включается при наличии верстака. Что нужно паковать настраивается в конфиге. Если дальность будет как у геосканера, то слишком читерно будет. А вот возможность выполнять geolyzer.analyze() по определённым координатам будет нелишней. То есть, если нам нужны определённые руды, то делаем обычное сканирование, а затем анализируем блоки с подходящей плотностью.
  7. vx13

    Дубокоп

    Для экономии места в инвентаре прога упаковывает ресурсы в блоки. При этом, если нет 10 свободных слотов на сетку крафта и результат, ресурсы из инвентаря робота (кроме перечисленных в списке wlist) временно выбрасываются в мир на "крышу" робота и могут быть потеряны по разным причинам (лава, течение воды, плагин уничтожающий дроп по таймеру).
  8. vx13

    Дубокоп

    Для автономного робота, потеря части широко распространённых ресурсов, действительно, неважна. Но необходимость указывать ценные ресурсы в списке wlist - Сложнее, чем таскать дополнительный сундук. Для робота же, запущенного на выкапывание ограниченной области, возможная потеря ресурсов неприемлема. Потеря ресурсов = потеря времени игрока.
  9. vx13

    Дубокоп

    На добычу ресов потрачены время и энергия. Упаковка ресов проводится для экономии времени и энергии (уменьшается количество возвратов на базу для сброса лута). Выбрасывая ресурсы в мир при упаковке, мы рискуем их потерять. А значит время и энергия были потрачены в пустую? Выброс ресурсов включается только, если свободных слотов осталось меньше 10 (сетка крафта+слот результата)? Можно же в этом случае просто отключить упаковку. То есть пакуем ресурсы пока можем, затем просто собираем до заполнения инвентаря и едем на базу сдавать накопанное. Жалко же выкидывать ресы. Плюшкин во мне обливается горючими слезами.
  10. vx13

    Дубокоп

    @yura0138, мы уже тут оффтопить начали. Это тема про дубокопа, а не про проблемы с настройками на других проектах.
  11. vx13

    Дубокоп

    Можно проверить, есть ли в команде drop() проблема: Поставь робота мордой к сундуку. Запусти интерпретатор lua. Положи в выделенный слот робота стак булыги. Выполни команду robot.drop(1) Посмотри переместился ли 1 блок в сундук или выпал в мир. Если блок попал в сундук, а не выпал - в команде drop нет проблем. Если выпал, повтори команду. Если блок попал в сундук, то эта именно та проблема о которой я писал выше. В этом случае помогает предварительный drop нулевого кол-ва. При эксперименте в привате, добавь робота в приват как писал Alex.
  12. vx13

    Дубокоп

    ИМХО, но выбрасывать накопанные ресурсы в мир ради их упаковки - плохая идея. Лава, вода, авто-уничтожитель дропа, другие игроки. Слоты в инвентаре робота не такой уж ценный ресурс. А если выбрасывать мусор, то и с 16 слотами можно жить. Просто будет робот чаще на базу прибегать. Бросай тот лагосервер, не для OpenComputers он, а для сбора бабла с игроков. Есть и другие сервера, более дружелюбные.
  13. vx13

    Дубокоп

    Наоптимизировали там что-то на сервере. Первая команда drop не видит сундука и выбрасывает в мир. Возможно, поможет добавление "холостой" команды drop(side, 0) перед каждой командой drop(side,count). И suck глючит также.
  14. Этот параметр нигде не используется. И, по-моему, никогда не использовался. Поиск по истории даёт только два коммита с maxClipboard. В коммите, в котором было введено ограничение на длину строки, использовалось значение 1024. А сейчас реализация вставки другая.
  15. vx13

    Дубокоп

    краш в строке на 1.7.10 471 if item[slot].name == tool.name and item[slot].damage < tool.damage then Видно часть ошибки: (field '?') getAllStacks и getAllStacks().getAll() по-разному работают на разных версиях MC На 1.7.10: индексация массива из getAllStacks().getAll() начинается с 0, а не с 1. getAllStacks().getAll()[slot] для пустого слота возвращает пустую таблицу, а не таблицу с «воздухом» getAllStacks()[slot] для пустого слота возвращает nil, а не таблицу с «воздухом»
  16. На данный момент, похоже, никак. Метод worldObject.getBlockId - возвращает числовой id блока. Метод debug.scanContent, добавленный в 1.7.3 scanContentsAt(x: number, y: number, z: number[, worldId: number]):boolean, string, table должен вернуть 3 параметром таблицу с описанием блока/сущности, но возвращает строку вида "net.minecraft.block.BlockStone@46a488c2" (вероятно, баг). https://ocdoc.cil.li/component:debug
  17. Проверял на этих версиях модов, всё работает. ME-сеть минимальная: appliedenergistics2-rv3-beta-6.jar OpenComputers-MC1.7.10-1.7.2.1239-universal.jar OpenModsLib-1.7.10-0.10.jar OpenPeripheral-1.7.10-AIO-8.jar Нет. Если дамаг не указан будет выдан любой предмет с таким id.
  18. Значит нет предмета с таким fingerprint. Вот это код выведет список предметов в сети (id и dmg) for _, item in ipairs(component.me_interface.getAvailableItems()) do print(item.fingerprint.id, item.fingerprint.dmg); end
  19. А component.me_interface.getItemDetail({id="minecraft:dirt"}).all() что возвращает?
  20. me_interface.exportItem({ id = "IC2:itemOreIridium" }) id = name из inventory_controller.getStackInSlot()
  21. itemFingeprint (первый параметр exoirtItem) - это таблица: {id ="<ид предмета>", dmg = <метадата или прочность>, nbt = "<хэш nbt>"} nbt и dmg опциональны.
  22. local sides = { north = 2, south = 3, west = 4, east = 5, } local testN = 22 -- центр, реальные координаты local startX, startZ = 0, 0 -- кол-во кругов local radius = 2 -- расстояние между "кругами" local distance = 1 -- направление взгляда на поле -- нумерация идёт слева направо и сверху вниз local orientation = sides.north local step = distance + 1 local offset = radius*step local size = offset*2+1 -- преобразование виртуальной системы координат в реальную -- Minecraft -- -- z -- (-) -- north -- x (-) west east (+) x -- south -- (+) -- z -- условная система координат -- -- -- (-x) -- (-z) ^ (+z) -- (+x) -- ^ направление взгляда на поле -- нумерация идёт слева направо и сверху вниз local toRealFn = { [sides.east] = function(virtX, virtZ) return startX - virtX, startZ + virtZ end, [sides.south] = function(virtX, virtZ) return startX - virtZ, startZ - virtX end, [sides.west] = function(virtX, virtZ) return startX + virtX, startZ - virtZ end, [sides.north] = function(virtX, virtZ) return startX + virtZ, startZ + virtX end, } local d = radius*2+1 local maxN = d^2 local function getCoord(n) local xx, zz = math.floor((n-1)/d)*step-offset, math.fmod(n-1, d)*step-offset return toRealFn[orientation](xx, zz) end local n = 0 for xx = -offset, offset, step do for zz = -offset, offset, step do n = n + 1 local x, z = toRealFn[orientation](xx, zz) print(n, x, z) end end print("["..testN.."]".."=", getCoord(testN)) Вот вывод: radius=2, distance=1 1 -4 -4 2 -2 -4 3 0 -4 4 2 -4 5 4 -4 6 -4 -2 7 -2 -2 8 0 -2 9 2 -2 10 4 -2 11 -4 0 12 -2 0 13 0 0 14 2 0 15 4 0 16 -4 2 17 -2 2 18 0 2 19 2 2 20 4 2 21 -4 4 22 -2 4 23 0 4 24 2 4 25 4 4 [22]= -2 4 radius=1, distance=1 1 -2 -2 2 0 -2 3 2 -2 4 -2 0 5 0 0 6 2 0 7 -2 2 8 0 2 9 2 2 [8]= 0 2 Если не нужна нумерация слева направо и сверху вниз по направлению взгляда, то можно упростить код преобразования координат, захардкодив конкретное направление. Код преобразования координат нужно потестирвать.
  23. vx13

    Рыбалка #1 Оптимизация постройки

    @eu_tomat, твои компактные схемы не работают на 1.12. А оригинальный вариант (не эконом, от @Asior) работает. Похоже, робот должен располагаться над нитью. Вот мой компактный вариант:
  24. vx13

    Обновление OpenComputers до версии 1.7.3

    Не вырубаются. Добавили только белый/чёрный списки измерений и возможность установки в микроконтроллер.
×
×
  • Создать...