Asummonster
-
Публикации
420 -
Зарегистрирован
-
Посещение
-
Победитель дней
12
Сообщения, опубликованные пользователем Asummonster
-
-
я же написал: спасибо, то есть у мя заработало...
Не увидел
Очевидно, для eeprom дрона создается новая папка на сервере. Т.е. eeprom получает уникальный id и стакаться уже ни с кем не может.
К стати, как снимать дрона? А то я поставил, а снять не могу.
ШИФТ + ПКМ
-
Это в том случае, если Сябро собирается строить свою сеть, никак не связанную с нашей. Но тогда и библиотеку он напишет свою, скорее всего. Если интегрироваться в существующую сеть, нужна библиотека минимум второго уровня т.е. для работы через связанные платы.
Не бойся вайфая. В ОС он намного безопаснее, чем в СС
Я после перечитывания c9 этом не уверен....

-
Переменная с АПИ дрона у тебя называется drone, а вызываешь метод ты из нилловой переменной, вместо drone ты написал dron
Меня вообще кто-то видит? Зеро,тут другая ошибка. Он метод вызывает фиг знает откуда.

-
Серг,ты слепой. Во первых: tonumber(value), во вторых: напиши не dron.move(x, y, z), а drone.move(x, y, z)
-
Вот код для компьютера:
local modem=require("component").modem local keyboard=require("keyboard") local event = require("event") local term = require("term") modem.open(111) modem.setStrength(10) while true do local x=term.read() local y=term.read() local z=term.read() term.write("sending") modem.broadcast(111,x,y,z) endВот для дрона:
drone = component.proxy(component.list("drone")()) modem = component.proxy(component.list("modem")()) modem.open(111) while true do local name,receiverAddress, senderAddress, port, distance, x, y, z = computer.pullSignal(1) if name == "modem_message" then --local tabletAddress="" --if(sender==computer.address() or tabletAddress)then dron.move(x,y,z) --end end endПо идее дрон должен смещаться на x,y,z, переданные через беспроводной модем, но он тупо вырубается(
Посмотри на первую строку: drone = component.proxy(component.list("drone")())
И на строку с управлением: dron.move(x,y,z)
-
Но сервера же где-то нужно будет ставить, а ДЦ пока нет... Я даже за комп не могу толком сесть сейчас...
Скорее всего будет проводная сеть по ДЦ что бы менее уязвим был... Так маршрутизатор есть? Wi-Fi тоже будет
надо же планшетам работатьИспользуй пока библиотеку для сети первого уровня ( на ней работают роутеры, днс, прокси). Ей не нужна огромная и сложная системма.
-
Из того,что я прочитал - такой демон может отвечать,к примеру,на автоматическое монтирование дисков(ивент peripheralAdded, на сколько я помню), автоматически прогружать в глобал АПИ компонентов(что бы каждый раз не писать modem=component.modem), работать корзиной и т.п. Вобщем - может быть не только вирусом. Часики swg тоже демон,в винде его бы назвали "служба гаджета часов"
-
1
-
-
Молодец ветахос=)
-
Пфф...
Вот это ЛАБИРИНТИК:
Отпечатывал=)Твоей прогой=)В магике есть функция создания лабиринтов=)
Отпечатывал=)Твоей прогой=)В магике есть функция создания лабиринтов=)
Около 3-х часов ждал=) 126x126x126
-
Я нашел еще один уже давно написаный поиск пути, прямо с реализацией создания карты мира у самого робота. Теперь робот может проходить лабиринты самостоятельно!
Подробнее тут.
Видео-презентация
Пришло время тестировать!=)
P.S. Вот лабиринтик=): https://yadi.sk/i/IwhAkg8UhCSHp
-
-
Истина!
Таблицы громоздки. Хранение одного большого экрана отожрет почти всю планку памяти тиер1, строкой хранить на несколько порядков компактнее.
А как хранить строкой?Хотя,у меня есть идея....
-
Самый легкий вариант не всегда самый лучший. Теоретически каждое знакоместо должно занимать в файле 2-3 байта. 1 байт - цвет и 1-2 байта - символ. А если еще упаковку применить ...
По моему,25 килобайт за скриншот 80x25 не очень много весит, но я подумаю об изменении формата.
-
А можно я по теме? Считаю, что хранить картинку в виде сериализованной таблицы крайне не рационально. Куча лишних скобок, пробелов и запятых. Не хочешь подумать над более компактным форматом?
Могу записывать просто в строку
Я просто выбрал самый лёгкий и надёжный вариант
-
Да леегко он блок увидит. Это клиентские текстуры/обработка взрыва крипера работают.Заметил в шахтерских мирах одну особенность. Крипер, когда взрывается, визуально разрушает блоки. Но при попытке войти в этот блок, тебя выталкивает назад. Этакие прозрачные непроходимые блоки получаются.
Если попытаться установить что-то, в визуально отсутствующий блок, будь то булыжник или факел, исходный блок восстанавливается, а устанавливаемый итем возвращается в инвентарь.
Такой вот баг.
Нужно сходить с роботом в майнерс мир, подорвать крипера и потестить, что скажет робот при попытке прохождения через "невидимую стену" и как он её видит.
-
Теперь как никогда будут актуальны чаты на очках=)
-
Сноси его к яйцам эндерменовским...поговорить не дает
Говорите на форумном чате=)
-
Монстрик. Вот эта хреновина
local robot = require("robot") attempt = 0 while not robot.forward() do robot.swing() attempt = attempt + 1 if attempt>15 then return false, 'имя блока впереди: инфа с геолайзера' end endи так бьет 15 раз, но робот у него проехать не может все равно и возвращает воздух. Это может быть только существо
(например, админ в инвизе
)А вдруг там зомби с 93 хп?Я такого ан новом ИТ видел=)Либо вайла шалит=)
-
Асум ты слепой что ли?
Увидел=)
А в цикле swing не вариант?
Пока препятствие не пропадёт
-
См выше запостил логику алгоритма. Мб я совсем дурак? или это особая "уличная магия" ?
Ты кроме geolyzer.analyze приставь robot.detect(). robot.detect() показывает всё,может это правда существо.
-
Программа позволяет создавать снимки экрана.
Сохраняет она его в файл /screenshots/Screenshot-Год-День-Час-Минута.ast
Формат ast
Скрытый текстПервые 4 байта - ширина и высота в hex, далее идут символы, которые были на экране или управляющие символы, которые означают смену цвета, после которых идёт цвет - 6 байт hex.
Для выхода из программы после распечатывания экрана надо по нему нажать(создать ивент touch).
Вот код "AsumScreenshoter"'а:
local mode = ({...})[1] if mode==nil then print("Использование: screenshot init для создания ивента сохранения экрана(Кнопка Print Screen, папка screenshots)\n screenshot <имя файла> для просмотра(По окончанию просмотра нажмите на экран)"); os.exit() return end local fs = require("filesystem") local unicode = require("unicode") local gpu = require("component").gpu local event = require("event") local function dec2hex(n, s) local h = string.format("%x", n) return string.rep("0", s-string.len(h))..h end local function hex2dec(s) return tonumber("0x"..s) end local function createScreenshotFile() DD, HH, MM, SS = os.date("%Y"), os.date("%H"), os.date("%M"), os.date("%S") if not fs.isDirectory("/screenshots") then fs.makeDirectory("/screenshots") end return io.open("/screenshots/Screenshot-"..DD.."-"..HH.."-"..MM.."-"..SS..".ast", "w") end local function getScreen() local W, H = gpu.getResolution() local screenshot = dec2hex(W, 2)..dec2hex(H, 2) local lfg, lbg for y=1, H do for x=1, W do local symbol, fgcolor, bgcolor = gpu.get(x, y) if lfg ~= fgcolor then lfg = fgcolor screenshot = screenshot .. "␑" screenshot = screenshot .. dec2hex(fgcolor, 6) end if lbg ~= bgcolor then lbg = bgcolor screenshot = screenshot .. "␒" screenshot = screenshot .. dec2hex(bgcolor, 6) end screenshot = screenshot .. symbol end end return screenshot end local function writeScreen() local file=createScreenshotFile() file:write(getScreen()) file:flush() file:close() end local function printScreen(filename) local screenshot=io.lines(filename)() local oldw, oldh = gpu.getResolution() local header = screenshot:sub(1, 4) screenshot = screenshot:sub(5) local W = hex2dec(header:sub(1, 2)) local x = 0 local H = hex2dec(header:sub(3, 4)) local y = 0 gpu.setResolution(W, H) while y < H do y = y + 1 x = 0 while x < W do local sym = unicode.sub(screenshot, 1, 1) if sym == "␑" then gpu.setForeground(hex2dec(unicode.sub(screenshot, 2, 7))) screenshot = unicode.sub(screenshot, 8) elseif sym == "␒" then gpu.setBackground(hex2dec(unicode.sub(screenshot, 2, 7))) screenshot = unicode.sub(screenshot, 8) else x = x + 1 gpu.set(x, y, sym) screenshot = unicode.sub(screenshot, 2) end end end event.pull("touch") gpu.setResolution(oldw, oldh) end local function saveScreenByKey(_, _, key1, key2) if key1==0 and key2==183 then writeScreen() end end if mode=="init" then event.listen("key_down", saveScreenByKey) else printScreen(mode) end
Надеюсь вы будете пользоваться этой программой!=)
Для того,что бы начать делать скриншоты, после каждой перезагрузки надо запустить приложение с параметром init
Для того,что бы создать скриншот после инициализации-надо нажать кнопку Print Screen
-
function getScreen() repeat ip, screenRaw=opennet.receive() until ip==initial for sym=1, #screenRaw-160 do io.write(unicode.sub(screenRaw, sym, sym)) end endСпасибо,заменил
-
В банке на 2 этажа ниже, под менялой байтом, поставили такое вот табло, оно обогатит тех, кто знает, как использовать QR
Код меняется каждые 20-24 часов, на скрине виден 25й код, следующим будет 24й
Ссылки на тему?
Я уже подумал,что плюшка
-
А где картинки?
Картинки дублирования экрана?
Могу добавить=)
Ты так и не научился код правильно и читабельно писать. Подправил ОП, поставил отступы в 2 пробела (!!!), а не в 4 (ты не на Си кодить пришёл), поставил нормально конструкцию if/then(/else)/end, сделал место с кодом красивым. Учись:
if yourConditionGoesHere then -- 2 отступа, ДВА! И не лепи в одну строку! else -- Тут то же самое. end
N++ 4 делает

OpenNet: Продолжение
в Сетевые технологии
Опубликовано:
Отправителя маскировать можно
Вощем, OpenNet Wi-Fi такой же защищённый,как и модемы в КК
Пока роутеры не переписать