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

Лидеры


Популярный контент

Показан контент с высокой репутацией 29.12.2018 во всех областях

  1. 5 баллов
    Предлагаю своё решение. local f = io.open("/etc/program.cfg", "r") local content = f:read("*a") f:close() local cfg = {} assert(load(content, "=program.cfg", "t", cfg))() print(cfg.player) Соответствующий конфиг будет выглядеть тогда так: player = "Robot" robot = "Player" age = 39 alive = false С синтаксисом Луа. Что, согласитесь, выглядит приятно. И не надо запятые ставить, как в таблице сериализованной.
  2. 1 балл
    Установка - pastebin get wmAj3hcP /bin/cryptednote.lua Библиотека - pastebin get uDnh4RLi /lib/crypt.lua Альтернативный вариант установки (выберите там CryptedNote, это мой установщик на все мои проги :) ) - pastebin run 1xudmTa7 Использование: cryptednote name [options] Опции: --rewrite; -w - перезапись файла --execute; -x - исполнение файла без записи на диск Пароль закрыт точками. Зашифрованные файлы хранятся в /usr/cryptednote (легко меняется в коде). Если файл редактируется, он находится в /usr/cryptednote/temp.crtnt (в нешифровнном виде). Код - https://pastebin.com/wmAj3hcP
  3. 1 балл
    С недавним (1.5.18) релизом OpenComputers появилась такая хрень — наноботы. Посмотрев ролик от автора мода (он будет внизу статьи), было ясно, что запутался или я, или автор. Скорее всего первое. Потому решил отложить их на потом. И вот, пришло то время. По-быстрому забежав на тестовый сервачок и поигравшись с ними, понял, насколько чудовищно... КРУТЫ эти мелкие штуки. Почему? А сейчас узнаем. I. Тварелогия. Вообще, я немного наврал со словом "сейчас". Обосновывать будем по ходу развития сюжета, а в конце (нет, в середине!) сделаем вывод. Итак, вот вам выдержка из статьи по нанороботиксам. Нанороботы, наноботы, наномашины, наноиды, наниты, наномиты и иже с ими (будем использовать несколько обозначений в этом гайде) — это такие мелкие штуки, которые попадают в организм кубического человека и жрать, мозги, хлам! помогают ему обрести новые способности. II. Приборы и девайсы. Значит так, в процессе эксперемента нам нужно: желание умереть, мозги, больше мозгов, невероятное желание подохнуть, планшет, наноботы, грог (?!). III. Ход эксперимента. Физ. часть. Итак, вы подготовили всё, что нужно. Давайте приступать. Я не указал, но возьмите ведро молока. Если, конечно, вы хотите избавиться от... В общем, съешьте нанитов. А теперь выпейте молока. После столь болезненной операции (что? Болезненной? Мы ж серьёзные люди — и кубизм явно то показывает. Не смешите) просто встаньте рядом с активной зарядкой. Ну, в общем, вот такая панорама (точней — её кусок) должна получиться. Как видно, слева от хотбара расположилась батарейка, которая показывает текущее состояние батареи в наните. Вообще, можно кушать более одного набора машинок нанометрических, вот только это ничего путного не даст — только сменит конфигурацию. К слову, чтобы вывести наномашинок — выпейте грог Собственно, на этом вся физическая часть закончена. Далее будем управлять через планшет. IV. Ход эксперемента. Информационная часть. Всё управление происходит через беспроводную сеть, так что планшет нужен с беспроводной сетевой картой. "Протокол" общения с наномитами предельно прост. Используется функция 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" — имя игрока. Вооооооот, теперь самое интересное. V. Ход эксперимента. Часть, в которой 18 кнопок. Тык-с, теперь основное предназначение нанитов — давать всякие эффекты! Начиная от простых частиц вокруг игрока, заканчивая смертью. Есть 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}", к примеру. VI. Финал. Трагедия и выводы. Собственно, поигравшись так с нанитами, активировал 9 вход. Вот такой казус возник: Угадайте, что произошло, когда я отключил креативку?) Чего и вам желаю. Выводы: Наноботы — не плод фантазии больного ума, но полезная вещь. Наноботы — штука хорошая, но только в разумных пределах. В неразумных от них можно сдохнуть. Напоследок продемонстрирую обещанное видео от автора мода про нанитов =) И включите аннотации, там инфа полезная. Удачи :P
  4. 1 балл
    Чтобы не изобретать велосипедов, проще всего будет хранить конфиг в виде луа-таблицы: { player = "MisterSosister", age = 1488 } Затем загружай его в проге и используй эти данные как угодно. Вчера же писал тебе в чат аналогичный вариант: local serialization = require("serialization") local event = require("event") local file = io.open("/config.txt", "r") local config = serialization.unserialize(file:read("*a")) file:close() while true do local eventData = {event.pull("touch")} if eventData[6] == config.name then --Ник валиден end end
  5. 1 балл
    https://www.youtube.com/watch?v=Efu0lEsMuMw&feature=youtu.be Решил я на днях потестировать нашу библиотеку двойного буфера в каких-то серьезных задачах, связанных с быстрой отрисовкой. Идеальным примером послужит любая игра, поэтому для теста решил я накодить Flappy Bird. Никаких особых пояснений игра не требует - смотрите демонстрационное видео выше. Команда для установки: pastebin run tsrGcmsa
Эта таблица лидеров рассчитана в Москва/GMT+03:00
×
×
  • Создать...