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

Лидеры


Популярный контент

Показан контент с высокой репутацией 08.01.2019 в Сообщения

  1. 2 балла
    Ок, как будет время - гляну. Спасибо за багрепорт.
  2. 1 балл
    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 Если не нужна нумерация слева направо и сверху вниз по направлению взгляда, то можно упростить код преобразования координат, захардкодив конкретное направление. Код преобразования координат нужно потестирвать.
  3. 1 балл
    @@vx13 спасибо, отличный гайд. Как раз вчера вопрос был в чате. P.S. Оказывается, что robot.level(): number Получает текущий уровень робота. Дробная часть обозначает текущий прогресс до следующего уровня. Например, если это число 1.5, робот имеет уровень 1, и на 50% достиг второго уровня. Внимание: начиная с версии 1.3 функция устарела. Используйте component.experience.level(), поскольку робот получает очки опыта, только при наличии апгрейда на опыт. (с) вики Ради интереса проверил механику этого агрейда - выяснилось, что роботу до попки, что копать. Хоть руду, хоть коблу. Опыт прибавляется на вскидку одинаково. На кобле даже еще быстрее кач идет, так как робот ее просто банально быстрее ломает. Но самый быстрый кач - на саженце. И инструменты не нужны Но профит от этой прокачки очень сомнительный, как в плане затраты энергии и времени и пользы от прокачанного робота, так и затраты ресурсов сервера. За 1 минуту робот на саженце качнулся на ~0.07-0.08 local component = require("component") local robot = require("robot") local exp = component.experience while true do print(exp.level()) robot.place() robot.swing() os.sleep(0.1) end А вот топор с зачаркой на 5й уровень остроты дал сразу ~1.15 уровня. Так что наверно есть смысл вкачивать кусты опыта тинкерса и чарить деревянные инструменты, и уже их кормить роботу. Ну и очень хороший и бесплатный вариант, как предложил vx13 - кормить роботу зачаренный рыболовный лут-улов.
  4. 1 балл
    Робот может накапливать опыт при установленном Апгрейде опыта. 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
  5. 1 балл
    Спустя ровно год (всё строго по традиции), выкатываю патч-версию 0.7.1. Здесь пофикшен баг с призрачным слоем, а также ещё пара тройка багов. Прокачаны текстбоксы. Теперь они должны стать немного нагляднее и удобнее. Ссылка на пакет: https://hel.fomalhaut.me/#packages/holo Ставить с HPM (конкретная версия): hpm install holo@0.7.1 или просто (самая новая версия, что на текущий момент тоже 0.7.1): hpm install holo Программы тут же станут доступны, под названиями holo и holo-view. P.S. Если нету HPM, ставьте его командой: pastebin run vf6upeAN
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...