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);логично же - использовать и слать отрицательную карму, т.к. после хф ее значение инвертировали.
положительная карма после хф - это репутация, может подниматься до +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);
при изменении цвета, он автоматически заносится в базу и став не пк его нельзя поменять, желательно укажите пример...В любом случае - его можно просто покрасить без отправки кармы, просто отправлять значение цвета Ника и все
лайфхакпри изменении цвета, он автоматически заносится в базу и став не пк его нельзя поменять, желательно укажите пример...
public UserInfo extends/implements ServerPacket
{
private int _nickColor;
public UserInfo(Player player)
{
if (player.getKarma() < 0)
{
_nickColor = ff0000;
}
else
{
_nickColor = player.getAppearance().getNickColor();
}
}
}
теперь ник темно зеленый стал, но не красный....лайфхак
Java:public UserInfo extends/implements ServerPacket { private int _nickColor; public UserInfo(Player player) { if (player.getKarma() < 0) { _nickColor = ff0000; } else { _nickColor = player.getAppearance().getNickColor(); } } }
if (containsMask(UserInfoType.SOCIAL))
{
writeShort(30);
writeByte(_player.getPvpFlag());
writeInt(0); // Reputation
if (containsMask(UserInfoType.SOCIAL))
{
writeShort(30);
writeByte(_player.getPvpFlag());
writeInt(100); // Reputation
if (containsMask(UserInfoType.SOCIAL))
{
writeShort(30);
writeByte(_player.getPvpFlag());
writeInt(-100); // Reputation
Ну пусть себе фигурирует, что конкретно не работает в костьіле, просто слать значение кармьі в минус? Не пересчитьівать ее на сервере, а в бзер/чар инфо только.карма в коде сервера положительная и много где завязана, не хотелось ее менять, как сделать с минимальными изменениями никнейм красного цвета? то что выложили выше не вяжется с начислением кармы на серве в исходе лостворлда
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?