Addition of zones package.

This commit is contained in:
MobiusDev 2016-04-28 10:49:34 +00:00
parent a03637f276
commit 9aad08d91c
35 changed files with 128 additions and 274 deletions

View File

@ -10,109 +10,6 @@ handlers/MasterHandler.java
# AI Section # AI Section
# Npc
ai/npc/Acateo/Acateo.java
ai/npc/AdventurersGuide/AdventurersGuide.java
ai/npc/Alarm/Alarm.java
ai/npc/Alexandria/Alexandria.java
ai/npc/AltarOfSouls/AltarOfSouls.java
ai/npc/AlchemistManager/AlchemistManager.java
ai/npc/Apprentice/Apprentice.java
ai/npc/ArenaManager/ArenaManager.java
ai/npc/AvantGarde/AvantGarde.java
ai/npc/AwakeningMaster/AwakeningMaster.java
ai/npc/BlackJudge/BlackJudge.java
ai/npc/BlackMarketeerOfMammon/BlackMarketeerOfMammon.java
ai/npc/CastleAmbassador/CastleAmbassador.java
ai/npc/CastleBlacksmith/CastleBlacksmith.java
ai/npc/CastleCourtMagician/CastleCourtMagician.java
ai/npc/CastleChamberlain/CastleChamberlain.java
ai/npc/CastleMercenaryManager/CastleMercenaryManager.java
ai/npc/CastleSiegeManager/CastleSiegeManager.java
ai/npc/CastleTeleporter/CastleTeleporter.java
ai/npc/CastleWarehouse/CastleWarehouse.java
ai/npc/ClanTrader/ClanTrader.java
ai/npc/DimensionalManager/DimensionalManager.java
ai/npc/DragonVortex/DragonVortex.java
ai/npc/FameManager/FameManager.java
ai/npc/ForgeOfTheGods/ForgeOfTheGods.java
ai/npc/ForgeOfTheGods/Rooney.java
ai/npc/FortressArcherCaptain/FortressArcherCaptain.java
ai/npc/FortressSiegeManager/FortressSiegeManager.java
ai/npc/FreyasSteward/FreyasSteward.java
ai/npc/Hardin/Hardin.java
ai/npc/Jinia/Jinia.java
ai/npc/KainVanHalter/KainVanHalter.java
ai/npc/KetraOrcSupport/KetraOrcSupport.java
ai/npc/LaVieEnRose/LaVieEnRose.java
ai/npc/Mammons/Mammons.java
ai/npc/ManorManager/ManorManager.java
ai/npc/MentorGuide/MentorGuide.java
ai/npc/Milia/Milia.java
ai/npc/Minigame/Minigame.java
ai/npc/MonkOfChaos/MonkOfChaos.java
ai/npc/MonumentOfHeroes/MonumentOfHeroes.java
ai/npc/Merlot/Merlot.java
ai/npc/Nomi/Nomi.java
ai/npc/NpcBuffers/NpcBuffers.java
ai/npc/Pantheon/Pantheon.java
ai/npc/Proclaimer/Proclaimer.java
ai/npc/Rignos/Rignos.java
ai/npc/Raina/Raina.java
ai/npc/RemembranceTower/RemembranceTower.java
ai/npc/Scarecrow/Scarecrow.java
ai/npc/Sirra/Sirra.java
ai/npc/Summons/MerchantGolem/GolemTrader.java
ai/npc/SupportUnitCaptain/SupportUnitCaptain.java
ai/npc/SymbolMaker/SymbolMaker.java
ai/npc/Teleports/AnghelWaterfallPortal/AnghelWaterfallPortal.java
ai/npc/Teleports/CrumaTower/CrumaTower.java
ai/npc/Teleports/DarkOmens/DarkOmens.java
ai/npc/Teleports/DelusionTeleport/DelusionTeleport.java
ai/npc/Teleports/DimensionalWarpTeleport/DimensionalWarpTeleport.java
ai/npc/Teleports/ElrokiTeleporters/ElrokiTeleporters.java
ai/npc/Teleports/GainakUndergroundEntrance/GainakUndergroundEntrance.java
ai/npc/Teleports/GardenOfSpirits/GardenOfSpirits.java
ai/npc/Teleports/GiantServant/GiantServant.java
ai/npc/Teleports/GrandBossTeleporters/GrandBossTeleporters.java
ai/npc/Teleports/HarnakUnderground/HarnakUnderground.java
ai/npc/Teleports/KargosTeleport/KargosTeleport.java
ai/npc/Teleports/Klemis/Klemis.java
ai/npc/Teleports/MithrilMinesTeleporter/MithrilMinesTeleporter.java
ai/npc/Teleports/NewbieTravelToken/NewbieTravelToken.java
ai/npc/Teleports/NoblesseTeleport/NoblesseTeleport.java
ai/npc/Teleports/OrbisTemple/OrbisTemple.java
ai/npc/Teleports/PaganTeleporters/PaganTeleporters.java
ai/npc/Teleports/SeparatedSoul/SeparatedSoul.java
ai/npc/Teleports/StakatoNestTeleporter/StakatoNestTeleporter.java
ai/npc/Teleports/SteelCitadelTeleport/SteelCitadelTeleport.java
ai/npc/Teleports/StrongholdsTeleports/StrongholdsTeleports.java
ai/npc/Teleports/Survivor/Survivor.java
ai/npc/Teleports/TeleportToFantasy/TeleportToFantasy.java
ai/npc/Teleports/TeleportToRaceTrack/TeleportToRaceTrack.java
ai/npc/Teleports/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java
ai/npc/Teleports/TeleportWithCharm/TeleportWithCharm.java
ai/npc/Teleports/ToIVortex/ToIVortex.java
ai/npc/Teleports/Warpgate/Warpgate.java
ai/npc/Teleports/YeSagiraTeleporter/YeSagiraTeleporter.java
ai/npc/Toyron/Toyron.java
ai/npc/Trainers/HealerTrainer/HealerTrainer.java
ai/npc/Trandon/Trandon.java
ai/npc/Tunatun/Tunatun.java
ai/npc/VarkaSilenosSupport/VarkaSilenosSupport.java
ai/npc/VillageMasters/FirstClassTransferTalk/FirstClassTransferTalk.java
ai/npc/WeaverOlf/WeaverOlf.java
ai/npc/WyvernManager/WyvernManager.java
ai/npc/Zenya/Zenya.java
# Atelia Fortess
ai/atelia_fortess/AteliaStatus/AteliaStatus.java
# Fantasy Isle
ai/fantasy_isle/MC_Show.java
ai/fantasy_isle/HandysBlockCheckerEvent.java
ai/fantasy_isle/Parade.java
# Group Template # Group Template
ai/group_template/AdenReconstructorManager.java ai/group_template/AdenReconstructorManager.java
ai/group_template/ArcanRitual.java ai/group_template/ArcanRitual.java
@ -216,6 +113,109 @@ ai/individual/TrainningSoldier.java
ai/individual/Valakas.java ai/individual/Valakas.java
ai/individual/WindVortex.java ai/individual/WindVortex.java
# Npc
ai/npc/Acateo/Acateo.java
ai/npc/AdventurersGuide/AdventurersGuide.java
ai/npc/Alarm/Alarm.java
ai/npc/Alexandria/Alexandria.java
ai/npc/AltarOfSouls/AltarOfSouls.java
ai/npc/AlchemistManager/AlchemistManager.java
ai/npc/Apprentice/Apprentice.java
ai/npc/ArenaManager/ArenaManager.java
ai/npc/AvantGarde/AvantGarde.java
ai/npc/AwakeningMaster/AwakeningMaster.java
ai/npc/BlackJudge/BlackJudge.java
ai/npc/BlackMarketeerOfMammon/BlackMarketeerOfMammon.java
ai/npc/CastleAmbassador/CastleAmbassador.java
ai/npc/CastleBlacksmith/CastleBlacksmith.java
ai/npc/CastleCourtMagician/CastleCourtMagician.java
ai/npc/CastleChamberlain/CastleChamberlain.java
ai/npc/CastleMercenaryManager/CastleMercenaryManager.java
ai/npc/CastleSiegeManager/CastleSiegeManager.java
ai/npc/CastleTeleporter/CastleTeleporter.java
ai/npc/CastleWarehouse/CastleWarehouse.java
ai/npc/ClanTrader/ClanTrader.java
ai/npc/DimensionalManager/DimensionalManager.java
ai/npc/DragonVortex/DragonVortex.java
ai/npc/FameManager/FameManager.java
ai/npc/ForgeOfTheGods/ForgeOfTheGods.java
ai/npc/ForgeOfTheGods/Rooney.java
ai/npc/FortressArcherCaptain/FortressArcherCaptain.java
ai/npc/FortressSiegeManager/FortressSiegeManager.java
ai/npc/FreyasSteward/FreyasSteward.java
ai/npc/Hardin/Hardin.java
ai/npc/Jinia/Jinia.java
ai/npc/KainVanHalter/KainVanHalter.java
ai/npc/KetraOrcSupport/KetraOrcSupport.java
ai/npc/LaVieEnRose/LaVieEnRose.java
ai/npc/Mammons/Mammons.java
ai/npc/ManorManager/ManorManager.java
ai/npc/MentorGuide/MentorGuide.java
ai/npc/Milia/Milia.java
ai/npc/Minigame/Minigame.java
ai/npc/MonkOfChaos/MonkOfChaos.java
ai/npc/MonumentOfHeroes/MonumentOfHeroes.java
ai/npc/Merlot/Merlot.java
ai/npc/Nomi/Nomi.java
ai/npc/NpcBuffers/NpcBuffers.java
ai/npc/Pantheon/Pantheon.java
ai/npc/Proclaimer/Proclaimer.java
ai/npc/Rignos/Rignos.java
ai/npc/Raina/Raina.java
ai/npc/RemembranceTower/RemembranceTower.java
ai/npc/Scarecrow/Scarecrow.java
ai/npc/Sirra/Sirra.java
ai/npc/Summons/MerchantGolem/GolemTrader.java
ai/npc/SupportUnitCaptain/SupportUnitCaptain.java
ai/npc/SymbolMaker/SymbolMaker.java
ai/npc/Teleports/AnghelWaterfallPortal/AnghelWaterfallPortal.java
ai/npc/Teleports/CrumaTower/CrumaTower.java
ai/npc/Teleports/DarkOmens/DarkOmens.java
ai/npc/Teleports/DelusionTeleport/DelusionTeleport.java
ai/npc/Teleports/DimensionalWarpTeleport/DimensionalWarpTeleport.java
ai/npc/Teleports/ElrokiTeleporters/ElrokiTeleporters.java
ai/npc/Teleports/GainakUndergroundEntrance/GainakUndergroundEntrance.java
ai/npc/Teleports/GardenOfSpirits/GardenOfSpirits.java
ai/npc/Teleports/GiantServant/GiantServant.java
ai/npc/Teleports/GrandBossTeleporters/GrandBossTeleporters.java
ai/npc/Teleports/HarnakUnderground/HarnakUnderground.java
ai/npc/Teleports/KargosTeleport/KargosTeleport.java
ai/npc/Teleports/Klemis/Klemis.java
ai/npc/Teleports/MithrilMinesTeleporter/MithrilMinesTeleporter.java
ai/npc/Teleports/NewbieTravelToken/NewbieTravelToken.java
ai/npc/Teleports/NoblesseTeleport/NoblesseTeleport.java
ai/npc/Teleports/OrbisTemple/OrbisTemple.java
ai/npc/Teleports/PaganTeleporters/PaganTeleporters.java
ai/npc/Teleports/SeparatedSoul/SeparatedSoul.java
ai/npc/Teleports/StakatoNestTeleporter/StakatoNestTeleporter.java
ai/npc/Teleports/SteelCitadelTeleport/SteelCitadelTeleport.java
ai/npc/Teleports/StrongholdsTeleports/StrongholdsTeleports.java
ai/npc/Teleports/Survivor/Survivor.java
ai/npc/Teleports/TeleportToFantasy/TeleportToFantasy.java
ai/npc/Teleports/TeleportToRaceTrack/TeleportToRaceTrack.java
ai/npc/Teleports/TeleportToUndergroundColiseum/TeleportToUndergroundColiseum.java
ai/npc/Teleports/TeleportWithCharm/TeleportWithCharm.java
ai/npc/Teleports/ToIVortex/ToIVortex.java
ai/npc/Teleports/Warpgate/Warpgate.java
ai/npc/Teleports/YeSagiraTeleporter/YeSagiraTeleporter.java
ai/npc/Toyron/Toyron.java
ai/npc/Trainers/HealerTrainer/HealerTrainer.java
ai/npc/Trandon/Trandon.java
ai/npc/Tunatun/Tunatun.java
ai/npc/VarkaSilenosSupport/VarkaSilenosSupport.java
ai/npc/VillageMasters/FirstClassTransferTalk/FirstClassTransferTalk.java
ai/npc/WeaverOlf/WeaverOlf.java
ai/npc/WyvernManager/WyvernManager.java
ai/npc/Zenya/Zenya.java
# Atelia Fortess
ai/zones/AteliaFortress/AteliaManager/AteliaManager.java
# Fantasy Isle
ai/zones/FantasyIsle/HandysBlockCheckerEvent.java
ai/zones/FantasyIsle/Parade.java
ai/zones/FantasyIsle/TalentShow.java
# Village Master # Village Master
village_master/Clan/Clan.java village_master/Clan/Clan.java
village_master/Alliance/Alliance.java village_master/Alliance/Alliance.java

View File

@ -1,74 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package ai.atelia_fortess;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import ai.npc.AbstractNpcAI;
/**
* @author hlwrave
*/
final class AteliaDoorGuard extends AbstractNpcAI
{
private static final int GUARD = 23539;
private static int _killCount = 0;
private AteliaDoorGuard()
{
super(AteliaDoorGuard.class.getSimpleName(), "ai/atelia_fortess");
addKillId(GUARD);
}
@Override
public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
{
switch (event)
{
case "Close_Atelia_Door":
{
closeDoor(18190002, 0);
closeDoor(18190004, 0);
break;
}
}
return "";
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
if (npc.getId() == GUARD)
{
_killCount++;
}
if (_killCount == 2)
{
openDoor(18190002, 0);
openDoor(18190004, 0);
startQuestTimer("Close_Atelia_Door", 3600000, null, null);
_killCount = 0;
}
return super.onKill(npc, killer, isSummon);
}
public static void main(String[] args)
{
new AteliaDoorGuard();
}
}

View File

@ -1,58 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package ai.atelia_fortess;
import com.l2jmobius.gameserver.model.Location;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import ai.npc.AbstractNpcAI;
/**
* Devianne AI.
* @author hlwrave
* @URL https://l2wiki.com/Atelia_Fortress
*/
final class Devianne extends AbstractNpcAI
{
// NPCs
private static final int BURNSTAIN = 23587;
private static final int DEVIANNE = 34089;
// Location
private static final Location DEVIANNE_LOC = new Location(-50063, 49439, -1760, 40362);
// Other
private static final int DESPAWN_DELAY = 3600000; // Time 1 Hour
private Devianne()
{
super(Devianne.class.getSimpleName(), "ai/atelia_fortess");
addKillId(BURNSTAIN);
addSpawnId(DEVIANNE);
}
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
addSpawn(DEVIANNE, DEVIANNE_LOC, false, DESPAWN_DELAY);
return super.onKill(npc, killer, isSummon);
}
public static void main(String[] args)
{
new Devianne();
}
}

View File

@ -14,7 +14,6 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package ai.group_template;
/** /**
* Group Template AI:<br> * Group Template AI:<br>
@ -33,3 +32,4 @@ package ai.group_template;
* @see quests * @see quests
* @author Fulminus, Zoey76 * @author Fulminus, Zoey76
*/ */
package ai.group_template;

View File

@ -14,7 +14,6 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package ai.npc.Teleports;
/** /**
* Teleporter AIs are used for teleports that are too advanced to be done under normal means.<br> * Teleporter AIs are used for teleports that are too advanced to be done under normal means.<br>
@ -25,3 +24,4 @@ package ai.npc.Teleports;
* All implementation details are fully covered by quests.<br> * All implementation details are fully covered by quests.<br>
* @author Zoey76 * @author Zoey76
*/ */
package ai.npc.Teleports;

View File

@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package ai.atelia_fortess.AteliaStatus; package ai.zones.AteliaFortress.AteliaManager;
import java.util.ArrayList; import java.util.ArrayList;
@ -36,7 +36,7 @@ import ai.npc.AbstractNpcAI;
* URL https://l2wiki.com/Atelia_Fortress * URL https://l2wiki.com/Atelia_Fortress
* @author hlwrave, Stayway, Mobius * @author hlwrave, Stayway, Mobius
*/ */
final class AteliaStatus extends AbstractNpcAI final class AteliaManager extends AbstractNpcAI
{ {
// Npc Devianne // Npc Devianne
private static final int DEVIANNE = 34089; private static final int DEVIANNE = 34089;
@ -310,9 +310,9 @@ final class AteliaStatus extends AbstractNpcAI
static ArrayList<L2Npc> FortessSpawns = new ArrayList<>(); static ArrayList<L2Npc> FortessSpawns = new ArrayList<>();
private AteliaStatus() private AteliaManager()
{ {
super(AteliaStatus.class.getSimpleName(), "ai/atelia_fortess"); super(AteliaManager.class.getSimpleName(), "ai/zones/AteliaFortress");
addStartNpc(BARTON, GLENKI, HAYUK, HURAK, ELISE, LAFFIAN, JULIA, MION, ELIYAH, SHERRY, SAYLEM, NIKA); addStartNpc(BARTON, GLENKI, HAYUK, HURAK, ELISE, LAFFIAN, JULIA, MION, ELIYAH, SHERRY, SAYLEM, NIKA);
addFirstTalkId(BARTON, GLENKI, HAYUK, HURAK, ELISE, LAFFIAN, JULIA, MION, ELIYAH, SHERRY, SAYLEM, NIKA); addFirstTalkId(BARTON, GLENKI, HAYUK, HURAK, ELISE, LAFFIAN, JULIA, MION, ELIYAH, SHERRY, SAYLEM, NIKA);
addTalkId(BARTON, GLENKI, HAYUK, HURAK, ELISE, LAFFIAN, JULIA, MION, ELIYAH, SHERRY, SAYLEM, NIKA); addTalkId(BARTON, GLENKI, HAYUK, HURAK, ELISE, LAFFIAN, JULIA, MION, ELIYAH, SHERRY, SAYLEM, NIKA);
@ -702,6 +702,6 @@ final class AteliaStatus extends AbstractNpcAI
public static void main(String[] args) public static void main(String[] args)
{ {
new AteliaStatus(); new AteliaManager();
} }
} }

View File

@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package ai.fantasy_isle; package ai.zones.FantasyIsle;
import com.l2jmobius.Config; import com.l2jmobius.Config;
import com.l2jmobius.gameserver.instancemanager.HandysBlockCheckerManager; import com.l2jmobius.gameserver.instancemanager.HandysBlockCheckerManager;

View File

@ -14,7 +14,7 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package ai.fantasy_isle; package ai.zones.FantasyIsle;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.CopyOnWriteArrayList;
@ -127,7 +127,7 @@ final class Parade extends AbstractNpcAI
public Parade() public Parade()
{ {
super(Parade.class.getSimpleName(), "ai/fantasy_isle"); super(Parade.class.getSimpleName(), "ai/zones/FantasyIsle");
// Starts at 8:00 and repeats every 6 hours. // Starts at 8:00 and repeats every 6 hours.
final long diff = timeLeftMilli(8, 0, 0), cycle = 3600000L; final long diff = timeLeftMilli(8, 0, 0), cycle = 3600000L;

View File

@ -14,15 +14,13 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package ai.fantasy_isle; package ai.zones.FantasyIsle;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import com.l2jmobius.Config;
import com.l2jmobius.gameserver.GameTimeController; import com.l2jmobius.gameserver.GameTimeController;
import com.l2jmobius.gameserver.ThreadPoolManager;
import com.l2jmobius.gameserver.ai.CtrlIntention; import com.l2jmobius.gameserver.ai.CtrlIntention;
import com.l2jmobius.gameserver.enums.ChatType; import com.l2jmobius.gameserver.enums.ChatType;
import com.l2jmobius.gameserver.model.Location; import com.l2jmobius.gameserver.model.Location;
@ -35,10 +33,10 @@ import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
import ai.npc.AbstractNpcAI; import ai.npc.AbstractNpcAI;
/** /**
* MC Show AI. * Talent Show AI.
* @author Kerberos * @author Kerberos
*/ */
final class MC_Show extends AbstractNpcAI final class TalentShow extends AbstractNpcAI
{ {
private static int MC = 32433; private static int MC = 32433;
// @formatter:off // @formatter:off
@ -167,9 +165,9 @@ final class MC_Show extends AbstractNpcAI
private static final Map<String, ShoutInfo> TALKS = new HashMap<>(); private static final Map<String, ShoutInfo> TALKS = new HashMap<>();
private static final Map<String, WalkInfo> WALKS = new HashMap<>(); private static final Map<String, WalkInfo> WALKS = new HashMap<>();
private MC_Show() private TalentShow()
{ {
super(MC_Show.class.getSimpleName(), "ai/fantasy_isle"); super(TalentShow.class.getSimpleName(), "ai/zones/FantasyIsle");
addSpawnId(32433, 32431, 32432, 32442, 32443, 32444, 32445, 32446, 32424, 32425, 32426, 32427, 32428); addSpawnId(32433, 32431, 32432, 32442, 32443, 32444, 32445, 32446, 32424, 32425, 32426, 32427, 32428);
load(); load();
scheduleTimer(); scheduleTimer();
@ -306,13 +304,8 @@ final class MC_Show extends AbstractNpcAI
hourDiff *= 3600000; hourDiff *= 3600000;
minDiff *= 60000; minDiff *= 60000;
diff = hourDiff + minDiff; diff = hourDiff + minDiff;
if (Config.DEBUG) _log.info("Fantasy Isle: MC show script starting at " + (new SimpleDateFormat("dd/MM/yyyy HH:mm:ss")).format(System.currentTimeMillis() + diff) + " and is scheduled each next 4 hours.");
{ startQuestTimer("Start", diff, null, null); // first start
_log.info("Fantasy Isle: MC show script starting at " + (new SimpleDateFormat("dd/MM/yyyy HH:mm:ss")).format(System.currentTimeMillis() + diff) + " and is scheduled each next 4 hours.");
}
// TODO startRepeatingQuestTimer("Start", diff, 14400000, null, null);
// missing option to provide different initial delay
ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new StartMCShow(), diff, 14400000L);
} }
private void autoChat(L2Npc npc, NpcStringId npcString, ChatType type) private void autoChat(L2Npc npc, NpcStringId npcString, ChatType type)
@ -384,6 +377,7 @@ final class MC_Show extends AbstractNpcAI
{ {
IS_STARTED = true; IS_STARTED = true;
addSpawn(MC, -56698, -56430, -2008, 32768, false, 0); addSpawn(MC, -56698, -56430, -2008, 32768, false, 0);
startQuestTimer("Start", 14400000L, null, null); // repeat
} }
else if ((npc != null) && IS_STARTED) else if ((npc != null) && IS_STARTED)
{ {
@ -524,6 +518,6 @@ final class MC_Show extends AbstractNpcAI
public static void main(String[] args) public static void main(String[] args)
{ {
new MC_Show(); new TalentShow();
} }
} }

View File

@ -14,18 +14,10 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package ai.fantasy_isle;
import com.l2jmobius.gameserver.instancemanager.QuestManager;
/** /**
* Start MC Show. * Zone AIs:<br>
* This folder contains AI scripts for specific zones.
* @author Mobius
*/ */
class StartMCShow implements Runnable package ai.zones;
{
@Override
public void run()
{
QuestManager.getInstance().getQuest("MC_Show").notifyEvent("Start", null, null);
}
}

View File

@ -14,12 +14,12 @@
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>. * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/ */
package custom;
/** /**
* Scripts added in the custom folder define quests and/or AI that are not normally part of the original Lineage 2 game.<br> * Scripts added in the custom folder define quests and/or AI that are not normally part of the original Lineage 2 game.<br>
* In addition, "custom" is sometimes used as a temporary implementation of aspects of the original game that are not yet fully implementable by L2J.<br> * In addition, "custom" is sometimes used as a temporary implementation of aspects of the original game that are not yet fully implementable by L2J.<br>
* In this manner, partially accurate emulation may be offered until a better method is implemented.<br> * In this manner, partially accurate emulation may be offered until a better method is implemented.<br>
* The mechanics and syntax of custom scripts are the same as all quest scripts. * The mechanics and syntax of custom scripts are the same as all quest scripts.
* @author Zoey76 * @author Zoey76
*/ */
package custom;