требуется вмешательство специалистов кодеров)

IiIKoSIiI

Свой человек
Пользователь
Сообщения
87
Розыгрыши
0
Репутация
2
Реакции
2
Баллы
560
Хроники
  1. Chaotic Throne: High Five
Исходники
Присутствуют
Сборка
Emurt
ребят подскажите плиз, как изменить данынй код
private boolean canBuyNewClass(final Player player){
final int classAmount = getClassAmount(player);
if ((Config.SERVICES_REBIRTH_ITEM_ID.split(",").length <= classAmount)
|| (Config.SERVICES_REBIRTH_ITEM_AMOUNT.split(",").length <= classAmount)){
return true; // FREE
}
final int itemId = Integer.parseInt(Config.SERVICES_REBIRTH_ITEM_ID.split(",")[classAmount]);
final int itemAmount = Integer.parseInt(Config.SERVICES_REBIRTH_ITEM_AMOUNT.split(",")[classAmount]);
if ((itemId == 0) || (itemAmount == 0)){
return true; // FREE
}
if (!player.getInventory().destroyItemByItemId(itemId, itemAmount)){
show(getHTMLInfo(itemId, itemAmount,-1), player);
return false;
}
return true;
}
так что бы вместо одного конкретного итема , требовало или тот или другой
 
Используйте корректное название темы. Не стоит употреблять в заголовке темы слова с призывами о помощи, вида "срочно, хелп, помогите, привет и т.д.". Название должно быть информативным.
 
Используйте корректное название темы. Не стоит употреблять в заголовке темы слова с призывами о помощи, вида "срочно, хелп, помогите, привет и т.д.". Название должно быть информативным.
извеняюсь
 
Java:
if (!player.getInventory().destroyItemByItemId(itemId, itemAmount)
        || !player.getInventory().destroyItemByItemId(АйдиИтема, К-во)){
        show(getHTMLInfo(itemId, itemAmount,-1), player);
        return false;
    }
 
Последнее редактирование:
Я с начало && поставил, потом на || заменил. И все равно чувство сомнения не покидает ?
да я вот тоже постоянно ступорюсь в такие моменты. Вроде бы всё предельно ясно, но нет)
 
спасибо но не помогло )
и с && и с || не помогло?

да я вот тоже постоянно ступорюсь в такие моменты. Вроде бы всё предельно ясно, но нет)
В ступор ставит отрицание двух методов в проверке, а еще и две первые проверки возвращают true, третая false, и в конце true.
Ну видимо логику метода по другому построить нельзя было.
 
Сделать фиксированные ид итемов, или переписать условия.
 
Можно сделать приоритет, то есть поставить главнее тот что нужно тратить сначала, если его нет, то опускаемся ниже и проверка на второй.
 
Java:
if (!player.getInventory().destroyItemByItemId(itemId, itemAmount)
        && !player.getInventory().destroyItemByItemId(АйдиИтема, К-во)){ //&& - условие сработает только если оба итема отсутствуют
        show(getHTMLInfo(itemId, itemAmount,-1), player);
        return false;
    }
 
Мб хватит уже готовое давать?
 
  • Мне нравится
Реакции: ysline и Мишаня

    Мишаня

    Баллов: 6
    ну по большому счету это мелочи, но я с тобой полностью согласен
Таблица логических операторов в Java
ОператорОписание
&Логическое AND (И)
&&Сокращённое AND
|Логическое OR (ИЛИ)
||Сокращённое OR
^Логическое XOR (исключающее OR (ИЛИ))
!Логическое унарное NOT (НЕ)
&=AND с присваиванием
|=OR с присваиванием
^=XOR с присваиванием
==Равно
!=Не равно
?:Тернарный (троичный) условный оператор
 
Мишаня, Да не Мих, это херовая практика, этим и убили, и притянули. Захотят, сделают, либо найдут.

Таблица логических операторов в Java
ОператорОписание
&Логическое AND (И)
&&Сокращённое AND
|Логическое OR (ИЛИ)
||Сокращённое OR
^Логическое XOR (исключающее OR (ИЛИ))
!Логическое унарное NOT (НЕ)
&=AND с присваиванием
|=OR с присваиванием
^=XOR с присваиванием
==Равно
!=Не равно
?:Тернарный (троичный) условный оператор

смешные типы данных (с) Яйциент
 
Можно сделать приоритет, то есть поставить главнее тот что нужно тратить сначала, если его нет, то опускаемся ниже и проверка на второй.
подсказать сможешь ?
 
подсказать сможешь ?
Что должен делать данный метод "canBuyNewClass "?
Вроде как какая то проверка на возможность покупки класса.

А это " final int classAmount = getClassAmount(player);" ?? да потом еще по индексу в ид и количество

Зачем в данном методе изымать предмет и показывать походу какой то хтмл с инфой?

сдается какой то бред не так ли?
 
Что должен делать данный метод "canBuyNewClass "?
Вроде как какая то проверка на возможность покупки класса.

А это " final int classAmount = getClassAmount(player);" ?? да потом еще по индексу в ид и количество

Зачем в данном методе изымать предмет и показывать походу какой то хтмл с инфой?

сдается какой то бред не так ли?
Это все работает как часы, если ничего не трогать, то есть по стандарту он с каждым новым переродом в новую профу берет новый итем, хтмл выводит, если чего то не хватаети так далее.
Мне же надо что бы он так же работал просто допустим раньше для покупки новой профы мне нужен был адена (57) 1 шт ,то теперь нужно, что бы так же была адена, в том же колличестве, но если её нету, что бы брало допустим КОЛ (4037) 1 шт
 
подсказать сможешь ?
Java:
    private boolean canBuyNewClass(final Player player)
    {
        final int classAmount = getClassAmount(player);
        if ((Config.SERVICES_REBIRTH_ITEM_ID.split(",").length <= classAmount) || (Config.SERVICES_REBIRTH_ITEM_AMOUNT.split(",").length <= classAmount))
        {
            return true; // FREE
        }
        final int itemId = Integer.parseInt(Config.SERVICES_REBIRTH_ITEM_ID.split(",")[classAmount]);
        final int itemAmount = Integer.parseInt(Config.SERVICES_REBIRTH_ITEM_AMOUNT.split(",")[classAmount]);
        if ((itemId == 0) || (itemAmount == 0))
        {
            return true; // FREE
        }
        if (!player.getInventory().destroyItemByItemId(itemId, itemAmount))
        {
            if(player.getInventory().destroyItemByItemId(4037, 1))
            {
                return true;
            }
            show(getHTMLInfo(itemId, itemAmount, -1), player);
            return false;
        }
        return true;
    }

если не будет адены будет пытаться забрать 1 кол(4037)
 
Java:
    private boolean canBuyNewClass(final Player player)
    {
        final int classAmount = getClassAmount(player);
        if ((Config.SERVICES_REBIRTH_ITEM_ID.split(",").length <= classAmount) || (Config.SERVICES_REBIRTH_ITEM_AMOUNT.split(",").length <= classAmount))
        {
            return true; // FREE
        }
        final int itemId = Integer.parseInt(Config.SERVICES_REBIRTH_ITEM_ID.split(",")[classAmount]);
        final int itemAmount = Integer.parseInt(Config.SERVICES_REBIRTH_ITEM_AMOUNT.split(",")[classAmount]);
        if ((itemId == 0) || (itemAmount == 0))
        {
            return true; // FREE
        }
        if (!player.getInventory().destroyItemByItemId(itemId, itemAmount))
        {
            if(player.getInventory().destroyItemByItemId(4037, 1))
            {
                return true;
            }
            show(getHTMLInfo(itemId, itemAmount, -1), player);
            return false;
        }
        return true;
    }

если не будет адены будет пытаться забрать 1 кол(4037)
ОГРОООООМНЕЙШЕЕ СПАСИБО,
 
Назад
Сверху Снизу