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 (500).
|
||||
if (player.getClan().getReputationScore() <= 500)
|
||||
{
|
||||
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(500);
|
||||
final SystemMessage sm = new SystemMessage(SystemMessageId.YOUR_CLAN_LOST_500_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