|
@@ -37,7 +37,7 @@ import com.l2jserver.util.Rnd;
|
|
|
/**
|
|
|
* @author GodKratos, Pere, DS
|
|
|
*/
|
|
|
-abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
+public abstract class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
{
|
|
|
protected int _damageP1 = 0;
|
|
|
protected int _damageP2 = 0;
|
|
@@ -48,78 +48,84 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
protected OlympiadGameNormal(int id, Participant[] opponents)
|
|
|
{
|
|
|
super(id);
|
|
|
-
|
|
|
+
|
|
|
_playerOne = opponents[0];
|
|
|
_playerTwo = opponents[1];
|
|
|
-
|
|
|
- _playerOne.player.setOlympiadGameId(id);
|
|
|
- _playerTwo.player.setOlympiadGameId(id);
|
|
|
+
|
|
|
+ _playerOne.getPlayer().setOlympiadGameId(id);
|
|
|
+ _playerTwo.getPlayer().setOlympiadGameId(id);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
protected static final Participant[] createListOfParticipants(List<Integer> list)
|
|
|
{
|
|
|
- if (list == null || list.isEmpty() || list.size() < 2)
|
|
|
+ if ((list == null) || list.isEmpty() || (list.size() < 2))
|
|
|
+ {
|
|
|
return null;
|
|
|
-
|
|
|
+ }
|
|
|
+
|
|
|
int playerOneObjectId = 0;
|
|
|
L2PcInstance playerOne = null;
|
|
|
L2PcInstance playerTwo = null;
|
|
|
-
|
|
|
+
|
|
|
while (list.size() > 1)
|
|
|
{
|
|
|
playerOneObjectId = list.remove(Rnd.nextInt(list.size()));
|
|
|
playerOne = L2World.getInstance().getPlayer(playerOneObjectId);
|
|
|
- if (playerOne == null || !playerOne.isOnline())
|
|
|
+ if ((playerOne == null) || !playerOne.isOnline())
|
|
|
+ {
|
|
|
continue;
|
|
|
-
|
|
|
+ }
|
|
|
+
|
|
|
playerTwo = L2World.getInstance().getPlayer(list.remove(Rnd.nextInt(list.size())));
|
|
|
- if (playerTwo == null || !playerTwo.isOnline())
|
|
|
+ if ((playerTwo == null) || !playerTwo.isOnline())
|
|
|
{
|
|
|
list.add(playerOneObjectId);
|
|
|
continue;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
Participant[] result = new Participant[2];
|
|
|
result[0] = new Participant(playerOne, 1);
|
|
|
result[1] = new Participant(playerTwo, 2);
|
|
|
-
|
|
|
+
|
|
|
return result;
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
public final boolean containsParticipant(int playerId)
|
|
|
{
|
|
|
- return _playerOne.objectId == playerId || _playerTwo.objectId == playerId;
|
|
|
+ return ((_playerOne != null) && (_playerOne.getObjectId() == playerId)) || ((_playerTwo != null) && (_playerTwo.getObjectId() == playerId));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
public final void sendOlympiadInfo(L2Character player)
|
|
|
{
|
|
|
player.sendPacket(new ExOlympiadUserInfo(_playerOne));
|
|
|
player.sendPacket(new ExOlympiadUserInfo(_playerTwo));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
public final void broadcastOlympiadInfo(L2OlympiadStadiumZone stadium)
|
|
|
{
|
|
|
stadium.broadcastPacket(new ExOlympiadUserInfo(_playerOne));
|
|
|
stadium.broadcastPacket(new ExOlympiadUserInfo(_playerTwo));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
protected final void broadcastPacket(L2GameServerPacket packet)
|
|
|
{
|
|
|
- _playerOne.updatePlayer();
|
|
|
- if (_playerOne.player != null)
|
|
|
- _playerOne.player.sendPacket(packet);
|
|
|
-
|
|
|
- _playerTwo.updatePlayer();
|
|
|
- if (_playerTwo.player != null)
|
|
|
- _playerTwo.player.sendPacket(packet);
|
|
|
+ if (_playerOne.updatePlayer())
|
|
|
+ {
|
|
|
+ _playerOne.getPlayer().sendPacket(packet);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (_playerTwo.updatePlayer())
|
|
|
+ {
|
|
|
+ _playerTwo.getPlayer().sendPacket(packet);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
protected final boolean portPlayersToArena(List<Location> spawns)
|
|
|
{
|
|
@@ -136,114 +142,126 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
protected boolean needBuffers()
|
|
|
{
|
|
|
return true;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
protected final void removals()
|
|
|
{
|
|
|
if (_aborted)
|
|
|
+ {
|
|
|
return;
|
|
|
-
|
|
|
- removals(_playerOne.player, true);
|
|
|
- removals(_playerTwo.player, true);
|
|
|
+ }
|
|
|
+
|
|
|
+ removals(_playerOne.getPlayer(), true);
|
|
|
+ removals(_playerTwo.getPlayer(), true);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
protected final boolean makeCompetitionStart()
|
|
|
{
|
|
|
if (!super.makeCompetitionStart())
|
|
|
+ {
|
|
|
return false;
|
|
|
-
|
|
|
- if (_playerOne.player == null || _playerTwo.player == null)
|
|
|
+ }
|
|
|
+
|
|
|
+ if ((_playerOne.getPlayer() == null) || (_playerTwo.getPlayer() == null))
|
|
|
+ {
|
|
|
return false;
|
|
|
-
|
|
|
- _playerOne.player.setIsOlympiadStart(true);
|
|
|
- _playerOne.player.updateEffectIcons();
|
|
|
- _playerTwo.player.setIsOlympiadStart(true);
|
|
|
- _playerTwo.player.updateEffectIcons();
|
|
|
+ }
|
|
|
+
|
|
|
+ _playerOne.getPlayer().setIsOlympiadStart(true);
|
|
|
+ _playerOne.getPlayer().updateEffectIcons();
|
|
|
+ _playerTwo.getPlayer().setIsOlympiadStart(true);
|
|
|
+ _playerTwo.getPlayer().updateEffectIcons();
|
|
|
return true;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
protected final void cleanEffects()
|
|
|
{
|
|
|
- if (_playerOne.player != null
|
|
|
- && !_playerOne.defaulted
|
|
|
- && !_playerOne.disconnected
|
|
|
- && _playerOne.player.getOlympiadGameId() == _stadiumID)
|
|
|
- cleanEffects(_playerOne.player);
|
|
|
-
|
|
|
- if (_playerTwo.player != null
|
|
|
- && !_playerTwo.defaulted
|
|
|
- && !_playerTwo.disconnected
|
|
|
- && _playerTwo.player.getOlympiadGameId() == _stadiumID)
|
|
|
- cleanEffects(_playerTwo.player);
|
|
|
+ if ((_playerOne.getPlayer() != null) && !_playerOne.isDefaulted() && !_playerOne.isDisconnected() && (_playerOne.getPlayer().getOlympiadGameId() == _stadiumID))
|
|
|
+ {
|
|
|
+ cleanEffects(_playerOne.getPlayer());
|
|
|
+ }
|
|
|
+
|
|
|
+ if ((_playerTwo.getPlayer() != null) && !_playerTwo.isDefaulted() && !_playerTwo.isDisconnected() && (_playerTwo.getPlayer().getOlympiadGameId() == _stadiumID))
|
|
|
+ {
|
|
|
+ cleanEffects(_playerTwo.getPlayer());
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
protected final void portPlayersBack()
|
|
|
{
|
|
|
- if (_playerOne.player != null
|
|
|
- && !_playerOne.defaulted
|
|
|
- && !_playerOne.disconnected)
|
|
|
- portPlayerBack(_playerOne.player);
|
|
|
- if (_playerTwo.player != null
|
|
|
- && !_playerTwo.defaulted
|
|
|
- && !_playerTwo.disconnected)
|
|
|
- portPlayerBack(_playerTwo.player);
|
|
|
+ if ((_playerOne.getPlayer() != null) && !_playerOne.isDefaulted() && !_playerOne.isDisconnected())
|
|
|
+ {
|
|
|
+ portPlayerBack(_playerOne.getPlayer());
|
|
|
+ }
|
|
|
+ if ((_playerTwo.getPlayer() != null) && !_playerTwo.isDefaulted() && !_playerTwo.isDisconnected())
|
|
|
+ {
|
|
|
+ portPlayerBack(_playerTwo.getPlayer());
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
protected final void playersStatusBack()
|
|
|
{
|
|
|
- if (_playerOne.player != null
|
|
|
- && !_playerOne.defaulted
|
|
|
- && !_playerOne.disconnected
|
|
|
- && _playerOne.player.getOlympiadGameId() == _stadiumID)
|
|
|
- playerStatusBack(_playerOne.player);
|
|
|
-
|
|
|
- if (_playerTwo.player != null
|
|
|
- && !_playerTwo.defaulted
|
|
|
- && !_playerTwo.disconnected
|
|
|
- && _playerTwo.player.getOlympiadGameId() == _stadiumID)
|
|
|
- playerStatusBack(_playerTwo.player);
|
|
|
+ if ((_playerOne.getPlayer() != null) && !_playerOne.isDefaulted() && !_playerOne.isDisconnected() && (_playerOne.getPlayer().getOlympiadGameId() == _stadiumID))
|
|
|
+ {
|
|
|
+ playerStatusBack(_playerOne.getPlayer());
|
|
|
+ }
|
|
|
+
|
|
|
+ if ((_playerTwo.getPlayer() != null) && !_playerTwo.isDefaulted() && !_playerTwo.isDisconnected() && (_playerTwo.getPlayer().getOlympiadGameId() == _stadiumID))
|
|
|
+ {
|
|
|
+ playerStatusBack(_playerTwo.getPlayer());
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
protected final void clearPlayers()
|
|
|
{
|
|
|
- _playerOne.player = null;
|
|
|
+ _playerOne.setPlayer(null);
|
|
|
_playerOne = null;
|
|
|
- _playerTwo.player = null;
|
|
|
+ _playerTwo.setPlayer(null);
|
|
|
_playerTwo = null;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
protected final void handleDisconnect(L2PcInstance player)
|
|
|
{
|
|
|
- if (player.getObjectId() == _playerOne.objectId)
|
|
|
- _playerOne.disconnected = true;
|
|
|
- else if (player.getObjectId() == _playerTwo.objectId)
|
|
|
- _playerTwo.disconnected = true;
|
|
|
+ if (player.getObjectId() == _playerOne.getObjectId())
|
|
|
+ {
|
|
|
+ _playerOne.setDisconnected(true);
|
|
|
+ }
|
|
|
+ else if (player.getObjectId() == _playerTwo.getObjectId())
|
|
|
+ {
|
|
|
+ _playerTwo.setDisconnected(true);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
protected final boolean checkBattleStatus()
|
|
|
{
|
|
|
if (_aborted)
|
|
|
- return false;
|
|
|
-
|
|
|
- if (_playerOne.player == null || _playerOne.disconnected)
|
|
|
+ {
|
|
|
return false;
|
|
|
-
|
|
|
- if (_playerTwo.player == null || _playerTwo.disconnected)
|
|
|
+ }
|
|
|
+
|
|
|
+ if ((_playerOne.getPlayer() == null) || _playerOne.isDisconnected())
|
|
|
+ {
|
|
|
return false;
|
|
|
-
|
|
|
+ }
|
|
|
+
|
|
|
+ if ((_playerTwo.getPlayer() == null) || _playerTwo.isDisconnected())
|
|
|
+ {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -251,13 +269,17 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
protected final boolean haveWinner()
|
|
|
{
|
|
|
if (!checkBattleStatus())
|
|
|
+ {
|
|
|
return true;
|
|
|
+ }
|
|
|
|
|
|
boolean playerOneLost = true;
|
|
|
try
|
|
|
{
|
|
|
- if (_playerOne.player.getOlympiadGameId() == _stadiumID)
|
|
|
- playerOneLost = _playerOne.player.isDead();
|
|
|
+ if (_playerOne.getPlayer().getOlympiadGameId() == _stadiumID)
|
|
|
+ {
|
|
|
+ playerOneLost = _playerOne.getPlayer().isDead();
|
|
|
+ }
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
@@ -267,8 +289,10 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
boolean playerTwoLost = true;
|
|
|
try
|
|
|
{
|
|
|
- if (_playerTwo.player.getOlympiadGameId() == _stadiumID)
|
|
|
- playerTwoLost = _playerTwo.player.isDead();
|
|
|
+ if (_playerTwo.getPlayer().getOlympiadGameId() == _stadiumID)
|
|
|
+ {
|
|
|
+ playerTwoLost = _playerTwo.getPlayer().isDead();
|
|
|
+ }
|
|
|
}
|
|
|
catch (Exception e)
|
|
|
{
|
|
@@ -282,28 +306,34 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
protected void validateWinner(L2OlympiadStadiumZone stadium)
|
|
|
{
|
|
|
if (_aborted)
|
|
|
+ {
|
|
|
return;
|
|
|
+ }
|
|
|
|
|
|
- final boolean _pOneCrash = (_playerOne.player == null || _playerOne.disconnected);
|
|
|
- final boolean _pTwoCrash = (_playerTwo.player == null || _playerTwo.disconnected);
|
|
|
+ final boolean _pOneCrash = ((_playerOne.getPlayer() == null) || _playerOne.isDisconnected());
|
|
|
+ final boolean _pTwoCrash = ((_playerTwo.getPlayer() == null) || _playerTwo.isDisconnected());
|
|
|
|
|
|
- final int playerOnePoints = _playerOne.stats.getInteger(POINTS);
|
|
|
- final int playerTwoPoints = _playerTwo.stats.getInteger(POINTS);
|
|
|
+ final int playerOnePoints = _playerOne.getStats().getInteger(POINTS);
|
|
|
+ final int playerTwoPoints = _playerTwo.getStats().getInteger(POINTS);
|
|
|
int pointDiff = Math.min(playerOnePoints, playerTwoPoints) / getDivider();
|
|
|
if (pointDiff <= 0)
|
|
|
+ {
|
|
|
pointDiff = 1;
|
|
|
+ }
|
|
|
else if (pointDiff > Config.ALT_OLY_MAX_POINTS)
|
|
|
+ {
|
|
|
pointDiff = Config.ALT_OLY_MAX_POINTS;
|
|
|
-
|
|
|
+ }
|
|
|
+
|
|
|
int points;
|
|
|
SystemMessage sm;
|
|
|
|
|
|
// Check for if a player defaulted before battle started
|
|
|
- if (_playerOne.defaulted || _playerTwo.defaulted)
|
|
|
+ if (_playerOne.isDefaulted() || _playerTwo.isDefaulted())
|
|
|
{
|
|
|
try
|
|
|
{
|
|
|
- if (_playerOne.defaulted)
|
|
|
+ if (_playerOne.isDefaulted())
|
|
|
{
|
|
|
try
|
|
|
{
|
|
@@ -312,8 +342,18 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
|
|
|
if (Config.ALT_OLY_LOG_FIGHTS)
|
|
|
{
|
|
|
- LogRecord record = new LogRecord(Level.INFO, _playerOne.name+" default");
|
|
|
- record.setParameters(new Object[]{_playerOne.name, _playerTwo.name, 0, 0, 0, 0, points, getType().toString()});
|
|
|
+ LogRecord record = new LogRecord(Level.INFO, _playerOne.getName() + " default");
|
|
|
+ record.setParameters(new Object[]
|
|
|
+ {
|
|
|
+ _playerOne.getName(),
|
|
|
+ _playerTwo.getName(),
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ points,
|
|
|
+ getType().toString()
|
|
|
+ });
|
|
|
_logResults.log(record);
|
|
|
}
|
|
|
}
|
|
@@ -322,7 +362,7 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
_log.log(Level.WARNING, "Exception on validateWinner(): " + e.getMessage(), e);
|
|
|
}
|
|
|
}
|
|
|
- if (_playerTwo.defaulted)
|
|
|
+ if (_playerTwo.isDefaulted())
|
|
|
{
|
|
|
try
|
|
|
{
|
|
@@ -331,8 +371,18 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
|
|
|
if (Config.ALT_OLY_LOG_FIGHTS)
|
|
|
{
|
|
|
- LogRecord record = new LogRecord(Level.INFO, _playerTwo.name+" default");
|
|
|
- record.setParameters(new Object[]{_playerOne.name, _playerTwo.name, 0, 0, 0, 0, points, getType().toString()});
|
|
|
+ LogRecord record = new LogRecord(Level.INFO, _playerTwo.getName() + " default");
|
|
|
+ record.setParameters(new Object[]
|
|
|
+ {
|
|
|
+ _playerOne.getName(),
|
|
|
+ _playerTwo.getName(),
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ points,
|
|
|
+ getType().toString()
|
|
|
+ });
|
|
|
_logResults.log(record);
|
|
|
}
|
|
|
}
|
|
@@ -347,7 +397,7 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
{
|
|
|
_log.log(Level.WARNING, "Exception on validateWinner(): " + e.getMessage(), e);
|
|
|
return;
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// Create results for players if a player crashed
|
|
@@ -358,63 +408,93 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
if (_pTwoCrash && !_pOneCrash)
|
|
|
{
|
|
|
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_WON_THE_GAME);
|
|
|
- sm.addString(_playerOne.name);
|
|
|
+ sm.addString(_playerOne.getName());
|
|
|
stadium.broadcastPacket(sm);
|
|
|
-
|
|
|
+
|
|
|
_playerOne.updateStat(COMP_WON, 1);
|
|
|
addPointsToParticipant(_playerOne, pointDiff);
|
|
|
-
|
|
|
+
|
|
|
_playerTwo.updateStat(COMP_LOST, 1);
|
|
|
removePointsFromParticipant(_playerTwo, pointDiff);
|
|
|
|
|
|
- rewardParticipant(_playerOne.player, getReward());
|
|
|
-
|
|
|
+ rewardParticipant(_playerOne.getPlayer(), getReward());
|
|
|
+
|
|
|
if (Config.ALT_OLY_LOG_FIGHTS)
|
|
|
{
|
|
|
- LogRecord record = new LogRecord(Level.INFO, _playerTwo.name+" crash");
|
|
|
- record.setParameters(new Object[]{_playerOne.name, _playerTwo.name, 0, 0, 0, 0, pointDiff, getType().toString()});
|
|
|
+ LogRecord record = new LogRecord(Level.INFO, _playerTwo.getName() + " crash");
|
|
|
+ record.setParameters(new Object[]
|
|
|
+ {
|
|
|
+ _playerOne.getName(),
|
|
|
+ _playerTwo.getName(),
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ pointDiff,
|
|
|
+ getType().toString()
|
|
|
+ });
|
|
|
_logResults.log(record);
|
|
|
}
|
|
|
}
|
|
|
else if (_pOneCrash && !_pTwoCrash)
|
|
|
{
|
|
|
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_WON_THE_GAME);
|
|
|
- sm.addString(_playerTwo.name);
|
|
|
+ sm.addString(_playerTwo.getName());
|
|
|
stadium.broadcastPacket(sm);
|
|
|
-
|
|
|
+
|
|
|
_playerTwo.updateStat(COMP_WON, 1);
|
|
|
addPointsToParticipant(_playerTwo, pointDiff);
|
|
|
-
|
|
|
+
|
|
|
_playerOne.updateStat(COMP_LOST, 1);
|
|
|
removePointsFromParticipant(_playerOne, pointDiff);
|
|
|
|
|
|
- rewardParticipant(_playerTwo.player, getReward());
|
|
|
-
|
|
|
+ rewardParticipant(_playerTwo.getPlayer(), getReward());
|
|
|
+
|
|
|
if (Config.ALT_OLY_LOG_FIGHTS)
|
|
|
{
|
|
|
- LogRecord record = new LogRecord(Level.INFO, _playerOne.name+" crash");
|
|
|
- record.setParameters(new Object[]{_playerOne.name, _playerTwo.name, 0, 0, 0, 0, pointDiff, getType().toString()});
|
|
|
+ LogRecord record = new LogRecord(Level.INFO, _playerOne.getName() + " crash");
|
|
|
+ record.setParameters(new Object[]
|
|
|
+ {
|
|
|
+ _playerOne.getName(),
|
|
|
+ _playerTwo.getName(),
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ pointDiff,
|
|
|
+ getType().toString()
|
|
|
+ });
|
|
|
_logResults.log(record);
|
|
|
}
|
|
|
}
|
|
|
else if (_pOneCrash && _pTwoCrash)
|
|
|
{
|
|
|
stadium.broadcastPacket(SystemMessage.getSystemMessage(SystemMessageId.THE_GAME_ENDED_IN_A_TIE));
|
|
|
-
|
|
|
+
|
|
|
_playerOne.updateStat(COMP_LOST, 1);
|
|
|
removePointsFromParticipant(_playerOne, pointDiff);
|
|
|
-
|
|
|
+
|
|
|
_playerTwo.updateStat(COMP_LOST, 1);
|
|
|
removePointsFromParticipant(_playerTwo, pointDiff);
|
|
|
|
|
|
if (Config.ALT_OLY_LOG_FIGHTS)
|
|
|
{
|
|
|
LogRecord record = new LogRecord(Level.INFO, "both crash");
|
|
|
- record.setParameters(new Object[]{_playerOne.name, _playerTwo.name, 0, 0, 0, 0, pointDiff, getType().toString()});
|
|
|
+ record.setParameters(new Object[]
|
|
|
+ {
|
|
|
+ _playerOne.getName(),
|
|
|
+ _playerTwo.getName(),
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ 0,
|
|
|
+ pointDiff,
|
|
|
+ getType().toString()
|
|
|
+ });
|
|
|
_logResults.log(record);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
_playerOne.updateStat(COMP_DONE, 1);
|
|
|
_playerTwo.updateStat(COMP_DONE, 1);
|
|
|
_playerOne.updateStat(COMP_DONE_WEEK, 1);
|
|
@@ -438,87 +518,84 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
long _fightTime = (System.currentTimeMillis() - _startTime);
|
|
|
|
|
|
double playerOneHp = 0;
|
|
|
- if (_playerOne.player != null && !_playerOne.player.isDead())
|
|
|
+ if ((_playerOne.getPlayer() != null) && !_playerOne.getPlayer().isDead())
|
|
|
{
|
|
|
- playerOneHp = _playerOne.player.getCurrentHp() + _playerOne.player.getCurrentCp();
|
|
|
+ playerOneHp = _playerOne.getPlayer().getCurrentHp() + _playerOne.getPlayer().getCurrentCp();
|
|
|
if (playerOneHp < 0.5)
|
|
|
+ {
|
|
|
playerOneHp = 0;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
double playerTwoHp = 0;
|
|
|
- if (_playerTwo.player != null && !_playerTwo.player.isDead())
|
|
|
+ if ((_playerTwo.getPlayer() != null) && !_playerTwo.getPlayer().isDead())
|
|
|
{
|
|
|
- playerTwoHp = _playerTwo.player.getCurrentHp() + _playerTwo.player.getCurrentCp();
|
|
|
+ playerTwoHp = _playerTwo.getPlayer().getCurrentHp() + _playerTwo.getPlayer().getCurrentCp();
|
|
|
if (playerTwoHp < 0.5)
|
|
|
+ {
|
|
|
playerTwoHp = 0;
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
// if players crashed, search if they've relogged
|
|
|
_playerOne.updatePlayer();
|
|
|
_playerTwo.updatePlayer();
|
|
|
|
|
|
- if ((_playerOne.player == null || !_playerOne.player.isOnline())
|
|
|
- && (_playerTwo.player == null || !_playerTwo.player.isOnline()))
|
|
|
+ if (((_playerOne.getPlayer() == null) || !_playerOne.getPlayer().isOnline()) && ((_playerTwo.getPlayer() == null) || !_playerTwo.getPlayer().isOnline()))
|
|
|
{
|
|
|
_playerOne.updateStat(COMP_DRAWN, 1);
|
|
|
_playerTwo.updateStat(COMP_DRAWN, 1);
|
|
|
sm = SystemMessage.getSystemMessage(SystemMessageId.THE_GAME_ENDED_IN_A_TIE);
|
|
|
stadium.broadcastPacket(sm);
|
|
|
}
|
|
|
- else if (_playerTwo.player == null
|
|
|
- || !_playerTwo.player.isOnline()
|
|
|
- || (playerTwoHp == 0 && playerOneHp != 0)
|
|
|
- || (_damageP1 > _damageP2 && playerTwoHp != 0 && playerOneHp != 0))
|
|
|
+ else if ((_playerTwo.getPlayer() == null) || !_playerTwo.getPlayer().isOnline() || ((playerTwoHp == 0) && (playerOneHp != 0)) || ((_damageP1 > _damageP2) && (playerTwoHp != 0) && (playerOneHp != 0)))
|
|
|
{
|
|
|
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_WON_THE_GAME);
|
|
|
- sm.addString(_playerOne.name);
|
|
|
+ sm.addString(_playerOne.getName());
|
|
|
stadium.broadcastPacket(sm);
|
|
|
-
|
|
|
+
|
|
|
_playerOne.updateStat(COMP_WON, 1);
|
|
|
_playerTwo.updateStat(COMP_LOST, 1);
|
|
|
-
|
|
|
+
|
|
|
addPointsToParticipant(_playerOne, pointDiff);
|
|
|
removePointsFromParticipant(_playerTwo, pointDiff);
|
|
|
-
|
|
|
- winner = _playerOne.name + " won";
|
|
|
+
|
|
|
+ winner = _playerOne.getName() + " won";
|
|
|
|
|
|
// Save Fight Result
|
|
|
- saveResults(_playerOne,_playerTwo,1,_startTime,_fightTime, getType());
|
|
|
- rewardParticipant(_playerOne.player, getReward());
|
|
|
+ saveResults(_playerOne, _playerTwo, 1, _startTime, _fightTime, getType());
|
|
|
+ rewardParticipant(_playerOne.getPlayer(), getReward());
|
|
|
}
|
|
|
- else if (_playerOne.player == null
|
|
|
- || !_playerOne.player.isOnline()
|
|
|
- || (playerOneHp == 0 && playerTwoHp != 0)
|
|
|
- || (_damageP2 > _damageP1 && playerOneHp != 0 && playerTwoHp != 0))
|
|
|
+ else if ((_playerOne.getPlayer() == null) || !_playerOne.getPlayer().isOnline() || ((playerOneHp == 0) && (playerTwoHp != 0)) || ((_damageP2 > _damageP1) && (playerOneHp != 0) && (playerTwoHp != 0)))
|
|
|
{
|
|
|
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_HAS_WON_THE_GAME);
|
|
|
- sm.addString(_playerTwo.name);
|
|
|
+ sm.addString(_playerTwo.getName());
|
|
|
stadium.broadcastPacket(sm);
|
|
|
-
|
|
|
+
|
|
|
_playerTwo.updateStat(COMP_WON, 1);
|
|
|
_playerOne.updateStat(COMP_LOST, 1);
|
|
|
-
|
|
|
+
|
|
|
addPointsToParticipant(_playerTwo, pointDiff);
|
|
|
removePointsFromParticipant(_playerOne, pointDiff);
|
|
|
-
|
|
|
- winner = _playerTwo.name + " won";
|
|
|
+
|
|
|
+ winner = _playerTwo.getName() + " won";
|
|
|
|
|
|
// Save Fight Result
|
|
|
- saveResults(_playerOne,_playerTwo,2,_startTime,_fightTime,getType());
|
|
|
- rewardParticipant(_playerTwo.player, getReward());
|
|
|
+ saveResults(_playerOne, _playerTwo, 2, _startTime, _fightTime, getType());
|
|
|
+ rewardParticipant(_playerTwo.getPlayer(), getReward());
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
// Save Fight Result
|
|
|
- saveResults(_playerOne,_playerTwo,0,_startTime,_fightTime, getType());
|
|
|
+ saveResults(_playerOne, _playerTwo, 0, _startTime, _fightTime, getType());
|
|
|
|
|
|
sm = SystemMessage.getSystemMessage(SystemMessageId.THE_GAME_ENDED_IN_A_TIE);
|
|
|
stadium.broadcastPacket(sm);
|
|
|
-
|
|
|
+
|
|
|
removePointsFromParticipant(_playerOne, Math.min(playerOnePoints / getDivider(), Config.ALT_OLY_MAX_POINTS));
|
|
|
removePointsFromParticipant(_playerTwo, Math.min(playerTwoPoints / getDivider(), Config.ALT_OLY_MAX_POINTS));
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
_playerOne.updateStat(COMP_DONE, 1);
|
|
|
_playerTwo.updateStat(COMP_DONE, 1);
|
|
|
_playerOne.updateStat(COMP_DONE_WEEK, 1);
|
|
@@ -529,7 +606,17 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
if (Config.ALT_OLY_LOG_FIGHTS)
|
|
|
{
|
|
|
LogRecord record = new LogRecord(Level.INFO, winner);
|
|
|
- record.setParameters(new Object[]{_playerOne.name, _playerTwo.name, playerOneHp, playerTwoHp, _damageP1, _damageP2, pointDiff, getType().toString()});
|
|
|
+ record.setParameters(new Object[]
|
|
|
+ {
|
|
|
+ _playerOne.getName(),
|
|
|
+ _playerTwo.getName(),
|
|
|
+ playerOneHp,
|
|
|
+ playerTwoHp,
|
|
|
+ _damageP1,
|
|
|
+ _damageP2,
|
|
|
+ pointDiff,
|
|
|
+ getType().toString()
|
|
|
+ });
|
|
|
_logResults.log(record);
|
|
|
}
|
|
|
|
|
@@ -543,20 +630,30 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
@Override
|
|
|
protected final void addDamage(L2PcInstance player, int damage)
|
|
|
{
|
|
|
- if (_playerOne.player == null || _playerTwo.player == null)
|
|
|
+ if ((_playerOne.getPlayer() == null) || (_playerTwo.getPlayer() == null))
|
|
|
+ {
|
|
|
return;
|
|
|
- if (player == _playerOne.player)
|
|
|
+ }
|
|
|
+ if (player == _playerOne.getPlayer())
|
|
|
+ {
|
|
|
_damageP1 += damage;
|
|
|
- else if (player == _playerTwo.player)
|
|
|
+ }
|
|
|
+ else if (player == _playerTwo.getPlayer())
|
|
|
+ {
|
|
|
_damageP2 += damage;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public final String[] getPlayerNames()
|
|
|
{
|
|
|
- return new String[] {_playerOne.name, _playerTwo.name};
|
|
|
+ return new String[]
|
|
|
+ {
|
|
|
+ _playerOne.getName(),
|
|
|
+ _playerTwo.getName()
|
|
|
+ };
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
public boolean checkDefaulted()
|
|
|
{
|
|
@@ -564,32 +661,36 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
_playerOne.updatePlayer();
|
|
|
_playerTwo.updatePlayer();
|
|
|
|
|
|
- reason = checkDefaulted(_playerOne.player);
|
|
|
+ reason = checkDefaulted(_playerOne.getPlayer());
|
|
|
if (reason != null)
|
|
|
{
|
|
|
- _playerOne.defaulted = true;
|
|
|
- if (_playerTwo.player != null)
|
|
|
- _playerTwo.player.sendPacket(reason);
|
|
|
+ _playerOne.setDefaulted(true);
|
|
|
+ if (_playerTwo.getPlayer() != null)
|
|
|
+ {
|
|
|
+ _playerTwo.getPlayer().sendPacket(reason);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- reason = checkDefaulted(_playerTwo.player);
|
|
|
+
|
|
|
+ reason = checkDefaulted(_playerTwo.getPlayer());
|
|
|
if (reason != null)
|
|
|
{
|
|
|
- _playerTwo.defaulted = true;
|
|
|
- if (_playerOne.player != null)
|
|
|
- _playerOne.player.sendPacket(reason);
|
|
|
+ _playerTwo.setDefaulted(true);
|
|
|
+ if (_playerOne.getPlayer() != null)
|
|
|
+ {
|
|
|
+ _playerOne.getPlayer().sendPacket(reason);
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
- return _playerOne.defaulted || _playerTwo.defaulted;
|
|
|
+
|
|
|
+ return _playerOne.isDefaulted() || _playerTwo.isDefaulted();
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
@Override
|
|
|
public final void resetDamage()
|
|
|
{
|
|
|
_damageP1 = 0;
|
|
|
_damageP2 = 0;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
protected static final void saveResults(Participant one, Participant two, int _winner, long _startTime, long _fightTime, CompetitionType type)
|
|
|
{
|
|
|
Connection con = null;
|
|
@@ -597,10 +698,10 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
{
|
|
|
con = L2DatabaseFactory.getInstance().getConnection();
|
|
|
PreparedStatement statement = con.prepareStatement("INSERT INTO olympiad_fights (charOneId, charTwoId, charOneClass, charTwoClass, winner, start, time, classed) values(?,?,?,?,?,?,?,?)");
|
|
|
- statement.setInt(1, one.objectId);
|
|
|
- statement.setInt(2, two.objectId);
|
|
|
- statement.setInt(3, one.baseClass);
|
|
|
- statement.setInt(4, two.baseClass);
|
|
|
+ statement.setInt(1, one.getObjectId());
|
|
|
+ statement.setInt(2, two.getObjectId());
|
|
|
+ statement.setInt(3, one.getBaseClass());
|
|
|
+ statement.setInt(4, two.getBaseClass());
|
|
|
statement.setInt(5, _winner);
|
|
|
statement.setLong(6, _startTime);
|
|
|
statement.setLong(7, _fightTime);
|
|
@@ -610,8 +711,10 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
|
|
|
}
|
|
|
catch (SQLException e)
|
|
|
{
|
|
|
- if(_log.isLoggable(Level.SEVERE))
|
|
|
+ if (_log.isLoggable(Level.SEVERE))
|
|
|
+ {
|
|
|
_log.log(Level.SEVERE, "SQL exception while saving olympiad fight.", e);
|
|
|
+ }
|
|
|
}
|
|
|
finally
|
|
|
{
|