From 6093d89fe72317d96f396312a170336f42d25f89 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Mon, 11 Dec 2017 15:56:27 +0000 Subject: [PATCH] Manage TvT team forfeit. --- .../scripts/custom/events/TeamVsTeam/TvT.java | 101 +++++++----------- .../scripts/custom/events/TeamVsTeam/TvT.java | 101 +++++++----------- .../scripts/custom/events/TeamVsTeam/TvT.java | 101 +++++++----------- .../scripts/custom/events/TeamVsTeam/TvT.java | 101 +++++++----------- .../scripts/custom/events/TeamVsTeam/TvT.java | 101 +++++++----------- 5 files changed, 190 insertions(+), 315 deletions(-) diff --git a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java index 88e6267207..7c498a2c12 100644 --- a/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java +++ b/L2J_Mobius_1.0_Ertheia/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java @@ -476,53 +476,17 @@ public class TvT extends Event break; } case "10": - { - broadcastScreenMessage("10", 4); - break; - } case "9": - { - broadcastScreenMessage("9", 4); - break; - } case "8": - { - broadcastScreenMessage("8", 4); - break; - } case "7": - { - broadcastScreenMessage("7", 4); - break; - } case "6": - { - broadcastScreenMessage("6", 4); - break; - } case "5": - { - broadcastScreenMessage("5", 4); - break; - } case "4": - { - broadcastScreenMessage("4", 4); - break; - } case "3": - { - broadcastScreenMessage("3", 4); - break; - } case "2": - { - broadcastScreenMessage("2", 4); - break; - } case "1": { - broadcastScreenMessage("1", 4); + broadcastScreenMessage(event, 4); break; } } @@ -546,7 +510,16 @@ public class TvT extends Event player.sendMessage("You have been kicked for been inactive."); if (PVP_WORLD != null) { - broadcastScreenMessageWithEffect("Player " + player.getName() + " was kicked for been inactive!", 7); + // Manage forfeit. + if ((BLUE_TEAM.isEmpty() && !RED_TEAM.isEmpty()) || // + (RED_TEAM.isEmpty() && !BLUE_TEAM.isEmpty())) + { + manageForfeit(); + } + else + { + broadcastScreenMessageWithEffect("Player " + player.getName() + " was kicked for been inactive!", 7); + } } } } @@ -740,34 +713,37 @@ public class TvT extends Event } } + private void manageForfeit() + { + cancelQuestTimer("10", null, null); + cancelQuestTimer("9", null, null); + cancelQuestTimer("8", null, null); + cancelQuestTimer("7", null, null); + cancelQuestTimer("6", null, null); + cancelQuestTimer("5", null, null); + cancelQuestTimer("4", null, null); + cancelQuestTimer("3", null, null); + cancelQuestTimer("2", null, null); + cancelQuestTimer("1", null, null); + cancelQuestTimer("EndFight", null, null); + startQuestTimer("EndFight", 10000, null, null); + broadcastScreenMessageWithEffect("Enemy team forfeit!", 7); + } + @RegisterEvent(EventType.ON_PLAYER_LOGOUT) private void OnPlayerLogout(OnPlayerLogout event) { final L2PcInstance player = event.getActiveChar(); - if (player != null) + // Remove player from lists. + PLAYER_LIST.remove(player); + PLAYER_SCORES.remove(player); + BLUE_TEAM.remove(player); + RED_TEAM.remove(player); + // Manage forfeit. + if ((BLUE_TEAM.isEmpty() && !RED_TEAM.isEmpty()) || // + (RED_TEAM.isEmpty() && !BLUE_TEAM.isEmpty())) { - PLAYER_LIST.remove(player); - PLAYER_SCORES.remove(player); - BLUE_TEAM.remove(player); - RED_TEAM.remove(player); - } - // If all players left instance end the event. - if (PLAYER_LIST.isEmpty()) - { - // Stop timers. - for (List timers : getQuestTimers().values()) - { - for (QuestTimer timer : timers) - { - timer.cancel(); - } - } - // Destroy world. - if (PVP_WORLD != null) - { - PVP_WORLD.destroy(); - PVP_WORLD = null; - } + manageForfeit(); } } @@ -808,7 +784,7 @@ public class TvT extends Event } EVENT_ACTIVE = true; - // Cancel timers. (In case event started immediately after another event finished.) + // Cancel timers. (In case event started immediately after another event was canceled.) for (List timers : getQuestTimers().values()) { for (QuestTimer timer : timers) @@ -827,7 +803,6 @@ public class TvT extends Event // Send message to players. Broadcast.toAllOnlinePlayers("TvT Event: Registration opened for " + REGISTRATION_TIME + " minutes."); Broadcast.toAllOnlinePlayers("TvT Event: You can register at Giran TvT Event Manager."); - return true; } diff --git a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java index 88e6267207..7c498a2c12 100644 --- a/L2J_Mobius_2.5_Underground/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java +++ b/L2J_Mobius_2.5_Underground/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java @@ -476,53 +476,17 @@ public class TvT extends Event break; } case "10": - { - broadcastScreenMessage("10", 4); - break; - } case "9": - { - broadcastScreenMessage("9", 4); - break; - } case "8": - { - broadcastScreenMessage("8", 4); - break; - } case "7": - { - broadcastScreenMessage("7", 4); - break; - } case "6": - { - broadcastScreenMessage("6", 4); - break; - } case "5": - { - broadcastScreenMessage("5", 4); - break; - } case "4": - { - broadcastScreenMessage("4", 4); - break; - } case "3": - { - broadcastScreenMessage("3", 4); - break; - } case "2": - { - broadcastScreenMessage("2", 4); - break; - } case "1": { - broadcastScreenMessage("1", 4); + broadcastScreenMessage(event, 4); break; } } @@ -546,7 +510,16 @@ public class TvT extends Event player.sendMessage("You have been kicked for been inactive."); if (PVP_WORLD != null) { - broadcastScreenMessageWithEffect("Player " + player.getName() + " was kicked for been inactive!", 7); + // Manage forfeit. + if ((BLUE_TEAM.isEmpty() && !RED_TEAM.isEmpty()) || // + (RED_TEAM.isEmpty() && !BLUE_TEAM.isEmpty())) + { + manageForfeit(); + } + else + { + broadcastScreenMessageWithEffect("Player " + player.getName() + " was kicked for been inactive!", 7); + } } } } @@ -740,34 +713,37 @@ public class TvT extends Event } } + private void manageForfeit() + { + cancelQuestTimer("10", null, null); + cancelQuestTimer("9", null, null); + cancelQuestTimer("8", null, null); + cancelQuestTimer("7", null, null); + cancelQuestTimer("6", null, null); + cancelQuestTimer("5", null, null); + cancelQuestTimer("4", null, null); + cancelQuestTimer("3", null, null); + cancelQuestTimer("2", null, null); + cancelQuestTimer("1", null, null); + cancelQuestTimer("EndFight", null, null); + startQuestTimer("EndFight", 10000, null, null); + broadcastScreenMessageWithEffect("Enemy team forfeit!", 7); + } + @RegisterEvent(EventType.ON_PLAYER_LOGOUT) private void OnPlayerLogout(OnPlayerLogout event) { final L2PcInstance player = event.getActiveChar(); - if (player != null) + // Remove player from lists. + PLAYER_LIST.remove(player); + PLAYER_SCORES.remove(player); + BLUE_TEAM.remove(player); + RED_TEAM.remove(player); + // Manage forfeit. + if ((BLUE_TEAM.isEmpty() && !RED_TEAM.isEmpty()) || // + (RED_TEAM.isEmpty() && !BLUE_TEAM.isEmpty())) { - PLAYER_LIST.remove(player); - PLAYER_SCORES.remove(player); - BLUE_TEAM.remove(player); - RED_TEAM.remove(player); - } - // If all players left instance end the event. - if (PLAYER_LIST.isEmpty()) - { - // Stop timers. - for (List timers : getQuestTimers().values()) - { - for (QuestTimer timer : timers) - { - timer.cancel(); - } - } - // Destroy world. - if (PVP_WORLD != null) - { - PVP_WORLD.destroy(); - PVP_WORLD = null; - } + manageForfeit(); } } @@ -808,7 +784,7 @@ public class TvT extends Event } EVENT_ACTIVE = true; - // Cancel timers. (In case event started immediately after another event finished.) + // Cancel timers. (In case event started immediately after another event was canceled.) for (List timers : getQuestTimers().values()) { for (QuestTimer timer : timers) @@ -827,7 +803,6 @@ public class TvT extends Event // Send message to players. Broadcast.toAllOnlinePlayers("TvT Event: Registration opened for " + REGISTRATION_TIME + " minutes."); Broadcast.toAllOnlinePlayers("TvT Event: You can register at Giran TvT Event Manager."); - return true; } diff --git a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java index 88e6267207..7c498a2c12 100644 --- a/L2J_Mobius_3.0_Helios/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java +++ b/L2J_Mobius_3.0_Helios/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java @@ -476,53 +476,17 @@ public class TvT extends Event break; } case "10": - { - broadcastScreenMessage("10", 4); - break; - } case "9": - { - broadcastScreenMessage("9", 4); - break; - } case "8": - { - broadcastScreenMessage("8", 4); - break; - } case "7": - { - broadcastScreenMessage("7", 4); - break; - } case "6": - { - broadcastScreenMessage("6", 4); - break; - } case "5": - { - broadcastScreenMessage("5", 4); - break; - } case "4": - { - broadcastScreenMessage("4", 4); - break; - } case "3": - { - broadcastScreenMessage("3", 4); - break; - } case "2": - { - broadcastScreenMessage("2", 4); - break; - } case "1": { - broadcastScreenMessage("1", 4); + broadcastScreenMessage(event, 4); break; } } @@ -546,7 +510,16 @@ public class TvT extends Event player.sendMessage("You have been kicked for been inactive."); if (PVP_WORLD != null) { - broadcastScreenMessageWithEffect("Player " + player.getName() + " was kicked for been inactive!", 7); + // Manage forfeit. + if ((BLUE_TEAM.isEmpty() && !RED_TEAM.isEmpty()) || // + (RED_TEAM.isEmpty() && !BLUE_TEAM.isEmpty())) + { + manageForfeit(); + } + else + { + broadcastScreenMessageWithEffect("Player " + player.getName() + " was kicked for been inactive!", 7); + } } } } @@ -740,34 +713,37 @@ public class TvT extends Event } } + private void manageForfeit() + { + cancelQuestTimer("10", null, null); + cancelQuestTimer("9", null, null); + cancelQuestTimer("8", null, null); + cancelQuestTimer("7", null, null); + cancelQuestTimer("6", null, null); + cancelQuestTimer("5", null, null); + cancelQuestTimer("4", null, null); + cancelQuestTimer("3", null, null); + cancelQuestTimer("2", null, null); + cancelQuestTimer("1", null, null); + cancelQuestTimer("EndFight", null, null); + startQuestTimer("EndFight", 10000, null, null); + broadcastScreenMessageWithEffect("Enemy team forfeit!", 7); + } + @RegisterEvent(EventType.ON_PLAYER_LOGOUT) private void OnPlayerLogout(OnPlayerLogout event) { final L2PcInstance player = event.getActiveChar(); - if (player != null) + // Remove player from lists. + PLAYER_LIST.remove(player); + PLAYER_SCORES.remove(player); + BLUE_TEAM.remove(player); + RED_TEAM.remove(player); + // Manage forfeit. + if ((BLUE_TEAM.isEmpty() && !RED_TEAM.isEmpty()) || // + (RED_TEAM.isEmpty() && !BLUE_TEAM.isEmpty())) { - PLAYER_LIST.remove(player); - PLAYER_SCORES.remove(player); - BLUE_TEAM.remove(player); - RED_TEAM.remove(player); - } - // If all players left instance end the event. - if (PLAYER_LIST.isEmpty()) - { - // Stop timers. - for (List timers : getQuestTimers().values()) - { - for (QuestTimer timer : timers) - { - timer.cancel(); - } - } - // Destroy world. - if (PVP_WORLD != null) - { - PVP_WORLD.destroy(); - PVP_WORLD = null; - } + manageForfeit(); } } @@ -808,7 +784,7 @@ public class TvT extends Event } EVENT_ACTIVE = true; - // Cancel timers. (In case event started immediately after another event finished.) + // Cancel timers. (In case event started immediately after another event was canceled.) for (List timers : getQuestTimers().values()) { for (QuestTimer timer : timers) @@ -827,7 +803,6 @@ public class TvT extends Event // Send message to players. Broadcast.toAllOnlinePlayers("TvT Event: Registration opened for " + REGISTRATION_TIME + " minutes."); Broadcast.toAllOnlinePlayers("TvT Event: You can register at Giran TvT Event Manager."); - return true; } diff --git a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java index 88e6267207..7c498a2c12 100644 --- a/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java +++ b/L2J_Mobius_4.0_GrandCrusade/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java @@ -476,53 +476,17 @@ public class TvT extends Event break; } case "10": - { - broadcastScreenMessage("10", 4); - break; - } case "9": - { - broadcastScreenMessage("9", 4); - break; - } case "8": - { - broadcastScreenMessage("8", 4); - break; - } case "7": - { - broadcastScreenMessage("7", 4); - break; - } case "6": - { - broadcastScreenMessage("6", 4); - break; - } case "5": - { - broadcastScreenMessage("5", 4); - break; - } case "4": - { - broadcastScreenMessage("4", 4); - break; - } case "3": - { - broadcastScreenMessage("3", 4); - break; - } case "2": - { - broadcastScreenMessage("2", 4); - break; - } case "1": { - broadcastScreenMessage("1", 4); + broadcastScreenMessage(event, 4); break; } } @@ -546,7 +510,16 @@ public class TvT extends Event player.sendMessage("You have been kicked for been inactive."); if (PVP_WORLD != null) { - broadcastScreenMessageWithEffect("Player " + player.getName() + " was kicked for been inactive!", 7); + // Manage forfeit. + if ((BLUE_TEAM.isEmpty() && !RED_TEAM.isEmpty()) || // + (RED_TEAM.isEmpty() && !BLUE_TEAM.isEmpty())) + { + manageForfeit(); + } + else + { + broadcastScreenMessageWithEffect("Player " + player.getName() + " was kicked for been inactive!", 7); + } } } } @@ -740,34 +713,37 @@ public class TvT extends Event } } + private void manageForfeit() + { + cancelQuestTimer("10", null, null); + cancelQuestTimer("9", null, null); + cancelQuestTimer("8", null, null); + cancelQuestTimer("7", null, null); + cancelQuestTimer("6", null, null); + cancelQuestTimer("5", null, null); + cancelQuestTimer("4", null, null); + cancelQuestTimer("3", null, null); + cancelQuestTimer("2", null, null); + cancelQuestTimer("1", null, null); + cancelQuestTimer("EndFight", null, null); + startQuestTimer("EndFight", 10000, null, null); + broadcastScreenMessageWithEffect("Enemy team forfeit!", 7); + } + @RegisterEvent(EventType.ON_PLAYER_LOGOUT) private void OnPlayerLogout(OnPlayerLogout event) { final L2PcInstance player = event.getActiveChar(); - if (player != null) + // Remove player from lists. + PLAYER_LIST.remove(player); + PLAYER_SCORES.remove(player); + BLUE_TEAM.remove(player); + RED_TEAM.remove(player); + // Manage forfeit. + if ((BLUE_TEAM.isEmpty() && !RED_TEAM.isEmpty()) || // + (RED_TEAM.isEmpty() && !BLUE_TEAM.isEmpty())) { - PLAYER_LIST.remove(player); - PLAYER_SCORES.remove(player); - BLUE_TEAM.remove(player); - RED_TEAM.remove(player); - } - // If all players left instance end the event. - if (PLAYER_LIST.isEmpty()) - { - // Stop timers. - for (List timers : getQuestTimers().values()) - { - for (QuestTimer timer : timers) - { - timer.cancel(); - } - } - // Destroy world. - if (PVP_WORLD != null) - { - PVP_WORLD.destroy(); - PVP_WORLD = null; - } + manageForfeit(); } } @@ -808,7 +784,7 @@ public class TvT extends Event } EVENT_ACTIVE = true; - // Cancel timers. (In case event started immediately after another event finished.) + // Cancel timers. (In case event started immediately after another event was canceled.) for (List timers : getQuestTimers().values()) { for (QuestTimer timer : timers) @@ -827,7 +803,6 @@ public class TvT extends Event // Send message to players. Broadcast.toAllOnlinePlayers("TvT Event: Registration opened for " + REGISTRATION_TIME + " minutes."); Broadcast.toAllOnlinePlayers("TvT Event: You can register at Giran TvT Event Manager."); - return true; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java index 522987b27d..d96b491fbf 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java +++ b/L2J_Mobius_Classic_2.0_Saviors/dist/game/data/scripts/custom/events/TeamVsTeam/TvT.java @@ -478,53 +478,17 @@ public class TvT extends Event break; } case "10": - { - broadcastScreenMessage("10", 4); - break; - } case "9": - { - broadcastScreenMessage("9", 4); - break; - } case "8": - { - broadcastScreenMessage("8", 4); - break; - } case "7": - { - broadcastScreenMessage("7", 4); - break; - } case "6": - { - broadcastScreenMessage("6", 4); - break; - } case "5": - { - broadcastScreenMessage("5", 4); - break; - } case "4": - { - broadcastScreenMessage("4", 4); - break; - } case "3": - { - broadcastScreenMessage("3", 4); - break; - } case "2": - { - broadcastScreenMessage("2", 4); - break; - } case "1": { - broadcastScreenMessage("1", 4); + broadcastScreenMessage(event, 4); break; } } @@ -548,7 +512,16 @@ public class TvT extends Event player.sendMessage("You have been kicked for been inactive."); if (PVP_WORLD != null) { - broadcastScreenMessageWithEffect("Player " + player.getName() + " was kicked for been inactive!", 7); + // Manage forfeit. + if ((BLUE_TEAM.isEmpty() && !RED_TEAM.isEmpty()) || // + (RED_TEAM.isEmpty() && !BLUE_TEAM.isEmpty())) + { + manageForfeit(); + } + else + { + broadcastScreenMessageWithEffect("Player " + player.getName() + " was kicked for been inactive!", 7); + } } } } @@ -742,34 +715,37 @@ public class TvT extends Event } } + private void manageForfeit() + { + cancelQuestTimer("10", null, null); + cancelQuestTimer("9", null, null); + cancelQuestTimer("8", null, null); + cancelQuestTimer("7", null, null); + cancelQuestTimer("6", null, null); + cancelQuestTimer("5", null, null); + cancelQuestTimer("4", null, null); + cancelQuestTimer("3", null, null); + cancelQuestTimer("2", null, null); + cancelQuestTimer("1", null, null); + cancelQuestTimer("EndFight", null, null); + startQuestTimer("EndFight", 10000, null, null); + broadcastScreenMessageWithEffect("Enemy team forfeit!", 7); + } + @RegisterEvent(EventType.ON_PLAYER_LOGOUT) private void OnPlayerLogout(OnPlayerLogout event) { final L2PcInstance player = event.getActiveChar(); - if (player != null) + // Remove player from lists. + PLAYER_LIST.remove(player); + PLAYER_SCORES.remove(player); + BLUE_TEAM.remove(player); + RED_TEAM.remove(player); + // Manage forfeit. + if ((BLUE_TEAM.isEmpty() && !RED_TEAM.isEmpty()) || // + (RED_TEAM.isEmpty() && !BLUE_TEAM.isEmpty())) { - PLAYER_LIST.remove(player); - PLAYER_SCORES.remove(player); - BLUE_TEAM.remove(player); - RED_TEAM.remove(player); - } - // If all players left instance end the event. - if (PLAYER_LIST.isEmpty()) - { - // Stop timers. - for (List timers : getQuestTimers().values()) - { - for (QuestTimer timer : timers) - { - timer.cancel(); - } - } - // Destroy world. - if (PVP_WORLD != null) - { - PVP_WORLD.destroy(); - PVP_WORLD = null; - } + manageForfeit(); } } @@ -810,7 +786,7 @@ public class TvT extends Event } EVENT_ACTIVE = true; - // Cancel timers. (In case event started immediately after another event finished.) + // Cancel timers. (In case event started immediately after another event was canceled.) for (List timers : getQuestTimers().values()) { for (QuestTimer timer : timers) @@ -829,7 +805,6 @@ public class TvT extends Event // Send message to players. Broadcast.toAllOnlinePlayers("TvT Event: Registration opened for " + REGISTRATION_TIME + " minutes."); Broadcast.toAllOnlinePlayers("TvT Event: You can register at Giran TvT Event Manager."); - return true; }