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

eu_tomat

Модераторы
  • Публикации

    2 666
  • Зарегистрирован

  • Посещение

  • Победитель дней

    331

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


  1. 7 минут назад, Doob сказал:

    Можно сделать форк мода, добавить геосканеру analyze по координатам с десятикратным потреблением энергии.

    Но это все-равно имба, роботы и без этого прекрасно со всем справляются.

    Чтобы не было имбой, пусть энергопотребление растёт пропорционально четвёртой степени расстояния. И вообще, можно настраивать в конфиге множитель и степень, чтобы считать по формуле energy = k*distance^exp.


  2. 39 минут назад, Alex сказал:

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

    • Шум геосканера очень сильно влияет на выбор оптимального алгоритма сканирования и копки.
    • Отказ от апгрейда полёта влияет в основном на то, что авторы программ могу забыть указать о его необходимости в роботе. Также упрощаются инженерные задачи, которых и так не много в Майнкрафте. Ограничение на высоту побуждает авторов искать новые подходы к автоматической копке на ранних стадиях развития.
    • Апнутая энергия тоже сужает спектр задач, и делает ненужным, например, апгрейд опыта, который тоже нужно как-то прокачивать, задействуя те или иные игровые механики.
    40 минут назад, Alex сказал:

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

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


  3. 52 минуты назад, Alex сказал:

    что там крутить а что не крутить, это уже админ решит

    Пусть решает.

     

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


  4. 4 минуты назад, Alex сказал:

    А  еще лучше аддон на ультимейт-геосканер, который не только плотности сканит с диким шумом на расстоянии, как ванильный в ОС, а наоборот, получает еще и четкий тип блока и его название.

    Когда я сильно задумывался на эту тему, то результаты были примерно такими:

    • Параметры ванильного сканера сильно крутить не следует для сохранения совместимости программ.
    • В сканере, способном перекрыть шум на любом расстоянии, энергия, затрачиваемая на сканирование, должна возрастать с расстоянием хотя бы квадратично, а может быть и в четвёртой степени от расстояния, как это происходит с радарами в реальном мире.
    • Можно придумать способ "трёхмерного" сканирования с использованием отдельного генератора сейсмоимпульсов и множества датчиков, которые благодаря их количеству, а также благодаря получению отражённого сигнала с разных ракурсов, способны строить подробную карту при относительно невысоких тратах энергии. Как повысить точность сканирования количеством датчиков, понятно. Но как использовать особенности расположения датчиков, я придумать не смог. Для этого надо углубляться в физику. Об этом можно пофантазировать в отдельной теме, чтобы здесь не оффтопить.
    6 минут назад, vx13 сказал:

    Если дальность будет как у геосканера, то слишком читерно будет. А вот возможность выполнять geolyzer.analyze() по определённым координатам будет нелишней. То есть, если нам нужны определённые руды, то делаем обычное сканирование, а затем анализируем блоки с подходящей плотностью.

    Да, роботы игрока должны чем-то жертвовать: энергией, временем, сложностью системы.


  5. 3 часа назад, elitach228 сказал:

    когда прошивку для дрона пытаюсь скачать,пишет failing opening file for writing: home/drones

    Судя по всему, система загружена с дискеты. Надо установить систему на жёсткий диск командой install и загрузиться с него. После этого уже можно скачивать прошивку.


  6. 24 минуты назад, Doob сказал:

    Упаковка отключается, когда количество ресов, которые есть риск потерять больше, чем места, которое будет сэкономлено - робот едет на базу.

    А как смотришь на то, чтобы таскать с собой обычный сундук в качестве буфера? Один занятый слот в инвентаре робота будет платой за отсутствие риска. Опционально, как с эндерчестом. В мирах, где полно лавы, риск сжечь дроп очень велик.


  7. 1 час назад, yura0138 сказал:

    по идее он после сбора урожая кидает его под себя и всё попадает в воронку, так вот, робот не кидает урожай! Он просто стоит и всё, потом снова собирает и возвращается, если воронку поставить прямо под ним, она начнёт высасывать вещи из робота.... Магия какая-то

    Не магия. Просто у воронки есть права на высасывание предметов из робота. А роботу прав не дали.


  8. 59 минут назад, vx13 сказал:

    Первая команда drop не видит сундука и выбрасывает в мир

    В программе вроде так и предусмотрено при упаковке -- бросать в мир без сундука. Так экономится один слот в инвентаре.

     

    @Doob, кстати, а как оно будет работать, если сверху окажется лава или поток воды? Дроп же может сгореть, или уплыть по течению.


  9. 9 часов назад, BrightYC сказал:

    Странные движения всегда были, какие-то покачивания.

    Похоже на автоколебания около целевой точки. Если я верно понял этот код, дрон не остановится никогда:

    Скрытый текст
    
          val toTarget = Vec3.createVectorHelper(targetX - posX, targetY - posY, targetZ - posZ)
          val distance = toTarget.lengthVector()
          val velocity = Vec3.createVectorHelper(motionX, motionY, motionZ)
          if (distance > 0 && (distance > 0.005f || velocity.dotProduct(velocity) > 0.005f)) {
            val acceleration = math.min(targetAcceleration, distance) / distance
            velocity.xCoord += toTarget.xCoord * acceleration
            velocity.yCoord += toTarget.yCoord * acceleration
            velocity.zCoord += toTarget.zCoord * acceleration
            motionX = math.max(-maxVelocity, math.min(maxVelocity, velocity.xCoord))
            motionY = math.max(-maxVelocity, math.min(maxVelocity, velocity.yCoord))
            motionZ = math.max(-maxVelocity, math.min(maxVelocity, velocity.zCoord))

     

     


  10. 11 час назад, Doob сказал:

    А что если задействовать PID регулятор? Если можно получить скорость, ускорение и расстояние, зачем тогда надеяться на непредсказуемое время майна?

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

     

    Можно повторить физику движений дрона на Lua. Это позволит на каждом тике знать вектор скорости и точное положение дрона.

     


  11. 9 часов назад, yura0138 сказал:

    он стал складывать ресы в сундук и крафтить блоки, но начал выбрасывать часть ресурсов вверх себя и когда полетел копать дальше эти ресурсы(алмазные блоки и несколько изумрудов:( ) упали вниз в лаву

    Проблема на этапе упаковки. По идее все брошенные наверх ресурсы должны всосаться обратно, но что-то мешает всасыванию.


  12. В 19.04.2019 в 20:22, NEO сказал:

    Как предлагаешь сохранить приваты?

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

     

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

     

    Приваты предлагаю защищать так:

    • В файле конфигурации указан список майнерс-миров, в которые робот может быть телепортирован без ограничений.
    • При телепортации робота в майнерс-мир где-то в NBT робота запоминаются текущие координаты и мир.
    • Команда обратной телепортации не предусматривает задания координат, используются запомненные предыдущей командой.
    • При обратной телепортации проверяется блок, в который телепортируется робот. Если блок защищён приватом, а робот не является его членом, то возврат робота становится невозможным.

    Ещё надо подумать о топливе для телепортации. Нужно тратить что-то ценное, чтобы игрокам было выгодно как можно дольше удерживать робота в майнерс-мирах. Предлагаю настраивать требуемое топливо в конфиге, для начала пусть топливом будет стак блоков угля, а в сборках можно будет менять на какой-нибудь наквадах из SG или плутоний из IC.


  13. 2 часа назад, kittens сказал:

    У меня появилась идея сделать для этой ос маленькую копию стима, как вам такая идея?

    А чем не устраивает существующее решение?

    В 18.09.2017 в 20:43, ECS сказал:

    Ключевые особенности:

    • ...
    • Магазин приложений с возможностью публикации собственных творений и системой пользовательских рейтингов
    • ...

     

    • Нравится 1

  14. 23 минуты назад, IReDBoYI сказал:

    Я один ничего не понял?

    В этой печали сложно быть одиноким. В Интернете ничего не понявших большинство. Подавляющее.

     

    На этом форуме достаточно и тех, кто что-то понимает. И если верно задать вопрос, то кто-то из них даже согласится дать пояснения. Поэтому я сразу предлагаю перейти к основному вопросу:

     

    Что именно ты желаешь понять?

    • Нравится 5
    • Ха-ха 1

  15. 17 минут назад, Alex сказал:

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

    Нашёл:

    $ grep -lir TopCraft ./updates/EvilWorld/config
    ./updates/EvilWorld/config/CustomMainMenu/mainmenu.json
    

    Да, там этим ссылкам лучшее место. Думаю, будет полезно добавить к ним ссылки на магазин и личный кабинет.

    • Нравится 2

  16. 11 минут назад, Alex сказал:

    нет, не приносят. По крайней мере те крохи, которые мы там голосуем.

    ...

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

    ...

    Поэтому пускай пока будут эти голосовалки.

    Да я и не возражал. Если админ готов обслуживать систему покупки игровых предметов за голоса, то и ломать её нет смысла. Небольшая польза от голосов имеется, а вред от голосовальщиков на ранних стадиях жизни сервера не особо отличается от вреда раскачавшихся игроков на поздних стадиях и регулируется геймплеем.


  17. 1 час назад, Asior сказал:

    Ну незнаю насчет голосовалок. Если будут дальше использоваться UU или какая там валюта идет, то сразу возникнут вопросы, а где собственно голосовать. Так как лаунчер сразу закрывается после запуска игры, тогда да, в нем не надо голосовалок, а вот в менюшке майна можно добавить. Просто как показывает статистика (моя личная игры на разных серверах), зачастую после регистрации и загрузки лаунчера на сам сайт больше никто не заглядывает, и чтобы не объяснять "где взять UU" (зайди на сайт бла бла бла, тыкни туды, потом туды, потом туды...) проще сказать выйди в меню и проголосуй. А в лаунчере да, тогда не нужны кнопочки. пусть будет чистым.

    Я тоже сомневаюсь. А для начала хочу понять, приносят ли проекту пользу голосования в ТОПах. Если голосования полезны, то игрокам, не интересующимся OC, нужно дать как можно более простой способ перехода в ТОПы, магазин и личный кабинет.

     

    Кстати, а как в меню Майна добавлять ссылки? Впервые слышу об этом.


  18. 10 часов назад, Alex сказал:

    вопрос, нужно ли этой реакции сделать (-1) репутации?

    Считаю, что возможность минусовать репутацию будет в целом вредной.

     

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

     

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

     

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

    • Одобряю 2

  19. 2 часа назад, N1nt3nd0 сказал:

    Осмелюсь предложить более удобный "алгоритм" вычисления в одну строчку и без условных операторов для данного скрипта: 

    
     local success, result = pcall(load('return ' .. cmd))

     При нажатии на кнопки, формируется строка в переменную cmd, и после нажатия "=", если success, на экранчик выводится result.

    Выше уже предлагалось запускать lua_shell. И если делать на load/pcall, то предлагаю добавить ещё и assert, чтобы информировать пользователя не только об ошибках выполнения, но и о синтаксических ошибках тоже:

    local success, result = pcall(assert(load('return ' .. cmd)))

     


  20. В описании параметра maxClipboard в конфиге OpenComputers.cfg сказано, что он ограничивает размер данных, отправляемых серверу при вставке строки из буфера обмена.

     

    Тем не менее, эксперименты на сборке EvilWorld показали, что как в одиночной игре, так и на сервере можно безболезненно предать строку длиной до 65536 байт включительно. При этом выполняются подряд 4 события clipboard, каждое из которых передаёт строку длиной 16384 байта. Это при условии отсутствия символов переноса в передаваемой строке.

     

    Если в строке присутствуют переносы строк, то для каждой фактической строки срабатывает своё событие, и появляется риск переполнения очереди событий. Но 16384 байт одной строкой передаются чётко, а четырьмя строками передаются 65536 байт за одно нажатие Shift-Insert.

     

    Значение параметра в конфиге: maxClipboard=1024, версия мода OpenComputers-MC1.7.10-1.7.2.1166-universal.jar.

     

    Остаётся непонятным, каким образом параметр maxClipboard влияет на объём передаваемых данных в событии clipboard. Это баг, или я что-то не понял?

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