From 0702321f595ddc597acb5e9225d859a653d56112 Mon Sep 17 00:00:00 2001 From: mobius <8391001+MobiusDevelopment@users.noreply.github.com> Date: Fri, 2 Jan 2015 13:27:04 +0000 Subject: [PATCH] Nighttime Zaken. --- trunk/dist/game/data/html/default/32713-1.htm | 2 +- .../CavernOfThePirateCaptainWorldNight60.xml | 7 ++++++ .../CavernOfThePirateCaptain.java | 22 ++++++++++++++----- 3 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 trunk/dist/game/data/instances/CavernOfThePirateCaptainWorldNight60.xml diff --git a/trunk/dist/game/data/html/default/32713-1.htm b/trunk/dist/game/data/html/default/32713-1.htm index f2657d53da..353267af20 100644 --- a/trunk/dist/game/data/html/default/32713-1.htm +++ b/trunk/dist/game/data/html/default/32713-1.htm @@ -2,5 +2,5 @@ Nighttime Zaken was able to rid himself of all weakness. He is basically immortal, except that he can still be attacked through his daytime counterpart...
Since it is a part of Pailaka, the mirror dimension world of dreams, it is possible to mount an attack there. If you go as part of a major force...say, the union of at least 8 parties, it may be possible to confront him even in this incarnation.
Do you wish to try?
-Challenge Nighttime Zaken. +Challenge Nighttime Zaken. \ No newline at end of file diff --git a/trunk/dist/game/data/instances/CavernOfThePirateCaptainWorldNight60.xml b/trunk/dist/game/data/instances/CavernOfThePirateCaptainWorldNight60.xml new file mode 100644 index 0000000000..9904297097 --- /dev/null +++ b/trunk/dist/game/data/instances/CavernOfThePirateCaptainWorldNight60.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/trunk/dist/game/data/scripts/instances/CavernOfThePirateCaptain/CavernOfThePirateCaptain.java b/trunk/dist/game/data/scripts/instances/CavernOfThePirateCaptain/CavernOfThePirateCaptain.java index 8cba6a4d9e..045454f4b1 100644 --- a/trunk/dist/game/data/scripts/instances/CavernOfThePirateCaptain/CavernOfThePirateCaptain.java +++ b/trunk/dist/game/data/scripts/instances/CavernOfThePirateCaptain/CavernOfThePirateCaptain.java @@ -57,6 +57,7 @@ public class CavernOfThePirateCaptain extends AbstractNpcAI // NPCs private static final int PATHFINDER = 32713; // Pathfinder Worker private static final int ZAKEN_60 = 29176; // Zaken + private static final int ZAKEN_60_NIGHT = 29022; // Zaken Night private static final int ZAKEN_83 = 29181; // Zaken private static final int CANDLE = 32705; // Zaken's Candle private static final int DOLL_BLADER_60 = 29023; // Doll Blader @@ -127,15 +128,19 @@ public class CavernOfThePirateCaptain extends AbstractNpcAI private static final int MIN_LV_83 = 78; private static final int PLAYERS_60_MIN = 9; private static final int PLAYERS_60_MAX = 27; + private static final int PLAYERS_60_NIGHT_MIN = 72; + private static final int PLAYERS_60_NIGHT_MAX = 450; private static final int PLAYERS_83_MIN = 9; private static final int PLAYERS_83_MAX = 27; private static final int TEMPLATE_ID_60 = 133; + private static final int TEMPLATE_ID_60_NIGHT = 114; private static final int TEMPLATE_ID_83 = 135; private static final int HOURS = 6; private static final int MINUTES = 30; private static final int DAY_A = Calendar.MONDAY; private static final int DAY_B = Calendar.WEDNESDAY; private static final int DAY_C = Calendar.FRIDAY; + private static boolean isNight = false; //@formatter:off private static final int[][] ROOM_DATA = { @@ -165,7 +170,7 @@ public class CavernOfThePirateCaptain extends AbstractNpcAI super(CavernOfThePirateCaptain.class.getSimpleName(), "instances"); addStartNpc(PATHFINDER); addTalkId(PATHFINDER); - addKillId(ZAKEN_60, ZAKEN_83); + addKillId(ZAKEN_60, ZAKEN_60_NIGHT, ZAKEN_83); addFirstTalkId(CANDLE); } @@ -188,7 +193,7 @@ public class CavernOfThePirateCaptain extends AbstractNpcAI { world = new CavernOfThePirateCaptainWorld(); world.setInstanceId(InstanceManager.getInstance().createDynamicInstance(template)); - world.setTemplateId(is83 ? TEMPLATE_ID_83 : TEMPLATE_ID_60); + world.setTemplateId(is83 ? TEMPLATE_ID_83 : (isNight ? TEMPLATE_ID_60_NIGHT : TEMPLATE_ID_60)); world.setStatus(0); InstanceManager.getInstance().addWorld(world); final CavernOfThePirateCaptainWorld curworld = (CavernOfThePirateCaptainWorld) world; @@ -256,7 +261,7 @@ public class CavernOfThePirateCaptain extends AbstractNpcAI return false; } - if ((members.size() < (is83 ? PLAYERS_83_MIN : PLAYERS_60_MIN)) || (members.size() > (is83 ? PLAYERS_83_MAX : PLAYERS_60_MAX))) + if ((members.size() < (is83 ? PLAYERS_83_MIN : (isNight ? PLAYERS_60_NIGHT_MIN : PLAYERS_60_MIN))) || (members.size() > (is83 ? PLAYERS_83_MAX : (isNight ? PLAYERS_60_NIGHT_MAX : PLAYERS_60_MAX)))) { broadcastSystemMessage(player, null, SystemMessageId.YOU_CANNOT_ENTER_DUE_TO_THE_PARTY_HAVING_EXCEEDED_THE_LIMIT, false); return false; @@ -276,7 +281,7 @@ public class CavernOfThePirateCaptain extends AbstractNpcAI return false; } - final Long reentertime = InstanceManager.getInstance().getInstanceTime(groupMembers.getObjectId(), (is83 ? TEMPLATE_ID_83 : TEMPLATE_ID_60)); + final Long reentertime = InstanceManager.getInstance().getInstanceTime(groupMembers.getObjectId(), (is83 ? TEMPLATE_ID_83 : (isNight ? TEMPLATE_ID_60_NIGHT : TEMPLATE_ID_60))); if (System.currentTimeMillis() < reentertime) { broadcastSystemMessage(player, groupMembers, SystemMessageId.C1_MAY_NOT_RE_ENTER_YET, true); @@ -316,6 +321,11 @@ public class CavernOfThePirateCaptain extends AbstractNpcAI { enterInstance(player, "CavernOfThePirateCaptainWorldDay60.xml", false); } + else if (event.equals("enter60night")) + { + isNight = true; + enterInstance(player, "CavernOfThePirateCaptainWorldNight60.xml", false); + } else if (event.equals("enter83")) { enterInstance(player, "CavernOfThePirateCaptainWorldDay83.xml", true); @@ -508,7 +518,7 @@ public class CavernOfThePirateCaptain extends AbstractNpcAI private L2Attackable spawnNpc(int npcId, int roomId, L2PcInstance player, CavernOfThePirateCaptainWorld world) { - if ((player != null) && (npcId != ZAKEN_60) && (npcId != ZAKEN_83)) + if ((player != null) && (npcId != ZAKEN_60) && (npcId != ZAKEN_60_NIGHT) && (npcId != ZAKEN_83)) { final L2Attackable mob = (L2Attackable) addSpawn(npcId, ROOM_DATA[roomId - 1][0] + getRandom(350), ROOM_DATA[roomId - 1][1] + getRandom(350), ROOM_DATA[roomId - 1][2], 0, false, 0, false, world.getInstanceId()); addAttackPlayerDesire(mob, player); @@ -533,7 +543,7 @@ public class CavernOfThePirateCaptain extends AbstractNpcAI { candles.get(ROOM_DATA[world._zakenRoom - 1][i] - 1).getVariables().set("isBlue", 1); } - world._zaken = spawnNpc(world._is83 ? ZAKEN_83 : ZAKEN_60, world._zakenRoom, null, world); + world._zaken = spawnNpc(world._is83 ? ZAKEN_83 : (isNight ? ZAKEN_60_NIGHT : ZAKEN_60), world._zakenRoom, null, world); world._zaken.setInvisible(true); world._zaken.setIsParalyzed(true); }