Totoro
-
Публикации
1 950 -
Зарегистрирован
-
Посещение
-
Победитель дней
289
Сообщения, опубликованные пользователем Totoro
-
-
Я думаю, последняя проблема решается так:
1) Модифицируем стандартную библиотеку Event
2) Пишем свою функцию клавиатурного ввода на основе эвента 'key_down'
-
То есть, если слать модемное сообщение конкретной сетевой плате по ее адресу и порту, его перехватить нельзя никоим образом?
Именно так.
Мессагу получит только адресат.
Причем в эвенте модема есть адрес получателя и отправителя.
Т.е. сидит такой банковский комп, слушает модем. Роботы шлют ему мессаги (они знают адрес), а банковский комп отвечает каждому роботу персонально (беря адрес из эвента).
В общем есть интересные варианты.
И меня интересует именно клавиатурный доступ. Можно ли сделать так, чтобы игрок не мог стопнуть ПК и не мог ковыряться в файлах (типа как это делают на КК) То есть безопасный паблик ПК в админ привате с клавиатурным доступом. Встроенная система овнеров не подходит там на сколько-то человек.
С сенсором то понятно, тут вопросов нет, все безопасно, но немного геморно написать ГУИ, где нужно "натыкать" количество товара, кнопочки и прочее.
Тут такое хитрое дело.
Залезть во внутренности компьютера в привате не получится. Тут все безопасно.
Если у монитора отсутствует клавиатура, то есть интерфейс чисто мышко-тыкательный, и в программе нету багов, тоже до системы добраться не выйдет.
Проблема есть со стандартными io.read() / term.read() / event.pull(). Во время ввода данных или ожидания эвентов, юзер может стопнуть программу удерживая Ctrl+Alt+C.
Как с этим бороться - надо подумать.
-
1
-
-

Автором идеи является 1Ridav.
Как-то давным давно, в Мамбле, он предложил создать на основе геосканера карту сервера для спавна.
Чтобы игроки могли побродить по уменьшенной копии сервера, и поглазеть на ландшафт/постройки.
Суть такова:
Берется большой зал (спавн или отдельная постройка, не суть), с темным полом (чтобы голограмму было хорошо видно).
Под полом располагается сетка проекторов, компьютер и геосканер.
Программа сканирует сервер (загруженные чанки) и формирует на основе этих данных карту высот.
Карта режется на прямоугольные фрагменты и выводится на проекторы.
На скриншоте сверху, я сделал тестовый рендер для одного проектора. За основу взят мой мир-полигон для программ.
Предлагаю довести программу до ума, и как вариант сделать где-нибудь такую карту на IT 1.7.10. Возле спавна, чтобы те, кто заходит на сервер, могли побродить и посмотреть.
Что надо обдумать:
1) Как красить?
Проекторы имеют три цвета.
Я думаю один будет - синий. Им надо покрасить все плоскости на высоте y=64 - уровень моря.
Оставшиеся два цвета надо как-то распределить по террайну, чтобы вид карты не вызывал эпилептических припадков. =)
2) Делать ли пустоты по высоте?
На скриншоте сверху я сделал простую карту высот. Т.е. она состоит как бы из столбиков разной высоты. Можно сделать ее более сложной, отобразив пустоты.
3) Сжимать ли масштаб?
Сервер имеет размеры примерно 4000 на 4000. Проектор - 48 на 48.
Т.е. чтобы отобразить всю карту в полный размер понадобится около 7056 проекторов и зал аналогичной площади.
Надо либо отобразить на карте фрагмент мира, разумного размера,
либо уменьшить масштаб карты, усреднив карту высот.
-
6
-
-
Вот только как обстоят дела там с передачей модемных сообщений, нужно выяснить. Их перехватить можно, как в КК? Есть ли закрытые каналы передачи информации? И как организовать безопасную работу с терминалом? Только через сенсорный экран? Через ПК небезопасно? Если да, то как обеспечить ввод паролей и количество покупаемого товара? Сложный ГУИ придется делать на всяких кнопочках?
Можно передавать сообщения не broadcast'ом, а строго по адресу платы-адресата.
Я там выше даже примерчик где-то писал: http://computercraft.ru/topic/41-mod-opencomputers-obsuzhdenie/?p=5677
Насчет безопасной работы надо подумать. (Можно у Крутого спросить, как он в БАЗАРЕ организовал это дело).
В принципе, сенсорные экраны знают ник игрока, который по ним кликает.
Плюс есть возможность "авторизовать" игрока на компьютере, после чего никто, кроме этого игрока не сможет работать с интерфейсом.
Т.е. игрок подходит, кликает - его авторизует. После этого на этом компе никто ничего кликнуть через плечо не сможет.
А если он телепортнулся не "закрыв сессию", то комп минут через пять сам "разавторизовывается". И становиться опять доступен всем.
-
хмм, не плохо. А я думал, багулька у меня какая-то. Но игрокам он пока не достпен будет, как я понял. Разраб его тестит вроде пока и кинул только в креатив.
По моему все планшеты так работают. (Но я не проверял.)
Креативный планшет просто немного покруче, и имеет кучу апгрейдов/плат. Удобно для быстрого тестирования программ

-
Немного проапгрейдил программу

Добавил ручное управление на WASDQE + кнопки действий.
Лабиринт:

Вид с планшета:

-
3
-
-
Креативный планшет рисует странную текстурку прозрачную зелененькую на всех блоках, на которые смотришь с ним в руке.
Это кстати не баг, а одна из новых фич.
Планшет умеет от некоторых компонентов ОС (пока только от геосканеров вроде бы) получать инфу. ПКМ планшетом по блоку - и в планшете генерится эвент с переданной от блока информацией.
-
1
-
-
Такой же вопрос. Как конвертировать проги из computercraft в opencomputers
Пока - вдумчиво, ручками.
Вооружиться вот этим сайтом: http://ocdoc.cil.li/ (или вот этим, там средней актуальности перевод: http://minecraft-ru.gamepedia.com/OpenComputers)
P.S. Были предложения автоматизировать процесс портирования с мода на мод, но учитывая различия, программа должна получиться достаточно нетривиальной.
-
1
-
-
Ага, спс.
Не, не креативный, разряжается он хорошо.А вот над чарджером не хочет заряжаться. Фиг его знает, может не туда чего-то подключил питание.
И кстати, если его прошивка с ошибкой вылетает вдруг, парящий дрон тупо камнем вниз падает со свистом
Это норм?Ага

Если возникает ошибка он просто отрубается и падает.
Можно кликнуть анализатором по нему, он напишет в чем дело. Но информацию не очень подробную, к сожалению.
-
Стороны: http://ocdoc.cil.li/api:sides
Когда я тестил дрона, он не хотел брать вещи из сундука сверху. Только сбоку. Непонятный такой глюк.
А с жидкостями все нормально.
Чтобы зарядить, надо включить чарджер и положить дрона рядом, если не ошибаюсь.
В креативе он не заряжается, потому что летает вечно.
-
Ну так тестите! Я, может, и пропустил, но программы для теста до сих пор нет
Я лично кодить дронов не хочу =)- Управляющая программа для планшета: http://pastebin.com/ZwsaSz4v
- БИОС для дрона: http://pastebin.com/CjvetChh
Установка:
Админам в новом ОС доступны готовый дрон и готовый планшет. Можно просто взять их в NEI.
1) БИОС закинуть на компьютер, в разъем с Lua BIOS вставить чистый EEPROM и выполнить команду:
flash -q <bios_filename> <label>
где <bios_filename> - название файла с БИОС, а <label> - любое на ваш выбор название для будущего чипа.
2) Достать чип из компьютера и положить на верстак рядом с дроном. Они объединятся. (Возможно из дрона вылетит старый чип.)
3) Управляющую программу скопировать/скачать на планшет.
4) Запустить дрона, запустить программу на планшете.
5) Написать на планшете, в программе, команду help
-
1
-
А блоки воздуха мне не нравятся. Мое право. Среднестатистический игрок и так испытывал затруднения с программированием. А сейчас роботов еще и кастрировали в плане перемещения. Дай бы Бог, чтобы каждый игрок написал простенькую программку управления сигналами редстоуна и свою программку-карьерчик, или садовник, или хотя бы на мониторе что-то напринтил, уже бы была польза и прогресс. А сейчас это все очень сильно усложниться. И я же говорю, робот теперь на уровне мода проверяет всегда землю под собой, не превышает ли его высота допустимые значения. А положительного момента в этом для сервера я не вижу вообще. Теперь только Тоторо, видимо, будет их программировать.

Мне тоже не очень нравится это новшество. Но что поделаешь.
Но из перечисленного только карьерчики стало сложнее писать. Управление сигналами редстоуна, принт на мониторах, садовники-дровосеки всякие - элементарные программы.
Их вообще все проще писать становится.
В одной из версий например была добавлена такая интересная фишка как Wake-On-Redtone. (Возможность включить компьютер сигналом редстоуна. У нас на сервере - недоступна)
Удобный копипаст строк прямо с игрового монитора. У нас на сервере - недоступен.
Меньшая погрешность для геосканера (можно интерактивную карту Рида будет сделать.) У нас на сервере - недоступно.
Цветной серверный терминал. У нас на сервере - недоступно.
Всякие полезные фишки для админов (команды для дебаг-платы, улучшение креативного робота, запрет через конфиг мода для юзеров на использование ком. блока через адаптер и т.д.) У нас на сервере - недоступно.
Удобное копирование чипов на верстаке (чтобы не возиться с консольными утилитами, это плюс для "рядового юзера") У нас на сервере - недоступно.
Очень удобные подсветки для NEI ("рядовой юзер" теперь может не материться, пытаясь всунуть видюху в дисковод). У нас на сервере доступно частично.
Ускоренный (раза в четыре) вывод текста/псевдографики на мониторы. Незаменимая фича для всяких GUI. У нас на сервере - недоступно.
Я уже не говорю про дронов (чувствую, кроме меня они никому не понравились), и массе багфиксов для багов (которые вроде всех раздражают, однако ставить патчи никто не спешит).
Как-то так.
P.S. Так и быть, карьерчики теперь сложно писать, теперь их только я делать буду. Обращайтесь.
-
1
-
-
То, что дроны ломают травку, дерево и землю, это плохо. С сервера дуршлаг получится, как шапка у Печкина.
А то, что робот над любой ямкой более 6 блоков в глубину будет зависать и тупить, это вообще отвратительно. Зачем это сделали, вообще не понятно. Получается, что мод постоянно просчитывает количество блоков воздуха под роботом. Очень нужная операция для сервера.
Оставим пока в стороне вопрос производительности и приватов (нужны тесты, а их нет).
Возьмем сферического грифера в вакууме. На сервер заходит тупой, скучающий индивидуум, которому воображения не хватает на что-то более интересное, чем дырявить землю и оставлять везде пеньки и ободранную траву.
На нашем сервере у него есть два пути:
1) Взять лопатку из стартового кита и пойти копать и дырявить.
2) Развиться до компьютерного века, собрать рабочего дрона, побиться головой о стену, программируя и настраивая его, скурить пару тонн мануалов и после этого, наконец, запустить его, чтобы тот стал летать по серверу и срывать траву и копать ямки.
Я думаю, второй вариант - идеален. Желательно, чтобы все гриферы поступали именно так.
-
По поводу обновления модов не уверен, что это нас спасет. Со времени создания мода ОС багов меньше не становиться. То роботы "откатываются", сейчас дискеты зачем-то дюпаются. В новой версии чего доброго, микросхемы и платы начнут дюпаться или пропадать. А тут еще ввели ломающих блоки дронов, которых нужно тестить и тестить. Ограничение на "парение" роботам добавили не выше там 6 блоков, или типа того, зачем, непонятно. Что это за робот такой, который подняться над землей не может. Фигня какая-то.
Ну так и больше багов не становится. Но если обновиться, то баги будут новые, интересные, взамен старых и надоевших. =)
Касательно дискет, бумаги для принтера и прочей фигни, которая вызывает вылеты - это происходит когда берешь их из "креативки". Если крафтить как полагается нормальным людям - все работает исправно.
Дроны ломают только те блоки, которые может сломать игрок голой рукой. Травки, песочек там всякие. Пускай ломает. Меньше земляных коробок на сервере будет. Носить инструменты дроны не умеют.
Программы для теста дрона (простенькие) я уже скидывал вроде бы когда-то.
- Управляющая программа для планшета: http://pastebin.com/ZwsaSz4v
- БИОС для дрона: http://pastebin.com/CjvetChh
Он умеет летать по относительным координатам, засасывать предметы из сундуков и жидкости из водоемов, и выбрасывать обратно.
У кого есть возможность проверить на сервере с новым ОС и плагином на приваты - потестируйте пожалуйста.
Ограничение на высоту полетов - неоднозначный апдейт. (Это логично вообще, он же не летает, он парит. На угольном движке =) А если надо летать - есть дрон со своими пропеллерами)
С одной стороны - это плохо. Т.к. теперь сложнее писать программы типа робота, который строит что-то объемное.
С другой стороны - копать карьеры он будет по старому. Ведь он всегда возле земли. А подняться из карьера он может по стенке, или построив колонну из булыжника. И т.п.
Т.е. программировать робота стало сложнее и интереснее.
(Кто-то мне говорил, мол для СС для настоящих программистов, там сети небезопасны и компьютеры хардкорны. А ОС - это для ленивых халявщиков. Так вот, получите и распишитесь. =3)
-
А с каких пор {...} уже само в аргументы превращается, os.parse нужен же был.
Оператор "..." это вообще фишка Lua ("получение неименованных аргументов"). В данном случае (вне функции) он получает аргументы переданные программе из командной строки.
А заключив его в фигурные скобки, я сделал из этих аргументов таблицу.
Про функцию os.parse() не знаю, но есть функция shell.parse(). Она позволяет удобно обработать аргументы, представляющие собой флаги. Всякие там
programm -ab --flag1 --flag2
-
Хочу попасть в список программистов на OC

Даю тебе полный карт-бланш на это дело

-
Это не страшно.
Главное, что наш сайт/сервер - практически единственный в русском интернете на эту тему. Есть люди, кому интересен майнкрафт, игры для программистов, или там, возможность написать пару строк и смотреть как твой робот шустро бегает и без ошибок выполняет задачу.
И они понемногу собираются у нас.
Это всегда хорошо, ведь, когда есть такое место, где народ разделяет твои интересы.

P.S. Я к ним приглядываюсь. =) Есть пара идей как объединить все мои программы в один "домашний сервер". Spider Eye, Smart Lock и систему индикаторов с разной домашней техники. Сделать один монструозный "умный дом". С выводом на гигантские дисплеи и очки OpenGlasses. Принтер тоже пригодится.
-
3
-
-
ИМХО, он и сейчас маленький =) Так что уменьшение особо не повлияет, тем более, что 99% игроков — шк... технари, которые и слышать не хотят о СС и ОС, говорят: "Ужасно, долго, нудно, непрактично, проще через [ВСТАВЬТЕ НАЗВАНИЕ МОДА СЮДА] сделать". А жаль.
По части компьютерных модов у нас сейчас большой потенциал. Если обновить OC - будет наверное максимально возможный

-
Предлагаю не удалять интересные моды (уменьшая общий потенциал сервера по созданию всякого разного), а стряхнуть пыль с раздела Рабочие программы на Lua (в который раз в месяц кто-то заглядывает) и удалить дублирующуюся тему "Локатор игроков[CC]"
-
Бадам-БУМ! Бета нового крупного релиза!
Автор предупреждает больше чем когда-либо! Делайте бекапы!
Итак, чейндж-лист:
Это обновление содержит значительные изменения. Поэтому внутри может скрываться парочка новых хитрых багов. Особенно в механизме инвентарей у роботов и дронов, который был переработан. А также в их взаимодействии с игровой вселенной. Требуется обкатка в деле, так что тестируйте и будьте внимательны.
Автор не собирается объявлять версию стабильной пока мы не выловим все баги и он их не пофиксит.
- Добавлено: Команды 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 должен работать как и раньше, однако будет пасовать пересекая подземные пропасти.
-
Подскажите, пожалуйста, синтаксис программы, чтобы можно было устанавливать значение каждого вокселя отдельно в текстовом виде. То есть не через интерпретатор каждый раз писать component.hologram.set(x, y, z, value), а чтобы просто было поле ввода текста, в котором как раз эти x, y, z, value и нужно было бы писать. Через pcall(io.read) не получалось, программа ругалась, что первый аргумент булевый, даже если остальные, кроме этого первого задать изначально. P.S. я не так давно начал изучать Lua
Два варианта:
Первый. Через аргументы командной строки.
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 снимал?
-
Давно когда-то я писал на форум про мод OpenGlasses, что он как-то отвратительно работает на сервере, а именно кикает игрока с сервера (в основное меню игры) при установке блока в мир, при всем при этом при повторном заходе игрока в игру блок оказывается и у игрока в руке, и в точке установки(типа дюп). При чем на разных версиях серверного ядра.
Собирался его удалить, но все никак руки не доходили. Уже игроки в личку начали писать про эту багулину. И так, как за 1,5 месяца работы ИТ я не увидел ажиотажа игроков от этой модификации, так же как и от цветного принтера OpenPrinter (сомневаюсь, что его кто-то вообще крафтил
) ,уже подумываю о том, чтобы этот хлам удалить с сервера. Для паблика они не нужны. Ни одного слова я не видел на форуме про принтер и картриджи и АПИ принтера.
Не не не.
P.S. Лучше обновить OC.
-
-
Печально немного. Тогда идея робота киллера вообще теряет смысл. На черепашек мобы агрятся почему-то.
А кстати, дроны дамажить могут?
Вылить ведро лавы на голову

А вообще они не умеют пользоваться предметами/оружием.
-
1
-

Мод OpenComputers
в Обсуждение модов
Опубликовано: · Изменено пользователем Totoro
Нет, не пробовал.
Вообще, там такое страшное предупреждение написано в конфиге, что боязно даже
Всякие там "MASSIVE SECURITY RISK", и "running arbitrary code on the real server".
В сингле не страшно, но на сервере опасно.