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

Totoro

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

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

  • Посещение

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

    289

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

  1. Сделал сетку 5х5 проекторов, настроил вывод одной гигантской голограммы. И тут же уперся в ту проблему, на которой застопорился в прошлый раз. Для работы такой карты нужен спутник (как для Google Maps)! Радиус досягаемости для геосканера - квадрат 4 на 4 чанка, с геосканером в середине. Поэтому нужно запустить робота или дрона, который будет летать на высоте в 255 по всему серверу, возить с собой геосканер, картографировать местность и отсылать данные на сервер карты. Вроде - нет проблем. Геосканер к роботу присобачить - не проблема. Данные послать - можно через связные (туннельные) платы. НО! На сервере IT понерфили чанклодеры для роботов В первые секунды работы, у робота сядет батарея и он отключится. Выходит, для работы местных GoogleMaps нужен пастух-картограф =) Такой специальный игрок, который будет ходить/летать вслед за роботом по всему серверу, работая чанклоадером. Учитывая, что солнечная батарея дает мало энергии, а геосканер наоборот, жрет ее очень много. Путешествие это грозит сильно затянуться. И на этом месте я серьезно задумался.
  2. А есть ссылка на исходники банка на CC? Я если честно плохо представляю себе, как именно он работает. Когда пробегал мимо, заглянул - все загадочно и страшно. Трубы, провода, роботы, экраны со всех сторон...
  3. Нет, не пробовал. Вообще, там такое страшное предупреждение написано в конфиге, что боязно даже # Whether to allow loading precompiled bytecode via Lua's `load` function, # or related functions (`loadfile`, `dofile`). Enable this only if you # absolutely trust all users on your server and all Lua code you run. This # can be a MASSIVE SECURITY RISK, since precompiled code can easily be # used for exploits, running arbitrary code on the real server! I cannot # stress this enough: only enable this is you know what you're doing. allowBytecode=false Всякие там "MASSIVE SECURITY RISK", и "running arbitrary code on the real server". В сингле не страшно, но на сервере опасно.
  4. Я думаю, последняя проблема решается так: 1) Модифицируем стандартную библиотеку Event 2) Пишем свою функцию клавиатурного ввода на основе эвента 'key_down'
  5. Именно так. Мессагу получит только адресат. Причем в эвенте модема есть адрес получателя и отправителя. Т.е. сидит такой банковский комп, слушает модем. Роботы шлют ему мессаги (они знают адрес), а банковский комп отвечает каждому роботу персонально (беря адрес из эвента). В общем есть интересные варианты. Тут такое хитрое дело. Залезть во внутренности компьютера в привате не получится. Тут все безопасно. Если у монитора отсутствует клавиатура, то есть интерфейс чисто мышко-тыкательный, и в программе нету багов, тоже до системы добраться не выйдет. Проблема есть со стандартными io.read() / term.read() / event.pull(). Во время ввода данных или ожидания эвентов, юзер может стопнуть программу удерживая Ctrl+Alt+C. Как с этим бороться - надо подумать.
  6. Автором идеи является 1Ridav. Как-то давным давно, в Мамбле, он предложил создать на основе геосканера карту сервера для спавна. Чтобы игроки могли побродить по уменьшенной копии сервера, и поглазеть на ландшафт/постройки. Суть такова: Берется большой зал (спавн или отдельная постройка, не суть), с темным полом (чтобы голограмму было хорошо видно). Под полом располагается сетка проекторов, компьютер и геосканер. Программа сканирует сервер (загруженные чанки) и формирует на основе этих данных карту высот. Карта режется на прямоугольные фрагменты и выводится на проекторы. На скриншоте сверху, я сделал тестовый рендер для одного проектора. За основу взят мой мир-полигон для программ. Предлагаю довести программу до ума, и как вариант сделать где-нибудь такую карту на IT 1.7.10. Возле спавна, чтобы те, кто заходит на сервер, могли побродить и посмотреть. Что надо обдумать: 1) Как красить? Проекторы имеют три цвета. Я думаю один будет - синий. Им надо покрасить все плоскости на высоте y=64 - уровень моря. Оставшиеся два цвета надо как-то распределить по террайну, чтобы вид карты не вызывал эпилептических припадков. =) 2) Делать ли пустоты по высоте? На скриншоте сверху я сделал простую карту высот. Т.е. она состоит как бы из столбиков разной высоты. Можно сделать ее более сложной, отобразив пустоты. 3) Сжимать ли масштаб? Сервер имеет размеры примерно 4000 на 4000. Проектор - 48 на 48. Т.е. чтобы отобразить всю карту в полный размер понадобится около 7056 проекторов и зал аналогичной площади. Надо либо отобразить на карте фрагмент мира, разумного размера, либо уменьшить масштаб карты, усреднив карту высот.
  7. Можно передавать сообщения не broadcast'ом, а строго по адресу платы-адресата. Я там выше даже примерчик где-то писал: http://computercraft.ru/topic/41-mod-opencomputers-obsuzhdenie/?p=5677 Насчет безопасной работы надо подумать. (Можно у Крутого спросить, как он в БАЗАРЕ организовал это дело). В принципе, сенсорные экраны знают ник игрока, который по ним кликает. Плюс есть возможность "авторизовать" игрока на компьютере, после чего никто, кроме этого игрока не сможет работать с интерфейсом. Т.е. игрок подходит, кликает - его авторизует. После этого на этом компе никто ничего кликнуть через плечо не сможет. А если он телепортнулся не "закрыв сессию", то комп минут через пять сам "разавторизовывается". И становиться опять доступен всем.
  8. По моему все планшеты так работают. (Но я не проверял.) Креативный планшет просто немного покруче, и имеет кучу апгрейдов/плат. Удобно для быстрого тестирования программ
  9. Немного проапгрейдил программу Добавил ручное управление на WASDQE + кнопки действий. Лабиринт: Вид с планшета:
  10. Это кстати не баг, а одна из новых фич. Планшет умеет от некоторых компонентов ОС (пока только от геосканеров вроде бы) получать инфу. ПКМ планшетом по блоку - и в планшете генерится эвент с переданной от блока информацией.
  11. Пока - вдумчиво, ручками. Вооружиться вот этим сайтом: http://ocdoc.cil.li/ (или вот этим, там средней актуальности перевод: http://minecraft-ru.gamepedia.com/OpenComputers) P.S. Были предложения автоматизировать процесс портирования с мода на мод, но учитывая различия, программа должна получиться достаточно нетривиальной.
  12. Ага Если возникает ошибка он просто отрубается и падает. Можно кликнуть анализатором по нему, он напишет в чем дело. Но информацию не очень подробную, к сожалению.
  13. Стороны: http://ocdoc.cil.li/api:sides Когда я тестил дрона, он не хотел брать вещи из сундука сверху. Только сбоку. Непонятный такой глюк. А с жидкостями все нормально. Чтобы зарядить, надо включить чарджер и положить дрона рядом, если не ошибаюсь. В креативе он не заряжается, потому что летает вечно.
  14. Управляющая программа для планшета: http://pastebin.com/ZwsaSz4v БИОС для дрона: http://pastebin.com/CjvetChh Установка:
  15. Мне тоже не очень нравится это новшество. Но что поделаешь. Но из перечисленного только карьерчики стало сложнее писать. Управление сигналами редстоуна, принт на мониторах, садовники-дровосеки всякие - элементарные программы. Их вообще все проще писать становится. В одной из версий например была добавлена такая интересная фишка как Wake-On-Redtone. (Возможность включить компьютер сигналом редстоуна. У нас на сервере - недоступна) Удобный копипаст строк прямо с игрового монитора. У нас на сервере - недоступен. Меньшая погрешность для геосканера (можно интерактивную карту Рида будет сделать.) У нас на сервере - недоступно. Цветной серверный терминал. У нас на сервере - недоступно. Всякие полезные фишки для админов (команды для дебаг-платы, улучшение креативного робота, запрет через конфиг мода для юзеров на использование ком. блока через адаптер и т.д.) У нас на сервере - недоступно. Удобное копирование чипов на верстаке (чтобы не возиться с консольными утилитами, это плюс для "рядового юзера") У нас на сервере - недоступно. Очень удобные подсветки для NEI ("рядовой юзер" теперь может не материться, пытаясь всунуть видюху в дисковод). У нас на сервере доступно частично. Ускоренный (раза в четыре) вывод текста/псевдографики на мониторы. Незаменимая фича для всяких GUI. У нас на сервере - недоступно. Я уже не говорю про дронов (чувствую, кроме меня они никому не понравились), и массе багфиксов для багов (которые вроде всех раздражают, однако ставить патчи никто не спешит). Как-то так. P.S. Так и быть, карьерчики теперь сложно писать, теперь их только я делать буду. Обращайтесь.
  16. Оставим пока в стороне вопрос производительности и приватов (нужны тесты, а их нет). Возьмем сферического грифера в вакууме. На сервер заходит тупой, скучающий индивидуум, которому воображения не хватает на что-то более интересное, чем дырявить землю и оставлять везде пеньки и ободранную траву. На нашем сервере у него есть два пути: 1) Взять лопатку из стартового кита и пойти копать и дырявить. 2) Развиться до компьютерного века, собрать рабочего дрона, побиться головой о стену, программируя и настраивая его, скурить пару тонн мануалов и после этого, наконец, запустить его, чтобы тот стал летать по серверу и срывать траву и копать ямки. Я думаю, второй вариант - идеален. Желательно, чтобы все гриферы поступали именно так.
  17. Ну так и больше багов не становится. Но если обновиться, то баги будут новые, интересные, взамен старых и надоевших. =) Касательно дискет, бумаги для принтера и прочей фигни, которая вызывает вылеты - это происходит когда берешь их из "креативки". Если крафтить как полагается нормальным людям - все работает исправно. Дроны ломают только те блоки, которые может сломать игрок голой рукой. Травки, песочек там всякие. Пускай ломает. Меньше земляных коробок на сервере будет. Носить инструменты дроны не умеют. Программы для теста дрона (простенькие) я уже скидывал вроде бы когда-то. Управляющая программа для планшета: http://pastebin.com/ZwsaSz4v БИОС для дрона: http://pastebin.com/CjvetChh Он умеет летать по относительным координатам, засасывать предметы из сундуков и жидкости из водоемов, и выбрасывать обратно. У кого есть возможность проверить на сервере с новым ОС и плагином на приваты - потестируйте пожалуйста. Ограничение на высоту полетов - неоднозначный апдейт. (Это логично вообще, он же не летает, он парит. На угольном движке =) А если надо летать - есть дрон со своими пропеллерами) С одной стороны - это плохо. Т.к. теперь сложнее писать программы типа робота, который строит что-то объемное. С другой стороны - копать карьеры он будет по старому. Ведь он всегда возле земли. А подняться из карьера он может по стенке, или построив колонну из булыжника. И т.п. Т.е. программировать робота стало сложнее и интереснее. (Кто-то мне говорил, мол для СС для настоящих программистов, там сети небезопасны и компьютеры хардкорны. А ОС - это для ленивых халявщиков. Так вот, получите и распишитесь. =3)
  18. Оператор "..." это вообще фишка Lua ("получение неименованных аргументов"). В данном случае (вне функции) он получает аргументы переданные программе из командной строки. А заключив его в фигурные скобки, я сделал из этих аргументов таблицу. Про функцию os.parse() не знаю, но есть функция shell.parse(). Она позволяет удобно обработать аргументы, представляющие собой флаги. Всякие там programm -ab --flag1 --flag2
  19. Это не страшно. Главное, что наш сайт/сервер - практически единственный в русском интернете на эту тему. Есть люди, кому интересен майнкрафт, игры для программистов, или там, возможность написать пару строк и смотреть как твой робот шустро бегает и без ошибок выполняет задачу. И они понемногу собираются у нас. Это всегда хорошо, ведь, когда есть такое место, где народ разделяет твои интересы. P.S. Я к ним приглядываюсь. =) Есть пара идей как объединить все мои программы в один "домашний сервер". Spider Eye, Smart Lock и систему индикаторов с разной домашней техники. Сделать один монструозный "умный дом". С выводом на гигантские дисплеи и очки OpenGlasses. Принтер тоже пригодится.
  20. По части компьютерных модов у нас сейчас большой потенциал. Если обновить OC - будет наверное максимально возможный
  21. Предлагаю не удалять интересные моды (уменьшая общий потенциал сервера по созданию всякого разного), а стряхнуть пыль с раздела Рабочие программы на Lua (в который раз в месяц кто-то заглядывает) и удалить дублирующуюся тему "Локатор игроков[CC]"
  22. Бадам-БУМ! Бета нового крупного релиза! OpenComputers 1.5.0 Beta 1 Автор предупреждает больше чем когда-либо! Делайте бекапы! Итак, чейндж-лист: Это обновление содержит значительные изменения. Поэтому внутри может скрываться парочка новых хитрых багов. Особенно в механизме инвентарей у роботов и дронов, который был переработан. А также в их взаимодействии с игровой вселенной. Требуется обкатка в деле, так что тестируйте и будьте внимательны. Автор не собирается объявлять версию стабильной пока мы не выловим все баги и он их не пофиксит. Добавлено: Команды eeprom.getData/setData для сохранения массива в 256 байт. Изменено: Микроконтроллеры теперь не пропускают сетевые сообщения и энергию во все стороны. Вы можете определить сами какие стороны что будут пересылать. Т.е. микроконтроллер можно использовать как продвинутый свитч. Изменено: Интернет платы теперь изпользуют userdata для открытых соединений. Internet API остался без изменений и обратно совместим. Однако если вы обращались к компоненту платы на прямую, вам надо исправить свою программу. Изменено: Дроны теперь умеют ломать блоки (и ставить блоки) из тех, что игрок может собрать голой рукой (травку там всякую =)). Это позволяет приспособить их, например, для фермерства. Изменено: Добавлены ограничения на движение роботов. Теперь ограничена высота "парения" в открытом воздухе. Это 8 блоков от земли по дефолту. Можно увеличить апгрейдами. После долгих дискуссий (которые видимо происходили на GitHub и официальном IRC канале OC, на английском языке) логика движения робота была изменена так: Робот может двинуться вперед, если позиция впереди "правильна". Позиция под роботом всегда "правильна" (если там нет блока). Позиции от твердого блока до <flightHeight> по высоте - "правильны" Любая позиция которая касается стороны твердого блока - "правильна" Т.е. роботы могут летать не выше <flightHeight> от "земли" или передвигаться "по стеночке" Изменено: Методы "захвата" предметов с земли ля робота и дрона (*.suck()) теперь будут предпочитать выделенный (активный) слот неоконченному стеку. Т.е., если робот подобрал яйцо, он его положит не в неполный стек из 5 яиц где-то в инвентаре, но в активный слот. Удалено: computer.getBootAddress/setBootAddress, эти команды были заменены на eeprom.getData/setData. Новый Lua BIOS имеет временную заглушку для этих команд, которая и юзает вышеуказанные новые методы EEPROM. ВАЖНО: вам надо перекрафтить заново старые Lua BIOS - в них ошибка. ВАЖНАЯ ДОПОЛНИТЕЛЬНАЯ ИНФА Эта версия (1.5) должна быть совместима со старой (1.4). Т.е. блоки и предметы сохранятся. Компьютеры будут выключаться при возникновении save-state incompatibility. Вам надо перекрафтить ваши Lua BIOS из-за низкоуровневых изменений в Lua API (тех самых что вызывают save-state incompatibility) Есть небольшие изменения в Java API. Это коснется тех, кто делает моды/аддоны. Проверьте свой код на предмет ошибок и обновите, если надо. P.S. Конец свободным полетам =) Но это может дать интересные идеи относительно механики программ. Totoro Recursive Miner должен работать как и раньше, однако будет пасовать пересекая подземные пропасти.
  23. Два варианта: Первый. Через аргументы командной строки. local com = require('component') local holo = com.hologram local args = {...} local x = tonumber(args[1]) local y = tonumber(args[2]) local z = tonumber(args[3]) local val = tonumber(args[4]) holo.set(x,y,z,val) Назови программу как-нибудь (test) сохрани, и потом вызывай вот так: test 24 1 24 3 Вариант второй. Через ввод с клавиатуры в цикле. local com = require('component') local holo = com.hologram -- эта функция рубит переданную строку по пробелам function split(str) words = {} for w in str:gmatch("%S+") do table.insert(words,w) end return words end while true do io.write("> ") words = split(io.read()) x = tonumber(words[1]) y = tonumber(words[2]) z = tonumber(words[3]) val = tonumber(words[4]) holo.set(x,y,z,val) end Тут еще проще. Просто запускаешь и появляется приглашение. Вводишь туда числа: > 24 32 24 1█ Выход - по Ctrl+C или неправильному вводу =) P.S. Ты не тот ли Hikooshi случайно, который гайды по OpenComputers снимал?
×
×
  • Создать...