Clan war related fixes.
Contributed by nasseka.
This commit is contained in:
		| @@ -29,6 +29,7 @@ import org.l2jmobius.gameserver.model.clan.ClanWar; | ||||
| import org.l2jmobius.gameserver.network.GameClient; | ||||
| import org.l2jmobius.gameserver.network.SystemMessageId; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.PledgeReceiveWarList; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; | ||||
|  | ||||
| public class RequestStartPledgeWar implements IClientIncomingPacket | ||||
| @@ -119,12 +120,34 @@ public class RequestStartPledgeWar implements IClientIncomingPacket | ||||
| 				player.sendPacket(ActionFailed.STATIC_PACKET); | ||||
| 				return; | ||||
| 			} | ||||
| 			 | ||||
| 			final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ALREADY_BEEN_AT_WAR_WITH_THE_S1_CLAN_5_DAYS_MUST_PASS_BEFORE_YOU_CAN_DECLARE_WAR_AGAIN); | ||||
| 			sm.addString(clanDeclaredWar.getName()); | ||||
| 			player.sendPacket(sm); | ||||
| 			player.sendPacket(ActionFailed.STATIC_PACKET); | ||||
| 			return; | ||||
| 			if (clanWar.getState() == ClanWarState.MUTUAL) | ||||
| 			{ | ||||
| 				player.sendMessage("You have already been at war with " + clanDeclaredWar.getName() + "."); | ||||
| 				player.sendPacket(ActionFailed.STATIC_PACKET); | ||||
| 				return; | ||||
| 			} | ||||
| 			if (clanWar.getState() == ClanWarState.BLOOD_DECLARATION) | ||||
| 			{ | ||||
| 				clanWar.mutualClanWarAccepted(clanDeclaredWar, clanDeclaringWar); | ||||
| 				ClanTable.getInstance().storeClanWars(clanWar); | ||||
| 				for (ClanMember member : clanDeclaringWar.getMembers()) | ||||
| 				{ | ||||
| 					if ((member != null) && member.isOnline()) | ||||
| 					{ | ||||
| 						member.getPlayer().broadcastUserInfo(UserInfoType.CLAN); | ||||
| 					} | ||||
| 				} | ||||
| 				for (ClanMember member : clanDeclaredWar.getMembers()) | ||||
| 				{ | ||||
| 					if ((member != null) && member.isOnline()) | ||||
| 					{ | ||||
| 						member.getPlayer().broadcastUserInfo(UserInfoType.CLAN); | ||||
| 					} | ||||
| 				} | ||||
| 				 | ||||
| 				player.sendPacket(new PledgeReceiveWarList(player.getClan(), 0)); | ||||
| 				return; | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); | ||||
| @@ -144,5 +167,6 @@ public class RequestStartPledgeWar implements IClientIncomingPacket | ||||
| 				member.getPlayer().broadcastUserInfo(UserInfoType.CLAN); | ||||
| 			} | ||||
| 		} | ||||
| 		player.sendPacket(new PledgeReceiveWarList(player.getClan(), 0)); | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -25,6 +25,8 @@ import org.l2jmobius.gameserver.model.clan.ClanPrivilege; | ||||
| import org.l2jmobius.gameserver.network.GameClient; | ||||
| import org.l2jmobius.gameserver.network.SystemMessageId; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.PledgeReceiveWarList; | ||||
| import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; | ||||
| import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager; | ||||
|  | ||||
| public class RequestStopPledgeWar implements IClientIncomingPacket | ||||
| @@ -74,6 +76,15 @@ public class RequestStopPledgeWar implements IClientIncomingPacket | ||||
| 			return; | ||||
| 		} | ||||
| 		 | ||||
| 		// Check if clan has enough reputation to end the war (10000). | ||||
| 		if (player.getClan().getReputationScore() <= 10000) | ||||
| 		{ | ||||
| 			final SystemMessage sm = new SystemMessage(SystemMessageId.THE_CLAN_REPUTATION_IS_TOO_LOW); | ||||
| 			player.sendPacket(sm); | ||||
| 			player.sendPacket(ActionFailed.STATIC_PACKET); | ||||
| 			return; | ||||
| 		} | ||||
| 		 | ||||
| 		for (ClanMember member : playerClan.getMembers()) | ||||
| 		{ | ||||
| 			if ((member == null) || (member.getPlayer() == null)) | ||||
| @@ -83,12 +94,16 @@ public class RequestStopPledgeWar implements IClientIncomingPacket | ||||
| 			if (AttackStanceTaskManager.getInstance().hasAttackStanceTask(member.getPlayer())) | ||||
| 			{ | ||||
| 				player.sendPacket(SystemMessageId.A_CEASE_FIRE_DURING_A_CLAN_WAR_CAN_NOT_BE_CALLED_WHILE_MEMBERS_OF_YOUR_CLAN_ARE_ENGAGED_IN_BATTLE); | ||||
| 				player.sendPacket(ActionFailed.STATIC_PACKET); | ||||
| 				return; | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		// Reduce reputation. | ||||
| 		playerClan.takeReputationScore(5000); | ||||
| 		playerClan.takeReputationScore(10000); | ||||
| 		final SystemMessage sm = new SystemMessage(SystemMessageId.YOUR_CLAN_LOST_10_000_REPUTATION_POINTS_FOR_WITHDRAWING_FROM_THE_CLAN_WAR); | ||||
| 		player.getClan().broadcastToOnlineMembers(sm); | ||||
| 		 | ||||
| 		ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId()); | ||||
| 		for (Player member : playerClan.getOnlineMembers(0)) | ||||
| 		{ | ||||
| @@ -99,5 +114,7 @@ public class RequestStopPledgeWar implements IClientIncomingPacket | ||||
| 		{ | ||||
| 			member.broadcastUserInfo(); | ||||
| 		} | ||||
| 		 | ||||
| 		player.sendPacket(new PledgeReceiveWarList(player.getClan(), 0)); | ||||
| 	} | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 MobiusDevelopment
					MobiusDevelopment