Цвет ника у пк на 448 протоколе зеленый, как сделать стандартный красный?

sergebaz

Прославленный
Местный
Сообщения
547
Розыгрыши
0
Решения
1
Репутация
236
Реакции
109
Баллы
1 478
Хроники
  1. Chaotic Throne: High Five
Исходники
Присутствуют
Сборка
Lostworld
Доброго времени разработчикам, при переходе, на исходах Лостворлда, с хф на новый протокол 448(tauti), столкнулся с проблемой: пк персонаж окрашивается в зеленый цвет, при положительной карме и в красный при отрицательной, как сделать что бы персонаж окрашивался в красный цвет? в коде карма положительная
 
логично же - использовать и слать отрицательную карму, т.к. после хф ее значение инвертировали.
положительная карма после хф - это репутация, может подниматься до +500. Дают ее за убийство пк, 360 единиц за раз, но не чаще чем раз в 8 часов.
Польза от нее в целом в том, что имея положительную карму и 0 очков пк, можно один раз убить кого нибудь в пк и при этом карма просто обнуляется, а не уходит в минус.
Java:
    public final void doPurePk(final Player killer)
    {
        // Если есть положительная карма и имеется 0 PK снижаем карму только до 0
        if (killer.getPkKills() < 1 && killer.getKarma() > 0)
            killer.setKarma(0, true, true);
        else
            killer.decKarma(Karma.calcKarmaGain(killer.getPkKills()), true);

        if (Rnd.chance(killer.calcStat(Stats.PK_CHANCE)))
            killer.incPkKills(1);
    }

    public final void doKillInPeace(final Player killer)
    {
        // Если убитый не PK
        if (_karma >= 0)
        {
            doPurePk(killer);
        }
        // Иначе если убивший не PK и если это возможно по количеству пк у него и времени начисления - добавляем положительную карму
        else if (killer.getKarma() >= 0 && killer.getPkKills() <= PvPConfig.MAX_PK_FOR_ADD_POSITIVE_KARMA && System.currentTimeMillis() >= _variables.getVar(Variables.NEXT_REPUTATION_TIME, 0L))
        {
            killer.incKarma(PvPConfig.REPUTATION_COUNT, true);
            _variables.setVar(Variables.NEXT_REPUTATION_TIME, System.currentTimeMillis() + PvPConfig.REPUTATION_PERIOD);
        }
    }
 
Последнее редактирование:
  • Мне нравится
Реакции: raz
логично же - использовать и слать отрицательную карму, т.к. после хф ее значение инвертировали.
положительная карма после хф - это репутация, может подниматься до +500. Дают ее за убийство пк, 360 единиц за раз, но не чаще чем раз в 8 часов.
Польза от нее в целом в том, что имея положительную карму и 0 очков пк, можно один раз убить кого нибудь в пк и при этом карма просто обнуляется, а не уходит в минус.
Java:
    public final void doPurePk(final Player killer)
    {
        // Если есть положительная карма и имеется 0 PK снижаем карму только до 0
        if (killer.getPkKills() < 1 && killer.getKarma() > 0)
            killer.setKarma(0, true, true);
        else
            killer.decKarma(Karma.calcKarmaGain(killer.getPkKills()), true);

        if (Rnd.chance(killer.calcStat(Stats.PK_CHANCE)))
            killer.incPkKills(1);
    }

    public final void doKillInPeace(final Player killer)
    {
        // Если убитый не PK
        if (_karma >= 0)
        {
            doPurePk(killer);
        }
        // Иначе если убивший не PK и если это возможно по количеству пк у него и времени начисления - добавляем положительную карму
        else if (killer.getKarma() >= 0 && killer.getPkKills() <= PvPConfig.MAX_PK_FOR_ADD_POSITIVE_KARMA && System.currentTimeMillis() >= _variables.getVar(Variables.NEXT_REPUTATION_TIME, 0L))
        {
            killer.incKarma(PvPConfig.REPUTATION_COUNT, true);
            _variables.setVar(Variables.NEXT_REPUTATION_TIME, System.currentTimeMillis() + PvPConfig.REPUTATION_PERIOD);
        }
    }
как слать? в пакете CharInfo.java поменять значение кармы на минус? типа так? : karma = player.getKarma()*(-1);
 
как слать? в пакете CharInfo.java поменять значение кармы на минус? типа так? : karma = player.getKarma()*(-1);
В любом случае - его можно просто покрасить без отправки кармы, просто отправлять значение цвета Ника и все :D
 
В любом случае - его можно просто покрасить без отправки кармы, просто отправлять значение цвета Ника и все :D
при изменении цвета, он автоматически заносится в базу и став не пк его нельзя поменять, желательно укажите пример...
 
при изменении цвета, он автоматически заносится в базу и став не пк его нельзя поменять, желательно укажите пример...
лайфхак
Java:
public UserInfo extends/implements ServerPacket
{
    private int _nickColor;
    
    public UserInfo(Player player)
    {
        if (player.getKarma() < 0)
        {
            _nickColor = ff0000;
        }
        else
        {
            _nickColor = player.getAppearance().getNickColor();
        }
    }
}
 
  • Мне нравится
Реакции: Rolo
лайфхак
Java:
public UserInfo extends/implements ServerPacket
{
    private int _nickColor;
   
    public UserInfo(Player player)
    {
        if (player.getKarma() < 0)
        {
            _nickColor = ff0000;
        }
        else
        {
            _nickColor = player.getAppearance().getNickColor();
        }
    }
}
теперь ник темно зеленый стал, но не красный....
 
Блин, от почему нельзя взять и 3 раза (на крайний случай) скомпилировать ядра с разными значениями для User/Char Info
Код:
        if (containsMask(UserInfoType.SOCIAL))
        {
            writeShort(30);
            writeByte(_player.getPvpFlag());
            writeInt(0); // Reputation
1716583461428.webp
Код:
        if (containsMask(UserInfoType.SOCIAL))
        {
            writeShort(30);
            writeByte(_player.getPvpFlag());
            writeInt(100); // Reputation
1716583492503.webp
Код:
        if (containsMask(UserInfoType.SOCIAL))
        {
            writeShort(30);
            writeByte(_player.getPvpFlag());
            writeInt(-100); // Reputation
1716583525076.webp
 

    Rolo

    Баллов: 10
    Патамуша можно вьівести в конфиг дебаг строки/интьі/лонги и прочее говно, компилить с ним и тьікать себе для отладки? )0))0))
карма в коде сервера положительная и много где завязана, не хотелось ее менять, как сделать с минимальными изменениями никнейм красного цвета? то что выложили выше не вяжется с начислением кармы на серве в исходе лостворлда
 
карма в коде сервера положительная и много где завязана, не хотелось ее менять, как сделать с минимальными изменениями никнейм красного цвета? то что выложили выше не вяжется с начислением кармы на серве в исходе лостворлда
Ну пусть себе фигурирует, что конкретно не работает в костьіле, просто слать значение кармьі в минус? Не пересчитьівать ее на сервере, а в бзер/чар инфо только.
 
Назад
Сверху Снизу