Totoro
Гуру-
Публикации
1 950 -
Зарегистрирован
-
Посещение
-
Победитель дней
289
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя Totoro
-
Предлагаю построить полигон для хакеров. Последовательность комнат/построек, спроектированных хитрым образом, однако имеющих некую уязвимость. И разумеется с ценным содержимым Далее, хакер вооружается всем, что он знает о ОС, Майнкрафте, лагах, роботах, глюках, программировании, дюпах и уязвимостях, берет инструмент и идет добывать золото и славу.
-
Надо проверить также, входит ли сама интегрированная видеокарта в указанные 16 компонентов
-
Да, дает разрешение как золотая плата. Количество компонентов 16, как у алмазного процессора. Крафт дороже получается. И возможно количество действий/тик будет пониже чем у алмазного. Но это надо проверить.
-
Программки долго не обсуждают у нас на форуме. Программерам интереснее что-то новое свое запилить, а юзерам лень разбираться как установить. (А иногда - что вообще программа делает). P.S. Наоборот, если идет обсуждение программы - то это скорее всего чей-то фейл
-
Я написал "большой патч" Много исправлений, плюс обновление Луа. Ну и пара плюшек (команды для дебага и APU). P.S. Дроны и принты - это не заурядное обновление, они так часто не выходят. =)
-
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 в корне загрузочного диска.
-
На сервере - война с применением роботов... МТ заброшен, Фингер пропал... 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+Клик чем-нибудь по базе данных (видимо имеется ввиду апгрейд) заполнял все пустые ячейки этим предметом.
-
Ну реально. Зачем было делать эту конструкцию из двух функций вместо, например, обычного while(true) ?
-
Кликнуть анализатором по нему. Должно написать в чат причину краша. Или "computer halted" это и есть причина? =)
-
Потому что могут.
-
-
Связные платы. OpenNet. На худой конец - ретранслятор, но без broadcast, а с жесткой таблицей адресов.
-
Тебе показалось. На самом деле я белый и пушистый. :P
-
Это я к тому, что EEPROM по сути хранит данные в оперативной памяти. На самом чипе постоянно хранится только программный код его. Следовательно - перезагрузка OC-компьютера -> оперативная память очищена -> данные потеряны. Так что хранение данных на дисках - это срочный и важный апдейт.
-
Выглядит неплохо =) Насколько я помню, у геосканера была еще одна особенность, которая портила жизнь и нервы - помехи. Плюс/минус 5 слоев вверх/вниз от места, где располагается сканер и небольшие стандартные жилы руды уже становится трудно различать на фоне возрастающих "погрешностей сканирования". То есть чтобы определить с высокой долей вероятности точное положение жил - надо спускаться на предполагаемый уровень добычи.
-
+1 за грабеж банка админом =) А жалюзи - отпечатанные?
-
Сохранит ли данные о сайтах если грохнется сервак? "Прокси" наверное в данном случае некорректно говорить. Лучше "адрес". Т.к. "прокси" в контексте мода OpenComputers - это таблица с методами и полями, которая представляет функционал компонента. (И по сети ее передавать смысла особого нет =))
-
Заведи двухмерный массивчик (трехмерный, если лабиринт по хардкору в 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
-
К сожалению, проверить код в игре я в ближайшее время не смогу. Однако, если верить документации, провода из мода 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)) Многожильный провод должен быть подведен к корпусу компьютера (в котором красная плата) сверху. Со сторонами может возникать путаница, так как если плата стоит внутри корпуса, стороны означают не стороны света, а стороны относительно передней стороны корпуса компьютера (которая служит югом). Для верности можно подвести провод сверху или снизу - тут точно не может быть двоякого толкования.
-
Для 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".
-
OC: Привязка разных видеокарт к разным мониторам
Totoro ответил в вопрос Natsu_Zirok в Разные (отсортировать)
Поясни, в чем конкретно состоит проблема. Что именно не получается реализовать? Я не могу понять из твоих постов, что именно вызывает трудности. Предположим - у тебя каждый раз при старте консоль системы оказывается на непредсказуемом мониторе, и не факт что на том, где клавиатура. В таком случае можно просто положить в корень диска файл autorun.lua, который будет жестко биндить нужный монитор к основной видеокарте. Адреса можно вписать вручную, используя первые четыре уникальных символа адреса, и далее автоматически получая полный адрес в программе через команду component.get("xxxx"). (Будет полезен этот сайт: http://ocdoc.cil.li/api:component) Эвенты от мониторов (события touch/drag) и клавиатур (key_down/key_up) вообще обрабатываются вне зависимости от наличия привязанной видеокарты. Адрес компонента, который отправлил эвент, всегда идет вторым параметром в этом самом эвенте (как ты несомненно знаешь). На этом принципе работает моя программа Smart Lock. Она использует всего две видеокарты - одна привязана к "консольному монитору", через который пользователь может вводить команды с клавиатуры. Вторая видеокарта в любой момент работы программы может быть привязана к любому из нескольких десятков мониторов-замков в системе. В тот момент, когда пользователь "звонит" в дверь, программа определяет адрес монитора, с которого пришел "звонок" и биндит в нему видеокарту номер 2. Далее уже идет отрисовка графики через эту видеокарту на нужный монитор. Соответственно, когда приходит следующий звонок, видеокарта "перепривязывается" опять. -
OC: Привязка разных видеокарт к разным мониторам
Totoro ответил в вопрос Natsu_Zirok в Разные (отсортировать)
Если мониторы принадлежат разным компьютерам - можно разнести их распределителем или свитчем. Если мониторы и карты принадлежат одному компьютеру - надо биндить. Загвоздка в том, что если написать просто 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 Есть еще один путь - можно оставить в компьютере только одну видеокарту. И биндить ее к нужному монитору перед рисованием. Но тогда надо следить за разрешением (разрешение монитора при биндинге карты изменяется на разрешение карты). -
На какой версии мода собираешь? Разрешенное количество компонентов определяет процессор. Поэтому для рекомендуемой сборки нужен именно алмазный процессор. У него максимальное поддерживаемое количество (16 компонентов, если не ошибаюсь).
- 33 комментария
-
Нет, к сожалению такого режима у робота нет. Он движется "линейно", углубляя шахту дальше и дальше, и назад не возвращается. Поэтому он оставляет сундуки по сторонам своей шахты. P.S. Обновил первый пост. Теперь там есть ссылка на последнюю версию программы.
