Перейти к публикации
Форум - ComputerCraft

vx13

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

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

  • Посещение

  • Дней в лидерах

    9

Последний раз vx13 выиграл 21 августа

Публикации vx13 были самыми популярными!

Репутация

215 Хороший

1 подписчик

Информация

  • Пол
    Не определился

Посетители профиля

223 просмотра профиля
  1. Этот метод для блоков с инвентарями добавляет мод OpenPeripheral. Возвращает массив таблиц с информацией о предметах. Индекс - это номер слота. Получить инфо о предмете в слоте N: component.chestname.getAllStacks()[N].all()
  2. vx13

    Робот-автокрафтер

    При игре на сервере названия всегда на английском. Так как программа выполняется на сервере, а локаль сервера дефолтная английская.
  3. vx13

    Робот-автокрафтер

    Если запускашь на сервере, то нужно добавить робота и мод в приват. Для WG: rg addmember приват ник_владельца rg addmember приват -n [OpenComputers]
  4. И не надо его убирать. Растянутый на весь широченный экран текст - это просто жуть
  5. vx13

    Загрузчик чанков

    Не работает. Чанки не форисруются. Тикеты не запрашиваются. Установи моды Dimensional Anchor и ChickenChunks. Первый подсвечивает форсированные чанки. Второй добавляет команду /chunkloaders, которая открывает карту загруженных чанков. https://imgur.com/a/pWQ4cqi
  6. vx13

    Загрузчик чанков

    Всё-таки попробовал запустить, на сервере: Скрин https://imgur.com/a/pIM6zwj Чанки не форсировались. Проверял через F6 (мод DimensionalAnchor) и команду /chunkloaders (не знаю кто ее добавляет, forge или ChickenChunks)
  7. vx13

    Загрузчик чанков

    А ты на сервере тестировал? Учёл то, что спавн подгружен постоянно? Пробежался по коду, если правильно понял, вот что происходит при запуске сервера: сервер стартует загружаются миры при загрузке миров - загружаются тикеты загружаются тикеты - загружаются чанки с ЧЛ загружаются чанки с ЧЛ - вызывается метод onConnect в методе onConnect - ЧЛ добавляется в список и тикет освобождается тикет освобождается - чанки выгружаются чанки выгружаются - вызывается метод onDisconnect в методе onDisconnect - ЧЛ удаляется из списка Игрок заходит на сервер - а в списке нет его ЧЛ. Упс. Тоже будет если игрок вышел с сервера - ЧЛ удалится из списка и активировать его не получится. Я тоже думал поначалу, что достаточно подписаться на события входа/выхода игрока на сервер. При входе - грузим чанки; При выходе - выгружаем. Оказалось не всё так просто... В общем случае, нельзя освобождать тикет, если onDisconnect вызывается при выгрузке чанка. Его надо где-то сохранить для последующего восстановления. Так мы приходим к необходимости отслеживать событие ChunkUnload. Я в этом событии скидываю тикет обратно в restoredTickets и устанавливаю поле ticket в null, что предотвращает его освобождение. Прекрасно. Но что будет если в мире не осталось загруженных чанков? Он будет выгружен. Что будет, если мы попробуем форсировать чанк для тикета в выгруженном мире? Получим NullPointerException в ForgeChunkManager. Поэтому пришлость отслеживать событие WorldUnload. В этом событии я удаляю тикеты выгружаемого мира из restoredTickets. Буду рад если ошибаюсь, и твой код работает. И ещё. В методе updateLoadedChunk, ты сначала отменяешь форсирование всех 9 чанков тикета. А затем форсируешь чанки для новой позиции. Так как чанки выгружаются не мгновенно, то это будет работать. Но данный код будет вызываться при каждом перемещении робота, и с частотой tickFrequency для дрона. Лучше брать дельту. Как это сделано в OC. PS Мод не запускал. Попробую завтра.
  8. vx13

    Загрузчик чанков

    @@JLevi, владелец присваивается чанклоадырю при активации и записывается в nbt предмета? Такой ЧЛ должн работать и в микроконтроллерах и компьютерах. В моём варианте я получаю владельца через интерфейс Agent. А его реализуют только роботы и дроны; у мк нет владельца, а владельцем компьютера можно назначить любого игрока. Поэтому, если ЧЛ должны работать только при онлайне игрока, то работать они будут только в роботах и дронах. Кстати, в твоём варианте игрок, который постоянно зависает на сервере, может активировать ЧЛ-карты другим игрокам. Можно глянуть на сорцы?
  9. vx13

    Мод OpenComputers (обсуждение)

    Новые возможности улучшения "Загрузчик чанков", далее ЧЛ. Возможность загружать чанки только при онлайне игрока. Белый/чёрный список измерений в которых ЧЛ разрешён/запрещён (closes #2768). Возможность ограничить кол-во одновременно работающих ЧЛ на одного игрока (настраивается в "forgeChunkLoading.cfg"). Добавлена команда, которая выводит список установленных ЧЛ. Более подробное логирование (уровень настраивается). Работать может только один из ЧЛ с одинаковым адресом (защита от дюпа). Дроны при перемещении в другое измерение корректно перезапрашивают тикет. ЧЛ можно устанавливать в адаптер и микроконтроллер (closes #2499). Описание опций (группа chunkloader): опция requireOnline: Если true: ЧЛ будет грузить чанки только при онлайне игрока. Если игрок выходит с сервера его чанки будут выгружены (ЧЛ продолжит потреблять энергию; метод isActive() компонента ЧЛ вернёт true). При входе игрока на сервер чанки будут загружены. Тикеты будут регистрироваться на игрока, а не на мод (см. опцию playerTicket). опция dimBlacklist: Список измерений в которых работа ЧЛ запрещена (числовой id). опция dimWhitelist: Список измерений в которых работа ЧЛ разрешена. Если список пуст, то ЧЛ могут работать во всех не запрещённых измерениях. Если измерение указано в обоих списках, то dimBlacklist имеет приоритет. Если использование ЧЛ запрещено, то метод setActive() компонента ЧЛ будет возвращать false. опция playerTicket: Если true: Тикеты будут регистрироваться на игрока, а не на мод. Можно ограничить кол-во одновременно работающих ЧЛ на одного игрока в конфиге "forgeChunkLoading.cfg". Если ЧЛ не имеет владельца-игрока, то ЧЛ невозможно активировать. опция logLevel: Уровень логирования (0 - минимально; 1 - более подробное, 2 - для отладки) Команда oc_chunckloaders (сокр. oc_cl) - выводит список ЧЛ в загруженных чанках и список зарегистированных неактивных тикетов. Выводится: адрес компонента, статус, координаты блока, координаты чанка, измерение, владелец. Статусы: inactive - ЧЛ выключен, active - ЧЛ включён, active/suspend - ЧЛ включён, но не грузит чанки. Пример вывода: Данный патч закрывает https://github.com/MightyPirates/OpenComputers/issues/2768 и https://github.com/MightyPirates/OpenComputers/issues/2499. Ветка https://github.com/svitoos/OpenComputers/tree/chunkloader (ответвлена от тега v1.7.2) Ссылка на скачивание https://github.com/svitoos/OpenComputers/releases/tag/v1.7.2-chunkloader Может быть КА согласится установить на сервер и протестировать патч в условиях реального сервера? Патч основан на версии 1.7.2, так что никаких багов, не связанных с ЧЛ быть не должно. Если что-то пойдет не так — ЧЛ всегда можно отключить, установив лимит тикетов в 0 в конфиге "forgeChunkLoading.cfg". И может быть кто-нибудь переведёт описание на англ., а то я сомневаюсь в адекватности перевода GoogleTranslate?
  10. vx13

    История моего никнейма

    "vx" - мой логин на домашнем компе ("v" - первая буква имени, "x" - потому что понравилась и расположена рядом). 13 - чёртова дюжина - добавил, чтобы увеличить длину логина.
  11. Привести сообщение из чата и эталонную строку к одному регистру (например, нижнему), через unicode API (или string.lower/upper., если используется только латинский алфавит). local unicode = require "unicode" ... if unicode.lower(msg) == a then ...
  12. tonumber(arg) — конвертирует аргумент arg в число; вернёт nil, если конвертация не возможна.
  13. Робот может накапливать опыт при установленном Апгрейде опыта. component.experience.level() Высокоуровневый робот может хранить больше энергии (5000 на уровень в дефолтном конфиге). Для робота-шахтёра это очень полезно. Прокачать робота можно скармливая ему зачарованные предметы, которые наловил робот рыболов (метод component.experience.consume()). Небольшая програмка, которая показывет уровень робота и может потреблять зачарованные предметы для увеличения уровня: exp.lua (как refuel.lua для генератора). local component = require("component") local robot = require("robot") local shell = require("shell") local args = shell.parse(...) local function printUsage() print("Usages:") print("exp") print(" Gets the current level.") print("exp <slot>") print(" Tries to consume an enchanted item to add") print(" expierence to the upgrade") print(" from the specified slot.") print("exp all") print(" from all slots.") end if component.isAvailable("experience") then local e = component.experience if #args == 0 then print("Level: "..e.level()) elseif tonumber(args[1]) ~= nil then local slot = tonumber(args[1]) robot.select(slot) io.write("Experience from slot "..slot.."... ") local success, msg = e.consume() if success then print("success.") else print("failed: "..msg) end robot.select(1) elseif string.lower(args[1]) == "all" then io.write("Experience from all slots... ") for i = 1, 16 do robot.select(i) e.consume() end robot.select(1) print("done.") else printUsage() end else print("This program requires the experience upgrade to be installed.") end
  14. Этот вопрос был задан в чате: Как посмотреть опыт робота? Так и не понял, апи никакого не нашёл. Нельзя получается?
  15. vx13

    Изменения на сервере EvilWorld.

    Можно программно замедлять: local component = require "component" local c = { } local i = 1 for addr in component.list("command_block") do c[i] = component.proxy(addr) i = i + 1 if i == 3 then break end end c[1].setCommand("/gamerule doDaylightCycle false") c[2].setCommand("/gamerule doDaylightCycle true") while true do c[1].executeCommand() os.sleep(0.5) c[2].executeCommand() end Время выводимое os.date замедляется.
×