Reputation system rework.

TODO: Add more proper formulas.
This commit is contained in:
MobiusDev
2015-10-15 21:24:00 +00:00
parent bc513a7c24
commit 1fd489f2c0
46 changed files with 177 additions and 222 deletions

View File

@ -21,7 +21,6 @@ CREATE TABLE IF NOT EXISTS `characters` (
`exp` BIGINT UNSIGNED DEFAULT 0, `exp` BIGINT UNSIGNED DEFAULT 0,
`expBeforeDeath` BIGINT UNSIGNED DEFAULT 0, `expBeforeDeath` BIGINT UNSIGNED DEFAULT 0,
`sp` BIGINT(10) UNSIGNED NOT NULL DEFAULT 0, `sp` BIGINT(10) UNSIGNED NOT NULL DEFAULT 0,
`karma` INT UNSIGNED DEFAULT NULL,
`reputation` INT UNSIGNED DEFAULT 0, `reputation` INT UNSIGNED DEFAULT 0,
`fame` MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, `fame` MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,
`raidpoints` MEDIUMINT UNSIGNED NOT NULL DEFAULT 0, `raidpoints` MEDIUMINT UNSIGNED NOT NULL DEFAULT 0,

View File

@ -201,7 +201,7 @@ public class NpcBufferAI implements Runnable
return true; return true;
} }
if (targetPlayer.getKarma() != 0) if (targetPlayer.getReputation() < 0)
{ {
return true; return true;
} }

View File

@ -81,7 +81,7 @@ public final class TvTManager extends AbstractNpcAI implements IVoicedCommandHan
{ {
htmltext = getHtm(player.getHtmlPrefix(), "Olympiad.html"); htmltext = getHtm(player.getHtmlPrefix(), "Olympiad.html");
} }
else if (player.getKarma() > 0) else if (player.getReputation() < 0)
{ {
htmltext = getHtm(player.getHtmlPrefix(), "Karma.html"); htmltext = getHtm(player.getHtmlPrefix(), "Karma.html");
} }

View File

@ -989,7 +989,7 @@ public class AdminEditChar implements IAdminCommandHandler
adminReply.replace("%z%", String.valueOf(player.getZ())); adminReply.replace("%z%", String.valueOf(player.getZ()));
adminReply.replace("%currenthp%", String.valueOf((int) player.getCurrentHp())); adminReply.replace("%currenthp%", String.valueOf((int) player.getCurrentHp()));
adminReply.replace("%maxhp%", String.valueOf(player.getMaxHp())); adminReply.replace("%maxhp%", String.valueOf(player.getMaxHp()));
adminReply.replace("%karma%", String.valueOf(player.getKarma())); adminReply.replace("%karma%", String.valueOf(player.getReputation()));
adminReply.replace("%currentmp%", String.valueOf((int) player.getCurrentMp())); adminReply.replace("%currentmp%", String.valueOf((int) player.getCurrentMp()));
adminReply.replace("%maxmp%", String.valueOf(player.getMaxMp())); adminReply.replace("%maxmp%", String.valueOf(player.getMaxMp()));
adminReply.replace("%pvpflag%", String.valueOf(player.getPvpFlag())); adminReply.replace("%pvpflag%", String.valueOf(player.getPvpFlag()));
@ -1033,31 +1033,19 @@ public class AdminEditChar implements IAdminCommandHandler
return; return;
} }
if (newKarma >= 0) // for display
int oldKarma = player.getReputation();
// update reputation
player.setReputation(newKarma);
// Common character information
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOUR_REPUTATION_HAS_BEEN_CHANGED_TO_S1);
sm.addInt(newKarma);
player.sendPacket(sm);
// Admin information
activeChar.sendMessage("Successfully Changed karma for " + player.getName() + " from (" + oldKarma + ") to (" + newKarma + ").");
if (Config.DEBUG)
{ {
// for display _log.fine("[SET KARMA] [GM]" + activeChar.getName() + " Changed karma for " + player.getName() + " from (" + oldKarma + ") to (" + newKarma + ").");
int oldKarma = player.getKarma();
// update karma
player.setKarma(newKarma);
// Common character information
SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOUR_REPUTATION_HAS_BEEN_CHANGED_TO_S1);
sm.addInt(newKarma);
player.sendPacket(sm);
// Admin information
activeChar.sendMessage("Successfully Changed karma for " + player.getName() + " from (" + oldKarma + ") to (" + newKarma + ").");
if (Config.DEBUG)
{
_log.fine("[SET KARMA] [GM]" + activeChar.getName() + " Changed karma for " + player.getName() + " from (" + oldKarma + ") to (" + newKarma + ").");
}
}
else
{
// tell admin of mistake
activeChar.sendMessage("You must enter a value for karma greater than or equal to 0.");
if (Config.DEBUG)
{
_log.fine("[SET KARMA] ERROR: [GM]" + activeChar.getName() + " entered an incorrect value for new karma: " + newKarma + " for " + player.getName() + ".");
}
} }
} }
@ -1447,7 +1435,7 @@ public class AdminEditChar implements IAdminCommandHandler
html.replace("%ai%", target.hasAI() ? String.valueOf(target.getAI().getIntention().name()) : "NULL"); html.replace("%ai%", target.hasAI() ? String.valueOf(target.getAI().getIntention().name()) : "NULL");
html.replace("%hp%", (int) target.getStatus().getCurrentHp() + "/" + target.getStat().getMaxHp()); html.replace("%hp%", (int) target.getStatus().getCurrentHp() + "/" + target.getStat().getMaxHp());
html.replace("%mp%", (int) target.getStatus().getCurrentMp() + "/" + target.getStat().getMaxMp()); html.replace("%mp%", (int) target.getStatus().getCurrentMp() + "/" + target.getStat().getMaxMp());
html.replace("%karma%", Integer.toString(target.getKarma())); html.replace("%karma%", Integer.toString(target.getReputation()));
html.replace("%race%", target.getTemplate().getRace().toString()); html.replace("%race%", target.getTemplate().getRace().toString());
if (target instanceof L2PetInstance) if (target instanceof L2PetInstance)
{ {

View File

@ -73,7 +73,7 @@ public final class HomeBoard implements IParseBoardHandler
activeChar.sendMessage("You can't use the Community Board right now."); activeChar.sendMessage("You can't use the Community Board right now.");
return false; return false;
} }
if (Config.COMMUNITYBOARD_KARMA_DISABLED && (activeChar.getKarma() > 0)) if (Config.COMMUNITYBOARD_KARMA_DISABLED && (activeChar.getReputation() < 0))
{ {
activeChar.sendMessage("Players with Karma cannot use the Community Board."); activeChar.sendMessage("Players with Karma cannot use the Community Board.");
return false; return false;

View File

@ -146,7 +146,7 @@ public class AreaFriendly implements ITargetTypeHandler
return true; return true;
} }
if ((targetPlayer.getPvpFlag() > 0) || (targetPlayer.getKarma() > 0)) if ((targetPlayer.getPvpFlag() > 0) || (targetPlayer.getReputation() < 0))
{ {
return false; return false;
} }

View File

@ -101,7 +101,7 @@ public class AuraFriendly implements ITargetTypeHandler
return true; return true;
} }
if ((targetPlayer.getPvpFlag() > 0) || (targetPlayer.getKarma() > 0)) if ((targetPlayer.getPvpFlag() > 0) || (targetPlayer.getReputation() < 0))
{ {
return false; return false;
} }

View File

@ -37,7 +37,7 @@ public class EnemySummon implements ITargetTypeHandler
if (target.isSummon()) if (target.isSummon())
{ {
L2Summon targetSummon = (L2Summon) target; L2Summon targetSummon = (L2Summon) target;
if ((activeChar.isPlayer() && (activeChar.getPet() != targetSummon) && activeChar.hasServitor(targetSummon.getObjectId()) && !targetSummon.isDead() && ((targetSummon.getOwner().getPvpFlag() != 0) || (targetSummon.getOwner().getKarma() > 0))) || (targetSummon.getOwner().isInsideZone(ZoneId.PVP) && activeChar.getActingPlayer().isInsideZone(ZoneId.PVP)) || (targetSummon.getOwner().isInDuel() && activeChar.getActingPlayer().isInDuel() && (targetSummon.getOwner().getDuelId() == activeChar.getActingPlayer().getDuelId()))) if ((activeChar.isPlayer() && (activeChar.getPet() != targetSummon) && activeChar.hasServitor(targetSummon.getObjectId()) && !targetSummon.isDead() && ((targetSummon.getOwner().getPvpFlag() != 0) || (targetSummon.getOwner().getReputation() < 0))) || (targetSummon.getOwner().isInsideZone(ZoneId.PVP) && activeChar.getActingPlayer().isInsideZone(ZoneId.PVP)) || (targetSummon.getOwner().isInDuel() && activeChar.getActingPlayer().isInDuel() && (targetSummon.getOwner().getDuelId() == activeChar.getActingPlayer().getDuelId())))
{ {
return new L2Character[] return new L2Character[]
{ {

View File

@ -237,7 +237,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
return GeoData.getInstance().canSeeTarget(me, player); return GeoData.getInstance().canSeeTarget(me, player);
} }
// Check if the L2PcInstance target has karma (=PK) // Check if the L2PcInstance target has karma (=PK)
if ((player != null) && (player.getKarma() > 0)) if ((player != null) && (player.getReputation() < 0))
{ {
return GeoData.getInstance().canSeeTarget(me, player); // Los Check return GeoData.getInstance().canSeeTarget(me, player); // Los Check
} }
@ -258,7 +258,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
} }
// Check if the L2PcInstance target has karma (=PK) // Check if the L2PcInstance target has karma (=PK)
if ((target instanceof L2PcInstance) && (((L2PcInstance) target).getKarma() > 0)) if ((target instanceof L2PcInstance) && (((L2PcInstance) target).getReputation() < 0))
{ {
return GeoData.getInstance().canSeeTarget(me, target); // Los Check return GeoData.getInstance().canSeeTarget(me, target); // Los Check
} }

View File

@ -45,7 +45,7 @@ public abstract class L2PlayableAI extends L2CharacterAI
{ {
if (target instanceof L2Playable) if (target instanceof L2Playable)
{ {
if (target.getActingPlayer().isProtectionBlessingAffected() && ((_actor.getActingPlayer().getLevel() - target.getActingPlayer().getLevel()) >= 10) && (_actor.getActingPlayer().getKarma() > 0) && !(target.isInsideZone(ZoneId.PVP))) if (target.getActingPlayer().isProtectionBlessingAffected() && ((_actor.getActingPlayer().getLevel() - target.getActingPlayer().getLevel()) >= 10) && (_actor.getActingPlayer().getReputation() < 0) && !(target.isInsideZone(ZoneId.PVP)))
{ {
// If attacker have karma and have level >= 10 than his target and target have // If attacker have karma and have level >= 10 than his target and target have
// Newbie Protection Buff, // Newbie Protection Buff,
@ -54,7 +54,7 @@ public abstract class L2PlayableAI extends L2CharacterAI
return; return;
} }
if (_actor.getActingPlayer().isProtectionBlessingAffected() && ((target.getActingPlayer().getLevel() - _actor.getActingPlayer().getLevel()) >= 10) && (target.getActingPlayer().getKarma() > 0) && !(target.isInsideZone(ZoneId.PVP))) if (_actor.getActingPlayer().isProtectionBlessingAffected() && ((target.getActingPlayer().getLevel() - _actor.getActingPlayer().getLevel()) >= 10) && (target.getActingPlayer().getReputation() < 0) && !(target.isInsideZone(ZoneId.PVP)))
{ {
// If target have karma and have level >= 10 than his target and actor have // If target have karma and have level >= 10 than his target and actor have
// Newbie Protection Buff, // Newbie Protection Buff,
@ -86,7 +86,7 @@ public abstract class L2PlayableAI extends L2CharacterAI
{ {
if ((target instanceof L2Playable) && skill.isBad()) if ((target instanceof L2Playable) && skill.isBad())
{ {
if (target.getActingPlayer().isProtectionBlessingAffected() && ((_actor.getActingPlayer().getLevel() - target.getActingPlayer().getLevel()) >= 10) && (_actor.getActingPlayer().getKarma() > 0) && !target.isInsideZone(ZoneId.PVP)) if (target.getActingPlayer().isProtectionBlessingAffected() && ((_actor.getActingPlayer().getLevel() - target.getActingPlayer().getLevel()) >= 10) && (_actor.getActingPlayer().getReputation() < 0) && !target.isInsideZone(ZoneId.PVP))
{ {
// If attacker have karma and have level >= 10 than his target and target have // If attacker have karma and have level >= 10 than his target and target have
// Newbie Protection Buff, // Newbie Protection Buff,
@ -96,7 +96,7 @@ public abstract class L2PlayableAI extends L2CharacterAI
return; return;
} }
if (_actor.getActingPlayer().isProtectionBlessingAffected() && ((target.getActingPlayer().getLevel() - _actor.getActingPlayer().getLevel()) >= 10) && (target.getActingPlayer().getKarma() > 0) && !target.isInsideZone(ZoneId.PVP)) if (_actor.getActingPlayer().isProtectionBlessingAffected() && ((target.getActingPlayer().getLevel() - _actor.getActingPlayer().getLevel()) >= 10) && (target.getActingPlayer().getReputation() < 0) && !target.isInsideZone(ZoneId.PVP))
{ {
// If target have karma and have level >= 10 than his target and actor have // If target have karma and have level >= 10 than his target and actor have
// Newbie Protection Buff, // Newbie Protection Buff,

View File

@ -266,7 +266,7 @@ public final class MapRegionManager implements IXmlReader
L2ClanHallZone zone = clanhall.getZone(); L2ClanHallZone zone = clanhall.getZone();
if ((zone != null) && !player.isFlyingMounted()) if ((zone != null) && !player.isFlyingMounted())
{ {
if (player.getKarma() > 0) if (player.getReputation() < 0)
{ {
return zone.getChaoticSpawnLoc(); return zone.getChaoticSpawnLoc();
} }
@ -292,7 +292,7 @@ public final class MapRegionManager implements IXmlReader
if ((castle != null) && (castle.getResidenceId() > 0)) if ((castle != null) && (castle.getResidenceId() > 0))
{ {
if (player.getKarma() > 0) if (player.getReputation() < 0)
{ {
return castle.getResidenceZone().getChaoticSpawnLoc(); return castle.getResidenceZone().getChaoticSpawnLoc();
} }
@ -317,7 +317,7 @@ public final class MapRegionManager implements IXmlReader
if ((fort != null) && (fort.getResidenceId() > 0)) if ((fort != null) && (fort.getResidenceId() > 0))
{ {
if (player.getKarma() > 0) if (player.getReputation() < 0)
{ {
return fort.getResidenceZone().getChaoticSpawnLoc(); return fort.getResidenceZone().getChaoticSpawnLoc();
} }
@ -371,7 +371,7 @@ public final class MapRegionManager implements IXmlReader
} }
// Karma player land out of city // Karma player land out of city
if (player.getKarma() > 0) if (player.getReputation() < 0)
{ {
try try
{ {

View File

@ -49,7 +49,6 @@ public class CharSelectInfoPackage
private int _maxMp = 0; private int _maxMp = 0;
private double _currentMp = 0; private double _currentMp = 0;
private final int[][] _paperdoll; private final int[][] _paperdoll;
private int _karma = 0;
private int _reputation = 0; private int _reputation = 0;
private int _pkKills = 0; private int _pkKills = 0;
private int _pvpKills = 0; private int _pvpKills = 0;
@ -328,16 +327,6 @@ public class CharSelectInfoPackage
return _paperdoll[Inventory.PAPERDOLL_RHAND][2]; return _paperdoll[Inventory.PAPERDOLL_RHAND][2];
} }
public void setKarma(int karma)
{
_karma = karma;
}
public int getKarma()
{
return _karma;
}
public void setReputation(int reputation) public void setReputation(int reputation)
{ {
_reputation = reputation; _reputation = reputation;

View File

@ -80,7 +80,7 @@ public class CursedWeapon implements INamable
private int _playerId = 0; private int _playerId = 0;
protected L2PcInstance _player = null; protected L2PcInstance _player = null;
private L2ItemInstance _item = null; private L2ItemInstance _item = null;
private int _playerKarma = 0; private int _playerReputation = 0;
private int _playerPkKills = 0; private int _playerPkKills = 0;
protected int transformationId = 0; protected int transformationId = 0;
@ -103,7 +103,7 @@ public class CursedWeapon implements INamable
_player.abortAttack(); _player.abortAttack();
_player.setKarma(_playerKarma); _player.setReputation(_playerReputation);
_player.setPkKills(_playerPkKills); _player.setPkKills(_playerPkKills);
_player.setCursedWeaponEquippedId(0); _player.setCursedWeaponEquippedId(0);
removeSkill(); removeSkill();
@ -153,7 +153,7 @@ public class CursedWeapon implements INamable
} }
// Restore the karma // Restore the karma
ps.setInt(1, _playerKarma); ps.setInt(1, _playerReputation);
ps.setInt(2, _playerPkKills); ps.setInt(2, _playerPkKills);
ps.setInt(3, _playerId); ps.setInt(3, _playerId);
if (ps.executeUpdate() != 1) if (ps.executeUpdate() != 1)
@ -219,7 +219,7 @@ public class CursedWeapon implements INamable
_endTime = 0; _endTime = 0;
_player = null; _player = null;
_playerId = 0; _playerId = 0;
_playerKarma = 0; _playerReputation = 0;
_playerPkKills = 0; _playerPkKills = 0;
_item = null; _item = null;
_nbKills = 0; _nbKills = 0;
@ -274,7 +274,7 @@ public class CursedWeapon implements INamable
{ {
_item = _player.getInventory().getItemByItemId(_itemId); _item = _player.getInventory().getItemByItemId(_itemId);
_player.dropItem("DieDrop", _item, killer, true); _player.dropItem("DieDrop", _item, killer, true);
_player.setKarma(_playerKarma); _player.setReputation(_playerReputation);
_player.setPkKills(_playerPkKills); _player.setPkKills(_playerPkKills);
_player.setCursedWeaponEquippedId(0); _player.setCursedWeaponEquippedId(0);
removeSkill(); removeSkill();
@ -422,13 +422,13 @@ public class CursedWeapon implements INamable
// Player holding it data // Player holding it data
_player = player; _player = player;
_playerId = _player.getObjectId(); _playerId = _player.getObjectId();
_playerKarma = _player.getKarma(); _playerReputation = _player.getReputation();
_playerPkKills = _player.getPkKills(); _playerPkKills = _player.getPkKills();
saveData(); saveData();
// Change player stats // Change player stats
_player.setCursedWeaponEquippedId(_itemId); _player.setCursedWeaponEquippedId(_itemId);
_player.setKarma(9999999); _player.setReputation(-9999999);
_player.setPkKills(0); _player.setPkKills(0);
if (_player.isInParty()) if (_player.isInParty())
{ {
@ -498,7 +498,7 @@ public class CursedWeapon implements INamable
{ {
ps.setInt(1, _itemId); ps.setInt(1, _itemId);
ps.setInt(2, _playerId); ps.setInt(2, _playerId);
ps.setInt(3, _playerKarma); ps.setInt(3, _playerReputation);
ps.setInt(4, _playerPkKills); ps.setInt(4, _playerPkKills);
ps.setInt(5, _nbKills); ps.setInt(5, _nbKills);
ps.setLong(6, _endTime); ps.setLong(6, _endTime);
@ -523,7 +523,7 @@ public class CursedWeapon implements INamable
// Unequip & Drop // Unequip & Drop
dropIt(null, null, killer, false); dropIt(null, null, killer, false);
// Reset player stats // Reset player stats
_player.setKarma(_playerKarma); _player.setReputation(_playerReputation);
_player.setPkKills(_playerPkKills); _player.setPkKills(_playerPkKills);
_player.setCursedWeaponEquippedId(0); _player.setCursedWeaponEquippedId(0);
removeSkill(); removeSkill();
@ -590,7 +590,7 @@ public class CursedWeapon implements INamable
public void setPlayerKarma(int playerKarma) public void setPlayerKarma(int playerKarma)
{ {
_playerKarma = playerKarma; _playerReputation = playerKarma;
} }
public void setPlayerPkKills(int playerPkKills) public void setPlayerPkKills(int playerPkKills)
@ -666,7 +666,7 @@ public class CursedWeapon implements INamable
public int getPlayerKarma() public int getPlayerKarma()
{ {
return _playerKarma; return _playerReputation;
} }
public int getPlayerPkKills() public int getPlayerPkKills()

View File

@ -2539,6 +2539,16 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
{ {
getSkillChannelized().abortChannelization(); getSkillChannelized().abortChannelization();
} }
// FIXME: Karma reduction tempfix.
if (isMonster() && (killer != null) && killer.isPlayer() && (killer.getActingPlayer().getReputation() < 0))
{
if (killer.getLevel() >= (getLevel() - 5))
{
killer.getActingPlayer().setKarma(killer.getActingPlayer().getReputation() - (killer.getActingPlayer().getReputation() / 8));
}
}
return true; return true;
} }
@ -5257,11 +5267,11 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
if (Config.ALT_GAME_KARMA_PLAYER_CAN_BE_KILLED_IN_PEACEZONE) if (Config.ALT_GAME_KARMA_PLAYER_CAN_BE_KILLED_IN_PEACEZONE)
{ {
// allows red to be attacked and red to attack flagged players // allows red to be attacked and red to attack flagged players
if ((target.getActingPlayer() != null) && (target.getActingPlayer().getKarma() > 0)) if ((target.getActingPlayer() != null) && (target.getActingPlayer().getReputation() < 0))
{ {
return false; return false;
} }
if ((attacker.getActingPlayer() != null) && (attacker.getActingPlayer().getKarma() > 0) && (target.getActingPlayer() != null) && (target.getActingPlayer().getPvpFlag() > 0)) if ((attacker.getActingPlayer() != null) && (attacker.getActingPlayer().getReputation() < 0) && (target.getActingPlayer() != null) && (target.getActingPlayer().getPvpFlag() > 0))
{ {
return false; return false;
} }
@ -5994,7 +6004,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
if (target.isPlayer()) if (target.isPlayer())
{ {
// Casting non offensive skill on player with pvp flag set or with karma // Casting non offensive skill on player with pvp flag set or with karma
if (!(target.equals(this) || target.equals(player)) && ((target.getActingPlayer().getPvpFlag() > 0) || (target.getActingPlayer().getKarma() > 0))) if (!(target.equals(this) || target.equals(player)) && ((target.getActingPlayer().getPvpFlag() > 0) || (target.getActingPlayer().getReputation() < 0)))
{ {
player.updatePvPStatus(); player.updatePvPStatus();
} }

View File

@ -933,7 +933,7 @@ public class L2Npc extends L2Character
player.setTarget(player); player.setTarget(player);
return; return;
} }
if (player.getKarma() > 0) if (player.getReputation() < 0)
{ {
if (!Config.ALT_GAME_KARMA_PLAYER_CAN_SHOP && (this instanceof L2MerchantInstance)) if (!Config.ALT_GAME_KARMA_PLAYER_CAN_SHOP && (this instanceof L2MerchantInstance))
{ {

View File

@ -232,7 +232,7 @@ public abstract class L2Playable extends L2Character
return false; // Active player is null return false; // Active player is null
} }
if (player.getKarma() != 0) if (player.getReputation() < 0)
{ {
return false; // Active player has karma return false; // Active player has karma
} }
@ -247,7 +247,7 @@ public abstract class L2Playable extends L2Character
{ {
return false; // Target player is self return false; // Target player is self
} }
if (targetPlayer.getKarma() != 0) if (targetPlayer.getReputation() < 0)
{ {
return false; // Target player has karma return false; // Target player has karma
} }
@ -346,8 +346,6 @@ public abstract class L2Playable extends L2Character
public abstract void doPickupItem(L2Object object); public abstract void doPickupItem(L2Object object);
public abstract int getKarma();
public abstract int getReputation(); public abstract int getReputation();
public abstract byte getPvpFlag(); public abstract byte getPvpFlag();

View File

@ -243,12 +243,6 @@ public abstract class L2Summon extends L2Playable
return ExperienceData.getInstance().getExpForLevel(getLevel() + 1); return ExperienceData.getInstance().getExpForLevel(getLevel() + 1);
} }
@Override
public final int getKarma()
{
return getOwner() != null ? getOwner().getKarma() : 0;
}
@Override @Override
public final int getReputation() public final int getReputation()
{ {

View File

@ -50,10 +50,6 @@ public class PcAppearance
/** The default title color is 0xECF9A2. */ /** The default title color is 0xECF9A2. */
private int _titleColor = DEFAULT_TITLE_COLOR; private int _titleColor = DEFAULT_TITLE_COLOR;
/** Karma and Reputation colors */
private final int _redColor = 255;
private final int _greenColor = 65280;
public PcAppearance(byte face, byte hColor, byte hStyle, boolean sex) public PcAppearance(byte face, byte hColor, byte hStyle, boolean sex)
{ {
_face = face; _face = face;
@ -177,13 +173,9 @@ public class PcAppearance
public int getNameColor() public int getNameColor()
{ {
if (_owner.getKarma() > 0) if (_owner.getReputation() != 0)
{ {
return _redColor; return 0xFFFFFF; // Using 0xFFFFFF value in case _nameColor has changed.
}
if (_owner.getReputation() > 0)
{
return _greenColor;
} }
return _nameColor; return _nameColor;
} }

View File

@ -57,7 +57,7 @@ public class L2FriendlyMobInstance extends L2Attackable
{ {
if (attacker instanceof L2PcInstance) if (attacker instanceof L2PcInstance)
{ {
return ((L2PcInstance) attacker).getKarma() > 0; return ((L2PcInstance) attacker).getReputation() < 0;
} }
return false; return false;
} }

View File

@ -368,8 +368,8 @@ public final class L2PcInstance extends L2Playable
private static final String DELETE_ITEM_REUSE_SAVE = "DELETE FROM character_item_reuse_save WHERE charId=?"; private static final String DELETE_ITEM_REUSE_SAVE = "DELETE FROM character_item_reuse_save WHERE charId=?";
// Character Character SQL String Definitions: // Character Character SQL String Definitions:
private static final String INSERT_CHARACTER = "INSERT INTO characters (account_name,charId,char_name,level,maxHp,curHp,maxCp,curCp,maxMp,curMp,face,hairStyle,hairColor,sex,exp,sp,karma,reputation,fame,raidpoints,pvpkills,pkkills,clanid,race,classid,deletetime,cancraft,title,title_color,accesslevel,online,clan_privs,wantspeace,base_class,nobless,power_grade,createDate) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; private static final String INSERT_CHARACTER = "INSERT INTO characters (account_name,charId,char_name,level,maxHp,curHp,maxCp,curCp,maxMp,curMp,face,hairStyle,hairColor,sex,exp,sp,reputation,fame,raidpoints,pvpkills,pkkills,clanid,race,classid,deletetime,cancraft,title,title_color,accesslevel,online,clan_privs,wantspeace,base_class,nobless,power_grade,createDate) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,face=?,hairStyle=?,hairColor=?,sex=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,karma=?,reputation=?,fame=?,raidpoints=?,pvpkills=?,pkkills=?,clanid=?,race=?,classid=?,deletetime=?,title=?,title_color=?,accesslevel=?,online=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,nobless=?,power_grade=?,subpledge=?,lvl_joined_academy=?,apprentice=?,sponsor=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,pccafe_points=?,language=?,faction=? WHERE charId=?"; private static final String UPDATE_CHARACTER = "UPDATE characters SET level=?,maxHp=?,curHp=?,maxCp=?,curCp=?,maxMp=?,curMp=?,face=?,hairStyle=?,hairColor=?,sex=?,heading=?,x=?,y=?,z=?,exp=?,expBeforeDeath=?,sp=?,reputation=?,fame=?,raidpoints=?,pvpkills=?,pkkills=?,clanid=?,race=?,classid=?,deletetime=?,title=?,title_color=?,accesslevel=?,online=?,clan_privs=?,wantspeace=?,base_class=?,onlinetime=?,nobless=?,power_grade=?,subpledge=?,lvl_joined_academy=?,apprentice=?,sponsor=?,clan_join_expiry_time=?,clan_create_expiry_time=?,char_name=?,death_penalty_level=?,bookmarkslot=?,vitality_points=?,pccafe_points=?,language=?,faction=? WHERE charId=?";
private static final String RESTORE_CHARACTER = "SELECT * FROM characters WHERE charId=?"; private static final String RESTORE_CHARACTER = "SELECT * FROM characters WHERE charId=?";
// Character Premium System String Definitions: // Character Premium System String Definitions:
@ -449,10 +449,7 @@ public final class L2PcInstance extends L2Playable
/** The Experience of the L2PcInstance before the last Death Penalty */ /** The Experience of the L2PcInstance before the last Death Penalty */
private long _expBeforeDeath; private long _expBeforeDeath;
/** The Karma of the L2PcInstance (if higher than 0, the name of the L2PcInstance appears in red) */ /** The Reputation of the L2PcInstance (defines PKK color) */
private int _karma = 0;
/** The Reputation of the L2PcInstance (if higher than 0, the name of the L2PcInstance appears in green) */
private int _reputation; private int _reputation;
/** The number of player killed during a PvP (the player killed was PvP Flagged) */ /** The number of player killed during a PvP (the player killed was PvP Flagged) */
@ -1986,15 +1983,6 @@ public final class L2PcInstance extends L2Playable
return _expBeforeDeath; return _expBeforeDeath;
} }
/**
* Return the Karma of the L2PcInstance.
*/
@Override
public int getKarma()
{
return _karma;
}
/** /**
* Set the Karma of the L2PcInstance and send a Server->Client packet StatusUpdate (broadcast). * Set the Karma of the L2PcInstance and send a Server->Client packet StatusUpdate (broadcast).
* @param karma * @param karma
@ -2002,13 +1990,9 @@ public final class L2PcInstance extends L2Playable
public void setKarma(int karma) public void setKarma(int karma)
{ {
// Notify to scripts. // Notify to scripts.
EventDispatcher.getInstance().notifyEventAsync(new OnPlayerKarmaChanged(this, getKarma(), karma), this); EventDispatcher.getInstance().notifyEventAsync(new OnPlayerKarmaChanged(this, getReputation(), karma), this);
if (karma < 0) if ((getReputation() < 0) && (karma < 0))
{
karma = 0;
}
if ((_karma == 0) && (karma > 0))
{ {
Collection<L2Object> objs = getKnownList().getKnownObjects().values(); Collection<L2Object> objs = getKnownList().getKnownObjects().values();
@ -2025,13 +2009,13 @@ public final class L2PcInstance extends L2Playable
} }
} }
} }
else if ((_karma > 0) && (karma == 0)) else if ((getReputation() < 0) && (karma >= 0))
{ {
// Send a Server->Client StatusUpdate packet with Karma and PvP Flag to the L2PcInstance and all L2PcInstance to inform (broadcast) // Send a Server->Client StatusUpdate packet with Karma and PvP Flag to the L2PcInstance and all L2PcInstance to inform (broadcast)
setKarmaFlag(0); setKarmaFlag(0);
} }
_karma = karma; _reputation = karma;
broadcastKarma(); broadcastKarma();
} }
@ -5430,6 +5414,12 @@ public final class L2PcInstance extends L2Playable
AntiFeedManager.getInstance().setLastDeathTime(getObjectId()); AntiFeedManager.getInstance().setLastDeathTime(getObjectId());
// FIXME: Karma reduction tempfix.
if (getReputation() < 0)
{
setKarma(getReputation() - (getReputation() / 4));
}
return true; return true;
} }
@ -5441,7 +5431,7 @@ public final class L2PcInstance extends L2Playable
} }
L2PcInstance pk = killer.getActingPlayer(); L2PcInstance pk = killer.getActingPlayer();
if ((getKarma() <= 0) && (pk != null) && (pk.getClan() != null) && (getClan() != null) && (pk.getClan().isAtWarWith(getClanId()) if ((getReputation() >= 0) && (pk != null) && (pk.getClan() != null) && (getClan() != null) && (pk.getClan().isAtWarWith(getClanId())
// || getClan().isAtWarWith(((L2PcInstance)killer).getClanId()) // || getClan().isAtWarWith(((L2PcInstance)killer).getClanId())
)) ))
{ {
@ -5460,7 +5450,7 @@ public final class L2PcInstance extends L2Playable
int dropLimit = 0; int dropLimit = 0;
int dropPercent = 0; int dropPercent = 0;
if ((getKarma() > 0) && (getPkKills() >= pkLimit)) if ((getReputation() < 0) && (getPkKills() >= pkLimit))
{ {
isKarmaDrop = true; isKarmaDrop = true;
dropPercent = Config.KARMA_RATE_DROP; dropPercent = Config.KARMA_RATE_DROP;
@ -5605,15 +5595,15 @@ public final class L2PcInstance extends L2Playable
} }
// 'No war' or 'One way war' -> 'Normal PK' // 'No war' or 'One way war' -> 'Normal PK'
if (targetPlayer.getKarma() > 0) // Target player has karma if (targetPlayer.getReputation() < 0) // Target player has karma
{ {
if (Config.KARMA_AWARD_PK_KILL) if (Config.KARMA_AWARD_PK_KILL)
{ {
increasePvpKills(target); increasePvpKills(target);
} }
if ((_karma <= 0) && AntiFeedManager.getInstance().check(this, targetPlayer)) if ((_reputation >= 0) && AntiFeedManager.getInstance().check(this, targetPlayer))
{ {
_reputation += 100; _reputation += 100; // FIXME: Find more proper calculation.
broadcastUserInfo(); broadcastUserInfo();
} }
} }
@ -5664,7 +5654,7 @@ public final class L2PcInstance extends L2Playable
{ {
if (!Config.FACTION_SYSTEM_ENABLED) if (!Config.FACTION_SYSTEM_ENABLED)
{ {
setKarma(getKarma() + addedKarma); setKarma(getReputation() - addedKarma); // karma is negative reputation
} }
// PK Points are increased only if you kill a player. // PK Points are increased only if you kill a player.
if (target.isPlayer()) if (target.isPlayer())
@ -5676,7 +5666,6 @@ public final class L2PcInstance extends L2Playable
_PvPRegTask.cancel(true); _PvPRegTask.cancel(true);
updatePvPFlag(0); updatePvPFlag(0);
} }
_reputation = 0;
} }
// Update player's UI. // Update player's UI.
@ -5717,7 +5706,7 @@ public final class L2PcInstance extends L2Playable
{ {
return; return;
} }
if ((!isInsideZone(ZoneId.PVP) || !player_target.isInsideZone(ZoneId.PVP)) && (player_target.getKarma() == 0)) if ((!isInsideZone(ZoneId.PVP) || !player_target.isInsideZone(ZoneId.PVP)) && (player_target.getReputation() >= 0))
{ {
if (checkIfPvP(player_target)) if (checkIfPvP(player_target))
{ {
@ -5783,7 +5772,7 @@ public final class L2PcInstance extends L2Playable
} }
} }
if (getKarma() > 0) if (getReputation() < 0)
{ {
percentLost *= Config.RATE_KARMA_EXP_LOST; percentLost *= Config.RATE_KARMA_EXP_LOST;
} }
@ -6851,7 +6840,7 @@ public final class L2PcInstance extends L2Playable
public void setKarmaFlag(int flag) public void setKarmaFlag(int flag)
{ {
StatusUpdate su = new StatusUpdate(this); StatusUpdate su = new StatusUpdate(this);
su.addAttribute(StatusUpdate.PVP_FLAG, getKarma()); su.addAttribute(StatusUpdate.PVP_FLAG, getReputation());
sendPacket(su); sendPacket(su);
final Collection<L2PcInstance> plrs = getKnownList().getKnownPlayers().values(); final Collection<L2PcInstance> plrs = getKnownList().getKnownPlayers().values();
@ -6892,7 +6881,7 @@ public final class L2PcInstance extends L2Playable
public void broadcastKarma() public void broadcastKarma()
{ {
StatusUpdate su = new StatusUpdate(this); StatusUpdate su = new StatusUpdate(this);
su.addAttribute(StatusUpdate.KARMA, getKarma()); su.addAttribute(StatusUpdate.KARMA, getReputation());
sendPacket(su); sendPacket(su);
for (L2PcInstance player : getKnownList().getKnownPlayers().values()) for (L2PcInstance player : getKnownList().getKnownPlayers().values())
@ -6991,27 +6980,26 @@ public final class L2PcInstance extends L2Playable
ps.setInt(14, getAppearance().getSex() ? 1 : 0); ps.setInt(14, getAppearance().getSex() ? 1 : 0);
ps.setLong(15, getExp()); ps.setLong(15, getExp());
ps.setLong(16, getSp()); ps.setLong(16, getSp());
ps.setInt(17, getKarma()); ps.setInt(17, getReputation());
ps.setInt(18, getReputation()); ps.setInt(18, getFame());
ps.setInt(19, getFame()); ps.setInt(19, getRaidPoints());
ps.setInt(20, getRaidPoints()); ps.setInt(20, getPvpKills());
ps.setInt(21, getPvpKills()); ps.setInt(21, getPkKills());
ps.setInt(22, getPkKills()); ps.setInt(22, getClanId());
ps.setInt(23, getClanId()); ps.setInt(23, getRace().ordinal());
ps.setInt(24, getRace().ordinal()); ps.setInt(24, getClassId().getId());
ps.setInt(25, getClassId().getId()); ps.setLong(25, getDeleteTimer());
ps.setLong(26, getDeleteTimer()); ps.setInt(26, hasDwarvenCraft() ? 1 : 0);
ps.setInt(27, hasDwarvenCraft() ? 1 : 0); ps.setString(27, getTitle());
ps.setString(28, getTitle()); ps.setInt(28, getAppearance().getTitleColor());
ps.setInt(29, getAppearance().getTitleColor()); ps.setInt(29, getAccessLevel().getLevel());
ps.setInt(30, getAccessLevel().getLevel()); ps.setInt(30, isOnlineInt());
ps.setInt(31, isOnlineInt()); ps.setInt(31, getClanPrivileges().getBitmask());
ps.setInt(32, getClanPrivileges().getBitmask()); ps.setInt(32, getWantsPeace());
ps.setInt(33, getWantsPeace()); ps.setInt(33, getBaseClass());
ps.setInt(34, getBaseClass()); ps.setInt(34, isNoble() ? 1 : 0);
ps.setInt(35, isNoble() ? 1 : 0); ps.setLong(35, 0);
ps.setLong(36, 0); ps.setTimestamp(36, new Timestamp(getCreateDate().getTimeInMillis()));
ps.setTimestamp(37, new Timestamp(getCreateDate().getTimeInMillis()));
ps.executeUpdate(); ps.executeUpdate();
} }
catch (Exception e) catch (Exception e)
@ -7062,7 +7050,6 @@ public final class L2PcInstance extends L2Playable
player.setHeading(rs.getInt("heading")); player.setHeading(rs.getInt("heading"));
player.setKarma(rs.getInt("karma"));
player.setReputation(rs.getInt("reputation")); player.setReputation(rs.getInt("reputation"));
player.setFame(rs.getInt("fame")); player.setFame(rs.getInt("fame"));
player.setRaidPoints(rs.getInt("raidpoints")); player.setRaidPoints(rs.getInt("raidpoints"));
@ -7625,23 +7612,22 @@ public final class L2PcInstance extends L2Playable
ps.setLong(16, exp); ps.setLong(16, exp);
ps.setLong(17, getExpBeforeDeath()); ps.setLong(17, getExpBeforeDeath());
ps.setLong(18, sp); ps.setLong(18, sp);
ps.setInt(19, getKarma()); ps.setInt(19, getReputation());
ps.setInt(20, getReputation()); ps.setInt(20, getFame());
ps.setInt(21, getFame()); ps.setInt(21, getRaidPoints());
ps.setInt(22, getRaidPoints()); ps.setInt(22, getPvpKills());
ps.setInt(23, getPvpKills()); ps.setInt(23, getPkKills());
ps.setInt(24, getPkKills()); ps.setInt(24, getClanId());
ps.setInt(25, getClanId()); ps.setInt(25, getRace().ordinal());
ps.setInt(26, getRace().ordinal()); ps.setInt(26, getClassId().getId());
ps.setInt(27, getClassId().getId()); ps.setLong(27, getDeleteTimer());
ps.setLong(28, getDeleteTimer()); ps.setString(28, getTitle());
ps.setString(29, getTitle()); ps.setInt(29, getAppearance().getTitleColor());
ps.setInt(30, getAppearance().getTitleColor()); ps.setInt(30, getAccessLevel().getLevel());
ps.setInt(31, getAccessLevel().getLevel()); ps.setInt(31, isOnlineInt());
ps.setInt(32, isOnlineInt()); ps.setInt(32, getClanPrivileges().getBitmask());
ps.setInt(33, getClanPrivileges().getBitmask()); ps.setInt(33, getWantsPeace());
ps.setInt(34, getWantsPeace()); ps.setInt(34, getBaseClass());
ps.setInt(35, getBaseClass());
long totalOnlineTime = _onlineTime; long totalOnlineTime = _onlineTime;
if (_onlineBeginTime > 0) if (_onlineBeginTime > 0)
@ -7649,21 +7635,21 @@ public final class L2PcInstance extends L2Playable
totalOnlineTime += (System.currentTimeMillis() - _onlineBeginTime) / 1000; totalOnlineTime += (System.currentTimeMillis() - _onlineBeginTime) / 1000;
} }
ps.setLong(36, totalOnlineTime); ps.setLong(35, totalOnlineTime);
ps.setInt(37, isNoble() ? 1 : 0); ps.setInt(36, isNoble() ? 1 : 0);
ps.setInt(38, getPowerGrade()); ps.setInt(37, getPowerGrade());
ps.setInt(39, getPledgeType()); ps.setInt(38, getPledgeType());
ps.setInt(40, getLvlJoinedAcademy()); ps.setInt(39, getLvlJoinedAcademy());
ps.setLong(41, getApprentice()); ps.setLong(40, getApprentice());
ps.setLong(42, getSponsor()); ps.setLong(41, getSponsor());
ps.setLong(43, getClanJoinExpiryTime()); ps.setLong(42, getClanJoinExpiryTime());
ps.setLong(44, getClanCreateExpiryTime()); ps.setLong(43, getClanCreateExpiryTime());
ps.setString(45, getName()); ps.setString(44, getName());
ps.setLong(46, 0); // unset ps.setLong(45, 0); // unset
ps.setInt(47, getBookMarkSlot()); ps.setInt(46, getBookMarkSlot());
ps.setInt(48, _vitalityPoints); // unset ps.setInt(47, _vitalityPoints); // unset
ps.setInt(49, getPcBangPoints()); ps.setInt(48, getPcBangPoints());
ps.setString(50, getLang()); ps.setString(49, getLang());
int factionId = 0; int factionId = 0;
if (isGood()) if (isGood())
@ -7674,9 +7660,9 @@ public final class L2PcInstance extends L2Playable
{ {
factionId = 2; factionId = 2;
} }
ps.setInt(51, factionId); ps.setInt(50, factionId);
ps.setInt(52, getObjectId()); ps.setInt(51, getObjectId());
ps.execute(); ps.execute();
} }
catch (Exception e) catch (Exception e)
@ -8701,7 +8687,7 @@ public final class L2PcInstance extends L2Playable
} }
// Check if the L2PcInstance has Karma // Check if the L2PcInstance has Karma
if ((getKarma() > 0) || (getPvpFlag() > 0)) if ((getReputation() < 0) || (getPvpFlag() > 0))
{ {
return true; return true;
} }
@ -9336,7 +9322,7 @@ public final class L2PcInstance extends L2Playable
} }
// On retail, it is impossible to debuff a "peaceful" player. // On retail, it is impossible to debuff a "peaceful" player.
if ((targetPlayer.getPvpFlag() == 0) && (targetPlayer.getKarma() == 0)) if ((targetPlayer.getPvpFlag() == 0) && (targetPlayer.getReputation() >= 0))
{ {
// Check if skill can do dmg // Check if skill can do dmg
if ((skill.getEffectRange() > 0) && isCtrlPressed && (getTarget() == target)) if ((skill.getEffectRange() > 0) && isCtrlPressed && (getTarget() == target))
@ -9349,7 +9335,7 @@ public final class L2PcInstance extends L2Playable
return false; return false;
} }
if ((targetPlayer.getPvpFlag() > 0) || (targetPlayer.getKarma() > 0)) if ((targetPlayer.getPvpFlag() > 0) || (targetPlayer.getReputation() < 0))
{ {
return true; return true;
} }
@ -12810,7 +12796,7 @@ public final class L2PcInstance extends L2Playable
if (killer.isInCategory(CategoryType.SHILENS_FOLLOWERS) || (Rnd.get(1, 100) <= ((Config.DEATH_PENALTY_CHANCE) * percent))) if (killer.isInCategory(CategoryType.SHILENS_FOLLOWERS) || (Rnd.get(1, 100) <= ((Config.DEATH_PENALTY_CHANCE) * percent)))
{ {
if (!killer.isPlayable() || (getKarma() > 0)) if (!killer.isPlayable() || (getReputation() < 0))
{ {
increaseShilensBreathDebuff(); increaseShilensBreathDebuff();
} }
@ -14374,7 +14360,7 @@ public final class L2PcInstance extends L2Playable
} }
else if ((getClan() == null) || (target.getClan() == null)) else if ((getClan() == null) || (target.getClan() == null))
{ {
if ((target.getPvpFlag() == 0) && (target.getKarma() == 0)) if ((target.getPvpFlag() == 0) && (target.getReputation() >= 0))
{ {
return false; return false;
} }

View File

@ -184,7 +184,7 @@ public final class L2TeleporterInstance extends L2Npc
msg.setFile(player.getHtmlPrefix(), "html/teleporter/castleteleporter-busy.htm"); msg.setFile(player.getHtmlPrefix(), "html/teleporter/castleteleporter-busy.htm");
player.sendPacket(msg); player.sendPacket(msg);
} }
else if (!Config.ALT_GAME_KARMA_PLAYER_CAN_USE_GK && (player.getKarma() != 0)) // TODO: Update me when Karma is replaced with Reputation system! else if (!Config.ALT_GAME_KARMA_PLAYER_CAN_USE_GK && (player.getReputation() < 0))
{ {
player.sendMessage("Go away, you're not welcome here."); player.sendMessage("Go away, you're not welcome here.");
} }
@ -516,7 +516,7 @@ public final class L2TeleporterInstance extends L2Npc
player.sendPacket(SystemMessageId.YOU_CANNOT_TELEPORT_TO_A_VILLAGE_THAT_IS_IN_A_SIEGE); player.sendPacket(SystemMessageId.YOU_CANNOT_TELEPORT_TO_A_VILLAGE_THAT_IS_IN_A_SIEGE);
return; return;
} }
else if (!Config.ALT_GAME_KARMA_PLAYER_CAN_USE_GK && (player.getKarma() > 0)) // karma else if (!Config.ALT_GAME_KARMA_PLAYER_CAN_USE_GK && (player.getReputation() < 0)) // karma
{ {
player.sendMessage("Go away, you're not welcome here."); player.sendMessage("Go away, you're not welcome here.");
return; return;

View File

@ -217,7 +217,7 @@ public final class L2TrapInstance extends L2Npc
} }
final L2PcInstance player = target.getActingPlayer(); final L2PcInstance player = target.getActingPlayer();
if ((player == null) || ((player.getPvpFlag() == 0) && (player.getKarma() == 0))) if ((player == null) || ((player.getPvpFlag() == 0) && (player.getReputation() >= 0)))
{ {
return false; return false;
} }
@ -248,9 +248,9 @@ public final class L2TrapInstance extends L2Npc
return null; return null;
} }
public int getKarma() public int getReputation()
{ {
return _owner != null ? _owner.getKarma() : 0; return _owner != null ? _owner.getReputation() : 0;
} }
@Override @Override
@ -373,7 +373,7 @@ public final class L2TrapInstance extends L2Npc
return; return;
} }
if ((_owner != null) && (_owner.getPvpFlag() == 0) && (_owner.getKarma() == 0)) if ((_owner != null) && (_owner.getPvpFlag() == 0) && (_owner.getReputation() >= 0))
{ {
return; return;
} }

View File

@ -46,7 +46,7 @@ public class GuardKnownList extends AttackableKnownList
if (object.isPlayer()) if (object.isPlayer())
{ {
// Check if the object added is a L2PcInstance that owns Karma // Check if the object added is a L2PcInstance that owns Karma
if (object.getActingPlayer().getKarma() > 0) if (object.getActingPlayer().getReputation() < 0)
{ {
if (Config.DEBUG) if (Config.DEBUG)
{ {

View File

@ -130,7 +130,7 @@ public class NpcKnownList extends CharKnownList
for (L2PcInstance pl : getKnownPlayers().values()) for (L2PcInstance pl : getKnownPlayers().values())
{ {
if (!pl.isDead() && !pl.isInvul() && pl.isInsideRadius(monster, monster.getAggroRange(), true, false) && (monster.isMonster() || (monster.isInstanceTypes(InstanceType.L2GuardInstance) && (pl.getKarma() > 0)))) if (!pl.isDead() && !pl.isInvul() && pl.isInsideRadius(monster, monster.getAggroRange(), true, false) && (monster.isMonster() || (monster.isInstanceTypes(InstanceType.L2GuardInstance) && (pl.getReputation() < 0))))
{ {
// Send aggroRangeEnter // Send aggroRangeEnter
if (monster.getHating(pl) == 0) if (monster.getHating(pl) == 0)

View File

@ -90,14 +90,14 @@ public class PcStat extends PlayableStat
} }
// Set new karma // Set new karma
if (!activeChar.isCursedWeaponEquipped() && (activeChar.getKarma() > 0) && (activeChar.isGM() || !activeChar.isInsideZone(ZoneId.PVP))) if (!activeChar.isCursedWeaponEquipped() && (activeChar.getReputation() < 0) && (activeChar.isGM() || !activeChar.isInsideZone(ZoneId.PVP)))
{ {
int karmaLost = Formulas.calculateKarmaLost(activeChar, value); int karmaLost = Formulas.calculateKarmaLost(activeChar, value);
if (karmaLost > 0) if (karmaLost > 0)
{ {
activeChar.setKarma(activeChar.getKarma() - karmaLost); activeChar.setReputation(activeChar.getReputation() + karmaLost);
final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.YOUR_REPUTATION_HAS_BEEN_CHANGED_TO_S1); final SystemMessage msg = SystemMessage.getSystemMessage(SystemMessageId.YOUR_REPUTATION_HAS_BEEN_CHANGED_TO_S1);
msg.addInt(activeChar.getKarma()); msg.addInt(activeChar.getReputation());
activeChar.sendPacket(msg); activeChar.sendPacket(msg);
} }
} }

View File

@ -76,7 +76,7 @@ public class ConditionPlayerState extends Condition
case CHAOTIC: case CHAOTIC:
if (player != null) if (player != null)
{ {
return ((player.getKarma() > 0) == _required); return ((player.getReputation() < 0) == _required);
} }
return !_required; return !_required;
case OLYMPIAD: case OLYMPIAD:

View File

@ -51,7 +51,7 @@ public class ConditionTargetAggro extends Condition
} }
if (effected instanceof L2PcInstance) if (effected instanceof L2PcInstance)
{ {
return ((L2PcInstance) effected).getKarma() > 0; return ((L2PcInstance) effected).getReputation() < 0;
} }
return false; return false;
} }

View File

@ -48,7 +48,7 @@ public final class PlayerEventHolder
private final Location _loc; private final Location _loc;
private final int _pvpKills; private final int _pvpKills;
private final int _pkKills; private final int _pkKills;
private final int _karma; private final int _reputation;
private final List<L2PcInstance> _kills = new CopyOnWriteArrayList<>(); private final List<L2PcInstance> _kills = new CopyOnWriteArrayList<>();
private boolean _sitForced; private boolean _sitForced;
@ -67,7 +67,7 @@ public final class PlayerEventHolder
_loc = new Location(player); _loc = new Location(player);
_pvpKills = player.getPvpKills(); _pvpKills = player.getPvpKills();
_pkKills = player.getPkKills(); _pkKills = player.getPkKills();
_karma = player.getKarma(); _reputation = player.getReputation();
_sitForced = sitForced; _sitForced = sitForced;
} }
@ -80,7 +80,7 @@ public final class PlayerEventHolder
_player.teleToLocation(_loc, true); _player.teleToLocation(_loc, true);
_player.setPvpKills(_pvpKills); _player.setPvpKills(_pvpKills);
_player.setPkKills(_pkKills); _player.setPkKills(_pkKills);
_player.setKarma(_karma); _player.setReputation(_reputation);
} }

View File

@ -2174,7 +2174,7 @@ public final class Formulas
*/ */
public static int calculateKarmaGain(int pkCount, L2Character target) public static int calculateKarmaGain(int pkCount, L2Character target)
{ {
if ((target.isPlayer() && (target.getActingPlayer().getKarma() > 0)) || (target.isSummon() && (target.getSummoner().getActingPlayer().getKarma() > 0))) if ((target.isPlayer() && (target.getActingPlayer().getReputation() < 0)) || (target.isSummon() && (target.getSummoner().getActingPlayer().getReputation() < 0)))
{ {
return 0; return 0;
} }

View File

@ -1245,7 +1245,7 @@ public final class RequestActionUse extends L2GameClientPacket
return; return;
} }
if (requester.getKarma() > 0) if (requester.getReputation() < 0)
{ {
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_IS_IN_A_CHAOTIC_STATE_AND_CANNOT_BE_REQUESTED_FOR_A_COUPLE_ACTION); sm = SystemMessage.getSystemMessage(SystemMessageId.C1_IS_IN_A_CHAOTIC_STATE_AND_CANNOT_BE_REQUESTED_FOR_A_COUPLE_ACTION);
sm.addPcName(requester); sm.addPcName(requester);
@ -1334,7 +1334,7 @@ public final class RequestActionUse extends L2GameClientPacket
return; return;
} }
if (partner.getKarma() > 0) if (partner.getReputation() < 0)
{ {
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_IS_IN_A_CHAOTIC_STATE_AND_CANNOT_BE_REQUESTED_FOR_A_COUPLE_ACTION); sm = SystemMessage.getSystemMessage(SystemMessageId.C1_IS_IN_A_CHAOTIC_STATE_AND_CANNOT_BE_REQUESTED_FOR_A_COUPLE_ACTION);
sm.addPcName(partner); sm.addPcName(partner);

View File

@ -96,7 +96,7 @@ public final class RequestBuyItem extends L2GameClientPacket
} }
// Alt game - Karma punishment // Alt game - Karma punishment
if (!Config.ALT_GAME_KARMA_PLAYER_CAN_SHOP && (player.getKarma() > 0)) if (!Config.ALT_GAME_KARMA_PLAYER_CAN_SHOP && (player.getReputation() < 0))
{ {
sendPacket(ActionFailed.STATIC_PACKET); sendPacket(ActionFailed.STATIC_PACKET);
return; return;

View File

@ -65,7 +65,7 @@ public final class RequestGiveItemToPet extends L2GameClientPacket
} }
// Alt game - Karma punishment // Alt game - Karma punishment
if (!Config.ALT_GAME_KARMA_PLAYER_CAN_TRADE && (player.getKarma() > 0)) if (!Config.ALT_GAME_KARMA_PLAYER_CAN_TRADE && (player.getReputation() < 0))
{ {
return; return;
} }

View File

@ -96,7 +96,7 @@ public final class RequestMagicSkillUse extends L2GameClientPacket
} }
// If Alternate rule Karma punishment is set to true, forbid skill Return to player with Karma // If Alternate rule Karma punishment is set to true, forbid skill Return to player with Karma
if (!Config.ALT_GAME_KARMA_PLAYER_CAN_TELEPORT && (activeChar.getKarma() > 0) && skill.hasEffectType(L2EffectType.TELEPORT)) if (!Config.ALT_GAME_KARMA_PLAYER_CAN_TELEPORT && (activeChar.getReputation() < 0) && skill.hasEffectType(L2EffectType.TELEPORT))
{ {
return; return;
} }

View File

@ -106,7 +106,7 @@ public class RequestPackageSend extends L2GameClientPacket
} }
// Alt game - Karma punishment // Alt game - Karma punishment
if (!Config.ALT_GAME_KARMA_PLAYER_CAN_USE_WAREHOUSE && (player.getKarma() > 0)) if (!Config.ALT_GAME_KARMA_PLAYER_CAN_USE_WAREHOUSE && (player.getReputation() < 0))
{ {
return; return;
} }

View File

@ -128,7 +128,7 @@ public final class RequestPreviewItem extends L2GameClientPacket
} }
// If Alternate rule Karma punishment is set to true, forbid Wear to player with Karma // If Alternate rule Karma punishment is set to true, forbid Wear to player with Karma
if (!Config.ALT_GAME_KARMA_PLAYER_CAN_SHOP && (activeChar.getKarma() > 0)) if (!Config.ALT_GAME_KARMA_PLAYER_CAN_SHOP && (activeChar.getReputation() < 0))
{ {
return; return;
} }

View File

@ -104,7 +104,7 @@ public final class RequestSellItem extends L2GameClientPacket
} }
// Alt game - Karma punishment // Alt game - Karma punishment
if (!Config.ALT_GAME_KARMA_PLAYER_CAN_SHOP && (player.getKarma() > 0)) if (!Config.ALT_GAME_KARMA_PLAYER_CAN_SHOP && (player.getReputation() < 0))
{ {
sendPacket(ActionFailed.STATIC_PACKET); sendPacket(ActionFailed.STATIC_PACKET);
return; return;

View File

@ -116,7 +116,7 @@ public final class SendWareHouseDepositList extends L2GameClientPacket
} }
// Alt game - Karma punishment // Alt game - Karma punishment
if (!Config.ALT_GAME_KARMA_PLAYER_CAN_USE_WAREHOUSE && (player.getKarma() > 0)) if (!Config.ALT_GAME_KARMA_PLAYER_CAN_USE_WAREHOUSE && (player.getReputation() < 0))
{ {
return; return;
} }

View File

@ -107,7 +107,7 @@ public final class SendWareHouseWithDrawList extends L2GameClientPacket
} }
// Alt game - Karma punishment // Alt game - Karma punishment
if (!Config.ALT_GAME_KARMA_PLAYER_CAN_USE_WAREHOUSE && (player.getKarma() > 0)) if (!Config.ALT_GAME_KARMA_PLAYER_CAN_USE_WAREHOUSE && (player.getReputation() < 0))
{ {
return; return;
} }

View File

@ -123,13 +123,13 @@ public final class TradeRequest extends L2GameClientPacket
} }
// L2J Customs: Karma punishment // L2J Customs: Karma punishment
if (!Config.ALT_GAME_KARMA_PLAYER_CAN_TRADE && (player.getKarma() > 0)) if (!Config.ALT_GAME_KARMA_PLAYER_CAN_TRADE && (player.getReputation() < 0))
{ {
player.sendMessage("You cannot trade while you are in a chaotic state."); player.sendMessage("You cannot trade while you are in a chaotic state.");
return; return;
} }
if (!Config.ALT_GAME_KARMA_PLAYER_CAN_TRADE && (partner.getKarma() > 0)) if (!Config.ALT_GAME_KARMA_PLAYER_CAN_TRADE && (partner.getReputation() < 0))
{ {
player.sendMessage("You cannot request a trade while your target is in a chaotic state."); player.sendMessage("You cannot request a trade while your target is in a chaotic state.");
return; return;

View File

@ -157,7 +157,7 @@ public final class UseItem extends L2GameClientPacket
return; return;
} }
if (!Config.ALT_GAME_KARMA_PLAYER_CAN_TELEPORT && (activeChar.getKarma() > 0)) if (!Config.ALT_GAME_KARMA_PLAYER_CAN_TELEPORT && (activeChar.getReputation() < 0))
{ {
SkillHolder[] skills = item.getItem().getSkills(); SkillHolder[] skills = item.getItem().getSkills();
if (skills != null) if (skills != null)

View File

@ -118,7 +118,7 @@ public abstract class AbstractNpcInfo extends L2GameServerPacket
writeD(0x00); // title color 0 = client default writeD(0x00); // title color 0 = client default
writeD(_trap.getPvpFlag()); writeD(_trap.getPvpFlag());
writeD(_trap.getKarma()); writeD(_trap.getReputation());
writeD(0); // was AVE and was adding stealth writeD(0); // was AVE and was adding stealth
writeD(0x00); // clan id writeD(0x00); // clan id

View File

@ -151,7 +151,7 @@ public class CharInfo extends L2GameServerPacket
} }
writeC(_activeChar.getPvpFlag()); writeC(_activeChar.getPvpFlag());
writeD(_activeChar.getKarma()); writeD(_activeChar.getReputation());
writeD(_mAtkSpd); writeD(_mAtkSpd);
writeD(_pAtkSpd); writeD(_pAtkSpd);

View File

@ -59,7 +59,7 @@ public class CharSelected extends L2GameServerPacket
writeQ(_activeChar.getSp()); writeQ(_activeChar.getSp());
writeQ(_activeChar.getExp()); writeQ(_activeChar.getExp());
writeD(_activeChar.getLevel()); writeD(_activeChar.getLevel());
writeD(_activeChar.getKarma()); // thx evill33t writeD(_activeChar.getReputation());
writeD(_activeChar.getPkKills()); writeD(_activeChar.getPkKills());
writeD(GameTimeController.getInstance().getGameTime() % (24 * 60)); // "reset" on 24th hour writeD(GameTimeController.getInstance().getGameTime() % (24 * 60)); // "reset" on 24th hour
writeD(0x00); writeD(0x00);

View File

@ -134,7 +134,7 @@ public class CharSelectionInfo extends L2GameServerPacket
writeF((float) (charInfoPackage.getExp() - ExperienceData.getInstance().getExpForLevel(charInfoPackage.getLevel())) / (ExperienceData.getInstance().getExpForLevel(charInfoPackage.getLevel() + 1) - ExperienceData.getInstance().getExpForLevel(charInfoPackage.getLevel()))); // High Five writeF((float) (charInfoPackage.getExp() - ExperienceData.getInstance().getExpForLevel(charInfoPackage.getLevel())) / (ExperienceData.getInstance().getExpForLevel(charInfoPackage.getLevel() + 1) - ExperienceData.getInstance().getExpForLevel(charInfoPackage.getLevel()))); // High Five
writeD(charInfoPackage.getLevel()); writeD(charInfoPackage.getLevel());
writeD(charInfoPackage.getKarma() > 0 ? charInfoPackage.getKarma() * -1 : charInfoPackage.getReputation()); writeD(charInfoPackage.getReputation());
writeD(charInfoPackage.getPkKills()); writeD(charInfoPackage.getPkKills());
writeD(charInfoPackage.getPvPKills()); writeD(charInfoPackage.getPvPKills());
@ -278,7 +278,6 @@ public class CharSelectionInfo extends L2GameServerPacket
charInfopackage.setCurrentHp(chardata.getDouble("curhp")); charInfopackage.setCurrentHp(chardata.getDouble("curhp"));
charInfopackage.setMaxMp(chardata.getInt("maxmp")); charInfopackage.setMaxMp(chardata.getInt("maxmp"));
charInfopackage.setCurrentMp(chardata.getDouble("curmp")); charInfopackage.setCurrentMp(chardata.getDouble("curmp"));
charInfopackage.setKarma(chardata.getInt("karma"));
charInfopackage.setReputation(chardata.getInt("reputation")); charInfopackage.setReputation(chardata.getInt("reputation"));
charInfopackage.setPkKills(chardata.getInt("pkkills")); charInfopackage.setPkKills(chardata.getInt("pkkills"));
charInfopackage.setPvPKills(chardata.getInt("pvpkills")); charInfopackage.setPvPKills(chardata.getInt("pvpkills"));

View File

@ -114,7 +114,7 @@ public class GMViewCharacterInfo extends L2GameServerPacket
writeD(_activeChar.getMCriticalHit(null, null)); writeD(_activeChar.getMCriticalHit(null, null));
writeD(_activeChar.getPvpFlag()); // 0-non-pvp 1-pvp = violett name writeD(_activeChar.getPvpFlag()); // 0-non-pvp 1-pvp = violett name
writeD(_activeChar.getKarma()); writeD(_activeChar.getReputation());
writeD(_runSpd); writeD(_runSpd);
writeD(_walkSpd); writeD(_walkSpd);

View File

@ -127,7 +127,7 @@ public class PetInfo extends L2GameServerPacket
writeS(_summon.getTitle()); // owner name writeS(_summon.getTitle()); // owner name
writeC(_summon.getPvpFlag()); // confirmed writeC(_summon.getPvpFlag()); // confirmed
writeD(_summon.getKarma()); // confirmed writeD(_summon.getReputation()); // confirmed
writeD(_curFed); // how fed it is writeD(_curFed); // how fed it is
writeD(_maxFed); // max fed it can be writeD(_maxFed); // max fed it can be