|
@@ -28,7 +28,7 @@ import com.l2jserver.gameserver.network.serverpackets.ExCubeGameTeamList;
|
|
|
/**
|
|
|
* @authors BiggBoss, Gigiikun
|
|
|
*/
|
|
|
-public class HandysBlockCheckerEvent extends Quest
|
|
|
+public class HandysBlockCheckerEvent extends Quest
|
|
|
{
|
|
|
private static final String qn = "HandysBlockCheckerEvent";
|
|
|
|
|
@@ -41,82 +41,67 @@ public class HandysBlockCheckerEvent extends Quest
|
|
|
@Override
|
|
|
public String onFirstTalk(L2Npc npc, L2PcInstance player)
|
|
|
{
|
|
|
- if (npc == null || player == null) return null;
|
|
|
+ if ((npc == null) || (player == null))
|
|
|
+ {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
|
|
|
- int npcId = npc.getNpcId();
|
|
|
+ final int arena = npc.getNpcId() - A_MANAGER_1;
|
|
|
+ if (eventIsFull(arena))
|
|
|
+ {
|
|
|
+ player.sendPacket(SystemMessageId.CANNOT_REGISTER_CAUSE_QUEUE_FULL);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
|
|
|
- int arena = -1;
|
|
|
- switch(npcId)
|
|
|
+ if (HandysBlockCheckerManager.getInstance().arenaIsBeingUsed(arena))
|
|
|
{
|
|
|
- case A_MANAGER_1:
|
|
|
- arena = 0;
|
|
|
- break;
|
|
|
- case A_MANAGER_2:
|
|
|
- arena = 1;
|
|
|
- break;
|
|
|
- case A_MANAGER_3:
|
|
|
- arena = 2;
|
|
|
- break;
|
|
|
- case A_MANAGER_4:
|
|
|
- arena = 3;
|
|
|
- break;
|
|
|
+ player.sendPacket(SystemMessageId.MATCH_BEING_PREPARED_TRY_LATER);
|
|
|
+ return null;
|
|
|
}
|
|
|
|
|
|
- if (arena != -1)
|
|
|
+ if (HandysBlockCheckerManager.getInstance().addPlayerToArena(player, arena))
|
|
|
{
|
|
|
- if (eventIsFull(arena))
|
|
|
+ ArenaParticipantsHolder holder = HandysBlockCheckerManager.getInstance().getHolder(arena);
|
|
|
+
|
|
|
+ final ExCubeGameTeamList tl = new ExCubeGameTeamList(holder.getRedPlayers(), holder.getBluePlayers(), arena);
|
|
|
+
|
|
|
+ player.sendPacket(tl);
|
|
|
+
|
|
|
+ int countBlue = holder.getBlueTeamSize();
|
|
|
+ int countRed = holder.getRedTeamSize();
|
|
|
+ int minMembers = Config.MIN_BLOCK_CHECKER_TEAM_MEMBERS;
|
|
|
+
|
|
|
+ if ((countBlue >= minMembers) && (countRed >= minMembers))
|
|
|
{
|
|
|
- player.sendPacket(SystemMessageId.CANNOT_REGISTER_CAUSE_QUEUE_FULL);
|
|
|
- return null;
|
|
|
- }
|
|
|
- if (HandysBlockCheckerManager.getInstance().arenaIsBeingUsed(arena))
|
|
|
- {
|
|
|
- player.sendPacket(SystemMessageId.MATCH_BEING_PREPARED_TRY_LATER);
|
|
|
- return null;
|
|
|
- }
|
|
|
- if(HandysBlockCheckerManager.getInstance().addPlayerToArena(player, arena))
|
|
|
- {
|
|
|
- ArenaParticipantsHolder holder = HandysBlockCheckerManager.getInstance().getHolder(arena);
|
|
|
-
|
|
|
- final ExCubeGameTeamList tl = new ExCubeGameTeamList(holder.getRedPlayers(), holder.getBluePlayers(), arena);
|
|
|
-
|
|
|
- player.sendPacket(tl);
|
|
|
-
|
|
|
- int countBlue = holder.getBlueTeamSize();
|
|
|
- int countRed = holder.getRedTeamSize();
|
|
|
- int minMembers = Config.MIN_BLOCK_CHECKER_TEAM_MEMBERS;
|
|
|
-
|
|
|
- if(countBlue >= minMembers && countRed >= minMembers)
|
|
|
- {
|
|
|
- holder.updateEvent();
|
|
|
- holder.broadCastPacketToTeam(new ExCubeGameRequestReady());
|
|
|
- holder.broadCastPacketToTeam(new ExCubeGameChangeTimeToStart(10));
|
|
|
- }
|
|
|
+ holder.updateEvent();
|
|
|
+ holder.broadCastPacketToTeam(new ExCubeGameRequestReady());
|
|
|
+ holder.broadCastPacketToTeam(new ExCubeGameChangeTimeToStart(10));
|
|
|
}
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
private boolean eventIsFull(int arena)
|
|
|
{
|
|
|
- if(HandysBlockCheckerManager.getInstance().getHolder(arena).getAllPlayers().size() == 12)
|
|
|
+ if (HandysBlockCheckerManager.getInstance().getHolder(arena).getAllPlayers().size() == 12)
|
|
|
+ {
|
|
|
return true;
|
|
|
+ }
|
|
|
return false;
|
|
|
}
|
|
|
-
|
|
|
- public HandysBlockCheckerEvent(int questId, String name, String descr)
|
|
|
+
|
|
|
+ public HandysBlockCheckerEvent(int questId, String name, String descr)
|
|
|
{
|
|
|
super(questId, name, descr);
|
|
|
- addFirstTalkId(A_MANAGER_1);
|
|
|
- addFirstTalkId(A_MANAGER_2);
|
|
|
- addFirstTalkId(A_MANAGER_3);
|
|
|
- addFirstTalkId(A_MANAGER_4);
|
|
|
+ addFirstTalkId(A_MANAGER_1, A_MANAGER_2, A_MANAGER_3, A_MANAGER_4);
|
|
|
}
|
|
|
|
|
|
public static void main(String[] args)
|
|
|
{
|
|
|
- if(!Config.ENABLE_BLOCK_CHECKER_EVENT)
|
|
|
+ if (!Config.ENABLE_BLOCK_CHECKER_EVENT)
|
|
|
+ {
|
|
|
_log.info("Handy's Block Checker Event is disabled");
|
|
|
+ }
|
|
|
else
|
|
|
{
|
|
|
new HandysBlockCheckerEvent(-1, qn, "Handy's Block Checker Event");
|