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

Помогите Формула зачарования удачи

Тема в разделе "Разработка плагинов для новичков", создана пользователем l_Slime_l, 18 июл 2018.

  1. Автор темы
    l_Slime_l

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

    Баллы:
    76
    Нужно сделать чтобы при копании руды она автоматически плавилась. Столкнулся с проблемой. Если игрок с киркой на удачу будет копать руду, то всегда будет выпадать одинаковое кол-во (1). Нашёл на википедии такую вещь. [​IMG]
    Но я как-то не совсем понимаю как это должно работать. Кто может объяснить? Можно в коде чтобы было понятней. :)
     
  2. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Ну легкая закономерность же.
    PHP:
    public int calculateCount(int fortuneLevel) {
        
    Random random = new Random();
        
    int n random.nextInt(100) + 1;
        
    int chance = (int) Math.floor(100.0 / (fortuneLevel 2));
        for (
    int i 1percent chance<= fortuneLeveli++, percent += chance) {
            if (
    percent >= n) {
                return 
    1;
            }
        }
        return 
    1;
    }
     
  3. Автор темы
    l_Slime_l

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

    Баллы:
    76
    Сложнааа... Вот что нарыл в NMS. То что нужно ведь?
    Код:
    /**
         * Returns the quantity of items to drop on block destruction.
         */
        public int quantityDropped(Random random)
        {
            return this == Blocks.LAPIS_ORE ? 4 + random.nextInt(5) : 1;
        }
    
        /**
         * Get the quantity dropped based on the given fortune level
         */
        public int quantityDroppedWithBonus(int fortune, Random random)
        {
            if (fortune > 0 && Item.getItemFromBlock(this) != this.getItemDropped((IBlockState)this.getBlockState().getValidStates().iterator().next(), random, fortune))
            {
                int i = random.nextInt(fortune + 2) - 1;
    
                if (i < 0)
                {
                    i = 0;
                }
    
                return this.quantityDropped(random) * (i + 1);
            }
            else
            {
                return this.quantityDropped(random);
            }
        }
     
  4. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Я тебе написал по принципу из твоего скрина, юзай мой метод.
     
  5. Автор темы
    l_Slime_l

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

    Баллы:
    76
    Зачем юзать чей-то метод если он уже есть? ._. + вроде с лазуритом не будет работать твой метод. (я не разбирался в нем)
     
  6. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Ну вообще я только сейчас понял, что это вообще не нужно, ибо лазурит, алмаз, уголь, редстоун и так падают сразу в выплавленном виде, а на железо и золото не действует удача, так что в этом смысла нет.
     
  7. Автор темы
    l_Slime_l

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

    Баллы:
    76
    Так с помощью NMS методов я и хочу сделать авто-плавку железа и золота ._.
     
  8. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Ну так и зачем тебе с удачей мутить? С железной и золотой руды выпасть должен всегда 1 слиток, удача не действует на железо и золото.
    Если ты так хочешь, чтобы удача изменяла и у железа/золота, то юзай то, что выше кидал.
     
  9. Автор темы
    l_Slime_l

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

    Баллы:
    76
    Ты бред если честно пишешь. Вообще бред.
     
  10. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    Я тебе дал исчерпывающий ответ, у тебя видать совсем с головой все плохо.
     
  11. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Ну... Он прав. Игра не продумала того что с железа или золота должно выпадать больше чем 1 блок (логично, иначе дюп). Но ты можешь спокойно скопировать метод с алмазов или редстоуна.
     
  12. Автор темы
    l_Slime_l

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

    Баллы:
    76
    Вот у тебя плохо то. Мне нужно это НЕ для ванили, поэтому дюпа НЕ будет.
     
  13. AbstractCoder

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

    Баллы:
    76
    Имя в Minecraft:
    AbstractCoder
    До конца читай:
     
  14. Автор темы
    l_Slime_l

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

    Баллы:
    76
    С чего вы взяли что я буду этот плагин на ваниль ставить?
     
  15. Cool_boy

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

    Баллы:
    96
    Имя в Minecraft:
    prettydude
    Если руда автоматически плавиться - дюпа не будет, можно спокойно ставить
     

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