Doob
-
Публикации
1 089 -
Зарегистрирован
-
Посещение
-
Победитель дней
141
Сообщения, опубликованные пользователем Doob
-
-
По-быстрому сделал форк, а то без связи с роботом непонятно, когда за ним идти.
Добавил возможность копать в аду, подправил форматирование и выкинул кучу реквайров.
pastebin get fDXkDmRE /lib/kopalka.lua
Чтобы получать от робота сообщения о переполнении
горшкасундука или окончании работы, просто ловим ивент 'modem_message' в компьютере со связанной картой - партнером робота.-
1
-
-
Все никак не могу понять, для чего эта программа?
Если она пишет файл, почему она не записывает файлы больше 128 символов, где мне взять такой файл?
Почему бы не сделать дробление файла на части?
-
К примеру, я могу сделать эмулятор видеокарты+монитора+клавиатуры и запускать удалённый рабочий стол.
Вах, какой маладец! Зачем? Кстати, как там с передавалкой фалйов дела обстоят?))
-
А не легче попросить Администрацию залить прогу в робота через папку с сервером?
Часто видишь администрацию на сервере?
И к тому же, как запустить/изменить прогу на роботе без устройств ввода/вывода?
-
Ну хорошо, любите протоколы вот вам один из протоколов для облаков - WebDAV.
Пастебин сложно запоминать id (abvgd777 например).
Нужна простая система передпчи, чтобы было легко поделиться в игре (типа sharing)
На пастбин можно кинуть ссылку. А как передавать сслыки на свой комп в игре? ON постоянно падает, надо что-то надежное, можно сделать связанное хранилище в популярных местах - к примеру прыгнул на спавн, залил с планшета файл, поставил пароль, а кому этот файл нужен - приходит и забирает.
-
можно добавть к event API, там все просто устроено, но computer API это апи мода, т.е. более низкоуровневая функция.
-
Ты сможешь перепрошивать eeprom без разборки оборудования. Прости, что долго не отвечал, я в этот раздел редко захожу.
Зачем роботу перепрошивать ЕЕРROM? Это же робот. Я вчера набивал робота и у меня одна единица все оставалась свободной, пришла идея выкинуть моник и клаву, вместо них вставить Wi-Fi и сделать I/O через модем, хоть свободных очков не появляется, но зато есть еще два слота для апгрейдов, если интересно - могу накидать утилиту для использования в планшете, чтобы его использовать вместо встроенных клавы и монитора.
-
RFID хранит максимум 64 байт
Лёша, ладно, завтра допилю) Сегодня устал
Магнитная карта крафтится одна, а RGID целых 6, так что переделывай программу, если хочешь, чтобы ее использовали.))
-
Зачем вообще на карту 128 Байт записывать файл??? Это же бред! На RFID дешевле, но тоже бред.
-
Диаметром же.
Действительно

К алгоритму можно прикрутить управление через чат и снятие денег со счета в банке, но не знаю где разместить игрока. Можно сделать телепортацию через чат на точку спавна TNT, а игроку выдавать инвиз.
-
Дело было вечером, делать было нечего.
Реализовал свою версию.
Дальность рассчитана на 40 блоков (можно вести огонь в кругу радиусом 81 блок), комблок должен находится на уровне поверхности (поправку на высоту делает игрок).
Суть такова: вводим название программы, направление в Майнкрафтовских градусах (юг = 0, отсчет по часовой +, против часовой -), вводим дальность и жмем [Enter]
На короткой дистанции большие погрешности, но для TNT это не играет роли.local cb = require('component').command_block local tH = {0.02, 0.04, 0.08, 0.1, 0.12, 0.14, 0.18, 0.2, 0.22, 0.24, 0.26, 0.3, 0.32, 0.34, 0.38, 0.42, 0.44, 0.48, 0.5, 0.54, 0.6, 0.62, 0.68, 0.72, 0.76, 0.82, 0.86, 0.92, 1.0, 1.05, 1.11, 1.2, 1.26, 1.32, 1.4, 1.53, 1.56, 1.6, 1.71, 1.81} local function azimuth(a) local x = math.sin(math.rad(a)) local y = math.cos(math.rad(a)) x = (x-(x*2))-0.0001 y = y-0.0001 return x, y end local tArgs = {...} if tArgs and #tArgs == 2 then local angle = tonumber(tArgs[1]) local distance = tonumber(tArgs[2]) if type(angle) == 'number' and type(distance) == 'number' and distance <= #tH then local a, b = azimuth(angle) cb.setCommand('summon PrimedTnt ~ ~1 ~ {Fuse:100,Motion:['..a..','..tH[distance]..','..b..']}') cb.executeCommand() else print('Расстяние должно быть меньше '..#tH) end else print('Использование:\nboom <направление> <дальность>') end
Пример работы скриптаfor i = 0, 360, 10 do shell.execute('boom '..i..' 30') end
В тесте стрелял камнем FallingSand -
В одиночке запустил 16х16 на уровне 10, добытых ресурсов вполне хватает для старта.
Либа довольно длинная, можно еще добавить функционала. Не понял, как туда затесался фермер))
-
Искал библиотеку для открывания png на lua, но ничего внятного не нашел, все используют какие-то сторонние модули, если кто в курсе, тыкните носом в реализацию на чистом lua.
-
load() в моде не грузит байт-код, поэтому для перехвата кода надо сделать надстройку к операционной системе, которая будет запускаемые файлы прогонять через себя. Как я понял, это нужно для параллельных вычислений, но это тупиковый путь, для ускорения лучше выполнять код на внешних ресурсах.
-
Хех. А не легче между клиентами согласовать randomseed?
Кого? Файлы? Чтобы части файлов проваливались в варп? Надо будет сделать нормальный передатчик файлов, а лучше файловый менеджер, как Midday Commander, но между компьютерами (или вообще приделать к MC аналог FTP)
-
Вообще-то в памяти уже висит именно байт-код, достаточно посмотреть дамп тех индексов, в которые загружается код.Только не байт-код. Байт-код в компилируемых языках, а у нас луа — интерпретируемый. (Хотя компилировался-бы, через LuaJIT)
-
Хм.. И правда, это дикий костыль, надо будет переделать. А название файла в сообщении, чтобы потом приспособить параллельный прием нескольких файлов.А зачем оно сериализирует? Зачем в сообщении с куском кода название файла? + обрезалка по maxPacketSize не спасёт, потому что serialization добавляет кучу "/".
-
Нет предела совершенству.
Сделал более компактную версию без излишеств и современных технологий.
tArgs = {...} if #tArgs ~= 1 then print('Usage: tunnel <lenght>') os.exit() end local r = require('component').robot local function dig(s) while r.detect(s) do r.swing(s) end os.sleep(0.1) end for i = 1, tArgs[1] do dig(3) r.move(3) r.turn(false) for j = 1, 2 do dig(3) dig(1) r.move(1) dig(3) end r.turn(false) r.turn(false) for k = 1, 2 do dig(3) dig(0) r.move(0) dig(3) end r.turn(false) endА это можно запустить прямо в интерпретаторе (259 байт):
r=require('component').robot l,d=io.read(),function(s)while r.detect(s)do r.swing(s)end os.sleep()end for i=1,l do d(3)r.move(3)r.turn(false)for j=1,2 do d(3)d(1)r.move(1)d(3)end r.turn(false)r.turn(false)for k=1,2 do d(3)d(0)r.move(0)d(3)end r.turn(false)endВ терминале пишем 'lua', копируем туда строку, жмем 'Enter', вводим длину туннеля, жмем 'Enter' и все.-
1
-
-
Новички используют эту программу, но не знают, какие опасности она таит.
Нету проверки пустых блоков, в результате робот делает лишние движения.
По-быстрому перевел tunnel из ComputerCraft, хоть и не такая компактная, зато надежная.
-
1
-
-
pastebin get 6x9YtbrX file_sender
Немного неказисто, но задачу выполняет.
Чтобы включить ожидание файла пишем: file_sender receive <имя файла> (если хотим заменить оригинальное имя файла)
Выскочит сообщение выбора модема - вводим 'modem' для обычной платы, 'tunnel' для связанной.
На передающем компе пишем: file_sender send <имя файла>
Далее так же выбираем нужный тип модема.
Не сделал чтение файла частями, поэтому он весь загружается в оперативу - размер передаваемого файла ограничен свободной памятью.
К тому-же нет выбора модема-партнера для обычных модемов, все пересылается через broadcast.
-
У меня вообще никаких проблем с ночью, ибо живу под землей на полу-блоках. Наголосовал на нормальные солярки - круглые сутки энергия не кончается. Самому ничего делать не надо, везде можно послать робота работать за меня.
-
На ум сразу приходят пару идей:
Сделать менеджер оперативной памяти и грузить программы через него, как через lua.lua
Если известно имя функции, то string.dump
Парсить всю память по рабочим индексам, если ~= nil, то занести в таблицу, но как найти нужный код я без понятия и как сразу дампить все окружения тоже.
-
Подарок лагдромщикам... В RedPower делал проходческий щит на блокбрейкерах. Приходилось сразу выключать, как в чат орали "ЛАГИИИИ", чтобы меня не запалили и не забанили.
-
1
-
-
Спавнить неподвижного зомби на каждой клетке и проверять радарами на месте ли зомби
Смысл? Если есть дебаг-карта, то и разрешение на взрывы можно выпросить))

Сколько в байте килобайт?
в Программирование
Опубликовано:
Холивары...
В майкросовстовском байте 1/1024, но это не байт, байту давно присвоено 1/1000.
А 1/1024 это бибайт, ибо система двоичная.