[OC] [Tutorial] Туториал по наноботам!
С недавним (1.5.18) релизом OpenComputers появилась такая хрень — наноботы. Посмотрев ролик от автора мода (он будет внизу статьи), было ясно, что запутался или я, или автор. Скорее всего первое. Потому решил отложить их на потом.
И вот, пришло то время. По-быстрому забежав на тестовый сервачок и поигравшись с ними, понял, насколько чудовищно... КРУТЫ эти мелкие штуки. Почему? А сейчас узнаем.
Вообще, я немного наврал со словом "сейчас". Обосновывать будем по ходу развития сюжета, а в конце (нет, в середине!) сделаем вывод.
Итак, вот вам выдержка из статьи по нанороботиксам.
Нанороботы, наноботы, наномашины, наноиды, наниты, наномиты и иже с ими (будем использовать несколько обозначений в этом гайде) — это такие мелкие штуки, которые попадают в организм кубического человека и жрать, мозги, хлам! помогают ему обрести новые способности.
Значит так, в процессе эксперемента нам нужно: желание умереть, мозги, больше мозгов, невероятное желание подохнуть, планшет, наноботы, грог (?!).
Итак, вы подготовили всё, что нужно. Давайте приступать.
Я не указал, но возьмите ведро молока. Если, конечно, вы хотите избавиться от...
В общем, съешьте нанитов. А теперь выпейте молока. После столь болезненной операции (что? Болезненной? Мы ж серьёзные люди — и кубизм явно то показывает. Не смешите) просто встаньте рядом с активной зарядкой.
Ну, в общем, вот такая панорама (точней — её кусок) должна получиться.
Здесь я, чарджер и плюсики летающие. А ещё демонстрация интерфейса.
Как видно, слева от хотбара расположилась батарейка, которая показывает текущее состояние батареи в наните.
Вообще, можно кушать более одного набора машинок нанометрических, вот только это ничего путного не даст — только сменит конфигурацию.
К слову, чтобы вывести наномашинок — выпейте грог
Собственно, на этом вся физическая часть закончена. Далее будем управлять через планшет.
Всё управление происходит через беспроводную сеть, так что планшет нужен с беспроводной сетевой картой.
"Протокол" общения с наномитами предельно прост. Используется функция modem.broadcast(). При этом наниты слушают эфир на всех частотах по умолчанию. Первым куском данных ВСЕГДА является строка "nanomachines". Команда уже такая: modem.broadcast(1337, "nanomachines"). Затем идёт сама функция и аргументами, так же отделёнными частями пакета. Итого: modem.broadcast(1337, "nanomachines", "команда", "первый аргумент, строковой", 2, "прошлый аргумент — числовой", "и т. д."). Не переживайте, я ещё вернусь к этому в перечне команд.
Итак, начнём наш перечень с не очень нужных игроку, но полезных команд.
-
setResponsePort(port:Number):String,Number. ОБЯЗАТЕЛЬНАЯ КОМАНДА ПЕРЕД НАЧАЛОМ РАБОТЫ! Именно. Так как вещать на всех частотах — идея обломная, лучше поставить заданный порт. Обломная настолько, что без указания порта-канала не будут возвращаться данные! Вот так всё жестоко. Поэтому пропишите modem.broadcast(PORT, "nanomachines", "setResponsePort", PORT). Например: broadcast(1337, "nanomachines", "setResponsePort", 1337). Прописали? Можно продолжать.
К слову, возвращает "port", port, собственно, где port и есть указанное значение. Бесполезная фишка, кажется. - getHealth():String,Number,Number. Значит, возвращает количество здоровья (текущее и максимальное). Чтобы не отвлекаться в дальнейшем, скажу сразу, что взвращаются данные так же через модем, через тот самый указанный порт. Так что не забудьте открыть его (modem.open(PORT)) и указать получение данных через event.pull("modem_message"). Формат данных: "modem_message", "адрес сетевухи на текущем компе", "адрес наноботов", порт, расстояние, "nanomachines", возвращаемые данные.... В данной функции возвращаемые данные: "health", 15, 20, где 15 — текущее, а 20 — максимальное состояния здоровья.
- getPowerState():String,Number,Number. Возвращает состояние энергии в наномитах: "power", 5000, 10000, где 5000 — текущее, а 10000 — максимальное количества энергии.
- getHunger():String,Number,Number. Возвращает состояние шкалы голода: "hunger", 10, 20, где 10 — текущее, а 20 — максимальное показания шкалы.
- getAge():String,Number. Возвращает "возраст" — общее время пребывания игрока на сервере в секундах с момента первого захода на сервер: "age", 1896, где 1896 — этот самый "возраст".
-
getName():String,String. Возвращает имя игрока, который переносит наноботов: "name", "Fingercomp", где "Fingercomp" — имя игрока.
Вооооооот, теперь самое интересное.
Тык-с, теперь основное предназначение нанитов — давать всякие эффекты! Начиная от простых частиц вокруг игрока, заканчивая смертью.
Есть 18 переключателей (входов в терминологии ОС), каждый даёт свой эффект. Набор переключатель-эффект называется конфигурацией. При каждом поедании нанобота эта конфигурация обновляется рандомными значениями. Если в первый раз 9 вход убивал, то теперь он, например, хилит. И т. д.
^ Выдрано из комментариев и заменено предыдущей непонятной фигнёй.
Эффектами, кстати, могут быть не только всякие regeneration, но и просто спаун частиц, а также раритетные эффекты вроде магнита, притягивающего предметы.
- getSafeActiveInputs():String,Number. Возвращает лимит безопасных активных входов: "safeActiveInputs", 2, где 2 — это установленное в конфиге значение.
- getMaxActiveInputs():String,Number. Возвращает второй лимит на количество входов всего: "maxActiveInputs", 4, где 4 — тот самый лимит.
- setInput(input:Number, active:Boolean). Активирует и деактивирует вход. Тут всё просто — первый аргумент является числом от 1 до 18, а второй — состояние активности (true — включить, false — выключить).
- getInput(inpt:Number):String,Number/String,Boolean. Возвращает состояние выбранного входа. Если неверно указать — ошибка ("input", "error"). Иначе — состояние. "input", 13, true, где 13 — номер входа, а true — состояние =)
-
getActiveEffects():String,String. Возвращает активные эффекты. Формат: "effects", "{digSpeed}", к примеру.
Собственно, поигравшись так с нанитами, активировал 9 вход. Вот такой казус возник:
Угадайте, что произошло, когда я отключил креативку?)
гыыыыыы
Чего и вам желаю.
Выводы:
- Наноботы — не плод фантазии больного ума, но полезная вещь.
- Наноботы — штука хорошая, но только в разумных пределах.
- В неразумных от них можно сдохнуть.
Напоследок продемонстрирую обещанное видео от автора мода про нанитов =) И включите аннотации, там инфа полезная.
В описании к видео на Ютубе есть ссылка на прогу =)
Удачи :P
- 7
24 комментария
Рекомендуемые комментарии