Перейти к публикации
Новости
  • В ближайшее время постараюсь разобраться с картой сервера/ЛК/бб кодами
  • Новости

Fingercomp

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

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

  • Посещение

  • Дней в лидерах

    154

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

  1. string.gsub, безусловно. Забудь про какие-то жутчайшие костыли с string.find и прочим. Гсаб тут просто рулит и педали от пола не отрывает. Он может поменять одно слово на другое. string.gsub("abc", "a", "d") == "dbc" Он может поменять один паттерн на что-то другое. string.gsub("hello world", "%w+", [["%1"]]) == [["hello" "world"]] Он может поменять один паттерн на табличное значение. local greek = { l = "λ", o = "ο", g = "γ", i = "ι", k = "κ", e = "ή", } string.gsub([[logic derives from Ancient Greek $l$o$g$i$k$e]], "$(%w+)", greek) == "logic derives from Ancient Greek λογική" И самое крутое: он может менять один паттерн по функции, вызывая её для каждого матча. string.gsub([[breaking news: title case considered stupid]], "(%w)(%w*)", function(head, tail) return head:upper() .. tail end) == [[Breaking News: Title Case Considered Stupid]] Читайте подробнее вот где-то тут.
  2. Продолжить позволю себе. Луа принимает спокойно сокращённые версии масок: `"*a"`, например. Окроме этого есть ещё и фича Lua 5.3: звёздочку можно не писать. В 5.2 работать не будет, разумеется. Помимо этого, слишком часто ты юзаешь `component.proxy`. Каждый вызов создаётся совершенно новая таблица, хоть и пустая. Не особо оптимальное использование. Для прямого вызова по адресу лучше использовать `component.invoke(address, methodName, arguments...)`. Наконец, советую чаще использовать пустые строки. Они очень полезны, как ни странно. Я, например, отделяю каждый блок пустой строкой, кроме тех, которые в начале или в конце, — читать такое гораздо проще. По той же причине, кстати, и на форуме стараюсь абзацы короткими делать и отделять их \n\n. Примеры кода: local function recurse(g) return (function(f) return g(function(x) return f(f)(x) end) end)(function(f) return g(function(x) return f(f)(x) end) end) end print(recurse(function(rec) return function(n) if n == 0 then return 1 else return n * rec(n - 1) end end end)(10)) --> 3628800 while true do t.write("> ", true) local tcom = t.read() if not tcom then os.exit() end local com, arg = tcom:match("(%w+)%s(%w+)") if arg == "all" then turn(0, coms[com], at) else turn(at[tonumber(arg)], coms[com]) end end
  3. Fingercomp

    Что такое IRC

    Мост Фингера после очередного апдейта Кибером куда-то пропал и назад не вернулся. Не знаю зачем, не знаю почему. Так как играть я в принципе не собираюсь пока, то и не особо интересовался даже.
  4. Fingercomp

    Что такое IRC

    Сегодня нашему каналу в IRC исполняется один годик, поэтому пришло время рассказать, что это, зачем это и как к нему подключиться. Начнём с понятий. IRC — это протокол обмена мгновенными сообщениями через интернет. Сделанный в далёком 1988 году, и по сей день он всё ещё юзается из-за удобности, простого масштабирования, простоты и доступности буквально отовсюду, где есть подключение к интернету — вплоть до холодильников. В общении участвуют клиент и сервер. Клиенты подключаются к серверу и общаются. Для разделения тем существуют каналы — на каждом отдельные сообщения, темы, люди и так далее. Так что на одном сервере могут быть сотни каналов, никак друг с другом не связанных. Главное, что нужно понять: IRC — это не чат в браузере, как здесь на форуме. Здесь отдельные серверы, отдельный протокол, и поэтому просто так через браузер не подключиться, набрав адрес сервера. Для подключения к IRC нужно воспользоваться специальной программой — клиентом. Здесь я покажу несколько клиентов и расскажу, как их настроить. Веб-клиент Iris IRC Для ситуаций, когда надо по-быстрому зайти на канал, но клиента нет под рукой или лень настраивать. Для полноценного сидения использовать проблематично, так как требуется грузить жирный браузер, и стабильность подключения так себе. Кроме того, веб-клиенты — поделки очень плохого качества, неконфигурируемые, отсутствуют банальнейшие фичи, например форматирование, или сделаны криво. Тем не менее. Возьмём, например, Iris IRC. Ссылка на него (нацеленный на серверы Esper) находится вверху, в панели навигации (). Штука очень минималистичная. Сверху вводите свой ник, пишете название канала для подключения (по умолчанию стоит наш), если нужно, ставите галочку и вводите пароль и юзернейм (об этом позже). Однако ставить её необязательно. После этого тыкаете на кнопку. Через несколько секунд появится вот такой интерфейс: Что здесь видим? Во-первых, кнопка меню . Советую сразу перейти в Menu ‣ Options и поставить галочку напротив "Automatically colour nicknames", чтобы визуально различать людей на канале — по цвету. Во-вторых, переключалка каналов . Можно тыкать Alt и цифру от 1 до 9, чтобы быстро переключаться между каналами. Строка топика — небольшого сообщения с темой обсуждения или просто полезными ссылками. Ниже находится окно чата, в котором будут отображаться ваши сообщения и сообщения других людей, а так же другие оповещения (например, о заходе человека на канал). Правее — список ников, подключённых к каналу. Знак "@" перед ником означает операторские привилегии — т.е. админ канала, "+" же ничего не даёт (у нас он является неким знаком отличия для людей, которые часто находятся на канале и чего-то мыслят в программировании, но на других каналах может быть не так). И, наконец, поле внизу для набора сообщений и команд. Чтобы отключиться от сервера, просто закройте вкладку. Чтобы зайти на другой канал, пропишите /j #имя-канала. Например, /j #cc.ru-server1. HexChat Десктопный клиент IRC, конфигурируемый, довольно удобный и пригодный для повседневного общения. Однако он уже требует несколько более сложной настройки. Скачав и установив HexChat, после запуска мы увидим вот такое окошко: Для начала введите 3 варианта ника (они будут пробоваться использовать поочерёдно в случае, если предыдущий ник занят на сервере). Обычно просто ставят "_" в конец. В поле "User name" введите юзернейм — это общий для всех ник (при этом проверка на занятость юзернейма не производится). В списке ниже найдите "EsperNet". Нажмите на кнопку , а затем поставьте галку , чтобы быстрее находить эту сеть. После этого можно нажать на кнопку . Произойдёт подключение к серверу. Используйте команду /j #имя-канала, чтобы зайти на нужные каналы. Например, /j #cc.ru. Появится вот такой интерфейс: Сверху находится меню. Ниже переключалка каналов. Крестик позволяет закрыть вкладку (и выйти с канала). Ещё ниже строка заголовка, режимы каналов. Справа список ников на канале, слева — сам чат, ниже — поле ввода сообщений и команд. Можно кликнуть правой кнопкой мыши по вкладке канала и отметить "Autojoin", чтобы автоматически заходить на канал после подключения к серверу. На данный момент HexChat — рекомендуемый нами клиент для Windows и Mac. KVIrc Объективно: вроде всё по стандарту, использовать можно. Субъективно: куча ненужных кнопок, прокладок, интерфейсов, всё запутано и намешано, выглядит ужасно. Поэтому настоятельно рекомендую не использовать этот клиент. В любом случае, рассказать о нём стоит. После установки и запуска будет предложено выполнить около пяти простых шагов по настройке клиента. Следуйте инструкциям (тем более, что там есть русский язык). Появится вот такое окошко: Нажмите на иконку , введите в поле под списком "EsperNet". Затем нажмите на , в то же поле введите "irc.esper.net". Нажмите "Connect Now" и затем "OK". Появится вот такое диалоговое окно: Введите в верхнее текстовое поле имя канала (например, "#cc.ru") и нажмите "Join", а потом "Close". Наконец, можно использовать главное окно: Сверху меню, ниже ещё всякие кнопки для действий типа подключения к новому серверу. Ниже топик, режимы канала, потом список ников, сам чат и поле ввода. Ниже статусная строка. WeeChat Очень продвинутый, невероятно удобный клиент для Linux. Запускается и работает в терминале, использует ncurses, поэтому даже иксы не требуются. Для Linux однозначно рекомендую, настроив weechat, как нужно, больше другие клиенты использовать не захочется. После установки и запуска появляется вот такой непримечательный вид: Пишем /set irc.server_default.nicks ник,ник_,ник__, чтобы выставить ник. Затем /server add esper irc.esper.net/6697 -ssl. После этого можно прописать /connect esper для подключения к серверу. И дальше уже /join #имя-канала. Общаться можно уже и так, а за дополнительными фишками обращаться нужно к мануалу. Для телефонов тоже есть свои клиенты, но тут я ничего посоветовать не могу. Это были клиенты. Но просто поставив их, особо толка не будет. Поэтому сейчас будет несколько штук IRC, общие для всех клиентов. Помимо каналов на сервере можно напрямую общаться с каким-либо человеком. Для этого нужно прописать /msg <ник> <сообщение> (например, /msg fingercomp привет). В большинстве клиентов можно открыть вкладку (или буфер) для общения с человеком, как для каналов, с помощью команды /query <ник> (например, /query fingercomp). Есть ещё команда /me. Если использовать её, то вместо <ник> сообщение будет показано что-то вроде * ник сообщение. Так можно отправить сообщения от третьего лица (вроде "fingercomp написал гайд"). Команда /notice — это та же отправка сообщения. Она немного отличается видом в клиентах, но всё равно видна всем на канале или собеседнику, в зависимости от того, кому направить сообщение. Смысл команды — предотвратить вызов ботом команд других ботов. Чтобы уйти с канала, можно использовать /part <сообщение выхода>. Сообщение будет показано другим людям в оповещении, например так: Можно вообще от всего сервера отключиться с сообщением, как выше. Используйте команду /quit <сообщение выхода>. Авторизация на EsperNet. Зачем нужна авторизация? Прежде всего, чтобы автоматически получать какие-либо права. Например, на канале #cc.ru-server1 (туда транслируется чат с сервера) мы используем это, чтобы автоматически выдавать право отправлять сообщения на сервер. Чтобы зарегистрироваться, нужно зайти с нужного ника и прописать /msg nickserv register <пароль> <email>, например /msg nickserv register zxcvbnM1 fingercomp@example.com. На ящик придёт сообщение от Esper, в котором будет команда для подтверждения регистрации. Её нужно скопировать и выполнить (то есть написать в строку ввода). Чтобы затем залогиниться, используйте команду /msg nickserv identify <пароль>. А теперь последуют вещи, которые есть только на нашем канале #cc.ru. У нас есть правила, которые желательно соблюдать. Ссылочка на них в топике: https://git.io/vwLXq Основной бот на канале — brote. У него есть множество команд: от погоды до опросников. Список команд можно получить с помощью команды .help. Брот также обрабатывает команды в ЛС. В топике после даты я помещаю всякие интересные события, ссылки и прочее. Так что иногда лучше смотреть на топик. Ведётся статистика всего канала — анализируются логи с середины ноября, хотя канал существовал примерно полгода до этого. Вот ссылка: https://stats.fomalhaut.me/. Можно поизучать — достаточно интересная штука. Темы обсуждений могут быть абсолютно разными — от размеров очередей в больницах до новых фич в языке Rust. Но в любом случае я постараюсь ответить на все вопросы по программированию на Lua, отправленные на канал. Даже в середине обсуждения — тогда, может, не сразу, но обязательно отвечу. Кроме того, у нас есть канал #cc.ru-server1. Сюда бот пишет сообщения с чата сервера, сообщения о смерти игроков, а также пишет текущий онлайн в топик. Поэтому для модерирования очень удобная штука. Чтобы иметь возможность отправлять сообщения из канала на сервер, нужно иметь войс — знак "+", который выдаётся персонально зарегистрированным людям. Я использую несколько критериев для оценки, например активность и адекватность игрока. За любое нарушение правил сервера через IRC следует вечная блокировка возможности отправить сообщения. Но и без войса можно просто сидеть и читать чат. В целом, это всё, что я хотел сюда написать. Ждём на наших каналах — подключайтесь, у нас есть печеньки.
  5. Fingercomp

    kcalBxoF

    Я ещё раз повторю, что никто к Владимиру с ремнём в руке домой идти не будет. Нытьём делу не поможешь, если только не в ордене великих нытиков числишься. И не надо тут каких-то условий ставить. К данной жалобе это отношения не имеет, здесь решаться этот вопрос не должен, о чём я в которой раз уж повторяю, а потому является оффтопом и должен со всей сильной выметаться тапками, тряпками, веником, совком в специально для этой цели разработанное изобретение века: буфер, который очищается сам при заполнении — мусорный бак. Не кормите троллей. Они лишь жирнее станут.
  6. Fingercomp

    [OC] [Tutorial] Туториал по наноботам!

    @eu_tomat как уже описано выше, такое поведение имеет место быть с давних пор. И следуя логике наименования команды, это таки больше фича.
  7. С недавним (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
  8. Fingercomp

    kcalBxoF

    Хватит кидаться оскорблениями. Особенно в третьем лице. Это не то, что некрасиво, а уродливо даже. Никакого отношение к жалобе это не имеет, на наказание никак влиять не может и не должно в нормальном мире. Окроме того, то, как помогает, кому помогает и помогает ли в принципе Владимир — дело его, и не тебе его осуждать, я считаю.
  9. Fingercomp

    kcalBxoF

    Про нанытов это уже открыли давно. В комментах к посту, где я про нанытов рассказывал, это есть. Они действительно принимают сообщения со всех портов. setResponsePort же не говорит что-либо про приём, верно? Это не баг, в общем. Кроме того, сильный оффтоп уже пошёл. И что это? Зачем этот пост написан? Неужели есть мысль, что кто-то сейчас пойдёт к Владимиру домой и будет его ремнями к стулу привязывать, дабы не мешал играть? Успокоиться обоим пора уже.
  10. Предлагаю своё решение. 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" С синтаксисом Луа. Что, согласитесь, выглядит приятно. И не надо запятые ставить, как в таблице сериализованной.
  11. Fingercomp

    kcalBxoF

    Ба, какая тут весёлая дискуссия завернулась. Позвольте мне свой пост здесь вставить. У нас тут собеседников несколько, ответим каждому отдельно. @kcalBxoF: День добрый. Баны на прошлых акках остались, потому создавать новый есть обход наказания. За это уже надо бы бан, но в излишней жестокости смысла нет. Спокойно играть можно и до этого было. Никто не заставлял прилюдно демонстрировать свои знания нецензурной лексики. В правилах чётко сказано — а я даже повторил это отдельно в посте (ну, если бы вы его читали, разумеется): внутриигровые споры модераторы не решают, а на наказание эти обстоятельства в положительную сторону не влияют. В чате их решать не надо, потому что мешаете другим. В этом топике их решать не надо тоже, ибо оффтоп. Пишите ЛС друг другу. И можете позвать кого-то, чтоб вас рассудил. Я всё так же считаю, что следует выдать перманентный бан в игре. За теми же причинами. Возможно, есть смысл дать шанс выйти по УДО через определённое время, если будут видны признаки того, что в голове огонь потушен, на сервере полезен, таких конфликтов затеваться не будет, и всё будет свобода-мир-единороги. Однако решать по данному вопросу что-то должны уже админы, но не я. @vladimir: За мост несёт ответственность моста владелец. Если бы меня замутили, когда мой стоял мост, я бы также соблюдал его и в ирке. Мост убирать я не настаиваю, но соблюдать режим надо. Правда на твой стороне, и здесь я согласен с @eu_tomat. Проблема в том, что действия производились кулаками, а не словами. Почему столь необходимым было внезапное выкидывание из привата? Кто-то не давал предупредить, что в случае неподчинения применишь такое? Сомневаюсь. Почему столь необходимым были козни с нанытами? Кто-то не давал в чате сказать, что к региону подходить нельзя, тем более что на то есть правило отдельное? Сомневаюсь. Я, конечно, углубляюсь не туда, но отмечу, что, хотя это махание конечностями и не запрещено само по себе, но отягчающим фактором быть должно. И пункт соответствующий есть. Тем более, что вы оба ответственны за то, что устроили здесь в чате. К тому же, не стоит забывать про "во-вторых" в предыдущем посте. Я ещё раз хочу отметить для всех, читающих этот пост, что наказание никогда не будет отменено, если вы намеренно будете его обходить, сколь абсурдной ни была бы причина. Мут я назвал беспочвенным, но сейчас я думаю, что это не так: абсурдна лишь указанная причина. Я трактую это как призыв успокоиться. В любом случае, вы его нарушили. За что, я считаю, необходимо огрести недельное заключение в бане. В том числе с соблюдением его со стороны моста. И, пожалуйста, не надо мой пост разбивать на отдельные пункты и флудить километрами цитат. Отвечайте цельно, и сразу, и подумав. Кроме того, призываю обоих участников конфликта успокоиться. Текущая ситуация может быть очень неприятной, что понятно. Однако кидаться прилюдно оскорблениями не надо. За это срок не скосят.
  12. Fingercomp

    kcalBxoF

    Меня, конечно, на сервере не было, но зато есть логи чата, и по ним выводы можно сделать очень печальные. Я отказываюсь быть тем, кто разрешит эту жалобу. Вместо этого внесу свои рассуждения. kcalBxoF: рекомендую перманентный бан. Во-первых, грубое и неоднократное нарушение правила 2.3.2. Игровые правила не описывают состояние аффекта или тому подобного, как и не требуют определения вменяемости, но пункт 2.1.11 устанавливает совершенное безразличие к таким обстоятельствам, а потому никаких поблажек здесь быть не может. Оскорбления есть. Куча. Матов тоже куча, как до, так и после инцидента, о котором форумчане, к сожалению, уже имели неудовольствие ознакомиться в чате. Можно было по-человечески обойтись? То есть дать 5 дней бана и успокоиться. Ответ: нет, нельзя. Потому что тем же игроком нарушено правило об мультиакком. Я очень хорошо знаю прежние аккаунты этого господина — я сам его и банил перманентно. Там были и багоюз, и опять маты. Я не вижу никакой причины проявлять терпимость. Его положение здесь должно быть таким: хочешь играть — ассимилируйся, иначе — к чёрту, пешком. Собственно, вторую часть здесь и стоит использовать. Пересказывая начальный тезис: в моём суждении императивно категорически, что требуется перманентный бан. На форуме банить смысла, конечно, нет, но в игре — непременно. Vladimir: рекомендую бан на 7 дней. Руководствоваться следует правилом 2.1.11. Нет, я тоже считаю, что такое правило вообще не требуется здесь, ибо только вредит, однако причина применения его здесь другая. Во-первых, это беспричинная эскалация конфликта. Во-вторых, несоблюдение выданного Кибером мута. Здесь я выразить стороннюю мысль хочу. Я присоединяюсь к мнению Владимира и считаю мут этот необоснованным, бессмысленным, но, что ещё ужаснее, беспочвенным. Доказательства есть. Ложных показаний нет. В логах всё прекрасно видно. "Немного матов", — примерно такое объснение я услышал от самого Владимира, но, конечно, полностью доверять здесь нельзя ему точно. Однако и без Владимира все форумчане могут убедиться, каким чистым белым зайцем выпрыгнул из этого топкого болотца kcalBxoF: достаточно открыть банлист и увидеть отсутствие каких-либо санкций к нему. В то же время я не хочу ставить это Киберу в вину: он занят, мог проглядеть, и мут выдавал из здравого смысла, а не формальности. Потому и за несоблюдение требуется какая-то мера наказания.
  13. Эм, здрассьте. Предлагаю поглядеть на новое обновление мода. Очень толстого обновления. Отрегулировали частоту выполнения хука, который шлёт этот ненавистный "too long without yielding", так что теперь и скорость исполнения кода должна гораздо возрасти, и с ошибкой этой код падать реже. Мы проверяли: некая гуи-либа с 1.6 fps до 2.5 fps только благодаря этому работать стала. Оптимизировали производительность ещё и записи на диск. Пошустрее будет — обещают, что в 5–500 раз. Сетевой разделитель (сплиттер) стал компонентом. Можно программно теперь отключать куски сети. Жёсткие диски стало возможным делать Read-Only. Компьютеры CC могут читать сигналы бандлед-редстоуна OC. И наоборот. Функции [il]debug.getlocal[/il] и [il]debug.getupvalue[/il]: возвращают они лишь только имя переменной, но не значение её. И мне кажется, что это уже давно было завезено. Геолайзеры получили методы [il]isSunVisible[/il], [il]canSeeSky[/il] и [il]detect[/il]. Неплохо. В [il]computer.beep[/il] можно писать морзянку. [il]computer.beep("---.---")[/il]. [il]redstone.setOutput[/il] научился ставить значения больше 15. Клавиатуру можно цеплять к монитору, если ещё поставить к непередней стороне блока. Наконец-то. [1.12] Вернули поддержку Project Red. Через адаптер можно теперь работать с камерой реактора IC2. У серверных дисководов тоже есть теперь гуишка (пкм в мире или внутри интерфейса стойки). Торговый апгрейд обзавёлся методом [il]getMerchantId[/il]. Полезно, если жителей куча. [1.12] Вернули поддержку энергии AE2. В конце-то концов: дебаг-карте добавили [il]scanContentsAt[/il]. Больше инфы возвращается для предметов из Draconic Evolution. Вейпоинты стало можно ставить вверх или вниз. Это действительно было слишком контринтуитивным. Связанные карты можно скрафчивать вместе (повяжет на новый канал их). Плюс получать адрес канала при скане стэка. Можно теперь менять цветовой код сундуков Ender Storage. Связанные карты также научились будить компьютер по сигналу, как модемы. Белый и чёрный списки измерений для чанклоадера. Метод [il]disk_drive.media[/il], которым можно получить адрес дискеты внутри дисковода. Поддержка Forge Energy для зарядки предметов вроде батареек и планшетов. Анализатор показывать будет по клику на адаптер ещё и содержащийся в нём компонент. Событие [il]redstone_changed[/il] показывает, какой цвет поменялся на бандлед-кабеле. По шифт-клику компоненты закидываются в соответствии с их уровнями. Подрезали немного шум в логе от OC. Методы вроде [il]robot.suck[/il], [il]robot.suchFromSlot[/il] и [il]transpoer.transferItem[/il] теперь возвращают вместо [il]true[/il] число перемещённых предметов. Немного уменьшили назойливость частиц наномашинок. Жёсткий диск 3 уровня в режиме без ФС стал иметь по умолчанию не 6, а 8 пластин. Улучшили рендер кабелей как-то. Такие же "как-то" улучшения произошли с инвентарём роботов, апгрейдом крафта, методами [il]swing[/il] и [il]use[/il], взаимодействием с жидкостными баками. С модами получше работать должны. Чанклодыри можно ставить в микроконтроллер теперь. Расширили покрытие юникода шрифтом. Стандартный биос стал есть меньше памяти. Мониторы глючить должны поменьше. Пофиксили обнуление содержимого инвентарей блоков мода при крашах. Ещё некий краш при установке микроконтроллеров починили. Команду [il]/oc_nm[/il] вправили в место и заставили работать. Дюп роботов убран. Команды перемещения теперь говорят, успешно или безуспешно вызов завершился. Форсирование [il]LuaJ[/il] не форсировало эту архитектуру. [il]transferItem[/il] проверял не ту сторону. Починили Unknown error при попытке залить чего-то в некие машинки. Дюп дронов тоже починили. Выкорчевали возможную ошибку при запуске вместе с IC2. Роботы перестали потреблять ингредиенты при крафте, которые не потребляются. Апгрейд ангельский стал работать. Пофиксили торговый апгрейд. Его прямая задача исполнялась кривовато. Роботы не перемещались, когда нужно было. Дюп предметов дронами и роботами. Дискету network тоже можно ставить через install теперь. Дюп жидкостей, конечно, тоже был и тоже пофикшен. Дроны не реинициализировались после включения по сообщению модема. И вели себя очень странно. Всякие фиксы в интеграции с AE2. Опять некий дюп EEPROM. Удалён. Краши при загрузке с Applied Llamagistics. Краши при нетрадиионной установке компьютеров. Краши (но на клиенте), связанные как-то с кабелями и загрузкой чанков. [il]enableNanomachinePfx[/il] не имела эффекта. Роботы стали вызывать обработчики модов при получении опыта. Вводящие в заблуждение сообщения анализатора о выключенных компьютерах стали вводить в заблуждение в меньшей степени. Микроконтроллеры свою начинку теперь тоже выключают вместе с собою. Всякие ошибки кидал апгрейд поводка вместе с некоторыми модами. Фиксед. [1.10+] Починен рецепт крафта карточки с мировым датчиком. Экран планшетов теперь не зависает. Терминальные серверы ненормально цепляли удалённых терминалов на себя. Ошибки освещения с шейдерами. В OpenOS ещё отметить можно: Команда [il]reset[/il], которая ресетит разрешение. Ошибки сервисов пишутся в /tmp/event.log. Можно теперь ловить ошибки по Ctrl-Alt-C (жёсткие прерывания) путём переопределения функции в [il]process.info().data.signal[/il]. Копипаст в [il]edit[/il]: Ctrl-K — вырезать, Ctrl-U — вставить строку. Процессы закрывают файлы при завершении. Ссылочка на гитхаб, откуда можно скачать мод.
  14. @Alex с моей авой всё в порядке, насколько мне отсюда видно. Очень даже. Если же удаление её каждую полночь было знаком приветствия или ещё чем-то, я прошу описывать сентименты словами, а не заставлять меня каждое утро идти в профиль и снова загружать свою аву. 🤔😮

    1. Показать предыдущий комментарий  ещё 1
    2. Alex

      Alex

      это не сентименты. войд-авы запрещены. Поставь себе там черный или розовый кружок или все что угодно. Белая ава твоя создает иллюзию того, что она отвалилась вообще или что-то не так с версткой сайта. Ты не особенный какой-то на форуме, чтобы в сайдбаре мозолить глаза отсутствующей авой. Твои публикации в сайдбаре отображаются просто заголовком публикации. А это не по феншую. Не нравятся тебе круглые авы, значит пускай будет дефолтная. Но это не повод быть революционером и творить какую-то херабру, и сливать свою аву с бэкграундом.

    3. Totoro

      Totoro

      Строго говоря, на форуме сейчас ВООБЩЕ нет правил.

      Не говоря уже о каких-то запретах на аватару. Я правил про воид авы точно не видел, когда последний раз их перечитывал.

       

      P.S. Ну и по хорошему пометка должна быть, при заливе аватары, что белая аватара запрещена.

      А то что это за тихие войны, подковерные.

    4. Fingercomp

      Fingercomp

      @Alex вот нравится мне это тайнополицейское молчание. Месяц висела ава, но триггерился на неё лишь один-единственный человек. Потом этот человек куда-то исчез, а затем, вернувшись, начинает каждое утро с понедельника этой недели лезть ко мне в профиль и упорно тыкать на "удалить".

       

      1. Прошу показать скриншотик, где на видном месте будет видна ссылочка на правила. Чтобы даже я мог туда в теории зайти в понедельник и прочесть, чтобы подумать.
      2. Пункта правил такого также никогда не было. В том числе и сейчас (я проверил, перейдя вручную на страницу, где раньше правила).
      3. Обвинения в "особенности", "революционерстве" не принимаю по причине того, что таких намерений при установке авы не имелось.
      4. Просьбу "выражать словами" я дублирую.

       

      В общем, меня эта ситуация сильно смущает. Я воздержусь от крепких высказываний из-за угрозы потерять не только аву, но и доступ к сайту. У меня вопрос остаётся один лишь: с какой степени белоты с авой начинают бороться (с доселе не виданной кому-либо яростью)? Интересуюсь с целью прояснить проблему и формализовать новорожденное правило.

       

      P. S. Согласно прошению, поставил на аву розовый квадратик со стороною в один пиксель.

  15. Можно наныть прав блоговодам? Я захожу в блог с целью навести там порядок и ещё что-то написать, а там такую печальку застал, что теперь даже скрыть запись нельзя (спасибо, что хоть кнопку добавления записи оставили). И, соответственно, всё уже скрытое мне тоже не видно. А здесь вообще в меню 4 пункта всего осталось. К слову, весь код, который я в блогпосты свои пихал, съехал в одну строку.
  16. Fingercomp

    Обновление OpenComputers до версии 1.7.3

    @Asior @eu_tomat https://github.com/MightyPirates/OpenComputers/issues/2988
  17. Fingercomp

    Калькулятор

    Это я нампад зачем-то когда-то писал. И теперь мне кажется, что вместо того, чтобы заставлять страдать от несимметричного расположения текста в кнопках, лучше было сделать, как на скриншоте.
  18. Ну, собственно, 40 минут назад фичу запилили. В 1.7.3 будет метод component.disk_drive.media(), который будет возвращать адрес дискеты. Пока что можно скачать билд с ci.cil.li.
  19. Пробежался по коду и не нашёл где-либо маппинга адреса дисковода в адрес дискеты, из-за чего поставленная задача кажется невозможной. Отправил тикет на баг-трекер OC пока что. Возможно, там что-либо подскажут.
  20. Я поражён, если честно, выдержке, которая потребовалась для написания такого. Я бы уже на втором энде запилил строку вроде [il]"#${}<>*?$!':@+`|="[/il], а потом делал бы [il]characters:find(gpu.get(4 + i, 3))[/il]. По скриншотам выглядит неплохо. Вообще, круто, что проект до релиза доведён. Некоторые (глазами упираюсь в @LeshaInc) и такого не достигают. P. S. К слову — я, наверное, этим разочарую — но даже с таким крупным текстом, как в первых постах, без очков я не разгляжу толком что-либо, к сожалению. Укатились старания в вену.
  21. П О Ч И Н И Т Е (умоляю) ломание нормальных юникодовских символов в emoji! Не должны такие красивые символы, как: "—", "–", "ツ" (и, подозреваю, остальные символы японской каны) — биться в пикчи, которые ведут в NaN.png. Зачем?
  22. Многие игроки здесь видели или хотя бы слышали про огромный дронодом, который построил @Asior в былые времена на сервере RoboCraft. С тем чтобы прояснить происхождение этой хаты и оставить о ней заметку в этом клубе, специально для «Новостей подполья» @Fingercomp обратился к создателю постройки и попросил рассказать про неё. Редакция представляет обработанную версию истории. История начинается в начале мая 2016 года, когда запустился сервер RoboCraft, на который сразу же хлынули толпы игроков, хотевшие «поскорее стать топовыми игроками, обладателями гор ресурсов и, конечно же, новых идей и программ». Туда попал и герой нашего рассказа. Развитие было довольно сложным. «Поначалу я хотел, как обычно, отстроить бункер и спокойно, потихоньку наращивать силы», но этому воспрепятствовал случай: система автоматического расселения игроков закинула Asior невесть куда — в середину заражённого биома. Очевидно, что герой этому не обрадовался. Ему потому пришлось бегать в поисках нового места. Конечно, Asior таки организовал себе временное убежище и начал стремительное развитие в игре. Но в чате игроки часто оставляли ссылочки на скриншоты своих невероятно красивых палат с невероятно крутых ракурсов. Он перерыл огромное число чертежей домов, замков, статуй — и решил построить дрона. Дрона из OpenComputers. Ведь сервер специально разрабатывался для этого мода. Asior зашёл в сингл и долго, упорно воздвигал новые варианты постройки и безжалостно крушил старые. Наконец, он определился с тем, как именно должно будет выглядеть его будущее жилище. Оставалось лишь воспроизвести это всё на сервере. Но здесь и возникла основная проблема: как добыть такое огромное количество ресурсов для строительства? Разрешена она была путём не самым чистым: Впрочем, и того, что он раздобыл, сполна хватило на постройку основного корпуса дрона. Это потребовало огромного числа строительных лесов и невероятных акробатических способностей и дополнительно осложнялось тем фактом, что полученные вечные блоки не перемещались из хотбара. Но стиснув зубы и получая подкормку от щедрых игроков Asior таки построил дрона. Потому пришлось придумать, как расширить жилище. Некоторые предлагали соорудить какое-нибудь здание, к которому был бы «привязан» дрон, но, увы, это не вписывалось в местность. Далее настала очередь внутренней отделки: ставились перегородки, размещалось оборудование. А монументальное сооружение, памятник роботу и дрону, стал пользовался большой популярностью, чему создатель не противился: «я был не против, чтобы все желающие посмотрели, как я живу, уточнили какие-то вопросы или помогли чем-нибудь». С тех пор сервер RoboCraft давно закрыт, но память о роботе и дроне жива до сих пор. Редакция присоединяется к пожеланию героя остроить то, что поражало бы воображение и отпечаталось в приятных воспоминаниях десятков игроков. И мы всё так же мы призываем вас оформить подписку на «Новости подполья». Годноты здесь много было, есть — а то ли ещё будет.
  23. Fingercomp

    История одного дронодома

    Ничего будет. А не будет печенек.
  24. Fingercomp

    История одного дронодома

    Надо. Это такой обряд посвящения. Подписался — значит, свой.
  25. Нет, новый движок мне больше нравится, если честно. Хотя он и тормозит жутко у меня теперь, но выглядит как-то приятнее, что ли. Но вот по вопросу BB-кодов поддерживаю @eu_tomat: возможность просмотра поста в "сыром" виде крайне полезна. Я использовал неонократно при каких-то глюках, а также для коллаборационного написания постов (например, топики про Hel и UT#2).
×