Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   штраф на кач в пати по лвлу (https://forum.zone-game.info/showthread.php?t=19416)

mego4el 19.04.2012 18:37

штраф на кач в пати по лвлу
 
Подскажите, как можно выключить штраф на кач в пати? (вроде бы в нынешних сборках ИЛа это цифра около 10 лвлов, не меньше).

Например, что бы человек 80 лвла, мог качать 1 лвл. но что бы экспа шла нормально и разумно, по отношению к 1 лвлу.

Спасяб заранее.

Shiler 20.04.2012 00:06

Re: штраф на кач в пати по лвлу
 
Оффтоп:
Свернуть ↑Развернуть ↓

Psych_O 20.04.2012 00:28

Re: штраф на кач в пати по лвлу
 
Не знаю как в ИЛ но в High Five надо смотреть Party.java

Было бы неплохо узнать что за сборка, предполагаю что Фрозен?

mego4el 20.04.2012 06:13

Re: штраф на кач в пати по лвлу
 
Цитата:

предполагаю что Фрозен?
да, фрозен.

mego4el 05.05.2012 09:49

Re: штраф на кач в пати по лвлу
 
up. проблема все еще не решена.

Zubastic 05.05.2012 13:44

Re: штраф на кач в пати по лвлу
 
Есть 2 типа штрафа.
Тебе нужно, чтобы сервер считал, что в пати 2 одинаковых уровня и делил экспу 50 на 50. Иначе же будет ограничение на эксп. Т.е. с 1 и того же моба будет идти 20к 30 уровню и 100к 70

mego4el 08.05.2012 15:09

Re: штраф на кач в пати по лвлу
 
Цитата:

Есть 2 типа штрафа.
Тебе нужно, чтобы сервер считал, что в пати 2 одинаковых уровня и делил экспу 50 на 50. Иначе же будет ограничение на эксп. Т.е. с 1 и того же моба будет идти 20к 30 уровню и 100к 70
я не думаю, что при каче с разницой в 10 лвлов (минимально), опыт идет 50\50.
определенно существует какой-то просчет...

интересно конечно рассмотреть оба варианта, и вообще понять где копать..

Zubastic 08.05.2012 15:32

Re: штраф на кач в пати по лвлу
 
mego4el, я тут порылся в сборке овера (авторы надеюсь не против) ибо ничего другого у меня нет. Сначала вбил в поиск Party. Нашлось Party.java.
Внутри сделал поиск по exp. Вот что нашлось:
Код:

public void distributeXpAndSp(double xpReward, double spReward, List<Player> rewardedMembers, Creature lastAttacker, MonsterInstance monster)
        {
                recalculatePartyData();

                List<Player> mtr = new ArrayList<Player>();
                int partyLevel = lastAttacker.getLevel();
                int partyLvlSum = 0;

                // считаем минимальный/максимальный уровень
                for(Player member : rewardedMembers)
                {
                        if(!monster.isInRangeZ(member, Config.ALT_PARTY_DISTRIBUTION_RANGE))
                                continue;
                        partyLevel = Math.max(partyLevel, member.getLevel());
                }

                // составляем список игроков, удовлетворяющих требованиям
                for(Player member : rewardedMembers)
                {
                        if(!monster.isInRangeZ(member, Config.ALT_PARTY_DISTRIBUTION_RANGE))
                                continue;
                        if(member.getLevel() <= partyLevel - 15)
                                continue;
                        partyLvlSum += member.getLevel();
                        mtr.add(member);
                }

                if(mtr.isEmpty())
                        return;

                // бонус за пати
                double bonus = Config.ALT_PARTY_BONUS[mtr.size() - 1];

                // количество эксп и сп для раздачи на всех
                double XP = xpReward * bonus;
                double SP = spReward * bonus;

                for(Player member : mtr)
                {
                        double lvlPenalty = Experience.penaltyModifier(monster.calculateLevelDiffForDrop(member.getLevel()), 9);
                        int lvlDiff = partyLevel - member.getLevel();
                        if(lvlDiff >= 10 && lvlDiff <= 14)

                                lvlPenalty *= 0.3D;

                        // отдаем его часть с учетом пенальти
                        double memberXp = XP * lvlPenalty * member.getLevel() / partyLvlSum;
                        double memberSp = SP * lvlPenalty * member.getLevel() / partyLvlSum;

                        // больше чем соло не дадут
                        memberXp = Math.min(memberXp, xpReward);
                        memberSp = Math.min(memberSp, spReward);

                        member.addExpAndCheckBonus(monster, (long) memberXp, (long) memberSp, memberXp / xpReward);
                }

                recalculatePartyData();
        }

Добавлено через 48 секунд
Правда Age: 15. Но дерзай, я думаю сможешь найти.

MrShyr 08.05.2012 16:03

Re: штраф на кач в пати по лвлу
 
А вы не учитывали того что, с больших мобов на которых будет качать 80 лвл игрока с 1 лвл, по идее опыт игроку 1 лвл вообще давать не должно :) Не зависимо будет ли снят штраф группы на передаваемый опыт или нет :) Помоему еще играя на C4 (на офф GOD эта система еще в действии) за убийство красного моба на много превышающего мой уровень мне давали дулю, а не EXP :ck:


Текущее время: 15:55. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot