Asior
-
Публикации
570 -
Зарегистрирован
-
Посещение
-
Победитель дней
70
Сообщения, опубликованные пользователем Asior
-
-
20.02.2019 в 04:47, Doob сказал:Странно, у меня личные сообщения нормально обрабатываются.
Попробуй отловить откуда какое сообщение пришло и кому придется библиотеке отвечать. Она никак не разделяет личное сообщение или из канала.
20.02.2019 в 04:47, Doob сказал:Флаг для логирования можно тоже сунуть в конфиг.
Конфиг следует сделать в виде lua-таблицы - быстрей и меньше кода.
Флаг сунул, в конфиги тоже внес опцию по логированию.
Конфиги переделал, спасибо @Fingercomp и его ответам
Ссылка для установки все та же.
-
Недавно начал писать бота с использованием этой замечательной библиотеки, но к несчастью столкнулся с некоторыми недоработками.
Поэтому решено было доработать библиотеку imodem и вот что из этого получилось:
Обновление для библиотеки imodem- Теперь imodem может обрабатывать личные сообщения (раньше просто игнорил их). Говорим спасибо @Bit
- Добавлена авторизация ника
- Все данные по именам/каналам лежат в файле конфигурации по адресу /etc/imodem.cfg
- Возможен запуск по данным пользователя из Shell
- Добавлено логирование
- Добавлено переподключение если отключится интернет
Итак, поясняю. Немного изменился порядок приема сообщения. Теперь входные данные выглядят так:
modem_message ник_imodem ник_говорящего 0 #канал/ник_imodem сообщение
Если сообщение идет с канала, то указывается канал, если личное сообщение, то ник imodem.
Чтобы не лазить по библиотеке, ради изменения ника, канала, сервера было решено перенести все эти данные в файл конфигурации.
Библиотека автоматически проверяет файл конфигурации, и в случае если его не найдет, самостоятельно его восстановит.
Данные хранятся в следующем виде:nick = "Тут ник" pass = "Пароль (0)" server = "irc.esper.net:6667" channel = "#канал" log = "Записывать логи (1/0)"
Чтобы не заморачиваться с настройкой ника/канала/сервера/логов можно передать все эти данные одной командой:imodem [server[:port]] <nickname> <password> <channel> <save(1/0)> <log(1/0)>
Ну а если все настроено и вас устраивает, можете напрямую imodem запускать и по сохраненным данным все запустится.
Логирование сделано больше для отладки, логи можно найти по адресу /IMODEMLOG.txt
Для того чтобы imodem мог переподключаться, через каждые 60 секунд оправляется пингование на сервер. И если в течении 30 секунд не придет ответ, imodem автоматически переподключится. Это лучше чем словить кратковременный сбой в доступе к интернету и потом вручную перезагружать библиотеку.
Скачать библиотеку можно по команде
pastebin get -f MvR7FTGS /lib/imodem.luaВыражаю благодарность за помощь в улучшении @Bit, @Doob, @vladimir, @Fingercomp
-
5
-
-
Почему же нет? На главной странице есть литература по которой можно выучиться. Может маленько устарела, но азы то изучить вполне пойдет. Если любишь обзоры где все подробно разжевано, то есть канал @1Ridav Там правда по ComputerCraft но там разница в работе не сильно большая, Lua разжеван до основания, я собственно по тем видео и учился. А так, рекомендую заглядывать в раздел Гайды, обзоры по модам там много чего интересного можно найти. Ну и советую погуглить файлы справки по lua, справочник зачастую удобнее чем шараханье по сайту в попытках найти нужную тебе функцию. У меня он называется Lua 5.3.chm с переводом, если не найдете, кричите, скину. И кстати lua попроще крестов будет.
-
2
-
-
Ну может так и удобнее для вас будет. Но попробуйте на одном роботе, как я в GIF показывал. Уверен вы будете приятно удивлены скоростью работы. Всетаки лучше 1 паузу сделать, чем ожидать пока роботы синхронизируют свою работу.
--https://i.imgur.com/9aw0a6E.gifv --блоки руды сверху в сундук закидывать --сыпуху вниз будет скидывать --перед роботом не забудьте поставить подставку, так будет точнее ставить local r = require('robot') while true do r.select(1) if r.suckUp(64) then local rep = r.count(1) for i=1,rep do r.place() while not r.swing() do os.sleep(0) end end for i=1, r.inventorySize() do if r.count(i) > 0 then r.select(i) r.dropDown(64) end end else os.sleep(15) end end
П.с. Удивительно но я же свою программу щас использую...
-
2
-
-
11 часов назад, Alexhotice сказал:нет, один робот ставит руду, второй ломает эту руду буром с удачей. Робот у которого у меня возник вопрос ломает
Зачем так сложно то? С такой задачей может справиться робот в одиночку. Как я считаю тут надо 2 сундука. Например сверху будет руда, а вниз будет сбрасывать осколки.
Алгоритм работы прост до безобразия.
- Засосать 1 стак руды в 1 слот
- Поставить блок руды, срубить его
- Повторять пока не закончится руда
- Очистить весь инвентарь
- (опционально) повернуться направо/налево выполнить обслуживание бура, вернуться на исходную
Вроде и все. Даже робота 1 уровня хватит на такую неказистую работу.
Вот пожалуйста набросал за пару минут, правда без заправки.
-
1
-
Давай, порази меня сообщением что это опять ОС 1.7.3
-
1
-
-
5 часов назад, HeroBrine1st сказал:(К сожалению, пока является статичным элементом)
Так сделай дырку посередине и фон закрашивай там места как понимаю на 3 символа хватит. Хотя так тоже неплохо выглядит
-
Легко и просто. Я правда не знаю что за сканер такой хочешь использовать, поэтому вот тебе алгоритм.
- Сканировать пространство заданного радиуса
- Убрать из результатов скана список людей которым разрешено у тебя находиться (если они попали в скан)
- Подсчитать количество оставшихся игроков, если их > 0 то активировать редстоун
- Катушки к бою на 10 секунд!
- Отрубить редстоун
- Выждать 1 секунду для перезарядки
- Повторить пункт 1 до бесконечности
Вроде ничего не забыл. Тут будет парочка циклов, да и все собственно.
Узнайте какие команды идут для сканирования. Какой результат там выводится. Так как или у вас ошибка в написании названия сканера или это какой-то новый аддон, про который я не слышал
-
А чего там разбирать то? Меняй print на gpu.set(). Но перед этим указывай данные по изменению цвета через setForeground(). Да и все. Остальное, оформление сам подбирай.
-
5 минут назад, Alexhotice сказал:а как тут цвет можно установить?
Не пробовал немного ознакомиться с документацией? Ссылка
Тебе надо смотреть в сторону GPU
-
20 часов назад, eu_tomat сказал:@Asior как тебе удалось вставить спойлер? Кнопка в редакторе отсутствует.
Ну так по старинке же тупо вбиваешь
[spoiler] много текста [/spoiler]и он нормально вставляется. Правда не видно его пока текст редактируешь. Собственно я даже не подозревал что тут когда-то были кнопки добавляющие спойлеры
-
1
-
-
9 минут назад, Alexhotice сказал:выбивает что файл не найден
Ясен пень не найден. Тебе дали голый кусок кода который сработает только через lua. Как создать программу и подключить библиотеки думаю догадаешься.
-
Почитай вначале кто-то писал как передать сигнал во все стороны. А вообще можно пустить цикл перебором от 0 до 5 где переменой будет сторона выхода сигнала. Хотя я такое не советую делать, переключение редстоуна занимает около 1 секунды
-
Хз чего там намудрили, тут все крайне просто.
local event = require('event')
local com = require('component')
local sensor = com.motion_sensor
local sides = require('sides')
local red = com.list('redstone')
local monsterlist = {"Spider", "Zombie", "Creeper", "Skeleton", "Enderman", "Sheep", "Cow", "Chicken"}local function monsterScan(name)
for i=1, #monsterlist do
if name == monsterlist then return false end
end
return true
end
while true do
local _, address, x, y, z, name = event.pull('motion')
if monsterScan(name) then
print(name)
for address, _ in pairs(red) do
com.invoke(address, "setOutput", sides.front, 15)
end
os.sleep(4)
for address, _ in pairs(red) do
com.invoke(address, "setOutput", sides.front, 0)
end
end
end-
1
-
-
1 час назад, Alexhotice сказал:или invoke заменить на red?
Смысла нет. Оставляй так. Поясню часть ошибок которые я увидел в коде.
- Для начала, зачем ты объявляешь redstone local redstone = com.redstone если у тебя судя по всему там используется целая связка контроллеров красного камня? Такое пойдет если используется только 1 контроллер.
- Далее, for address, _ in pairs(redstone) do Это что за зверь такой? Смысл мусолить один и тот же контроллер? Если хотел сделать перебор всех контроллеров, то объяви их хотя бы так local red = component.list('redstone') и потом через pairs(red) все адреса перебирай.
- redstone.setOutput(sides.front, 0) тут судя по всему ошибка или недописка. Подумай сам, если ты включил ВСЕ предположим 5 контроллеров, то потом сколько надо выключить?
-
Вот посмотри на все поддерживаемые символы. http://computercraft.ru/topic/1962-shrift-v-oc/
А что собственно мешает отрисовать ту же батарейку в 2-3 символа. Сделай её лежачей да и все.
-
2
-
-
Гляди сюда, там образец обращения к МЭ https://pastebin.com/pXunJUE2.
А так надо как я понял обратиться следующим образом
me.exportItem(<Имя предмета>, <направление>, <скорее всего кол-во перемещаемых ресурсов>, <в какой слот переместить>)
-
13.01.2019 в 11:54, HeroBrine1st сказал:Хочу найти иконку батареи, да не весь юникод поддерживается(
Шрифт брайля в помощь. Он точно поддерживается
-
Над шифровкой программ давно уже думали. Как вариант это применять какой-то сложный алгиритм преобразования и порциями загружать в оперативку через load. Но всеравно, отледить и дешифровать можно.
-
1
-
-
1 час назад, BrightYC сказал:Это какая-то супер-пупер кирка или что-то другое?
Не поверишь, но это слегка модифицированная программа 2015 года.
-
Билда не будет, можете не заказывать. Сборка стабильная, никаких модификаций пока вносить всеравно не будут. Да и куда еще вносить то, и так майн уже 3 гига памяти кушает, а у многих кто играет техника чуть сложнее калькулятора.
Труб нет, но есть трасвекторы 2 типов, дроны, транспозеры, роботы или на крайняк 4 типа воронок, или раздатчики с импульсными генераторами редстоуна, пространственные сундуки и цисцерны, бочки из тинкерса. Так что автоматизации выше крыши. Почти все моды управляются через Opencomputers, ну кроме магических, но это и понятно.
О каком карьере вы говорите? Ни одному карьеру и не снилось, что может сделать 1 робот. А если хорошо владеете программированием, то можно подчистую вынести весь мир. Недавно вот на сервере тестировал программу, около 15 минут работы робота и чанка уже не существует, а все ресы упакованы красиво в сундучки. Кому интересно попрыгайте по болоту на спавне, там только верхний слой земли остался.
Вот что действительно надо, так это обновить мир Evil, где ресурсы добываются. А то там как кроты прошлись, дырки и вдоль и поперек.
-
3
-
-
Хз чего у вас там не работает. Да они не выкладываются автоматом через НЕИ. Но крафтятся замечательно.
-

TabletOS
в Операционные системы
Опубликовано:
Еще можно виртуальную клавиатуру, чтобы не ставить клаву, коль ОС тут на сенсор рассчитана