2
0
Эх сурвалжийг харах

If participant(s) disconnected during fight opponent(s) should receive points and items.
Disconnect before port to arena handled in checkDefault().

_DS_ 14 жил өмнө
parent
commit
6fb63079b5

+ 6 - 2
L2_GameServer/java/com/l2jserver/gameserver/model/olympiad/OlympiadGameNormal.java

@@ -365,11 +365,13 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
 					stadium.broadcastPacket(sm);
 
 					_playerOne.updateStat(COMP_WON, 1);
-					addPointsToParticipant(_playerOne, 0);
+					addPointsToParticipant(_playerOne, pointDiff);
 
 					_playerTwo.updateStat(COMP_LOST, 1);
 					removePointsFromParticipant(_playerTwo, pointDiff);
 					
+					rewardParticipant(_playerOne.player, getReward());
+
 					if (Config.ALT_OLY_LOG_FIGHTS)
 					{
 						LogRecord record = new LogRecord(Level.INFO, _playerTwo.name+" crash");
@@ -384,11 +386,13 @@ abstract public class OlympiadGameNormal extends AbstractOlympiadGame
 					stadium.broadcastPacket(sm);
 
 					_playerTwo.updateStat(COMP_WON, 1);
-					addPointsToParticipant(_playerTwo, 0);
+					addPointsToParticipant(_playerTwo, pointDiff);
 
 					_playerOne.updateStat(COMP_LOST, 1);
 					removePointsFromParticipant(_playerOne, pointDiff);
 					
+					rewardParticipant(_playerTwo.player, getReward());
+
 					if (Config.ALT_OLY_LOG_FIGHTS)
 					{
 						LogRecord record = new LogRecord(Level.INFO, _playerOne.name+" crash");

+ 22 - 12
L2_GameServer/java/com/l2jserver/gameserver/model/olympiad/OlympiadGameTeams.java

@@ -543,17 +543,22 @@ class OlympiadGameTeams extends AbstractOlympiadGame
 
 					for (int i = 0 ; i < TEAM_SIZE; i++)
 					{
-						par = _teamOne[i];
-						par.updateStat(COMP_WON, 1);
-						addPointsToParticipant(par, 0);
+						par = _teamTwo[i];
+						par.updateStat(COMP_LOST, 1);
+						points = pointsTeamTwo[i];
+						removePointsFromParticipant(par, points);
 					}
 
+					points = min / TEAM_SIZE;
 					for (int i = 0 ; i < TEAM_SIZE; i++)
 					{
-						par = _teamTwo[i];
-						par.updateStat(COMP_LOST, 1);
-						removePointsFromParticipant(par, pointsTeamTwo[i]);
+						par = _teamOne[i];
+						par.updateStat(COMP_WON, 1);
+						addPointsToParticipant(par, points);
 					}
+
+					for (int i = 0 ; i < TEAM_SIZE; i++)
+						rewardParticipant(_teamOne[i].player, getReward());
 				}
 				else if (tOneCrash && !tTwoCrash)
 				{
@@ -561,19 +566,24 @@ class OlympiadGameTeams extends AbstractOlympiadGame
 					sm.addString(_teamTwo[0].name);
 					stadium.broadcastPacket(sm);
 
+					for (int i = 0 ; i < TEAM_SIZE; i++)
+					{
+						par = _teamOne[i];
+						par.updateStat(COMP_LOST, 1);
+						points = pointsTeamOne[i];
+						removePointsFromParticipant(par, points);
+					}
+					
+					points = min / TEAM_SIZE;
 					for (int i = 0 ; i < TEAM_SIZE; i++)
 					{
 						par = _teamTwo[i];
 						par.updateStat(COMP_WON, 1);
-						addPointsToParticipant(par, 0);
+						addPointsToParticipant(par, points);
 					}
 
 					for (int i = 0 ; i < TEAM_SIZE; i++)
-					{
-						par = _teamOne[i];
-						par.updateStat(COMP_LOST, 1);
-						removePointsFromParticipant(par, pointsTeamOne[i]);
-					}
+						rewardParticipant(_teamTwo[i].player, getReward());
 				}
 				else if (tOneCrash && tTwoCrash)
 				{