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

Totoro

Гуру
  • Публикации

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

  • Посещение

  • Победитель дней

    289

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

  1. Предлагаю построить полигон для хакеров. Последовательность комнат/построек, спроектированных хитрым образом, однако имеющих некую уязвимость. И разумеется с ценным содержимым Далее, хакер вооружается всем, что он знает о ОС, Майнкрафте, лагах, роботах, глюках, программировании, дюпах и уязвимостях, берет инструмент и идет добывать золото и славу.
  2. Надо проверить также, входит ли сама интегрированная видеокарта в указанные 16 компонентов
  3. Да, дает разрешение как золотая плата. Количество компонентов 16, как у алмазного процессора. Крафт дороже получается. И возможно количество действий/тик будет пониже чем у алмазного. Но это надо проверить.
  4. Программки долго не обсуждают у нас на форуме. Программерам интереснее что-то новое свое запилить, а юзерам лень разбираться как установить. (А иногда - что вообще программа делает). P.S. Наоборот, если идет обсуждение программы - то это скорее всего чей-то фейл
  5. Я написал "большой патч" Много исправлений, плюс обновление Луа. Ну и пара плюшек (команды для дебага и APU). P.S. Дроны и принты - это не заурядное обновление, они так часто не выходят. =)
  6. 0. Вступление Итак, представим себе, что вы, после бурного вечера с друзьями, идете к себе домой. Уже добрались почти до входных дверей - у тут на тебе! Компьютер который работает дверным замком, бессовестно взял отгул и отключился. Что делать? Как попасть домой? Как добраться до железного гада, чтобы объяснить всю глубину его заблуждений? К счастью, красная плата и сетевая карта имеют некоторые недокументированные на gamepedia (я забыл обновить статьи =)) возможности. Вы можете включить компьютер при помощи сигнала редстоуна, или кодового слова отправленного по сети. 1. Wake-On-Redstone component.redstone.setWakeThreshold(threshold:number):number Эта команда позволяет установить в компьютер "будильник", который сработает, если входящий сигнал редстоуна (поданный на корпус компьютера (если вы используете красную плату) или на блок красного контроллера) превысит порог значения threshold. И если компьютер был выключен - он включится. Т.е. для включения компьютера вы можете воспользоваться рычагом или нажимной пластиной. 2. Wake-On-LAN component.modem.setWakeMessage(message: string):string Если компьютер получит по сети (проводной или без), сообщение message, то он включится. При этом не имеет значения, по какому порту получено сообщение. Обе функции возвращают в качестве результата старое значение "будильника". Чтобы снять "будильник", установите значение 0 (для редстоуна) или nil (для модема). Ну, а для того, чтобы включенный компьютер тут же принялся за работу, пропишите нужные команды в файле autorun.lua в корне загрузочного диска.
  7. На сервере - война с применением роботов... МТ заброшен, Фингер пропал... OpenComputers выпустил большой патч, но всем не до этого... OpenComputers 1.5.10 Добавлено: APU - гибридный процессор с интегрированной видеокартой. Ограничен по стоимости, но зато освобождает слот видеокарты. Метод в отладочную карту, который позволяет получить список игроков онлайн, и список существующих измерений. Блоки теперь совместимы с AE2 пространственной системой (spatial system). Медленное ломание блока для роботов и дронов. Изменено: Функциональность драйвера для контроллера AE2, теперь всегда доступна в интерфейсах. Даже если включены каналы (channels). Понятия не имею, что за каналы - это надо у AE2филов спросить. =) Порт при полученни сообщения от ComputerCraft теперь будет передаваться в конце, а не в начале. (Это позволит обрабатывать сообщения от CC так же как и от OC. Унификация.) Удален рецепт камня края и добавлен фейковый камень края вместо него, а также рецепты дронов согласованы с OreDictionary. Возможно фикс какого-то дюпа, связанного с камнем края, или что-то вроде того. Планшеты отстаются включенными при переходе в другое измерение (например если отправиться в Ад с планшетом). Нативные библиотеки обновлены до Lua 5.2.4. Сангар тестировал их как только мог, но если вы все таки найдете глюк, связанный с выполнением программ, или возобновлением работы компьютеров в загруженном чанке - чайте ему знать. Пофикшено: Отключение проверки на максимальное количество фигур в 3d-принтах, после изготовления одного. Алексу на заметку. =) Двойной рендер предмета в руке у робота. GUI у сломанного монитора не закрывался. Потенциальный лаг, при включении компьютера первый раз после загрузки игры. Апгрейды на высоту полета не работали, если вмонтировать внутрь робота. (Работали только в контейнере для апгрейда). Проблемы интеграции с ComputerCraft. Проблемы с шиной экспорта AE2. MFR Safari Net конвертер (то есть добавлена информация в дескриптор стека предметов). Shift+Клик чем-нибудь по базе данных (видимо имеется ввиду апгрейд) заполнял все пустые ячейки этим предметом.
  8. Ну реально. Зачем было делать эту конструкцию из двух функций вместо, например, обычного while(true) ?
  9. Totoro

    Запускаем дронов!

    Кликнуть анализатором по нему. Должно написать в чат причину краша. Или "computer halted" это и есть причина? =)
  10. Если уж делать общение через планшет, то принцип измерения расстояний можно сделать более простым и удобным. Ставим робота, отбегаем - пингуем с планшета - и узнаем расстояние от игрока до робота из эвента "modem_message".
  11. Связные платы. OpenNet. На худой конец - ретранслятор, но без broadcast, а с жесткой таблицей адресов.
  12. Тебе показалось. На самом деле я белый и пушистый. :P
  13. Это я к тому, что EEPROM по сути хранит данные в оперативной памяти. На самом чипе постоянно хранится только программный код его. Следовательно - перезагрузка OC-компьютера -> оперативная память очищена -> данные потеряны. Так что хранение данных на дисках - это срочный и важный апдейт.
  14. Totoro

    Геосканнер в планшете

    Выглядит неплохо =) Насколько я помню, у геосканера была еще одна особенность, которая портила жизнь и нервы - помехи. Плюс/минус 5 слоев вверх/вниз от места, где располагается сканер и небольшие стандартные жилы руды уже становится трудно различать на фоне возрастающих "погрешностей сканирования". То есть чтобы определить с высокой долей вероятности точное положение жил - надо спускаться на предполагаемый уровень добычи.
  15. Totoro

    Приключения Алекса и робота Байта!

    +1 за грабеж банка админом =) А жалюзи - отпечатанные?
  16. Сохранит ли данные о сайтах если грохнется сервак? "Прокси" наверное в данном случае некорректно говорить. Лучше "адрес". Т.к. "прокси" в контексте мода OpenComputers - это таблица с методами и полями, которая представляет функционал компонента. (И по сети ее передавать смысла особого нет =))
  17. Заведи двухмерный массивчик (трехмерный, если лабиринт по хардкору в 3D ), затем сгенери в нем лабиринт любым понравившимся алгоритмом, затем кинь этот массив функции отрисовки. Типа того (псевдокод, возможны очепятки): -- это - наш массив и обертки get/set к нему local map = {} local function set(x, y, value) if map[x] == nil then map[x] = {} end map[x][y] = value end local function get(x, y) if map[x] == nil then return nil end return map[x][y] end -- тут генерим лабиринт -- для простоты 1 будет стеной, а 0 пустотой local function generate(...) ... end -- тут рисуем лабиринт на проектор исходя из данных массива local function render(...) for x=1 to W do for y=1 to H do holo.set(x, 1, y, get(x, y)) end end end Соответственно с коллизиями - никакого геморроя, достаточно спросить функцией get(x, y) что за "клетка" у нас по координатам (x, y). P.S. Гениальную конструкцию if ra == true then ra=false elseif ra==false then ra=true end предлагаю заменить на ra = not ra
  18. К сожалению, проверить код в игре я в ближайшее время не смогу. Однако, если верить документации, провода из мода Project RED поддерживаются и должны работать корректно. И примерно так можно получить сигнал с красного провода в пучке (к примеру): local component = require("component") local sides = require("sides") local colors = require("colors") local rs = component.redstone print("Красный сверху: "..rs.getBundledInput(sides.top, colors.red)) Многожильный провод должен быть подведен к корпусу компьютера (в котором красная плата) сверху. Со сторонами может возникать путаница, так как если плата стоит внутри корпуса, стороны означают не стороны света, а стороны относительно передней стороны корпуса компьютера (которая служит югом). Для верности можно подвести провод сверху или снизу - тут точно не может быть двоякого толкования.
  19. Для bundled-кабелей скорее всего потребуется не простая редстоун плата, а второго уровня. Сигнал с датчика движения ловится так же как и другие эвенты. Например, так: local com = require('component') local event = require('event') while true do local eventName, address, rx, ry, rz, entityName = event.pull("motion") print("Замечено шевеление: "..entityName.." ("..rx..", "..ry..", "..rz..")") end Можно не передавать функции event.pull() никаких параметров, а просто вставить проверку типа if eventName == "motion".
  20. Поясни, в чем конкретно состоит проблема. Что именно не получается реализовать? Я не могу понять из твоих постов, что именно вызывает трудности. Предположим - у тебя каждый раз при старте консоль системы оказывается на непредсказуемом мониторе, и не факт что на том, где клавиатура. В таком случае можно просто положить в корень диска файл autorun.lua, который будет жестко биндить нужный монитор к основной видеокарте. Адреса можно вписать вручную, используя первые четыре уникальных символа адреса, и далее автоматически получая полный адрес в программе через команду component.get("xxxx"). (Будет полезен этот сайт: http://ocdoc.cil.li/api:component) Эвенты от мониторов (события touch/drag) и клавиатур (key_down/key_up) вообще обрабатываются вне зависимости от наличия привязанной видеокарты. Адрес компонента, который отправлил эвент, всегда идет вторым параметром в этом самом эвенте (как ты несомненно знаешь). На этом принципе работает моя программа Smart Lock. Она использует всего две видеокарты - одна привязана к "консольному монитору", через который пользователь может вводить команды с клавиатуры. Вторая видеокарта в любой момент работы программы может быть привязана к любому из нескольких десятков мониторов-замков в системе. В тот момент, когда пользователь "звонит" в дверь, программа определяет адрес монитора, с которого пришел "звонок" и биндит в нему видеокарту номер 2. Далее уже идет отрисовка графики через эту видеокарту на нужный монитор. Соответственно, когда приходит следующий звонок, видеокарта "перепривязывается" опять.
  21. Если мониторы принадлежат разным компьютерам - можно разнести их распределителем или свитчем. Если мониторы и карты принадлежат одному компьютеру - надо биндить. Загвоздка в том, что если написать просто component.gpu.bind() - он обратится только к одной видеокарте - той, которую считает "основной". Поэтому сначала надо получить список видеокарт компьютера - их компонентов, точнее. local component = require('component') -- создаем таблички для хранения адресов компонентов local gpu = {} local screen = {} -- получаем список видеокарт for address, componentType in component.list("gpu") do table.insert(gpu, address) end -- получаем список мониторов (можно и вручную составить в принципе) for address, componentType in component.list("screen") do table.insert(screen, address) end -- биндим попарно -- (контрольные проверки не делаются, поэтому, во избежание ошибок, -- мониторов и карт должно быть одинаковое количество) for number, address in pairs(gpu) do component.proxy(address).bind(screen[number]) end Есть еще один путь - можно оставить в компьютере только одну видеокарту. И биндить ее к нужному монитору перед рисованием. Но тогда надо следить за разрешением (разрешение монитора при биндинге карты изменяется на разрешение карты).
  22. Totoro

    Как собрать шахтерского робота

    На какой версии мода собираешь? Разрешенное количество компонентов определяет процессор. Поэтому для рекомендуемой сборки нужен именно алмазный процессор. У него максимальное поддерживаемое количество (16 компонентов, если не ошибаюсь).
  23. Totoro

    Totoro Recursive Miner

    Нет, к сожалению такого режима у робота нет. Он движется "линейно", углубляя шахту дальше и дальше, и назад не возвращается. Поэтому он оставляет сундуки по сторонам своей шахты. P.S. Обновил первый пост. Теперь там есть ссылка на последнюю версию программы.
×
×
  • Создать...