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

l_Slime_l

Активный участник
Пользователь
Баллы
76
Нужно сделать чтобы при копании руды она автоматически плавилась. Столкнулся с проблемой. Если игрок с киркой на удачу будет копать руду, то всегда будет выпадать одинаковое кол-во (1). Нашёл на википедии такую вещь.
ZGu81KJ.png

Но я как-то не совсем понимаю как это должно работать. Кто может объяснить? Можно в коде чтобы было понятней. 🙂
 
Ну легкая закономерность же.
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 = 1, percent = chance; i <= fortuneLevel; i++, percent += chance) {
        if (percent >= n) {
            return i + 1;
        }
    }
    return 1;
}
 
Ну легкая закономерность же.
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 = 1, percent = chance; i <= fortuneLevel; i++, percent += chance) {
        if (percent >= n) {
            return i + 1;
        }
    }
    return 1;
}
Сложнааа... Вот что нарыл в 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);
        }
    }
 
Сложнааа... Вот что нарыл в 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);
        }
    }
Я тебе написал по принципу из твоего скрина, юзай мой метод.
 
Я тебе написал по принципу из твоего скрина, юзай мой метод.
Зачем юзать чей-то метод если он уже есть? ._. + вроде с лазуритом не будет работать твой метод. (я не разбирался в нем)
 
Зачем юзать чей-то метод если он уже есть? ._. + вроде с лазуритом не будет работать твой метод. (я не разбирался в нем)
Ну вообще я только сейчас понял, что это вообще не нужно, ибо лазурит, алмаз, уголь, редстоун и так падают сразу в выплавленном виде, а на железо и золото не действует удача, так что в этом смысла нет.
 
Ну вообще я только сейчас понял, что это вообще не нужно, ибо лазурит, алмаз, уголь, редстоун и так падают сразу в выплавленном виде, а на железо и золото не действует удача, так что в этом смысла нет.
Так с помощью NMS методов я и хочу сделать авто-плавку железа и золота ._.
 
Так с помощью NMS методов я и хочу сделать авто-плавку железа и золота ._.
Ну так и зачем тебе с удачей мутить? С железной и золотой руды выпасть должен всегда 1 слиток, удача не действует на железо и золото.
Если ты так хочешь, чтобы удача изменяла и у железа/золота, то юзай то, что выше кидал.
 
Ну так и зачем тебе с удачей мутить? С железной и золотой руды выпасть должен всегда 1 слиток, удача не действует на железо и золото.
Если ты так хочешь, чтобы удача изменяла и у железа/золота, то юзай то, что выше кидал.
Ты бред если честно пишешь. Вообще бред.
 
Ты бред если честно пишешь. Вообще бред.
Ну... Он прав. Игра не продумала того что с железа или золота должно выпадать больше чем 1 блок (логично, иначе дюп). Но ты можешь спокойно скопировать метод с алмазов или редстоуна.
 
Ну... Он прав. Игра не продумала того что с железа или золота должно выпадать больше чем 1 блок (логично, иначе дюп). Но ты можешь спокойно скопировать метод с алмазов или редстоуна.
С чего вы взяли что я буду этот плагин на ваниль ставить?
 
Назад
Верх