Перейти к содержимому

Pofigist

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

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

  • Посещение

Все публикации пользователя Pofigist

  1. Лазил я по стандартным либам OpenOS и понял, что ничего не понимаю. К примеру: component.list("screen")() Зачем тут вторые скобки? :/ Но вообще вопрос вот в чем. Сталкивались ли вы с подробным описанием базовых либ OpenOS, пусть даже на английском. Хотелось бы подробненько прочитать.
  2. Очистка term.clear() просто очищает экран и возвращает курсор в самое начало(Верхний левый угол). Кстати, я все же открыл твою программу. Было бы не плохо называть функции не rep, fin и т.д. а полностью, типа final и т.д. Еще еще встречный вопрос. Зачем создавать переменную, аля height и потом присваивать ее схожей переменной(heightC)? :/
  3. Да, это значительно удобнее. Символы тоже место в памяти занимают и чем их меньше тем лучше, особенно когда это не влияет на читаемость кода. И раз уж говорим о читаемости, то после do идет перенос строки. for i=1, 3 do for i=1, 3 do r.forward() end r.turnLeft() end Плюс я немного подправил пример. Тебе ведь, я так понимаю, нужно чтобы робот сделал три шага вперед, а потом повернул влево?
  4. По поводу энергии. Возвращает количество энергии. computer.energy(): number Ну и вот для получения максимального количества возможной энергии. computer.maxEnergy(): number Далее. По поводу износа предметов. Нужен "Апдейт - контроллер инвентаря". Название компонента - inventory_controller А вот эта функция возвращает данные о выбранном слоте getStackInInternalSlot(slot:number):table Возвращается таблица с данными о предмете. Не помню какие именно данные, но метаданные(износ) там точно есть. Разбирайся, короче
  5. По сути у меня и была первая версия где цветам и символам была выделена отдельная таблица. Но посмотрев на одного человека(кого же?! ), я все же решил использовать его метод. Банально потому что Я все же думаю, что одна таблица будет меньше чем 3 таблицы в одной. Тем более что количество данных от этого не уменьшится.
  6. Проблема была решена. Ошибка закралась там где ее не ждали. Я почему-то использовал параметр высоты для преобразования координат в индекс. Хоть исправление проблемы и не говорит мне о том, почему в отрисовке появлялись клоны, но теперь меня это уже не слишком интересует. Кто ломал голову над моей проблемой(а такие врятли есть - извиняйте за мою тупость).
  7. Все доброго времени суток. Собственно решил я заняться созданием велосипеда. Посмотрел коды одного (совсем-совсем) не известного человека и... начал писать свою либу. И все ничего... 78 строк кода написанные одним махом и не единой ошибки! Для меня это рекорд, но вот только сама программка работает как-то... Как-то не так. Проблема заключается в том, что почему-то отрисовываются копии... С объяснением тут будет сложненько потому лучше сразу скрины и саму либу. github: https://github.com/VladimirPruskalyow/OpenPrograms/blob/master/Library/DBuffer.lua По поводу: "Да эта либа будет сто лет отрисовывать!!1" - Я знаю, меня сейчас беспокоит не быстродействие а корректная работа. А вот это я запускал для проверки самой либы... local buffer = require("DBuffer") buffer.Start() buffer.Square(5, 5, 10, 20, 0xFF00FF, 0xFF0000, "S") buffer.Draw() local a, b, c = buffer.Get(56, 10) io.write(a, "\n", b, "\n", c) Так же стоит отметить, что функция Get проверяет пиксель не того прямоугольника который задан, а (хз откуда взявшегося) клона. Еще я проверял Get'ом buffer.new, и там тоже обнаруживался этот прямоугольник. Соответственно проблема в записи фигуры в буфер?! Но хоть убейте, я не понимаю откуда в 9 строках кода сидит ошибка. И... еще один пунктик. Отрисовка одного пикселя данной в либе функции Set дает такой же эффект: нужный пиксель+3 клона. P.S. Скрин сделан в Эмуляторе OC, но и в обычном майнкрафте все так же. P.S.S. Покорно прошу вашей помощи, потому что сам, хоть убейте, ошибки не вижу...
  8. local PIF = require("PIF") io.write("Введите путь к файлу: ") local path = io.read() local pic = PIF.inTable(path) io.write(pic[1][1], pic[1][2], pic[1][3], pic[1][4]) io.write(pic[2][1], pic[2][2], pic[2][3], pic[2][4]) io.write(pic[3][1], pic[3][2], pic[3][3], pic[3][4]) io.write(pic[4][1], pic[4][2], pic[4][3], pic[4][4]) Обращается к библиотеке. А сама она - вот http://pastebin.com/UcPmkWPj
  9. Собственно занялся я одной фуфней и встретился с ошибкой которую вообще не понимаю... Функция принимает путь к файлу и читает его. Начиная с шестого бита происходит запись в двухмерную таблицу. Эту же таблицу функция возвращает... Должна возвращать. Ошибка и сама функция в скриншотах. Возможно я тупой - не серчайте.
  10. И все равно мне не ясны for в этой либе, особенно второй. Что за for _, k.... "_" - что это? Плюс если я использую таблицу где кейсы простые цифры, а значения - шестнадцатиричные 0x000000 и т.д. Все равно работать будет?
  11. Ходил я по стандартным API OC и нашел либу colors. Там можно обратиться к таблице colors.red и получить ее значение и наоборот - ввести colors[14] и получить red. Хотелось бы узнать как такое осуществляется. Не тупо же две таблицы одна из которых инверсированная по ключам и значениям первой.
  12. Ммм... Это не так уж и много. Примерно 256 цветов :/ Ну что же... Время составлять визуальную составляющую замка XD
  13. Но в OC же поддерживается глубина цвета 8 байт. То-есть для местных мониторов гораздо меньше цветов? Как тогда определить какие поддерживаются а какие нет? (Понятно, что система будет "округлять" цвет до нужного, но все же хотелось бы узнать какие именно используются и их количество.
  14. По поводу конфига. Мне просто как-то привычнее, чтобы настройки находились отдельно от всего кода. Чтоб не было лишнего повода залезать в саму программу. Так же в будущем, подобно ECS, планирую свою граф. оболочку скрутить, а там уже конфиги понадобятся. Но пока что это все в планах. На деле же изучаю чтение и запись из файла. Кстати, есть ли какая-нибудь информация о 0x000000 формате цвета. Я конечно покопался в твоей библиотеке conv, но хотелось бы и из источника вычитать.
  15. Нет, это был не мой замок По поводу здравой критики: Я знаю про булевые переменные, но просто было лень. Мой способ чтения конфига был тем хорош, что мог прочитать любое кол-во строк и при этом все равно состоять тупо из трех строчек, но раз уж это быдлокод - новая версия! Кстати интересно было бы узнать, как такой замок можно взломать XD
  16. Да, спасает. Во всяком случае в моей программе
  17. Всем привет. Я, собственно, новичок в сфере программирования и потому выкладываю свою первую программу, коих вариации наверное дофигульки много. Просьба строго оценивать саму работоспособность программы. Поехали! Lock.lua - программа блокирующая ваш компьютер и защищающая от чужих ручонок. Ctrl+Alt+C тут не поможет. И только перезапуск кнопкой в самом системнике спасет ситуацию если вы не знаете пароля. Программа способна реагировать на события, такие как: ввод верного пароля и ввод неверного пароля - при этом она может подавать редстоун-сигнал или беспроводное сетевое сообщение(см. Конфиг) Системные требования: ●Процессор (1 уровень) ●Видеокарта (1 уровень) ●ОЗУ (1 уровень) ●Жесткий диск (1 уровень) ●Интернет карта(для загрузки) Дополнительно: ●Плата на красном камне ●Плата беспроводной сети Функционал: 1)Подает редстоун-сигнал на указанную в конфиге сторону при верно-введенном пароле. 2)Подает редстоун-сигнал на указанную в конфиге сторону при неверном пароле. 3)Вещает сигнал "LockSignal" и последующие: "True_Pass", если был введен правильный пароль. "Bad_Pass", если был введен неправильный пароль. "Error", если вдруг что Конфиг(etc/Lock.cfg): Конфиг настроек достаточно прост. Ниже перечислены описания строк и их возможные значения. password=1234 - основной пароль. Теперь может состоять только из цифр! adminPass=228228 - админский пароль состоящий из цифр. На данный момент нужен лишь на тот случай, когда основной был забыт. sound=true - включает звуковые оповещения, если стоит true. redstone=true - Если стоит true, то в системе должна быть плата на красном камне. RedCorr=3 - работает лишь если redstone=true и подает сигнал на сторону 3, если был введен правильный пароль. RedIncor=2 -работает лишь если redstone=true и подает сигнал на сторону 2, если был введен неправильный пароль. network=false - При true в системе нужна беспроводная сетевая плата для корректной работы. port=512 - номер порта на который будут распространяться сигналы от программы. Стороны и их числовые эквиваленты(для RedCorr и RedIncor): Низ - 0 Верх - 1 Тыл - 2 Перед - 3 Право - 4 Лево - 5 Установка: Простая загрузочка с пастебина. pastebin get -f zitiaarN Lock.lua Сам код: http://pastebin.com/zitiaarN В будущем планируется значительная доработка данной программы, но так как сейчас она уже выполняет свою основную задачу - выкладываю в общий доступ. Версии: 1.0 - основа основ. 1.1 - исправлен ошибка, когда первый запуск заканчивался ошибкой, так как создавался файл конфига. 1.2 - более читабельный конфиг. 1.3 - добавлены звуковые оповещения при вводе верного и неверного пароля. P.S. Не вижу особого смысла в скриншотах, так как пока что используется стандартный консольный вывод(Графодрочеры, пока что вас удовлетворить не смогу. :с )
×
×
  • Создать...