Chebuya
-
Публикации
609 -
Зарегистрирован
-
Посещение
-
Победитель дней
72
Сообщения, опубликованные пользователем Chebuya
-
-
3 часа назад, Doob сказал:2. Да. При износе кирки робот едет на базу и ищет в контейнере другую такую же, но с меньшим показателем износа.
Ага. А если кирка сломается во время раскопки пути? Или странные ломания блоков при старте калибруют всё это дело и программа всё это рассчитывает?
-
-
Еще одно обновление:
Добавлена возможность загрузки модулей с планшета, то есть теперь можно расширять код хоть до полу мегабайта.
Для начала была добавлена сериализация, чтобы таблицы нормально отображались при отправке на планшет:
Скрытый текст
Теперь можно не ограничиваться фантазией и писать сколько угодно(в пределах, разумеется, ограничивается лишь размером оперативной памяти у дрона и планшета)
-
2
-
1
-
-
Небольшое обновление:
Доделал интерпретатор, теперь почти неотличим от оригинала. Теперь не нужно писать return чтобы вернуть значение, так же добавил возможность прекратить код через CTRL+D при исполнении
Скрытый текст
Так же добавил утилиту загрузки по сети. Чтобы загрузить программу на дрона. То есть, можно запустить любую программу командой
net <program_name>
И она сию минуту загрузится на дрон:
Скрытый текст
Установка:
wget https://raw.githubusercontent.com/BrightYC/DRC/master/network-load.lua net.luaТак же, в интерпретаторе есть функции:
- update() - обновляет данные на планшете
- print(...) - помогает отправить данные на планшет в работающем коде
- sleep([timeout: number]) - сон он и в африке сон
- pull([timeout: number]): name, ... - ожидает какой-либо сигнал не ломая связь
- move(dx: number, dy: number, dz: number, wait: number) - блокирующий drone.move
- distance(): number - возвращает расстояние до планшета, если ответ не пришёл в течении 3 секунд - возвращает 0
- moveToUser() - перемещает дрон к планшету
- slot([slot:number]) - безопасно выбирает слот(К примеру - в дроне всего 4 слота, но slot(5) выделит самый последний и не выкинет ошибку)
- clear - очищает терминал
-
7
-
9 часов назад, Alex сказал:клавиши лучше назначить так (по смыслу рядом или от первой буквы того, что они делают ):
h (home) домойc (колор) цвет
u (update)- обновить данные какие-то(а лучше все сразу)
t / y - взять/положитьq - вых
i - инвентарь
wasd - движение
...
и тп.
Так проще будет запомнить.
Запомнить может и проще, но тянуть руки на другую часть клавиатуры-перебор. Основные функции постарался уместить рядом с WASD,
чтобы было проще.
-
1 час назад, Doob сказал:Например, E не возвращает дрона домой.
упс, у меня клавиши на клавиатуре перепутаны=d
1 час назад, Doob сказал:Значит, срабатывает в исключительных случаях, когда дрон не сдвигается на достаточное расстояние для ошибки при округлении. У меня получилось воспроизвести только два раза, оба раза лечилось перезагрузкой мира.
Я не смог отловить за всё время использования на 2 разных версиях игры на разных картах такие странные баги.
P.S Подсказку починил, возвращение домой на 'T', а 'E' - обновить данные
-
15 часов назад, Doob сказал:Нет, если дрон и передатчик находятся на оси Z, то при команде на возвращение, дрон входит в бесконечный цикл пингования.
Еще в подсказке некоторые пункты перепутаны.
Проверил, всё работает штатно.
А в подсказке что напутано? Если ты про видео - там действительно напутано.
P.S Я вставал прямо по оси Z, дрон спокойно прилетал домой, почему он должен входить в бесконечный цикл?
UPD: Не забывай про то, что по стандарту у модема 20% мощности. Возможно ты слишком далеко отлетел, дрон просто не может принять сообщение, увеличь мощность модема. Если не сложно, можешь поподробнее объяснить как и где это происходит?
-
1 час назад, whiskas сказал:вот бы дронам чанклодер)
Ты про возвращение то? Даа, без чанклодера тоскливо. 100-150 блоков и всё, дрон не работает.
-
1
-
-
-
@Doob Специально для тебя записал видео с тестом:
Скрытый текст
P.S Даже на расстоянии в 400 блоков точность отменная. -
Может мне кто-то объяснить, почему иногда tablet.getYaw() выдаёт отрицательный значения, а иногда - положительные. Что за ерунда?
P.S Уже не важно, связано было с определением стороны взгляда
-
Вот односимвольный режим, если спутало 'Увеличить/Уменьшить размер экрана'
Скрытый текст
-
2
-
-
7 часов назад, Doob сказал:Какая точность при наведении на игрока? Будет ли тупить, если игрок стоит строго на оси Z?
Помню, надо было делать двойную проверку при триангуляции, либо добавлять еще точки для замера, чтобы дрон не пролетал мимо.
Всё нормально, если расстояние до игрока изменилось с момента старта - всё начинается заново, так что дрон не промахивается, даже на огромных расстояниях погрешность пару блоков.
6 часов назад, eu_tomat сказал:@BrightYC А что делает знак подчёркивания в этой строке function ds()sn("PING")_,dtu=lm(3)return dtu or 0 end кода дрона?
Рекурсию в функции gtu предлагаю заменить на цикл repeat-until
_, dtu пропускает первый аргумент со строкой модема, в lm() видно код. А что не так с рекурсией? Экономит место, по крайней мере я проблемы не вижу.
return dt[3],dt[5],dt[6],dt[7],dt[8],dt[9]
6 часов назад, eu_tomat сказал:@BrightYC Интерфейс выглядит приятно. Но для полного счастья не хватает односимвольного режима экрана для максимально открытого обзора летающего дрона.
Так он есть же, я не обновил программу? Возможно я немного поторопился с заливанием программы.
4 часа назад, serafim сказал:@BrightYC простенький код в довесок к твоему
local full = false local x_max, y_max = gpu.maxResolution() [44] = function() full = not full if full then gpu.setResolution(1, 1) else gpu.setResolution(x_max,y_max) info() end end, -- 44 = кнопка Z
Ну, кнопка 'z' уже занята, да и односимвольный режим включается по кнопке 'm', но спасибо. Вот кстати код, если кто не заметил:
[50] = function() if not stuff.hide then stuff.hide = true event.cancel(battery_timer) event.cancel(clock_timer) event.cancel(data_timer) gpu.setBackground(color.black) gpu.set(1, 1, " ") gpu.setResolution(1, 1) else stuff.hide = false battery_timer = event.timer(5, battery, math.huge) clock_timer = event.timer(60, clock, math.huge) data_timer = event.timer(20, update_data, math.huge) gpu.setResolution(80, 25) draw_gui() first_launch() end end
Длинновато, да.
-
Всем привет.
Представляю вам программу для почти полного управления дроном.
Но сначала короткая предыстория:
Скрытый текстИзучение этого мода я начал с дронов, а вернее - гриф дронами, ещё на версии 1.5. Тогда я использовал программу товарища @Litvinov, и она казалась мне очень удобная. Вот она, если что:
На самом деле и моя программа
нагло скопированавдохновлена ей(Было ещё пару тем, которые помогли с идеями), поэтому в ней можно найти много чего общего(Программа больше похожа на обновлённую версию программы @Litvinov'а)Из возможностей отмечу следующее:
- Перемещение по сторонам света без улучшения "Навигация"(Спасибо версии OC 1.7.3)
- Возвращение дрона к управляющему планшету(Компьютеру)
- Удалённый интерпретатор
- Привязка дрона к управляющему планшету(Почти полная невозможность угона)
-
КрасивыйДинамичный интерфейс(Отображение заряда планшета, время, заряд дрона, уровень сигнала)
Остальные функции можно найти в программе или в скриншотах.
Системные требования:
- Планшет с OpenOS и видеокартой 2 уровня, беспроводной картой любого уровня и интернет-платой
- Дрон с беспроводной картой любого уровня (остальное не так важно, это опционально)
Установка:
На планшет (Для обладателей интернет-карт):
wget https://raw.githubusercontent.com/BrightYC/DRC/master/tablet.lua drc.luaДля дрона (Для обладателей интернет карт):
wget https://raw.githubusercontent.com/BrightYC/DRC/master/drone.lua drc-flash.lua && flash -q drc-flash.lua drc.lua(Код без минификации: https://raw.githubusercontent.com/BrightYC/DRC/master/non-minify-drone.lua)
После вынимаем биос и вставляем в дрона.Первый запуск:
Первый запуск сопровождается привязкой дрона к порту(Порт можно увидеть открыв дрона) и адресу беспроводной карты. Из-за этого возможность угнать дрона стремится к нулю, так как для первичной настройки нужно стоять не дальше 5 блоков от дрона.Пишем:
drc <порт дрона>После этого дрона невозможно угнать, если рядом никого не было и он не мог подслушать сообщение(Перезагрузка привязку не ломает)
Пара скриншотов:
Скрытый текст
Видео:
Скрытый текст
P.S Процент справа от шкалы сигнала обозначает не силу сигнала, а мощность передатчиков на планшете с дроном(поэтому для корректной работы нужны одинаковые карты беспроводной сети)
На этом всё, дань уважения дронам выполнена, теперь могу спать спокойно.-
12
-
1
-
1 час назад, Alex сказал:...
Да, в майне ограничение на кол-во tcp ограничений. Где-то 4 или 5 шт вроде, нужно полностью дисконнект делать
-
Только что, Alex сказал:то есть получается для надежной связи с роботом, который где-то катается и получает инфу какую-то и команды, этот робот должен периодически сам переподключаться на канал? Иначе он рискует оказаться вне связи?
Абсолютно верно =d
-
Только что, Totoro сказал:Если, например, глюкануло, и произошел дисконнект - надо будет переподписаться.
Поэтому нужны пинги, ибо не очень ясно, если произошёл глюк
-
5 часов назад, Hikooshi сказал:хотя меня больше интересует вопрос, как люди делают фильтр неправильных ссылок, ведь result в этих случаях будет true
Как вообще компьютер может знать, что ссылка "неправильная?"
Он устанавливает соединение, для него эта ссылка уже правильная, поэтому и возвращает true.
-
Только что, AtomicScience сказал:Сейчас крайне странно выдать какую-то ересь, а потом подкрепить её "постиронией".
Практика в майне - рес, для тебя это развлечение.
Тут нет никакой практики, чистая теория. Этим никто заниматься не будет, так как все сложные проекты так и были похоронены, истории свойственно повторяться.
P.S Играй в сетевого программиста, против ничего не имею, в моём понимании майн - картошка и двери, для тебя - сетевое программирование. -
3 минуты назад, AtomicScience сказал:Вот именно - вы боитесь поднять голову выше банального пинг-понга пакетами между платками, а ваши низменные интересы ограничены фермами пшенца и картошечки на дронах и прочей ерунде уровня третьего класса церковно-приходской IT-школы.
Когда на AtomicWars (дай бог ему здоровья и стабильной работы) вы задумаетесь над чем-то более глобальным, чем пароли на двери и бурение шахт друг-другу... на участках, вы так или иначе столкнетесь с необходимостью соединить ваши компьютеры, дронов и роботов в сеть. И именно тогда вы вспомните старину Атомика, который, словно Прометей, принес вам то, что изменит вашу жизнь навсегда.
Запомните этот твитМои интересы в практической пользе, и ферма картошки - не исключение=d
Чем-то глобальным? Всякие OpenNet'ы и дзены не пользовались популярностью, так и весь майн ограничивается "картошкой".
Это майнкрафт, не нужно слишком переусложнять абстракциями. Fingercomp вообще забросил UT3 потому что начал делать Wonderful, потому что ему нужно было подключать 4 монитора с сервера =d
Зачем всё переусложнять? Почему нельзя поставить 4 сервера и подключить 4 монитора?
P.S Я, например, никогда не понимал в чём смысл той же MineOS. Безусловно, труд проделан титанический, никто и не спорит. Просто люди занимаются тем, что им приносит удовольствие, и я не против этого.P.P.S Это я к тому, что ты заявляешь OCNS обязан изменить нашу жизнь, поэтому и спрашиваю действительно практический пример, а не в фантазиях говорить о стаях дронах перемещающих гигабайты информации.
-
5 минут назад, Totoro сказал:...
Зачем? Сами карты в игре уже предоставляют нормальный интерфейс, а всякими дронами и редстоунами здесь еще и не пахнет.
Просто не имею понятия, где действительно применять на практике. Только побаловаться. Хотя, это игра, тут развлекаются как хотят.
-
Зачем это всё нужно если обычно OC ограничивается обычной простой пересылкой сообщения по модему? Кто это будет использовать?
P.S Это не в стиле "Зачем это нужно", просто объясните, как это применить на практике.
-
Небольшой порт под самого дешевого робота (в начале игры дрона делать дорого) и работа по лкм/пкм
У робота нужно иметь инвентарь, процессор и память, по желанию солнечная панель.
https://raw.githubusercontent.com/BrightYC/Other/master/robofarm.lua
-
13 минуты назад, GNT сказал:но как запустить прогу на всех компах
Какую прогу? Для чего это нужно?
P.S Пишешь программу, которая "сканирует" все компьютеры с интернет-картой, и передаёт всем данные.

Перевод секунд в формат часов
в Примеры
Опубликовано:
Кек. Не нужно делать то, что уже написано=D