Поиск по сайту
Результаты поиска по тегам 'Computercraft'.
Найдено 14 результатов
-
В общем, я задумал создать что-то вроде Wi-Fi с защищенной сетью, подключением и доступом к внешним подключенным серверам и т.п. Пока что функций в нем не так уж и много, но я планирую его развивать. Вот основные функции на данный момент: Роутер: Умеет хранить данные о том, кто подключен. Имеет "уровни доступа" — чем ниже уровень, тем больше возможностей. Можно менять пароль. Есть возможность удалять из сети и блокировать подключения. Клиент: Возможность менять имя. Просмотр списка участников роутера (в зависимости от уровня доступа будет видна разная информация). Изменение состояния видимости (видно/не видно). Требования: Важно! Для корректной работы требуются мониторы, для роутера минимум 6 в длину и желательно 2 в высоту. Для клиента нужны мониторы размером 3x4. Роутер может продолжать работать даже без монитора, в то время как клиент не запустится без него. Планы: Добавить взаимодействие с клиентами. Уже есть база Добавить управление через терминал. Расширить функционал. Добавить возможность изменения названия сети и ее видимости (я начал делать сеть, но забыл о хосте, теперь нужно будет внедрять). Реализовать шифрование. Обеспечить доступ к внешним серверам. Разработать что-то вроде API. И много другого. Как попробовать: Роутер Клиент Известные баги: По какой-то причине сломалась смена ника.
-
Мой вопрос может показаться глупым, но всё же. Почему все используют OpenComputers, а не CC: Tweaked? Мои аргументы: В пользу ComputerCraft: Он более... "Ванильный"? Он НАМНОГО Проще Он активно обновляется(Если мы говорим о Tweaked версии) У него нету сильных недостатков перед OC Конечно, у CC есть и свои минусы, и я буду рад, если вы поделитесь своим мнением(если конечно вы аргументируете свою точку зрения). Также, заради справедливости скажу, что у OC тоже есть плюсы, и главный - Это большие экраны, память(неизвестно сколько в CC Tweaked), разные дискетки блоки и т.п. (Не бросайтесь говном пожалуйста, просто я действительно не вижу весомых причин, чтобы сидеть только на OC)
-
Поскольку на Lua можно сделать Brainfuck, это доказывает его полноту по Тьюрингу. Так что нам мешает создать свой язык на Lua? Для создания языка нам надо сделать лексер и парсер. Лексер будет преобразовывать наш код в токены, например: int Variable=2; Получим: TYPE: INT NAME: Variable OPER: EQUALS VALUE: 2 END Теория есть, а практики нет :) Вот пример пару языков на Lua https://github.com/pi-pi3/asm.lua https://github.com/Trystan-C/CC-ASM
-
- computercraft
- opencomputers
-
(и ещё 1 )
Теги:
-
Да, мы все знаем, что OpenComputers гораздо более стабильный, безопасный и продвинутый, чем ComputerCraft (который к тому же перестал поддерживаться разработчиком). Однако я до сих пор считаю, что ComputerCraft *гораздо* лучше именно как мод для программирования. И вот почему: Я впервые начал программировать именно в майнкрафте. Смотрел те самые туториалы на ютубе от 1Ridav, даже конспектировал в блокноте. Научиться программировать тогда было очень просто. Посмотрел пару туториалов, зашел на сервер, скрафтил комп и вуаля - сидишь строчишь свою библиотеку создания графических кнопок или ещё что-нибудь. Здорово. А главное - другие игроки могут видеть и то, как ты программируешь, и работу твоей программы. Для начинающих это был действительно самый лучший способ научиться программировать. С эпохой OpenComputers всё изменилось. Теперь, чтобы добраться до рабочего терминала, надо изучить все про сборку компьютера, чуть ли не пройти игру наполовину, чтобы насобирать ресурсов, правильно всё собрать и узнать, что, вообще говоря, тебе нужно питание. И ты идёшь и трахаешься с каким-нибудь industrial craft 2 ещё несколько часов вместо того, чтобы уже писать код. Более того. Уже предвидя этот путь, ты можешь начать развиваться, насобирать ресурсов итп, а потом узнать, что на сервере усложненный крафт компьютеров и всего сопутствующего (основанно на личном опыте: на mcskill Hi-Tech 3 нет GregTech, зато стоит какой-то мод, усложняющий создание компьютера до боли). Честно говоря, после такого опускаются руки. ComputerCraft был хорош именно своей доступностью. Любой мог начать писать свою программу, создав компьютер из говна и палок за пару минут. А интерес новичка держится только тогда, когда он видит наглядный результат своей работы. Новичок не хочет потратить миллион часов на изучение сборки компьютера итп. Он хочет хоп и окрасить пиксели экрана в розовый. Сборка компьютера, ее усложнение, бОльшие требования - это достаточно интересный геймплей, но абсолютно бесполезный, запутанный и мешающий в плане обучения программированию. Я отнюдь не хочу принизить мод OpenComputers, это прекрасный мод. Но, заменив собой ComputerCraft, он убил поток свежей крови на этот форум да и вообще в сообщество программистов. К сожалению, программирование в майнкрафте превратилось из общедоступного обучающего инструмента в область для гиков, которые и так уже все знают и умеют.
-
Я заметил что на этом сайте нету информации о моде ComputerCraft, но при этом сам Саит создан для мода ComputerCraft Вопрос о том что будет ли популярны программы для ComputerCraft
-
Постоянно выходит в стартовую ОС, когда пишу on или off. не знаю с чем связано. Я только начал программировать на lua, немного опыта имею. Но не могу понять почему так. Не могу решить проблему уже 4 часа. Спасибо за помощь. Вот код: os.pullEvent = os.pullEventRaw repeat do term.clear() term.setCursorPos(1,1) term.write("ReactorOS 1.0") term.setCursorPos(1,2) term.write("Copyright Bogdikon") term.setCursorPos(1,4) term.setCursorPos(1,3) term.write("Available Commands - On and Off") term.setCursorPos(1,5) local a = io.read() if a == "on" then return redstone.setAnalogOutput("bottom",15) else if a == "off" then return redstone.setAnalogOutput("bottom",0) end end end until true
-
Маловероятно, что сейчас кто либо продолжает использовать компьютеркрафт, но вдруг. В процессе игры мне понадобилось осуществлять связь между компьютером OC и CC. Так как я не нашёл адекватного способа передачи данных, то придумал костыль. Костыль заключается в передаче данных (на данный момент — строк, если нужно будет передавать что-то другое, то допишу) через... установку и чтение цвета золотого монитора. Код: Использование: Демонстрация: Надеюсь, что кому-то это может пригодиться.
-
4eyes Библиотека предоставляющая более удобный интерфейс для работы с мостом из мода OpenPeripherals. Описание Данная библиотека имеет очень удобный ООП интерфейс и много возможностей, в том числе мультипользовательность. Мы можем легко создать свой интерфейс, получать доступ к любому пользователю, слушать события и и работать с клавиатурой. Для примера, код простейшей программы: -- connect libs local eyes = require("4eyes") local class = require("30log") -- create classes local Text = class("Text") do -- class Test function Text:init(surface, x, y, text, color) self.x = x self.y = y self.text = text self.color = color self.drawer = surface.addText(self.x, self.y, self.text, self.color) end function Text:event(bg, us, ev) print(table.unpack(ev and ev or {})) end end -- work with 4eyes local bridge = eyes.Bridge() bridge:getEvent("glasses_attach"):setPostHandler(function (br, ev) print("New user: " .. ev[3]) local us = br:getUser(ev[3]) us:addObject("test", Text(us:getSurface(), 5, 5, "Hello", 0xFFFFFF)) us:renderObjects(br) end) bridge:pull() Как видите, все очень просто. Создаем объект класса Bridge, настраиваем и запускаем метод pull который начнет слушать все события. Сейчас вам может быть не все понятно, например что за PostHandler, и объекты. Об всем этом пойдет далее. Документация Класс Bridge Данный класс является самой главной частью библиотеки, именно в нем происходит слушание событий и добавление/хранение/изменение пользователей. :init() - является конструктором объекта, вызывать явно не нужно, он вызывается сам при создании объекта. При создании создает события по умолчанию (описанные классом Event): glasses_attach - добавляет пользователя в таблицу пользователей glasses_detach - удаляет пользователя из таблицы пользователей glasses_capture - начало сессии с клавиатурой, делает поле captured пользователя равным true glasses_release - конец сессии с клавиатурой, делает поле captured пользователя равным false :pull() - запускает главный цикл программы, слушающий сигналы. :addUser(string: name, string: uuid) - добавляет нового пользователя в таблицу пользователей, принимает имя и uuid пользователя. :getUser(string: name) - возвращает пользователя с указанным ником. :removeUser(string: name) - удаляет пользователя с указанным ником из таблицы пользователей. :addEvent(string: name, Event: event) - добавляет нового слушателя, принимает название события и объект класса Event. :getEvent(string: name) - возвращает слушателя с указанным именем. :removeEvent(string: name) - удаляет слушателя с указанным именем. :eachUser(function: func(Bridge: bridge, User: user)) - выполняет функцию для каждого пользователя. Пример: bridge:eachUser(function (br, us) print(us.name) end) --[[ пользователи: Маша, Петя, Катя stdout: Маша Петя Катя --]] Класс Event Данный класс является обработчиком события. Очень прост. :init(function: handler) - является конструктором объекта, вызывать явно не нужно, вызывается сам при создании объекта. Принимает обработчик события, в качестве функции. :setHandler(function: handler) - устанавливает обработчик. :setPostHandler(function: posthandler) - устанавливает пост-обрабочик события. Этот пост-обрабочик будет вызыватся каждый раз после вызовы обработчика. :handle(...) - обрабатывает событие, сначала обработчиком, потом пост-обработчиком. Принимает любые данные, которые будут переданы обработчику и пост-обработчику. Класс User Класс пользователя. Хранит в себе все объекты пользователя, такие как тексты и геометрические фигуры. ...дописать... Скачать Для того чтобы поставить библиотеку, скачайте два файла: 30log.lua и 4eyes.lua и разместите их в папке /lib либо /usr/lib
- 2 ответа
-
- OpenPeripherals
- OpenComputers
- (и ещё 2 )
-
Простейший платформер на LUA. Персонаж умеет ходить и прыгать На все это ушло 32 строки. Сейчас ищу способ создания карты, и её загрузки. Попытаюсь в скором времени накидать клон марио Пример работы: https://vk.com/doc225193884_411588211 Скачать: http://pastebin.com/q1Z7mq5r# Спасибо за внимание.
-
turtle.refuel() while true do turtle.dig() turtle.forward() turtle.digUp() turtle.digDown() if turtle.getItemCount(16) > 0 then turtle.select(1) turtle.digDown() turtle.placeDown() for i=2, 16 do turtle.select(i) turtle.dropDown() end turtle.select(2) end end сколько нужно нарисовать программок что бы мне можно было развлекатся на вашем сервере? и подойдёт ли эта программка для роботов, или ещё каких-нибудь созданий, которые понимают Луа
-
Привет all. (после публикации заметил ошибку в названии темы и тегах, код для OpenComputers а не для ComputerCraft, я их постоянно путаю) код 204 байта: _=component;m=_.proxy(_.list('modem')())m.open(7)u=table.unpack::r::e={computer.pullSignal()}if e[1]=='modem_message'then;_={load(e[6])}if _[1]then;_={pcall(_[1],u(e,7))}end;m.send(e[3],7,u(_));end;goto r или код 231 байт: ::r::pcall(load("_=component;m=_.proxy(_.list('modem')())m.open(7)u=table.unpack::r::e={computer.pullSignal()}if e[1]=='modem_message'then;_={load(e[6])}if _[1]then;_={pcall(_[1],u(e,7))}end;m.send(e[3],7,u(_));end;goto r"));goto r Записать в EEPROM любого устройства имеющего сетевую карту, и включить устройство. На отдельном компьютере выполняющем роль сервера выполнить код примера: modem.open(7) modem.broadcast(7, "return 'Hello ', _VERSION, ...", true, 42, 'bebebe') Прочитать ответ от модема, и понять что произошло. ============================================= Дополнительные примеры: broadcast(7, 'bebebe') broadcast(7, 'bebebe()') broadcast(7, 'return {}') broadcast(7, true) broadcast(7) broadcast(7, 'return computer.pullSignal()' ) code=[[ --my super puper long program nice code ]]; broadcast(7, сode) broadcast(7, 'component.proxy(component.list("eeprom")()).set(...)', codeforflashing) и прочие извращения 1,2 покажут обработку ошибок на стадии компиляции и выполнения; 3,4,5 покажут различие в коде 204 и 231 и ограничения передачи данных; 6,... - некоторые возможности Для самых бегемотов: Можно Хранить код 204 в setData Можно добавить аутентиикацию, чтоб вражина за стенкой не broadcast-ил нам тут с планшета Можно построить SCADA-систему из дронов, роботов, контроллеров и компьютеров. Что-то еще... ЗЫ mods/OpenComputers-MC1.7.10-1.5.12.26-universal.jar примеры не проверял, писал здесь сходу.
-
https://www.youtube.com/watch?v=0H3kYbfTzqQ Начинающему гриферу теперь необходимы две жемчужины и три алмаза (и х3 TNT, конечно), и всякий мусор для крафта черепахи и кпк.
-
Вышло обновление computercraft, добавили командный компьютер, суть его он может исполнять команды minecraft, без командного блока, но он присутствует в крафте. Добавили сериализацию JSON
- 14 ответов
-
- 1
-
- Обсуждение
- Computercraft
-
(и ещё 1 )
Теги:
-
Написал программу которая позволяет взламывать шифры криптографической стойки . Для этого надо : Bitnet антенна , криптографическая стойка . Код можно скачать здесь: http://pastebin.com/n5967tMd . m = peripheral.wrap("top") ca = peripheral.wrap("right") algos = {"AES","Blowfish","DES","DESede","RC2"} --запрос данных с вышки битнет while true do M = {1,1} while true do A = {1,1,1} A[1] ,A[2],A[3] = os.pullEvent() if A[1] == "bitnet_message" then --print(A[3]) M[1] = A[3] end A[1] ,A[2],A[3] = os.pullEvent() if A[1] == "bitnet_message" then --print(A[3]) M[2] = A[3] break end end --разшифровка local function decryp(key,text,Method) key2 = ca.decodeKey(Method, key) text2 = key2.decrypt(Method, text) return text2 end --главный цикл for i =1 ,5,1 do re,res = pcall(decryp,M[1],M[2],algos[i]) if re == true then print(re) print(algos[i]) print(res) if res == "password" then break end if re == true then break end end end end algos = {"AES","Blowfish","DES","DESede","RC2"} список возможных кодировок , от ARCFOUR пришлось отказатся так как он реагирует на все A[1] ,A[2],A[3] = os.pullEvent() if A[1] == "bitnet_message" then прием шифра производися через битнет . для приема иcпользую os.pullEvent() и фильтрую на тип "bitnet_message". для полного приема это действие производится два раза key2 = ca.decodeKey(Method, key) text2 = key2.decrypt(Method, text) сам метод разшифровки , первое разшифровка ключа , второе разшифровка текста re,res = pcall(decryp,M[1],M[2],algos) безопасный вызов функций decryp(). метод подбора шифра шифра состоит в том что метод при неверном алгоритме крашится, необходима функция pcall. re - ответ , успешно ли программа сработала. res результат , выводит разшифрованный текст. M[1] и M[2] это ключ и текст так же программа передачи и приема : http://pastebin.com/HTxrtezc --передача http://pastebin.com/EP6rgpR7 --прием они взяты с вики:http://computercraft.ru/wiki/Cryptographic_accelerator . (к сожалению что то с загрузкой картинок, поэтому картинки залил на Яндекс Диск: https://yadi.sk/i/3wYBJmuzeAPrp , https://yadi.sk/i/4-w9nPTHeAPrk , https://yadi.sk/i/h9MR3ANheAPrt , https://yadi.sk/i/VPoSkAi4eAPrv)
- 3 ответа
-
- ComputerCraft
- CC
-
(и ещё 1 )
Теги: