Chebuya 415 Опубликовано: 4 августа, 2018 (изменено) Установка: Планшет-https://pastebin.com/ix7g8xjt Робот-https://pastebin.com/G74a13ev Создаём файл со скрытым расширением(Перед названием файла прописываем точку) Редактируем файл .shrc и вписываем туда название вашего файла(К примеру .robot) Видео: https://youtu.be/PKBDCgEQeH8 UPD:Забыл сказать,если в программе которая работает как основная нету os.sleep или какого-нибудь таймера простоя - программа будет работать только после завершения. Изменено 27 октября, 2018 пользователем BrightYC 5 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 4 августа, 2018 Офигенно, поздравляю с первой программой. Теперь парочку советов и идей. Фоновая программа это конечно круто, но роботом то нам хочется управлять секретно. Поэтому добавь проверку на то, есть ли модем на роботе, тогда это будет своего рода скрытый вирус. Дальше, добавь передачу данных инвентаря, чтобы видеть, чего там сперли. Также добавь опцию смены инструмента с выбором слота для его замены Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 4 августа, 2018 (изменено) 04.08.2018 в 09:14, Asior сказал: Офигенно, поздравляю с первой программой. Теперь парочку советов и идей. Фоновая программа это конечно круто, но роботом то нам хочется управлять секретно. Поэтому добавь проверку на то, есть ли модем на роботе, тогда это будет своего рода скрытый вирус. Дальше, добавь передачу данных инвентаря, чтобы видеть, чего там сперли. Также добавь опцию смены инструмента с выбором слота для его замены Да,спасибо Изменено 27 октября, 2018 пользователем BrightYC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 4 августа, 2018 (изменено) роботом то нам хочется управлять секретно. Хм,а разве я и так им не управляю секретно?Никаких команд в терминале нет,ничего вроде нет,переменных глобальных тоже нет.Всё скрытно,если игрок не какой-нибудь задрот и не будет проверять .shrc UPD:Дошло,чтобы не было никаких ошибок с работой,сейчас запилю) Изменено 4 августа, 2018 пользователем BrightYC 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 4 августа, 2018 (изменено) И еще одно улучшение, добавь в начало программы переменную содержащую номер порта. Это позволит управлять конкретным роботом, а то если программа установлена на 2-более роботах, то начинается парад роботов на 400 метров от оператора. Ну и в программу для планшета так-же добавь возможность запуска с указанным портом, думаю разберешься как это сделать. > Tablet.lua 45 И еще одна фишка, почитай вот эту тему, Как включить компьютер если заняты руки можно добавить разрешение на удаленный запуск.Так-же совсем забыли про редстоун, а как робот будет хозяина то запускать в дом?Вообще, как я думаю надо собрать своего рода универсальную программу, тоесть в роботе будет полная база по подключению тех или иных устройств, а на планшете доступ к ним. Например, в роботе есть красная плата, он передает данные на планшет, что такая карта есть и на планшете появляются опции разрешающие работу с ней. Или наоборот, красной платы нет, значит и опции для работы с ней вообще не нужны, следовательно не показываем их пользователю и все.Это конечно сложно, придется пересмотреть всю систему приема/передачи данных, но в разы удобнее.Далее рекомендую ознакомиться с темами:http://computercraft.ru/topic/982-biblioteka-dlia-raboty-s-mobilnym-mostom-klien/http://computercraft.ru/topic/2028-internet-modem-dlia-openos-cherez-irc/Это должно помочь в управлении роботом не только через wifi.Может добавить еще опцию управления роботом через шелл? Вот один из вариантов реализации такогоhttp://computercraft.ru/topic/744-planshetnoe-upravlenie-robotom/Или вот, можно вытащить из управления дроном, там вообще чисто на шелле управлениеhttps://hastebin.com/etulijoyox.csP.S. Не обновляй код на пастебине, просто под описанием темы добавь список версий, в спойлеры внеси, что добавил/пофиксил. Так будет интереснее наблюдать за прогрессом развития программы. Изменено 4 августа, 2018 пользователем Asior 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 4 августа, 2018 Мои впечатления от кода: Отступы расставлены как попало, что затрудняет чтение кода и поиск ошибок. Функции drop(), dropUp() и dropDown() вряд ли работают так как это было задумано: local function drop() for i = 1, size do robot.drop() robot.select(i) end robot.select(i) robot.drop() robot.select(1) endБессмысленно пищать динамиком о недостатке энергии при удаленном управлении: if energy <= 1500 then computer.beep() endНужно сообщать эту информацию на планшет, а уже он сможет издавать звук или сигнализировать о проблеме иным путём. Не ясно, что делает эта одиноко стоящая конструкция: math.floor(energy) П.с пока не умею пользоваться таблицами,но кажется уже понял как избавиться от куча if и elseifДлинная конструкция типа этой: if code == 17 then robot.forward() elseif code == 30 then robot.turnLeft() elseif code == 32 then robot.turnRight() ... перемещается в таблицу примерно таким образом: local cmd = { [17] = robot.forward, [32] = robot.turnRight, ... } ... if cmd[code] then cmd[code]() end Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 4 августа, 2018 (изменено) Мои впечатления от кода: Отступы расставлены как попало, что затрудняет чтение кода и поиск ошибок. Функции drop(), dropUp() и dropDown() вряд ли работают так как это было задумано:Бессмысленно пищать динамиком о недостатке энергии при удаленном управлении: if energy <= 1500 then computer.beep() end Упс,я у себя этот код обновил,а на пастебине-нет. Всё остальное-да,спасибо math.floor округляет,но это я делал не для этого.Тоже забыл Изменено 5 августа, 2018 пользователем Alex Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 4 августа, 2018 И зачем управление с шелла? А затем, что все все прям компоненты предусмотреть в своей программе не сможешь, там хоть бы основные прописать. А через шелл можно запустить все незадокументированные в программу модули робота, например тот же генератор энергии или чатбокс запустить. Или радар, если он стоит, чтобы потихому осмотреться есть рядом кто или как. 1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
eu_tomat 2 154 Опубликовано: 4 августа, 2018 А затем, что все все прям компоненты предусмотреть в своей программе не сможешь, там хоть бы основные прописать. А через шелл можно запустить все незадокументированные в программу модули робота, например тот же генератор энергии или чатбокс запустить. Или радар, если он стоит, чтобы потихому осмотреться есть рядом кто или как.Да. Во-первых, все случаи предусмотреть невозможно. Во-вторых, чтобы вызывать меньше подозрений, программа изначально должна занимать минимум памяти. Поэтому нужны всего четыре базовые команды: 1) безопасно выполнить принятый код и отослать результат на пульт; 2) добавить принятый код как постоянную команду с назначенным номером; 3) удалить команду с определенным номером или сразу все для очистки памяти; 4) безопасно выполнить команду с определенным номером (что отчасти реализовано) и отослать результат выполнения на пульт. А можно вообще обойтись только первым пунктом. Помнится, форумчане даже соревновались в написании наикомпактнейшего загрузчика кода: http://computercraft.ru/topic/833-bios-net-dlia-tcentralizovannogo-upravleniia-setiu-kont/ Он, конечно, не в фоне работал, но тут важен принцип функционирования. 2 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 5 августа, 2018 @@Asior Ты говорил что у тебя на робокрафте были роботы заражённые подобной программой.Если не секрет-как работала кнопка "ямка вместо дома" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 5 августа, 2018 кнопка "ямка вместо дома" код программы загружался через шелл и дальше робот пер крушить все и складывать в сундук, ну что за приватом. Как я уже говорил "ямка вместо дома" не запускалась, она так и осталась в планах ушедшего в небытиё сервера. Хотя в сингле все работало как надо. Так вот,у меня дилемма,что делать если нет модема и интернет карты? Добавляй туннельную. Но уже украсть робота не выйдет, карты то делаются парными, а я как-то не уверен что игрок сам отдаст её тебе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 5 августа, 2018 (изменено) 05.08.2018 в 09:04, Asior сказал: код программы загружался через шелл и дальше робот пер крушить все и складывать в сундук, ну что за приватом. Как я уже говорил "ямка вместо дома" не запускалась, она так и осталась в планах ушедшего в небытиё сервера. Хотя в сингле все работало как надо. Добавляй туннельную. Но уже украсть робота не выйдет, карты то делаются парными, а я как-то не уверен что игрок сам отдаст её тебе. Как он определял где дом?Мне интересен алгоритм того как он ломал всё,или там по аналогии с карьером? Изменено 27 октября, 2018 пользователем BrightYC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 6 августа, 2018 (изменено) код программы загружался через шелл и дальше робот пер крушить все и складывать в сундук, ну что за приватом. Как я уже говорил "ямка вместо дома" не запускалась, она так и осталась в планах ушедшего в небытиё сервера. Хотя в сингле все работало как надо. Добавляй туннельную. Но уже украсть робота не выйдет, карты то делаются парными, а я как-то не уверен что игрок сам отдаст её тебе. Ну,тогда туннельную не буду добавлять.Хотя это самый безопасный метод передачи данных,потому что event.pull(UPD:А вроде и нет..)работает без порта,я пока думаю что с этим можно сделать Изменено 6 августа, 2018 пользователем BrightYC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Asior 586 Опубликовано: 6 августа, 2018 Как он определял где дом?Мне интересен алгоритм того как он ломал всё,или там по аналогии с карьером? Да как карьер он работет. Выведи к крайней угловой точке за приватом, заставь его слопать пару алмазных сундуков и поставить их (чтобы админ не засек тебя по логам), далее разворот и самый базовый карьер с указанием размера ямки, длины и ширины Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 6 августа, 2018 Да как карьер он работет. Выведи к крайней угловой точке за приватом, заставь его слопать пару алмазных сундуков и поставить их (чтобы админ не засек тебя по логам), далее разворот и самый базовый карьер с указанием размера ямки, длины и ширины Хм,ну тогда ладно.Не очень удобно,если честно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Elyn1tex 0 Опубликовано: 7 августа, 2018 Как я понял, программа требует одного запуска, далее просто нужно включать робота после демонтажа? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 7 августа, 2018 (изменено) 07.08.2018 в 10:01, Elyn1tex сказал: Как я понял, программа требует одного запуска, далее просто нужно включать робота после демонтажа? Нет,пока что выполняй то что написано в начале. Изменено 27 октября, 2018 пользователем BrightYC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Chebuya Автор темы 415 Опубликовано: 7 августа, 2018 (изменено) Кстати,где-то видел эмулятор связанной карты,думаю можно попробовать. UPD:Нашёл,возможно буду пробовать после обновления. Изменено 7 августа, 2018 пользователем BrightYC Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
NEO 541 Опубликовано: 9 августа, 2018 нет защиты от перехвата Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
Гость Kartze Опубликовано: 9 августа, 2018 @@BrightYC, так это, сделай проверку по ID модема. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах