Fingercomp
Гуру-
Публикации
1 629 -
Зарегистрирован
-
Посещение
-
Победитель дней
283
Тип публикации
Блоги
Профили
Форум
Багтрекер
Магазин
Все публикации пользователя Fingercomp
-
Сейчас эту сетку можно захацкерить очумелыми ручками. Требуется неисправный узел Дзена. Это мы решим, когда найдём нормальную хэшировалку. А вообще, сейчас циклов никаких быть не должно. Дубликаты отсеиваются.
- 46 ответов
-
- OpenComputers
- ретранслятор
- (и ещё 3 )
-
Обновил прогу до 1.3.0. Программа, как ни странно, стала ещё полезнее. Теперь можно сниффать сообщения со связанной карты (Linked Card) :P Поэтому если вы занимаетесь написанием программы, юзающую связанные карточки, жизнь ваша должна несколько облегчиться.
- 2 ответа
-
- 2
-
-
- OpenComputers
- пакеты
-
(и ещё 2 )
Теги:
-
Вы же помните OpenNet? Сетка такая была для OpenComputers. Хорошая вещь, только непонятно, как она работает, как её обслуживать, а ещё она централизованная. И огромная. В общем, неудобно. Поэтому предлагаем вам решение. Удобное и простое. Вкратце Zn (читать как "дзен") — это очень простая (код без комментов занимает меньше четырёх килобайт) децентрализованная (нет центрального сервера, все узлы сети равны) неструктурированная (отсутствует какая-либо структуризация клиентов) сетка для OpenComputers, созданная мною и @Totoro. Сеть абсолютно не защищена от какого-либо вмешательства: все в радиусе рестранслятора могут получить исходное сообщение и подменить его. Поэтому если требуется что-то более надёжное, нужно сделать систему шифрования. Из-за того, что мы выбросили защиту от подмены и структуризацию, к сети подключиться может любой хост: как сервер, планшет, робот и компьютер, так и дрон или микроконтроллер. Для последних двух хостов есть специальный билд. Каждый подключённый к сети клиент является её узлом: он может ретранслировать, отсылать, броадкастить, принимать сообщения и пинговать соседей. Кроме того, при отправке сообщения можно запросить подтверждение его получения. API Функции zn.connect(): boolean Подключиться к сети. Аргументы Нет. Возврат true, если всё ок. false, если клиент уже подключён. zn.disconnect(): boolean Отключиться от сети. Аргументы Нет. Возврат true при успешном отключении. false, если уже отключён. zn.send(address: string, message: string): boolean Отправить сообщение какому-либо узлу. Аргументы address — адрес модема конечного узла. message — сообщение для отправки. Возврат true — сообщение отправлено (не обязательно успешно доставлено). zn.broadcast(message: string): boolean Послать сообщение для всех узлов сети. Аргументы message — сообщение для отправки. Возврат true. zn.ping() Пингануть соседние узлы. Аргументы Нет. Возврат Нет. События zn_message(message: string, receiverAddr: string, senderAddr: string) Получено сообщения от узла сети. Аргументы message — сообщение. receiverAddr — адрес модема, поймавшего сообщение. senderAddr — адрес модема отправителя. zn_ping(senderAddr: string, distance: number) Получен запрос на пинг. Аргументы senderAddr — адрес модема отправителя. distance — расстояние до узла. zn_pong(senderAddr: string, distance: number) Получен ответ на пинг. Аргументы senderAddr — адрес модема отправителя. distance — расстояние до узла. Пример кода local event = require('event') local zn = require('zn') zn.connect() zn.broadcast("Hello Zn members!") while true do local _, message = event.pull("zn_message") if message == "bye" then break else print(message) end end zn.disconnect() Установка Качаем hpm: http://computercraft.ru/topic/1855-repozitorii-programm-hel/?do=findComment&comment=27287 Ставим пакет: hpm install zn. Версия для EEPROM хранится в /usr/share/zn/eeprom.lua. Чтобы записать его, вставьте чистый EEPROM в комп и пропишите $ flash -q /usr/share/zn/eeprom.lua "Zn node" А затем вставьте EEPROM в дрона, µC или куда-либо ещё. Ссылка на пакет.
- 46 ответов
-
- 8
-
-
- OpenComputers
- ретранслятор
- (и ещё 3 )
-
Хей! Так как я сейчас пилю с одним человеком одну штуку, связанную с сетью в OpenComputers, мне потребовалась программа, которая могла бы показывать, какие пакеты посылаются, причём мониторить хотелось как исходящий трафик, так и входящий. Собственно, именно это я и напилил на формочках @Zer0Galaxy: Работает предельно просто: запускаем, шлём сообщения, смотрим. В верхней части находится список сообщений, снизу написана инфа о нём. Ещё ниже находится поле с данными, которые были посланы в пакете. Переключаться между разными частями пакета можно с помощью списка справа (не забывайте про скролл). Под списком справа находится количество всех частей пакета. Установка: Качаем hpm: http://computercraft.ru/topic/1855-repozitorii-programm-hel/?p=27287 Ставим прогу: hpm install sniff.
- 2 ответа
-
- 5
-
-
- OpenComputers
- пакеты
-
(и ещё 2 )
Теги:
-
@Asior, а когда хардкором стали называть проваливающийся тпс? Или тебе зачем-то ещё нужен этот мод?
-
Первое место: @Seryoga. Второе место: @FluttyProger. Третьи места: @electronic_steve, @astral17. Организаторы: @Totoro, @Fingercomp.
-
ивент Unreal Tournament: Resurrection -- Этап #1
Fingercomp ответил в тему Totoro в Ивенты и конкурсы
Это всё Quake Pro. Привык и отвыкнуть не могу.- 243 ответа
-
- 1
-
-
- Unreal Tournament
- oc
- (и ещё 2 )
-
ивент Unreal Tournament: Resurrection -- Этап #1
Fingercomp ответил в тему Totoro в Ивенты и конкурсы
Обновление от 21 января 2017 года. Последнее Благодарности ОГРОМНОЕ спасибо @Seryoga, @FluttyProger, @astral17 и @electronic_steve за участие! Благодаря ним и была та эпическая кровавая резня между роботами. Пусть @astral17 написал прогу за 3 часа до старта, а у @electronic_steve на жестоком поле боя все роботы заглохли, — главное, что был безумный фан. @astral17 заслуживает ещё одной благодарности: он написал половину сервера — ядра всего ивента. Без него ничего бы не состоялось. За что огромное спасибо тоже. @Totoro — автор этой охрененной идеи. Моральная поддержка и очень умные мысли, связь с админами для сервера. @Fingercomp, т.е. я. Отстроил с нуля на чистом поле арену, написал этот крутой интерфейс для очков, писал обновления и отвечал на тонны вопросов тут, в ЛС и в ирке. Написал прикладной софт для UT типа переодевалок и активно толкал идею до сегодняшнего дня. Спасибо админам за хост и админку на нём. И, конечно, благодарю всех зрителей, которые пришли посмотреть на это титанское сражение. Планы На эту часть мы потратили почти 2 месяца (точнее, 55 дней), начав 28 ноября 2016 года. И сегодня, наконец, был завершён первый этап в рамках гигантского проекта UT. В будущем предстоит ещё несколько этапов с принципиально новыми условиями. Уже через пару недель мы начнём подготовку следующей части нашего марафона, а потому просим подключиться в обсуждение и высказать сюда свои идеи. Как это было За полчаса до официального старта ивента был открыт мир с ареной, и мы ждали игроков. В 12 часов все участники (как мы тогда считали; @Seryoga, @electronic_steve и @FluttyProger) прибыли на сервер, и я распихал их в кабинки для переодевания. Затем мы переместили участников к роботам. Тогда же к нам подключился @astral17 и сказал, что желает участвовать. Мы дождались Тотору: Тем временем онлайн поднялся до 14 человек. Первый раунд! Завершился со счётом 00/10/02/00. Но у зелёных было куда больше монеток, чем на табло: Пошёл второй раунд: Однако выяснилось, что большинство роботов попросту разрядилось. А так как я обещал недопускания таких ситуаций, то раунд пришлось прекратить досрочно. Поэтому мы заново заставили участников ставить свои программы. И второй раунд начался вновь, теперь уже длиною в 10 минут. Раунд завершился со счётом 00/63/01/00. Поэтому @electronic_steve и @astral17, роботы которых не притащили ни одной монетки, выбыли из гонки. На сервере было чуть более, чем дофига народу, поэтому он очень сильно тормозил. Третий раунд, где должен был определиться победитель, начался не без казусов. Если вы взглянете на первые скрины, где участники настраивали роботов, то можете заметить, что они заперты внутри небольшой "комнатки", а отгорожены от остальной части арены были барьером из стекла EnderIO. Так что после старта этого раунда я забыл убрать этот барьер, из-за чего роботы уткнулись в него и не смогли пройти вперёд. Поэтому мы перезапустили раунд, где уже точно проверили отсутствие этой преграды. И раунд начался! И, наконец, раунд завершился со счётом 73:04 в пользу фаворита — @Seryoga. Отныне Серёга — самый настоящий бог, повелитель роботов. В ближайшее время @Totoro, надеюсь, нарисует медальки участникам за старания. Победителю лично обещаю выдать какой-нибудь очень крутой приз. Думаю, в этот раз мы доживём до момента, когда он будет вручен. Но, думаю, если он будет играть на сервере, то вполне может претендовать на какие-нибудь привилегии и ресурсы. Удачи! Продолжим эпопею уже во втором этапе UT. :P P. S. Если у кого-то есть видео с ивента, просьба выложить его куда-нибудь и кинуть сюда ссылки. В скриншотах трудно передать события.- 243 ответа
-
- 6
-
-
- Unreal Tournament
- oc
- (и ещё 2 )
-
Вопросы по gpu api, event, автозапуск и др.
Fingercomp ответил в вопрос sarnaif в Разные (отсортировать)
Выбирай ёмкие, но в то же время отражающие суть названия тем. Искать что-то на форуме, где всё заспамлено топиками "ААА ПАМАГИТЕ ПАЖАЛУСТА", невозможно. Тебе уже в прошлых топиках сказали, как. Юзай os.execute("команда"). Единственный правильный способ автозапуска: пропиши в конец .shrc путь к программе (/home/bin/program.lua, например). Оно сетит по определённым координатам текст. Первый аргумент - значение по горизонтали, второй аргумент - значение по вертикали, третий аргумент - текст, который вывести нужно. Например, gpu.set(1, 1, "Hello, world") засетит в левом верхнем углу текст "Hello, world". А вообще, читай вики: https://ocd.cil.li/ Обрабатывай ивент "touch". Отловить событие можно при помощи event.pull("имя ивента"). Оно будет посылаться при любом клике, так что нужно будет проверять координаты. Но лучше использовать специальную библиотеку для графического интерфейса. Я лично рекомендую для этого либу от @Zer0Galaxy: вот она.- 3 ответа
-
- 2
-
-
Оно, по идее, должно работать со всеми цистернами, с которыми может взаимодействовать апгрейд. С билдкрафтом, с EnderIO, что вспомнил навскидку.
-
Как скачать файл из интернета, как прервать цикл?
Fingercomp ответил в вопрос sarnaif в Разные (отсортировать)
Замени local inet = com.internet на local inet = require("internet"). Тогда заработает. Чтобы досрочно прекратить цикл, используй break. Он выйдет из внутреннего цикла. Чтобы досрочно прекратить работу программы, пиши os.exit(). -
ивент Unreal Tournament: Resurrection -- Этап #1
Fingercomp ответил в тему Totoro в Ивенты и конкурсы
Заранее опишу, как что с чем едят на UT, потому что может быть это непонятным и неочевидным. Как зайти на арену Перейдите на спаун. Используйте для этого команду /spawn. Спуститесь до лестницы, где на дереве будет такая табличка: Нажмите по табличке внизу. Вас телепортирует в мир с ареной. По краям арены будут вот такие пимки: Наступите на них, чтобы получить комплект очков и беспроводной клавиатуры. Использование очков Для того чтобы кликнуть по элементам очков, нужно захватить управление. Для этого нажмите ПКМ, держа беспроводную клавиатуру: . Имеется 9 точек быстрой телепортации по арене. Справа сверху находится вот такая карта: . Вы можете кликнуть на чёрные квадратики , чтобы переместиться на соответствующую точку. Если вам мешают полоски игроков сверху: , то вы можете их скрыть, нажав на прямоугольник слева: Слева сверху находится блок информации о текущем матче: . В верхних квадратиках написан текущий счёт команды, под квадратиками полоска показывает соотношение очков команды: чем длиннее полоска, тем больше счёт. Ниже находится блок с временем: оставшимся, прошедшем и общей длительностью матча. Ниже находится прогресс-бар времени. Цвета кожаной брони Розовый: организаторы. Синий, красный, зелёный, жёлтый: цвета команды. Чёрный: зрители.- 243 ответа
-
- 3
-
-
- Unreal Tournament
- oc
- (и ещё 2 )
-
ивент Unreal Tournament: Resurrection -- Этап #1
Fingercomp ответил в тему Totoro в Ивенты и конкурсы
Обновление от 20 января 2017 года. Первый раунд Unreal Tournament состоится: завтра, 21 января 2017 / 2017-01-21; в 12:00 по UTC (полдень): 14 часов по восточному европейскому времени / EET, 15 часов по Москве, 19 часов по Новосибирску; на сервере SkyTech. На спауне будет плита для телепортации в мир с ареной. Вот предполагаемое расписание: В 12:00 UTC станет доступным мир с ареной. В 12:15 UTC запустим участников для конфигурации роботов. В 12:30 UTC начнётся сама игра. Раундов будет несколько, их длину и количество определим по ходу комедии. Сегодня, пока я буду онлайн на Скае, чтобы доделывать арену, вы можете зайти с прогой и потестировать её на финальной арене. Если будет только один участник, будем проводить раунд с одним и дадим ему победу. Но я знаю как минимум двух человек, которые могут уже участвовать. Так что ждём каждого, кто хоть немного интересуется программированием и Кубачом. Желаю удачи себе, участникам и зрителям.- 243 ответа
-
- 2
-
-
- Unreal Tournament
- oc
- (и ещё 2 )
-
Да, всё так.
-
ивент Unreal Tournament: Resurrection -- Этап #1
Fingercomp ответил в тему Totoro в Ивенты и конкурсы
Завтра будет возможность проверить свою программу на арене. Если кто-то хочет, отпишитесь.- 243 ответа
-
- 1
-
-
- Unreal Tournament
- oc
- (и ещё 2 )
-
Просто Фингер видел не один десяток "программ начинающих программистов", где с оформлением всё жуть-жуть. Это и понятно. И в других прогах сильно не парятся над этим. У меня же всё опрятно, ровно, конфиги есть и т. д. Зайди в соседний топик и глянь, как выглядит. А если не нравится — смени цвета.
- 39 ответов
-
- 2
-
-
- жидкости
- сканирование
-
(и ещё 1 )
Теги:
-
Короче, заказ можно считать выполненным: прогу я написал при непосредственном общении с реквестером. Моё решение не требует дополнительных модов и очень удобно в использовании. И выглядит офигенно.
- 39 ответов
-
- жидкости
- сканирование
-
(и ещё 1 )
Теги:
-
Хей! У меня тут очень крутой пример для либы charts появился. Либа мне нравится невероятно, потому с таким же усердием я решил что-нибудь наваять. Тем более, что @mercurial как раз публиковал заказ на такую прогу. Установка Качаем hpm: http://computercraft.ru/topic/1855-repozitorii-programm-hel/?do=findComment&comment=27287 Ставим: hpm install railtank. Использование К подопытной цистерне из Рейла ставим адаптер, в него пихаем Tank Controller Upgrade (апгрейд контроллера цистерн, что-то типа этого), а потом проводами цепляем к компу. Можно порыться в конфиге /etc/railtank.cfg: настроить количество цистерн для показа, интервал обновления графиков, выставить свои цвета интерфейсу. А потом запускаем прогу: railtank. Вуаля. Чтобы выйти, нажмите Ctrl + C (без альта!). Программа автоматически примониторит ещё цистерну при её подключении и уберёт из мониторинга при отключении. Так что не парьтесь :P Ну и ссылка на пакет: https://hel.fomalhaut.me/#packages/railtank
-
ивент Unreal Tournament: Resurrection -- Этап #1
Fingercomp ответил в тему Totoro в Ивенты и конкурсы
То, что я не публикую посты с обновлением каждый день, не значит, что ивент умер. Люди пишут программы, UT будет на этой неделе. Переносить больше не буду.- 243 ответа
-
- Unreal Tournament
- oc
- (и ещё 2 )
-
Поставь OpenPeripherals. Он добавляет компонент для вальвы.
- 39 ответов
-
- 1
-
-
- жидкости
- сканирование
-
(и ещё 1 )
Теги:
-
Подключать просто надо к Valv'ам, в имени конмпонента же написано. Ставить танк, вниз цепляешь валв, к нему адаптер и кабелями к компу.
- 39 ответов
-
- жидкости
- сканирование
-
(и ещё 1 )
Теги:
-
Вот такая красота теперь возможна благодаря моей новой либе charts. Пока что имеем гистограммчики и прогрессбары. У обоих точность до 1/8 символа. Документация Контейнер Сидит в charts.Container. Его задача: хранить базовые параметры типа цвета по умолчанию, самого графика. Собственно, это абстракция над объектами графика. Атрибуты Container.gpu — прокси видеокарты, на которой рисовать график. Container.fg — цвет "текста" по умолчанию. Container.bg — цвет фона по умолчанию. Container.x и Container.y — это координаты левого верхнего угла контейнера. Container.payloadX, Container.payloadY — координаты графика относительно левого верхнего угла контейнера. Пока лучше не трогать, потом что-нибудь с ними придумаю. Container.width, Container.height — ширина и высота, соответственно, графика. Container.payload — сам объект графика. Методы Container:draw() — рисует график. Так как сам по себе бесполезен, пример кода здесь не нужен. Стороны Спит и живёт в charts.sides. Это таблица, которая содержит четыре значения: sides.TOP, sides.BOTTOM, sides.LEFT, sides.RIGHT. Требуется для настройки графиков. Гистограмма Очень прикольная вещь. Рисует вертикальные столбцы шириной в 1 символ с высотой в соответствии с числовым значением из таблицы. Атрибуты Histogram.values — таблица значений гистограммы. Histogram.align — указывает, как брать значения гистограммы. Если здесь выставить sides.LEFT, то будут браться первые w (по ширине контейнера) значений из таблицы и рисоваться в том же порядке. Если же тут будет sides.RIGHT, то будут браться последние w значений из таблицы и рисоваться в том же порядке, но справа. Короче, проще взять и попробовать. Histogram.colorFunc — это задаваемая функция для рассчёта значений цвета столбца и фона в зависимости. Возвращает цвет столбца и цвет фона. Принимает следующие параметры, по порядку: Индекс элемента в таблице значений. Нормализованное значение (от нуля до единицы), или, если хотите, отношение значения к максимальному. Само значение. Объект гистограммы. Объект контейнера. Histogram.min — самое что ни на есть минимальнейшее возможное значение гистограммы. Все значения должны быть больше или равны этому. Histogram.max — самое что ни на есть максимальнейшее возможное значение гистограммы. Все значения должны быть меньше или равны этому. Histogram.level.y — это высота уровня голограммы. По умолчанию равно нулю, так что все столбцы растут вверх, но можно поднять его. Значение ≥ 1 поднимает уровень на соответствующее число символов. Значение в полуинтервале [0; 1) задают нормализованную высоту уровня (например, 0.5 — это посередине гистограммы). Значения меньше нуля отсчитывают уровень с самой верхней позиции, где -1 — это самая высокая точка. Histogram.level.value — это число, значения ниже которого будут отображаться столбиками, направленными вниз, а значения выше — столбиками, направленными вверх. Примеры кода Прогресс бар Это прогресс бар. Атрибуты ProgressBar.value — числовое значение прогрессбара. ProgressBar.max — максимальное значение прогрессбара. ProgressBar.min — минимальное значение прогрессбара. ProgressBar.direction — направление прогрессбара. Туда будет стремиться полоска, с этой стороны будет конец прогрессбара. Не запутайтесь: это не сторона начала. ProgressBar.colorFunc — функция, возвращающая цвет полоски и фона прогрессбара для переданных аргументов: Самое значение прогрессбара. Нормализованное значение. Объект прогрессбара. Объект контейнера. Пример кода Это были два вида графического представления данных, самых распространённых в программах для OpenComputers. Так что теперь вам, слава коду, не придётся больше никогда писать опять свои ловисипеды для этого. Либу, однако, я продолжу допиливать. У меня есть ещё несколько идей насчёт очень крутых фич, которые я как-нибудь потом реализую. Установка Установите hpm: http://computercraft.ru/topic/1855-repozitorii-programm-hel/?do=findComment&comment=27287 Поставьте пакет с помощью данной команды: hpm install charts.
- 4 ответа
-
- 7
-
-
- OpenComputers
- OC
- (и ещё 2 )
-
Обновление hpm до версии 1.1.0 с кучей очень и очень нужных фич! Теперь для установки пакета OpenPrograms нужно писать не install oppm:package, а oppm:install package. То же с remove. Это позволило мне существенно упросить код. Вместо save теперь нужно давать ключик -s к install. Добавлена команда hel:upgrade, так что теперь обновляться проще простого! Добавлены команды hel:search и oppm:search. Без аргументов принтят список всех пакетов, аргументы фильтруют его. Добавлена команда oppm:info по типу hel:info. Исправлена фигня с планами, возникавшая при передаче нескольких пакетов для установки или удаления. При переустановке пакета зависимые от него пакеты теперь не удаляются. Билды хпма теперь минифицируются отличнейшей прогой LuaMinify. Вместо 192 килобайт кода клиент теперь весит всего лишь 75. Минификатор охренненейший: он даже имена переменных минифицирует. Гораздо круче Crunch или, уж тем более, минификатора, торчащего в меню. Рекомендую. Теперь планы изменений подтверждаются автоматически, только если изменений нет вообще. Пофикшено несколько других багов. Устанавливать с помощью команды в посте #4. Потом можно будет просто прописывать hpm upgrade.
- 51 ответ
-
- 3
-
-
- hpm
- repository
- (и ещё 8 )
-
ивент Unreal Tournament: Resurrection -- Этап #1
Fingercomp ответил в тему Totoro в Ивенты и конкурсы
Комплектация продумана полностью. Забрать монетку, выплюнуть в сундук и ориентироваться можно без каких-либо дополнительных запчастей.- 243 ответа
-
- Unreal Tournament
- oc
- (и ещё 2 )
