Diff на прокачку?

mek111

Путник
Пользователь
Сообщения
5
Розыгрыши
0
Репутация
0
Реакции
2
Баллы
3
Хроники
  1. Chaotic Throne: High Five
Исходники
Присутствуют
Сборка
есть
Всем привет, решил вновь погрузиться в данную сферу)
Такой вопрос либо не все задавались им?
Diff на прокачку персонажа? Либо я все позабыл, либо он настраивается в конфиге (но не нашел или плохо искал)
Diff допустим персонаж 10 ур. бьем моба 30 ур. и нам идет опыт!
Где это убрать? Максимальный разрыв 8-9
 
При чем тут diff? Diff это вообще-то файл с изменениями.
Лезь в конфиги и смотри.
В конфиге нет, так бы не создавал тему (возможно в ядре)
Но где?
При чем тут diff? Diff это вообще-то файл с изменениями. (сам понял что написал?)
 
В конфиге нет, так бы не создавал тему (возможно в ядре)
Но где?
При чем тут diff? Diff это вообще-то файл с изменениями. (сам понял что написал?)
Я тебя понял.
Diff — это утилита для сравнения файлов, а также сам результат сравнения двух текстов или версий кода.
Показывает построчно, что именно изменилось: какие строки были удалены (обычно подсвечиваются красным), а какие добавлены (зеленым).

А где у тебя это находится, без понятия. Сборка не указана.

l2jmobius:
Код:
# The maximum monster level difference for rewarding experience.
MonsterExpMaxLevelDifference = 11

l2open:
Код:
# Максимальная допустимая разница в уровнях между игроком и монстром.
# Если игрок старше монстра на указанное количество уровней или более,
# он перестает получать опыт (EXP) и очки умений (SP) за его убийство.
ExpSpPenaltyDifference = 11
 
Последнее редактирование:
Я тебя понял.


А где у тебя это находится, без понятия. Сборка не указана.

l2jmobius:
Код:
# The maximum monster level difference for rewarding experience.
MonsterExpMaxLevelDifference = 11

l2open:
Код:
# Максимальная допустимая разница в уровнях между игроком и монстром.
# Если игрок старше монстра на указанное количество уровней или более,
# он перестает получать опыт (EXP) и очки умений (SP) за его убийство.
ExpSpPenaltyDiff = 11
Я это и хотел узнать, а ты сразу не по теме начал, буду разбираться (но в конфиге этого нет)
 
пипец у него конечно извратно сделано получение множителя от разницы уровней в виде switch'а :)
неужели нельзя было банальный массив значений сделать и дергать с него данные, а не извращаться каждый раз с такими проверками?

ну и значения у него вроде достаточно приблизительные - реальные по оффу можно вычислить по формуле
Java:
    private static double[] _penalty = new double[11];

    static
    {
        int idx = 0;

        do
        {
            _penalty[idx] = Math.min(300. / (Math.pow(Math.max(Math.pow(idx, 3), 1.), 1.12) + 270.), 1.);
            ++idx;
        }
        while (idx <= 10);
    }

    public static double calc(int levelDiff)
    {
        return levelDiff <= 10 ? _penalty[levelDiff] : 0.;
    }
 
пипец у него конечно извратно сделано получение множителя от разницы уровней в виде switch'а :)
неужели нельзя было банальный массив значений сделать и дергать с него данные, а не извращаться каждый раз с такими проверками?

ну и значения у него вроде достаточно приблизительные - реальные по оффу можно вычислить по формуле
Java:
    private static double[] _penalty = new double[11];

    static
    {
        int idx = 0;

        do
        {
            _penalty[idx] = Math.min(300. / (Math.pow(Math.max(Math.pow(idx, 3), 1.), 1.12) + 270.), 1.);
            ++idx;
        }
        while (idx <= 10);
    }

    public static double calc(int levelDiff)
    {
        return levelDiff <= 10 ? _penalty[levelDiff] : 0.;
    }
Ты про диагода? :pandaredlol:
Та там даже классы и директории встречаются с русскими названиями в духе "ВсякоеГовно" и тд :loltt0:
 
Про второй скрин, про мобиуса.
Хотя у Диагода тоже зачастую тот еще пипец в коде попадается...
 
Про второй скрин, про мобиуса.
Хотя у Диагода тоже зачастую тот еще пипец в коде попадается...
Ну у мобиуса весь код через жопу.
Этот бездарь даже не смог нормально себе скопипастить NpcViewMod, который я шарил под его сорки. :loltt0:
 
Как оказалось, сборка L2FundC.

MonsterInstance.java
Java:
    private double[] calculateExpAndSp(int level, long damage)
    {
        int diff = level - getLevel();

        // Конфиг на проверку разницы в лвле между мобом и персонажем
        if (Config.EXP_SP_PENALTY_DIFFERENCE > 0 && Math.abs(diff) >= Config.EXP_SP_PENALTY_DIFFERENCE)
        {
            return new double[] { 0., 0. };
        }

        if (level > 77 && diff > 3 && diff <= 5) // kamael exp penalty
            diff += 3;

        double xp = getExpReward() * damage / getMaxHp();
        double sp = getSpReward() * damage / getMaxHp();

        if (diff > 5)
        {
            double mod = Math.pow(.83, diff - 5);
            xp *= mod;
            sp *= mod;
        }

        xp = Math.max(0., xp);
        sp = Math.max(0., sp);

        return new double[] { xp, sp };
    }

Config.java
Java:
public static int EXP_SP_PENALTY_DIFFERENCE;

public static void loadNpcConfig()
{
    ExProperties npcSettings = load(NPC_FILE);

    MIN_NPC_ANIMATION = npcSettings.getProperty("MinNPCAnimation", 5);
    MAX_NPC_ANIMATION = npcSettings.getProperty("MaxNPCAnimation", 90);
    SERVER_SIDE_NPC_NAME = npcSettings.getProperty("ServerSideNpcName", false);
    SERVER_SIDE_NPC_TITLE = npcSettings.getProperty("ServerSideNpcTitle", false);
    SERVER_SIDE_NPC_TITLE_ETC = npcSettings.getProperty("ServerSideNpcTitleEtc", false);

    EXP_SP_PENALTY_DIFFERENCE = npcSettings.getProperty("ExpSpPenaltyDifference", 0);
}

Ну и сам конфиг запихнуть в npc.ini
Код:
# Разница уровней между персонажем и монстром, при которой перестают начисляться Exp и Sp.
# Если персонаж выше или ниже монстра на указанное количество уровней или более — награда равна 0.
# 0 - для отключения конфига
ExpSpPenaltyDifference = 11
 
Назад
Сверху Снизу