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

Помогите Баланс уходит в минус

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

Метки:
  1. Автор темы
    NightDay_

    NightDay_ Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    NightDay_
    Код:
                     p.getInventory().removeItem(new ItemStack(Material.GRASS_BLOCK, 16));
                     getInstance().pdata.set("data." + p.getName() + ".blocks", getInstance().pdata.getInt("data." + p.getName() + ".blocks") - 16);
    вот есть у меня такой код и если у меня баланс например 10 то при покупке блоков он уходит в минус и становится -6

    помогите пожалуйста
     
  2. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Ну, ты ничего и не проверяешь - естественно он будет в минус уходить.
     
  3. Автор темы
    NightDay_

    NightDay_ Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    NightDay_
    и как мне его проверять
     
  4. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Получи баланс в переменную а не сразу устанавливай, проверь его через if, в зависимости от результата делай что требуется.
     
  5. Автор темы
    NightDay_

    NightDay_ Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    NightDay_
    как то так??

    Код:
     if (getInstance().pdata.getInt("data." + p.getName() + ".blocks") == 0) {
                         p.sendMessage("Нехватает CB");
                     }else {
                         p.getInventory().removeItem(new ItemStack(Material.DIRT, 16));
                         getInstance().pdata.set("data." + p.getName() + ".blocks", getInstance().pdata.getInt("data." + p.getName() + ".blocks") + 16);
                     }
    
     
  6. imDaniX

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

    Баллы:
    96
    Имя в Minecraft:
    imDaniX
    Скорей так
    PHP:
    int balance getInstance().pdata.getInt("data." p.getName() + ".blocks");
    if (
    balance 16 <= 0) {
        
    p.sendMessage("Не хватает CB");
    } else {
        
    p.getInventory().removeItem(new ItemStack(Material.DIRT16));
        
    getInstance().pdata.set("data." p.getName() + ".blocks"balance 16);
    }
     
  7. Автор темы
    NightDay_

    NightDay_ Новичок Пользователь

    Баллы:
    16
    Имя в Minecraft:
    NightDay_
    а как сделать проверку есть ли блок в инвентаре
     
  8. swat1x

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

    Баллы:
    76
    Имя в Minecraft:
    swat1x
    Создаёшь переменнту Integer, пусть будет "amount", затем перебираешь инвентарь игрока и от каждого ItemStack получаешь материал, если он равен тому, который тебе нужен, amount = amount + item.getAmount();, и так в конце у тебя будет общее количество материалов. И у тебя удаление предметов неправильно идёт, будет работать только если эти блоки одним предметом, если переименованы или лор есть, то это уже работать не будет, поищи более нормальный способ
     

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