Перейти к содержанию

Pofigist

Пользователи
  • Публикаций

    53
  • Зарегистрирован

  • Посещение

Весь контент Pofigist

  1. file:flush в обычной записи файлов, насколько я знаю - не требуется. file:write и так все записывает.
  2. 1. local file = io.open("<путь к файлу>", "<мод>") - моды: "w" запись файла, "r" - чтение файла, "a" -дозапись в конец. Нам нужно "w" 2. file:write("<текст>") - функция записывающая в файл то что тебе надо. Для чтения используется функция file:read() Подробнее http://www.lua.ru/doc/5.7.html и тут http://minecraft-ru.gamepedia.com/OpenComputers/Filesystem_API (внизу страницы)
  3. Без использования библиотек я вижу это так: 1. Создается буфер текста, который ты выводишь. 2. Есть переменные отвечающие за то, какая строка отображается самой верхней. 3. При нажатии кнопок, перемещении ползунка эта переменная изменяется, полностью меняя то, какая часть массива отображается.
  4. Pofigist

    Функция load

    Сейчас не совсем уверен, но на сколько я знаю arg3 может быть "t", "b" или "tb". Этот аргумент указывает на то, читать ли функцию если она представлена как текст или как байт код или и то и то. Но не уверен. P.S. Чтение байткода нужно разрешать в конфиге.
  5. Я лишь ответил на вопрос, что можно придумать с несколькими адаптерами. Конечно я понимаю, что не всем дано понимать сарказм, но стоит быть чуточку добрее что ли. Вообще любое зашифрованное сообщение можно расшифровать, но если один голубь будет быстр, второй - увертлив, а третий будет лететь очень высоко -- согласись, гораздо труднее подбить их всех.
  6. Так ничто не мешает, но зато это типа - реализм. В жизни же вафля не способна передать данные на определенную антенну. А то что есть мод для шифрования, не мешает брать и придумывать свое.
  7. 2. Ну мы же не знаем что это за программа там. К примеру один модем сервера передает на компьютер адрес того модема, который будет "обслуживать" этот компьютер и компьютер начинает игнорировать сигналы от любых других модемов. Так можно обеспечить безопасность работы программы, не используя связанных карт или send'а. Чем не своеобразный метод безопасности? По поводу третьего мне долго описывать. Я не про кодер, да и шифрованием не увлекаюсь, но думаю, что передавая шифрованное послание кусками, через разные модемы, которые будут расшифровываться исходя из адресов модемов, что послали данные - не плохая идея.
  8. Значит нужны определенные адреса. Или например симуляция на сервере работы нескольких пк. Вариантов много. Я бы например использовал несколько модемов для супер-пупер системы шифрования.
  9. Меньше думать Для кого-то for ... in ... do - сложна
  10. А теперь нормальный способ получения прокси под все модемы. local modem = {} --запись всех модемов в таблицу. Можно использовать modem[1-4] для работы for address, compType in component.list("modem") do table.insert(modem, component.proxy(address)) end --Упрощение, перевод четырех модемов в отдельную переменную. Теперь можно писать просто modem1, modem 3 и т.д. local modem1, modem2, modem3, modem4 = table.unpack(modem)
  11. require("component").<component> возвращает прокси основного компонента. Чтобы использовать компонент нам нужен его прокси. Чтобы использовать 4 модема нам нужно получить 4 прокси под каждый из них. Тут то require и помогает. Это конечно не идеальный вариант, но при этом он рабочий и простой для новичка. comp.setPrimary("modem", "xx1") modem1 = require("component").modem comp.setPrimary("modem", "xx2") modem2 = require("component").modem comp.setPrimary("modem", "xx3") modem3 = require("component").modem comp.setPrimary("modem", "xx4") modem4 = require("component").modem --Получили 4 прокси и теперь можем использовать разные модемы. modem4.send("xx2","Hello") --Тут мы получаем сообщение на свой же компьютер но уже со второго модема.
  12. Потому что require("component").modem как раз таки и получает прокси компонента. Просто прописывай require после setPrimary и будет тебе счастье. Соответственно, если есть желание использовать несколько модемов сразу то нужно несколько require, но проще будет разобраться с прокси. Если нужно могу помочь.
  13. А что мешает устанавливать главный компонент в самой программе?
  14. - библиотеку os не нужно подключать(эту строку можно удалить) - не знаю есть ли такая команда в os, но она точно есть в computer и так или иначе должна заканчиваться скобками.
  15. На gamepedi'и по моему все четко сказано Запускает HTTP запрос по заданному URL с заданными POST данными (если есть). Ответ обрабатывается как http_response сигнал. Возможно использование вместо нее "обертки" с итератором internet.request Если уж не знаешь что такое HTTP и POST данные то тут уже гуглоид в помощь.
  16. А чем SDK отличается от текстового редактора? Функциональностью и не более. Берешь базовый Виндосовский блокнот, суешь в него всяких наворотов под кодинг и SDK готова. Опять таки если очень серьезно и программа запускается в отдельной среде и т.д. То тут конечно сложнее. Но, опять таки, я не думаю, что нужно будет смотреть на работу программы и попутно что-то редактировать. Так или иначе, ОС твоя и тебе решать что в ней делать. Считаешь нужным многопоточность - на здоровье. Но до этого нужно решить еще кучу других вопросов и создать хотя бы базу. Собственная ОСь особенно в таких масштабах о которых ты говоришь, достаточно большая, может пока лучше стоит ставить более простые цели? Небольшой редактор, поддержка нескольких дисков/мониторов и т.д.?
  17. Я вот в начале как-то не подумал а сейчас согласен с Квантом. Простая реализация открытия в одной программе нескольких файлов решит проблему и многопоточности не понадобится. Я вижу это так: нажимаем "+" открывается новая вкладка, на ней мы открываем файл и вуаля... два файла открыты.
  18. Ну так да. Если следовать реализму, то многопоточность нужна, но в реале ты врятли встретишь людей которые будут кодить прямо в майнкрафте. Твое дело - так или иначе.
  19. Я сам сейчас занимаюсь подобным. Точнее занимался. Будет настроение - продолжу. Идея сама по себе очень интересная, но и не менее сложная. Сразу хочу сказать, что eeprom трогать не стоит. Он запускает init.lua и этого вполне достаточно, а изменение БИОСа под свою систему - я в этом не вижу смысла. Да и описывать что и как должно быть я тоже не вижу смысла. Все должно приходить по ходу дела. У тебя есть два компа: один с дискетой OpenOS, чтобы форматировать пустой диск; второй - абсолютно чистый комп с видеокартой. Вставил диск в комп, записал нужные файлы, перекинул диск в тестовый ПК и запустил... Процесс немного подбешивает но так и должно быть. По пути тебя ждет много проблем, аля отсутствие loadfile, dofile, require - и все это придется исправлять самому. Иди поэтапно. Как ты видишь себе запуск своей системы? Красивое окошко приветствия? Ну так создай все, чтобы при запуске это окошко появилось. Дальше идет рабочий стол? Вперед и с песней - создавать свой Desktop. В многопоточности же я смысла не вижу. Оперативки в местных компах не так много, да и зачем тебе открывать сразу несколько программ? Разве что какой-то контроллер дома, который следит за всем и вся... В итоге я хочу сказать, что не вижу смысла расписывать свою "стратегию" создания ОС. Если у тебя достаточно времени и нервов - твори. Я далеко не профи программирования, но даже у меня постепенно идет продвижение, когда я не ленюсь. Если хочешь, можем списаться в Вк, например, могу поделиться каким-то базовым опытом.
  20. Вот заметил я, что всюду ты свои проекты рекламишь, ну да ладно Если человек серьезно занимается разработкой игры, то ясен пень он не будет заниматься этим в майнкрафте. Тут же человек просто делает мини-игру для майна. Тут, опять таки, сообщество майнкрафтеров и если великий создатель поста и займется созданием игры вне Майна, то врятли он напишет об этом тут.
  21. Не оценил, но судя по всему игрушка не плохая. Только вот был бы лаунчер для установки игры скачивая только один файл - было бы замечательно.
  22. Просто слишком все быстро происходит. Я бы посоветовал добавить возможность редактирования времени переключения сигналов для цикла и соответственно команду os.sleep(n), чтобы создавалась пауза. Компьютер перестает отвечать так как команды требующие времени на выполнение отходят в стек, который постепенно выполняется. В итоге у тебя набирается куча таких команд(так как нету паузы системы) и экстренный выход(Ctrl+Alt+C) находится где-то в глубочайшей попке стека выполнения. Вот так как-то.
  23. На вики есть тема Internet API+Урок по работе с Pastebin. Но вообще так: 1. Лаунчер актуален, если нужно установить несколько файлов для программы. так как устанавливать лаунчер, который в свою очередь установит лишь один файл - тупо, можно просто напрямую сказать этот файл. Теперь к делу. Internet API - может казаться сложным, так что работаем с pastebin и командой wget. Есть такая функция os.execute() Она по сути вводит в консоль что-либо. Грубо говоря это некая симуляция ввода игроком что либо. Пишем в программе os.execute("wget -f <link> <path>") и произойдет загрузка. Обязательно все должно быть указано в кавычках, так как execute принимает строку. Ну а про <link> и <path> думаю понятно, что да как.
  24. У меня очень глупый вопрос "TComponent.__index = TComponent" позволяет обращаться в формате "Бла-бла-бла:функция()"? Ну через двоеточие, короче?
  25. Поставить проверку ивентом и break если нажата какая-то кнопка, может?
×
×
  • Создать...