1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Помогите детект блока

Тема в разделе "Разработка плагинов для новичков", создана пользователем asdqwertypro, 6 янв 2017.

  1. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Мда... Если ты знаешь джаву, то переписать можно практически все, и да, @alexandrage предложил отличный вариант.
     
  2. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    запихнем ее в код, че тупим то?
     
  3. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Не все так просто, в клиенте устроено по другому, если не тупить и иметь руки не из одного места, то можно разобраться и всё сделать
     
  4. TheZefirrkka

    TheZefirrkka Активный участник Пользователь

    Баллы:
    76
    Не путай клиент с бакитом, изменить клиент могут моды.
    Не уверен, что получив команду мы сможем так сломать блок
     
  5. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Тупишь
     
  6. TheZefirrkka

    TheZefirrkka Активный участник Пользователь

    Баллы:
    76
    Неа, плагином ты не изменишь настройки клиента игрока, размер его инвентаря и тд.
    Ну или я не понимаю, как ты это сделаешь
     
  7. xDark

    xDark Активный участник Пользователь

    Баллы:
    96
    Код:
    /**
         * Sets a block to air, but also plays the sound and particles and can spawn drops
         */
        public boolean destroyBlock(BlockPos pos, boolean dropBlock)
        {
            IBlockState iblockstate = this.getBlockState(pos);
            Block block = iblockstate.getBlock();
    
            if (block.getMaterial() == Material.air)
            {
                return false;
            }
            else
            {
                this.playAuxSFX(2001, pos, Block.getStateId(iblockstate));
    
                if (dropBlock)
                {
                    block.dropBlockAsItem(this, pos, iblockstate, 0);
                }
    
                return this.setBlockState(pos, Blocks.air.getDefaultState(), 3);
            }
        }
    2. Найти playAuxSFX, т.к. мне лень искать, и посмотреть как он устроен, или использовать вариант проще, который уже сказал @alexandrage
     
  8. IcedwinterZ

    IcedwinterZ Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    IcedwinterZ
    spawnParticle()
    playSound()
    Вроде...
     
  9. Fenix78563

    Fenix78563 Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Blc_Dragon
    да, да, @alexandrage уже предложил это.
     
  10. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Все команды отылаются на сервер, и сервер их выполняет. В чём проблема-то?
    Если учесть, что локальный мир - это тот же самый клиент-сервер, то можно сделать вывод, что такое вполне реализуемо. Да и баккит не настолько туп, чтобы не поддерживать таких вещей.
    В данной ситуации - при команде setblock - скорее всего выполняется несколько микрозадач. Как уже было сказано выше, - это отдельно удаление блока, отдельно отображение частиц и отдельно звук. Возможно что-то из этого отправляется на клиент одной задачей (пакетом), точно сказать не могу.
    Если интересно, тут есть список всех возможных клиент-серверных команд (пакетов): http://wiki.vg/Protocol
    Будешь знать это - будешь понимать, что в теории можно сделать без модов...
     
  11. TheZefirrkka

    TheZefirrkka Активный участник Пользователь

    Баллы:
    76
    А я разве писал, что это можно сделать только с модом?
     
  12. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
     
  13. TheZefirrkka

    TheZefirrkka Активный участник Пользователь

    Баллы:
    76
    Ниже я уточнил, про что я говорю
     

Поделиться этой страницей