Перейти к содержимому

Alex

Администраторы
  • Публикации

    3 168
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем Alex


  1. Участились вопросы относительно, того почему робот из OpenCompeters не наносит дамага игрокам. Отвечаю, эта функция отключена по умолчанию в конфигах мода и ее включать никто не собирается. Почему? Думаю, с Айзеком Азимовым спорить никто не станет. Вот три закона поведения для роботов, впервые сформулированны ним в 1942 году:

    • Робот не может причинить вред человеку или своим бездействием допустить, чтобы человеку был причинён вред.
    • Робот должен повиноваться всем приказам, которые даёт человек, кроме тех случаев, когда эти приказы противоречат Первому Закону.
    • Робот должен заботиться о своей безопасности в той мере, в которой это не противоречит Первому и Второму Законам.
    Читать всю информацию по этим законам.

  2. Ферма дерева уже использует его для поднятия лута. Никакой воды))) Алекс когда ты сможешь помочь мне с фермой резины? а то я с таблицами не очень понял и файлами. Если сможешь проконсультировать давай в четверг. И как то бы поговорить с тобой о развитии игрового мира, я планирую создать город около своей базы (привлечь туда народ) думая разместить рекламу на мониторах спавна и вдоль дорог посодействуешь?

    Ну видишь, а мы думали, как водой смывать падающие саплинги. Магнитик рулит:) Помощь окажу с удовольствием по фабрике резины. Что касается создания центров поселений и сосредоточения цивилизации, я только ЗА. Like Помогу всем, чем смогу.

     

    П.С. Лут подбирается в выбранный слот в радиусе 3-х блоков?


  3. Наверное, я не в тему, потому что хочу поведать другой способ сбора резины, он не связан с компьютерами.

    В ГТ есть такой прекрасный блок с названием crop-harvester, суть его работы заключается в сборе урожая с растений на жёрдочках перед собой.

    Достаточно вывести хорошие параметры генов и можно собирать резину каждые 20 секунд.

    Я когда-то год назад 3 дня пытался вывести мутагенный тростник, который выделяет резину. Получил нервный припадок, сломал все жердочки, взял краник и пошел собирать резину с деревьев.:)


  4. Сегодня 29.07.14 обновился мод ОС. Добавлено: tractor beam upgrade. Оказалось - что это притягивающий луч. Теперь с этим апгрейдом(имеет вид магнитика) ваш робот будет втягивать предметы вокруг себя в радиусе 3-х блоков. Дискеты теперь имеют различные цвета, что очень удобно.

     

    По датчику движения точных данных пока нет, надо тестировать, реагирует на движение живых существ в области прямой видимости. При обнаружении посылает сигнал (событие) motion (координаты и название существа). В крафт входит ЦПУ 2-го уровня.

    Название компонента: motion_sensor

     

    getSensitivity(): number

    Возвращает чувствительность датчика

     

    setSensitivity(value: number): number

    Устанавливает новый порог чувствительности датчика, возвращает старое значение

     

    Я думаю, в связке с катушками тесла из своего домика можно будет сделать неприступную крепость теперь.:) А также реализовать на большом экране интерактивную карту движения всех существ в радиусе у себя в штабе-бункере, и программно включать только нужные катушки.

    • Нравится 1

  5. Это по этому у меня робот испортился а у Феникса сервер пропал?

    Мод еще не обновлялся. Сервер у Феникса кто-то вытащил, скорее всего:). Зашел сегодня в игру - робот мой работает, сервера мои на месте. Хотя мод развивается и фиксится, все может быть, но вряд ли. За месяц игры на сервере 1.6.4 не видел случая пропадания серверов(блоков) из OpenComputerso_O. И что значит "испортился" робот, прокис что-ли:D

  6. Обновление мода OpenComputers до версии 1.3.2:

    Добавлено: блок - датчик движения.

    Добавлено: tractor beam upgrade.

    Добавлено: окрашивание дискет.

    Добавлено: визуализация шрифтов юникода.

    Добавлено: повышен уровень доступа к выключателям

    Добавлено: поддержка Mekanism's power system.

    Добавлено: творческий (креативный) сервер.

    Исправлено: безотказная работа блоков и компьютеров в разных мирах.

    Исправлено: ошибки в LuaJ.

    Исправлено: ошибки, при которой серверные стойки потребляли избыточное количество IC2 энергии.

    Исправлено: роботы не дублируют больше сетевые сообщения.

    Исправлено: некоторые визуальные глюки в GUI.

    Исправлено: баг со звуком флоппи дисков.

    Исправлено: несколько потенциальных крашей.


  7. А зачем это роутеру? Если я решу сделать Craftnet платным, тогда понятно. Но Craftnet платным не будет пока я в нем участвую.

    Может кто нибудь захочет стать провайдером и продавать трафик, тогда пусть делает

    :DLike

     

    Обнаружил неприятную особенность сети rednet. Оказывается символы с кодом больше 127 передаются некорректно. Тоже касается и записи на диск. Это надо учитывать при разработке алгоритма шифрования.

    Zer0Galaxy! Можно, подробнее, пожалуйста, какая версия, мод, сервер, что не так передается? И нет ли таблицы символов под рукой?

  8. Обратите внимание, сообщение передается незашифрованным, но сопровождается подписью, подделать которую невозможно не зная пароля.

    Но ведь Message+H я могу перехватить и отправить от имени отправителя, то есть на его радиочастоте адресату что-то типа MyMessage+H, при этом мне пароль то и не нужен?

  9. А ведь использовать карту как в обычном банкомате проще?или нет?

    Нет! RFID карта просто хранит до 80 символов. Для чего это нужно, пока не понятно. Подойдет для хранения какой-то личной информации и ее считывания и идентификации. Карту можно перезаписывать. Не понятно, как ее выдавать игрокам. Так же ее легко потерять в бою с ким-то крипером. И толку от нее, как от зонтика для рыбки. Она же не шифрует Реднет сообщения:)

     

    А у нас тема просвещена шифрованию и обмену информацией по открытому каналу связи.


  10. Предлагаю продолжить разработку системы безопасной передачи данных.

     

    Я считаю, это вопрос №1 при использовании сети Реднет вообще и покрытия CraftNet в частности. Для тех, кто не в курсе, скажу, что можно перехватить любое сообщение Реднет, а также отправить ложное сообщение получателю, представившись любым отправителем, и идентифицировать подмену можно только по уникальному актуальному пакету, привязанному ко времени, но для этого сообщение нужно зашифровать.

     

    Какие варианты у нас есть?

     

    1. Нужно разобраться с блоком Cryptographic Accelerator. Только он не крафтится чего-то(не жарятся каменные компы для получения чипов), хотя в конфиге крафт разрешил.

     

    Вот официальный источник:

    http://www.computercraft.info/forums2/index.php?/topic/3728-mc-164-cc-158-immibiss-peripherals/

     

    Пример программы:

    http://pastebin.com/kztKdG9U

     

    Но его использовать для черепах нельзя.

     

     

     

    2. Придумать свой алгоритм шифрования, но вопрос генерации и обменом симметричным ключом по открытому каналу без передачи этого самого ключа пока не решен программно.

    Кто не видел, посмотрите алгоритм Диффи-Хеллмана

     

    3. Может как то использовать возможность сети интернет и по нему передать ключи. Но как сказать компьютерам и роботам, что по такому-то адресу лежит ключ. Адрес то можно тоже перехватить. Или сразу создать и удалить (перезатереть) файл на пастебине, например. Пока не соображу, как это сделать.

     

    4. Ну и мой вариант, который придумал вчера. Вроде должно работать, и думаю это довольно надежно будет. Использовать его буду в своей банковской системе, когда человек работает через терминал по радиосети со своим аккаунтом и банковским счетом.

     

    Возле терминала стоит Biometric Lock. Клиент по отпечатку пальца инициализирует процедуру аутентификации, терминал получает ник игрока. Далее терминал просит придумать пароль для регистрации. Пароль хешируется и отправляется на сервер вместе с ником. Если такого игрока нет в базе, создается аккаунт на данного клиента. Аккаунт создан.

     

    Далее выбираем войти в аккаунт, проверяем отпечаток пальца, вводим свой пароль и терминал отправляет на сервер ник и хеш. Если хеши совпали, сервер генерирует случайный ключ шифрования для данной сессии и через командный блок шлет его игроку на мыло в игровом чате. Например так (/mail send AlexCC trtYhhGDFf) Далее игрок вводит полученный ключ и начинается сессия по обмену информацией в зашифрованном виде симметричным ключом.

     

    Ключ умирает при окончании сессии, или выходе игрока из аккаунта. Ключи и пароли в открытом виде нигде вроде не передаются. Костыльный метод конечно, и сгодиться только для администраторских схем, т.к. используется командный блок. Ключи в черепахах-кассирах придется периодически менять вручную, благо к ним в обычном мире запрещен доступ, даже к интерфейсу.

     

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


  11. Компьютерные технологии развиваются стремительными темпами. Спутниковое телевидение, интернет, соц. сети, телефония, электронные платежи, базы данных, роботы и прочее.

    Почему бы нашему Стиву в мире Майнкрафт не идти в ногу со временем.

     

    Например, сидите Вы с девушкой в кафе, отдыхаете, а Вам на мыло, или еще лучше при помощи SMS, приходит сообщение типа:

     

    - Ваш реактор перегрелся и был остановлен!

    - Черепашка закончила копать карьер.

    - В Ваш дом проник воришка с ником Kakashka13

     

    И Вы говорите девушке: " Извини, дорогая, мне нужно черепашек на карьерах переставить. Сейчас вернусь!"o_O:D

     

    Как Вам такой поворот?! Все что Вам нужно, это чтобы ПК в майне при определенных условиях отправил на php скрипт http запрос с двумя переменными, мылом(телефоном) и самим сообщением.

     

    Скрипты мы будем размещать на нашем сайте http://computercraft.ru в специальной папочке.

     

    П.С. Не откажусь от лайка, если вам понравилась идея.

    • Нравится 9

  12. Хмм... Я думаю, что добиться решения недочетов с переходом дат 30-1, 31-1, 29-1 можно добавив 5 дополнительных проверок в механизме проверки выполнения. Механизм вроде должен выглядеть так:

     

    if tonumber(lastlogin)+1==tonumber(getDate()) then

    count=totalDays+1

    giftDaily(player)

    writeAccountData(player, tonumber(getDate()), count)

    elseif tonumber(string.sub(tostring(lastlogin))), 7,8)))==30 and tonumber(string.sub(tostring(getDate(), 7, 7))==1 then

    --заплатка для случая перехода дат с 30 по 1, где длинна номера месяца больше 10(числа вроде 08 tonumber превращает в 8)

    count=totalDays+1

    giftDaily(player)

    writeAccountData(player, tonumber(getDate()), count).......

    Что это?????? Я же написал, как разницу проверять. Скрипт(а точнее комьютер) сам умно вычисляет разницу в астрономических секундах между любыми двумя датами, хоть на столетия вперед и между Днем рождения первого динозавра и полетом Гагарина в космос!!!! То есть компьютер знает календарь:) PHP файл лежит на нашем сайте. Вам нужно только отправить на него http запрос с двумя датами в указаном формате.

     

    Я же написал в 25 посте этой темы. Просто используйте готовую функцию. Секунды разделите на 3600 и потом еще на 24 и округлите вниз, или правильнее наверно взять целую часть, чтобы получить количество целых дней отсутствия.

    days_no_visit , _ = math.modf (tonumber(differenceDates(date0, date1))/3600/24)

    Получите "0", если времени прошло меньше суток, "1" если день и "трошкы" и т.д.

     

    Если days_no_visit

     

    Рука-лицо, честное слово.:)


  13. Нельзя прекращать борьбу, тем более в начале пути. А конкурентов не так и много. Что-то один игрок реализует, что-то другой. Приз будет всем. А сроки все таки условны, не известно, когда реально подадут работы, и подадут ли вообще:)


  14. Я почти написал и понял как решить проблемы с месяцом, предлагаю на 7-ой день с шансом 1/1000 дать квантовый генератор

     

    или 1/10000

     

    а я планирую использовать консоль для настройки... дабы не выключать серв

    и к стате можно выдавать квантовый генератор только если рандомное число от 1 до 1000 будет равно рандомному числу от 1 до 1000 тоесть if random(1,1000) == random(1,1000) then give end

    Прога должна выдавать бонус за регулярные посещения. Рандомые же подарки нереальные, подарки опыта и еще миллион всяких действий в зависимости от прокачки характеристик будут возложены на божество по имени Локи:) А вот выдачу призов к знаменательным датам надо реализовать. Позже выложу требования к программе и за каждую реализованную возможность назначу баллы. Победителем будет тот, кто реализует качественно максимум функционала и наберет соответственно больше всех баллов. Так что не брезгуйте ни менюшками, ни обработкой ошибок, ни логированием и прочим. Вот так вот:) Так же готовая и отлаженная программа будет помещена в последствии в зал славы.


  15. А победитель будет объявлен по функционалу или по скорости написания?

    По функционалу, конечно! Работы будут рассмотрены только после конца срока написания. До этого можете их даже не выкладывать.

     

    ... а вот фикс с 30 по первое число нет.

    Что касается определения дат. На нашем сайте был размещен PHP скрипт, который возвращает разницу между двумя датами в секундах!

     

    <?php
      $d0=$_GET["d0"];
      $d1=$_GET["d1"];
    
      $ts1 = strtotime($d0);
      $ts2 = strtotime($d1);
    
      $seconds_diff = $ts2 - $ts1;
    
      echo floor($seconds_diff);
    ?>

     

    Вот сама функция получения разницы во времени:

     

    local date0 = "2014-07-10%2018:16:00"
    local date1 = "2014-07-13%2018:16:00"
    
    function differenceDates(date0, date1)
        local response = http.post("http://computercraft.ru/scr/days.php?d0="..date0.."&d1="..date1)
        if response then
            difference_of_dates = response.readAll()
            response.close()
        return difference_of_dates
        else return false
        end
    end
    2014-07-10%2018:16:00 - это формат даты, %20-это символ пробела, так как в строке http адреса пробелов не бывает. Секунды, я думаю, переведете в дни с округлением. Первую дату берете из файла юзера, вторую с сайта мирового времени.

     

    Вот пример http://computercraft.ru/scr/days.php?d0=2014-12-20 20:12:10&d1=2014-12-24 20:12:10

     

    строчка http://www.timeapi.org/pdt/in+11+hours вернет 2014-07-13T21:39:45-07:00
    Это время МСК

  16. Вот выкладываю, исправил что нашел... В 1.5.2 функция playerLoginDetect не реагирует на вход. Ну думаю это из-за версии.

    в коде поставь вместо N в строчке ami = peripheral.wrap("adventure map interface_N") номер врапмодема, и активуруй его. Блок должен засветиться зелеными лампочками. И в одиночке если ты тестишь, прога может не успевать поймать твой логин.

  17. Алекс, напиши таблицу типа: priz={ {id1_1, id1_2, id1_3}, {id2_1, id2_2, id2_3}, {id3_1, id3_2, id3_3} }

    таблицу пока сам накидай, камешки, песочек и прочее. Потом создадим табличку айдишек, когда все заработает.

     

    local id = priz[math.random(1,#priz)][math.random(1,3)] - по идее это должно работать. Хотя таблицу можно и одномерную сделать. А для весомых призов хороших другую таблицу. Главное, чтобы программка была понятной, удобной и гибкой. Ну и самое главное - выполняла весь замысел.

    local command_give = "/give "..nick.." "..id.." "..current_day_visit - выдача в в первый день одного предмета, во второй день два и т.д. Это если current_day_visit

    Я думаю, это будет работать. Поправьте, если что не так. Так же я пока в замешательстве, как отслеживать смену месяца и года. Если сравнивать только дату, то как быть, если человек зашел 30-го, а потом 1-го числа. А в месяце сколько дней? 30 или 31? Как это отслеживать? Надо подумать.

     

    Так же желательно создать табличку праздников: Новый год, дата создания майнкрафт, дата создания проекта нашего, День рождения Маркуса Перссона, День шахтера и т.д.:) и выдавать в эти дни независимые призыLike Работы непочатый край и программка у нас должна получиться занятной. Текстовые сообщения нужно хранить в текстовых файлах UTF-8, тогда возможен принтинг русского текста в чат через командный блок. Но это я сделаю через фтп в корень компа. Если будет работать команда, призы выдам всей команде, не переживайте. Каждый бросит яблочко в трубу и получит приз. Так что за работу, друзья! Программа должна быть выполнена в срок.


  18. Вопрос у меня пока лишь как из текста на выводе получить понятнуюю информацию(дата ДДММГГГГ и время в виде 1415 где 14 это часы а 15 это минуты). Ответьте плз.Ну или как выловить из стринга текст с одного до другого символа.

    Вот здесь Zer0Galaxy целую энциклопедию для юного сурка написал. Для кого такой титанический труд проведен? На крайний случай юзайте функцию string.sub(s, i, j), где s-строка, i и j индексы символов.

     

    например string.sub("Hello world", 1, 4) -> "Hell"

    Потом переведите строковою переменную в число функцией tonumber(e)


  19. Интересно, но никому не надо.

    Смысл переплатить за доставку и потратить время в ожидании доставки, когда и проще, и выгоднее телепортироваться на спавн и купить все необходимое?

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

  20. Воу-воу парни! Вы там поменьше шастайте. А то еще натворите неописуемых бед. Там куча опасных блоков. Феникс в гости приходил просто. Это админ. блоки и последствия могут быть катастрофическими:)

     

    Протестируйте в одиночке или вызовом псевдо-функции пустой, где просто принтится команда для ком. блока на экран.

    строчка http://www.timeapi.org/pdt/in+11+hours вернет время МСК

     

    Вот все что вам нужно в домике Алекса узнать. Больше вам ничего не понадобиться.

    Программка должна вести лог, подобие меню должно быть, а не черный экран на компе и поди узнай, что там происходит:), добавление ид предметов удобно сделать желательно и пр.

     

     

    ami = peripheral.wrap("adventure map interface_N")
    
    
    function getWorldTime()
        if not http then
            print("Pastebin requires http API!!!")
            print("Set enable API_http in ComputerCraft.cfg")
            error()
        end
        local response = http.get("http://www.timeapi.org/utc/now")  --change args
       
        if response then
            local time_mess = response.readAll()
            response.close()
            return time_mess
            else
            return false
        end
    end
    
    function playerLoginDetect()
        while true do
                local e, user_name = os.pullEvent("player_login")
                ....
        end
    end
    
    function sayChat(msg)
        commandBlock.setCommand("/say "..msg)
        commandBlock.runCommand()
    end
    
    function giveItem(name_player,  [id], count) 
        commandBlock.setCommand(.....)
        commandBlock.runCommand()
    end

  21. Что мешает запоминать координаты таких ситуаций, а потом используя апи крутова посылать черепаху на координаты той ситуации и ставить нужный блок? Смотреть на этот процесс будет на порядок интерестней!

    Нет, Саня! Это будет на порядок больше геморроя. Есть сотни идей применения мода и использования программ. А извращения с правильной установкой факела черепашкой оставим до лучших времен.

  22. я поставил вопрос с подвохом: опенкомп почему-то абсолютно не хочет работать с AMI он не получает ни объект мира, ни объект игрока он может только список игроков вывести, мною проверено у тебя в комнате!

    Во-во

     

    Ну и не надо брать бензопилу, чтобы почистить яблоко. Делайте на КК. Этот мод более распространен пока и корректно работает со своими аддонами.


  23. А как насчет блоков которые нужно ставить передом в определенную сторону? Например: повторитель, красный факел?

    Даже WE этого толком не умеет, особенно после вращения буфера. А черепашки блоки из некоторых модов вообще не могут разрушать и ставить (например провод редстоуна из ProjectRed и пр.)

    WE не для запоминания выходов машин TE, таймингов повторителей и частот тесерактов. Это просто копирование.

×
×
  • Создать...