Browse Source

BETA: Moving Hellbound to Datapack:
* New Datapack sided Hellbound Engine.
* Using one class-loader for all Hellbound related scripts:
* Faster loading and allows "communication" between scripts.
* Allows disabling Hellbound completely by just removing the class-loader from scripts.cfg.
* Static Hellbound's spawn data moved from SQL to XML.
* Removed `HellboundManager`.
* Reviewed all the Hellbound related scripts:
* Finalized all classes and removed main method.
* Added !JavaDocs.
* Removed the usage of `QuestState`, it's not required at all at AIs.
* Moved constructor at the top of the class after fields declaration.

Reviewed by: xban1x, UnAfraid, St3eT, Konstantinos

Zoey76 11 years ago
parent
commit
54d036a196
100 changed files with 183 additions and 311 deletions
  1. 1 1
      L2J_DataPack_BETA/dist/doc/L2J_DataPack_README.txt
  2. 1 33
      L2J_DataPack_BETA/dist/game/data/scripts.cfg
  3. 0 4
      L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java
  4. 11 8
      L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminHellbound.java
  5. 6 4
      L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/Hellbound.java
  6. 6 10
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/Amaskari.java
  7. 8 12
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/Chimeras.java
  8. 3 8
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/DemonPrince.java
  9. 6 10
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/HellboundCore.java
  10. 3 8
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/Keltas.java
  11. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-01.htm
  12. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-01a.htm
  13. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-01c.htm
  14. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-01d.htm
  15. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-01f.htm
  16. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-02.htm
  17. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-02a.htm
  18. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-02b.htm
  19. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-02c.htm
  20. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-02d.htm
  21. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-02e.htm
  22. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-03.htm
  23. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-10r.htm
  24. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-11r.htm
  25. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-1r.htm
  26. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-2r.htm
  27. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-3r.htm
  28. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-4r.htm
  29. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-5r.htm
  30. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-6r.htm
  31. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-7r.htm
  32. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-8r.htm
  33. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-9r.htm
  34. 17 20
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/Bernarde.java
  35. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Budenka/32294-premium.htm
  36. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Budenka/32294-standart.htm
  37. 12 13
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka.java
  38. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-01.htm
  39. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-01a.htm
  40. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-02.htm
  41. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-10r.htm
  42. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-11r.htm
  43. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-1r.htm
  44. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-2r.htm
  45. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-3r.htm
  46. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-4r.htm
  47. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-5r.htm
  48. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-6r.htm
  49. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-7r.htm
  50. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-8r.htm
  51. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-9r.htm
  52. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-lowlvl.htm
  53. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-noitems.htm
  54. 19 33
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/Buron.java
  55. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Deltuva/32313-02.htm
  56. 10 14
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Deltuva/Deltuva.java
  57. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-01.htm
  58. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-01a.htm
  59. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-02.htm
  60. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-02a.htm
  61. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-02b.htm
  62. 17 40
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Falk/Falk.java
  63. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-01.htm
  64. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-03.htm
  65. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-04a.htm
  66. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-04b.htm
  67. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-05.htm
  68. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-06a.htm
  69. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-06b.htm
  70. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-07.htm
  71. 32 48
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/Hude.java
  72. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-01.htm
  73. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-01a.htm
  74. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-01b.htm
  75. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-01c.htm
  76. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-02.htm
  77. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-02a.htm
  78. 20 30
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Jude/Jude.java
  79. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/32346-01.htm
  80. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/32346-02.htm
  81. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/32346-03.htm
  82. 11 15
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/Kanaf.java
  83. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01.htm
  84. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01a.htm
  85. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01b.htm
  86. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01c.htm
  87. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01d.htm
  88. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01e.htm
  89. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01f.htm
  90. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-10.htm
  91. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-10a.htm
  92. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11a.htm
  93. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11b.htm
  94. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11c.htm
  95. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11d.htm
  96. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11e.htm
  97. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11f.htm
  98. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11g.htm
  99. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11h.htm
  100. 0 0
      L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11i.htm

+ 1 - 1
L2J_DataPack_BETA/dist/doc/L2J_DataPack_README.txt

@@ -1,4 +1,4 @@
-Copyright 2004-2011 L2J-DataPack team
+Copyright 2004-2014 L2J-DataPack team
 
 This file is part of the L2J-DataPack.
 

+ 1 - 33
L2J_DataPack_BETA/dist/game/data/scripts.cfg

@@ -75,7 +75,6 @@ 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/TerritoryManagers/TerritoryManagers.java
 ai/npc/TownPets/TownPets.java
 ai/npc/Trainers/HealerTrainer/HealerTrainer.java
@@ -94,7 +93,6 @@ ai/fantasy_isle/HandysBlockCheckerEvent.java
 ai/group_template/L2AttackableAIScript.java
 ai/group_template/AltarsOfSacrifice.java
 ai/group_template/BeastFarm.java
-ai/group_template/Chimeras.java
 ai/group_template/DenOfEvil.java
 ai/group_template/DragonValley.java
 ai/group_template/EnergySeeds.java
@@ -124,7 +122,6 @@ ai/group_template/SeeThroughSilentMove.java
 ai/group_template/SelMahumDrill.java
 ai/group_template/SelMahumSquad.java
 ai/group_template/SilentValley.java
-ai/group_template/Slaves.java
 ai/group_template/StakatoNest.java
 ai/group_template/StarStones.java
 ai/group_template/SummonMinions.java
@@ -138,7 +135,6 @@ ai/individual/Antharas/Antharas.java
 ai/individual/Baium/Baium.java
 ai/individual/Sailren/Sailren.java
 ai/individual/Venom/Venom.java
-ai/individual/Amaskari.java
 ai/individual/Anais.java
 ai/individual/Ballista.java
 ai/individual/Beleth.java
@@ -146,7 +142,6 @@ ai/individual/CatsEyeBandit.java
 ai/individual/CrimsonHatuOtis.java
 ai/individual/Core.java
 ai/individual/DarkWaterDragon.java
-ai/individual/DemonPrince.java
 ai/individual/DivineBeast.java
 ai/individual/DrChaos.java
 ai/individual/Epidos.java
@@ -154,18 +149,12 @@ ai/individual/EvasGiftBox.java
 ai/individual/FrightenedRagnaOrc.java
 ai/individual/GeneralDilios.java
 ai/individual/Gordon.java
-ai/individual/HellboundCore.java
-ai/individual/Keltas.java
 ai/individual/Lindvior.java
 ai/individual/Maguen.java
-ai/individual/NaiaLock.java
 ai/individual/Orfen.java
-ai/individual/OutpostCaptain.java
 ai/individual/QueenAnt.java
 ai/individual/QueenShyeed.java
-ai/individual/Ranku.java
 ai/individual/SinWardens.java
-ai/individual/Typhoon.java
 ai/individual/Valakas.java
 ai/individual/Zaken.java
 
@@ -194,11 +183,9 @@ instances/ChambersOfDelusion/ChamberOfDelusionSquare.java
 instances/ChambersOfDelusion/ChamberOfDelusionTower.java
 instances/CrystalCaverns/CrystalCaverns.java
 instances/DarkCloudMansion/DarkCloudMansion.java
-instances/DemonPrinceFloor/DemonPrinceFloor.java
 instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java
 instances/ElcadiasTent/ElcadiasTent.java
 instances/FinalEmperialTomb/FinalEmperialTomb.java
-instances/HellboundTown/HellboundTown.java
 instances/HideoutOfTheDawn/HideoutOfTheDawn.java
 instances/IceQueensCastle/IceQueensCastle.java
 instances/IceQueensCastleNormalBattle/IceQueensCastleNormalBattle.java
@@ -213,32 +200,13 @@ instances/MonasteryOfSilence1/MonasteryOfSilence1.java
 instances/NornilsGarden/NornilsGarden.java
 instances/Pailaka/PailakaDevilsLegacy.java
 instances/Pailaka/PailakaSongOfIceAndFire.java
-instances/RankuFloor/RankuFloor.java
 instances/SanctumOftheLordsOfDawn/SanctumOftheLordsOfDawn.java
 instances/SecretArea/SecretArea.java
 instances/SeedOfDestruction/Stage1.java
 instances/SeedOfInfinity/HallOfSuffering.java
 
 # Hellbound Section
-hellbound/Engine.java
-hellbound/AnomicFoundry/AnomicFoundry.java
-hellbound/BaseTower/BaseTower.java
-hellbound/Bernarde/Bernarde.java
-hellbound/Budenka/Budenka.java
-hellbound/Buron/Buron.java
-hellbound/Deltuva/Deltuva.java
-hellbound/Falk/Falk.java
-hellbound/Hude/Hude.java
-hellbound/Jude/Jude.java
-hellbound/Kanaf/Kanaf.java
-hellbound/Kief/Kief.java
-hellbound/Natives/Natives.java
-hellbound/Quarry/Quarry.java
-hellbound/Shadai/Shadai.java
-hellbound/Solomon/Solomon.java
-hellbound/TowerOfInfinitum/TowerOfInfinitum.java
-hellbound/TowerOfNaia/TowerOfNaia.java
-hellbound/TullyWorkshop/TullyWorkshop.java
+hellbound/HellboundLoader.java
 
 # Quests Section
 quests/QuestMasterHandler.java

+ 0 - 4
L2J_DataPack_BETA/dist/game/data/scripts/handlers/MasterHandler.java

@@ -81,7 +81,6 @@ import handlers.admincommandhandlers.AdminGmChat;
 import handlers.admincommandhandlers.AdminGraciaSeeds;
 import handlers.admincommandhandlers.AdminGrandBoss;
 import handlers.admincommandhandlers.AdminHeal;
-import handlers.admincommandhandlers.AdminHellbound;
 import handlers.admincommandhandlers.AdminHtml;
 import handlers.admincommandhandlers.AdminInstance;
 import handlers.admincommandhandlers.AdminInstanceZone;
@@ -263,7 +262,6 @@ import handlers.voicedcommandhandlers.Banking;
 import handlers.voicedcommandhandlers.ChangePassword;
 import handlers.voicedcommandhandlers.ChatAdmin;
 import handlers.voicedcommandhandlers.Debug;
-import handlers.voicedcommandhandlers.Hellbound;
 import handlers.voicedcommandhandlers.Lang;
 import handlers.voicedcommandhandlers.StatsVCmd;
 import handlers.voicedcommandhandlers.TvTVoicedInfo;
@@ -349,7 +347,6 @@ public class MasterHandler
 			AdminGraciaSeeds.class,
 			AdminGrandBoss.class,
 			AdminHeal.class,
-			AdminHellbound.class,
 			AdminHtml.class,
 			AdminInstance.class,
 			AdminInstanceZone.class,
@@ -514,7 +511,6 @@ public class MasterHandler
 			(Config.L2JMOD_MULTILANG_ENABLE && Config.L2JMOD_MULTILANG_VOICED_ALLOW ? Lang.class : null),
 			(Config.L2JMOD_DEBUG_VOICE_COMMAND ? Debug.class : null),
 			(Config.L2JMOD_ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null),
-			(Config.L2JMOD_HELLBOUND_STATUS ? Hellbound.class : null),
 		},
 		{
 			// Target Handlers

+ 11 - 8
L2J_DataPack_BETA/dist/game/data/scripts/handlers/admincommandhandlers/AdminHellbound.java

@@ -21,11 +21,13 @@ package handlers.admincommandhandlers;
 import java.util.StringTokenizer;
 
 import com.l2jserver.gameserver.handler.IAdminCommandHandler;
-import com.l2jserver.gameserver.instancemanager.HellboundManager;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
 
+import hellbound.HellboundEngine;
+
 /**
+ * Hellbound admin command.
  * @author DS, Gladicek
  */
 public class AdminHellbound implements IAdminCommandHandler
@@ -50,7 +52,7 @@ public class AdminHellbound implements IAdminCommandHandler
 			return false;
 		}
 		
-		if (command.startsWith(ADMIN_COMMANDS[0])) // setlevel
+		if (command.startsWith(ADMIN_COMMANDS[0]))
 		{
 			try
 			{
@@ -61,7 +63,8 @@ public class AdminHellbound implements IAdminCommandHandler
 				{
 					throw new NumberFormatException();
 				}
-				HellboundManager.getInstance().setLevel(level);
+				
+				HellboundEngine.getInstance().setLevel(level);
 				activeChar.sendMessage("Hellbound level set to " + level);
 				return true;
 			}
@@ -71,7 +74,7 @@ public class AdminHellbound implements IAdminCommandHandler
 				return false;
 			}
 		}
-		else if (command.startsWith(ADMIN_COMMANDS[1])) // Admin menu by Gladicek
+		else if (command.startsWith(ADMIN_COMMANDS[1]))
 		{
 			showMenu(activeChar);
 			return true;
@@ -83,10 +86,10 @@ public class AdminHellbound implements IAdminCommandHandler
 	{
 		final NpcHtmlMessage html = new NpcHtmlMessage();
 		html.setFile(activeChar.getHtmlPrefix(), "data/html/admin/hellbound.htm");
-		html.replace("%hbstage%", String.valueOf(HellboundManager.getInstance().getLevel()));
-		html.replace("%trust%", String.valueOf(HellboundManager.getInstance().getTrust()));
-		html.replace("%maxtrust%", String.valueOf(HellboundManager.getInstance().getMaxTrust()));
-		html.replace("%mintrust%", String.valueOf(HellboundManager.getInstance().getMinTrust()));
+		html.replace("%hbstage%", String.valueOf(HellboundEngine.getInstance().getLevel()));
+		html.replace("%trust%", String.valueOf(HellboundEngine.getInstance().getTrust()));
+		html.replace("%maxtrust%", String.valueOf(HellboundEngine.getInstance().getMaxTrust()));
+		html.replace("%mintrust%", String.valueOf(HellboundEngine.getInstance().getMinTrust()));
 		activeChar.sendPacket(html);
 	}
 }

+ 6 - 4
L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/Hellbound.java

@@ -19,10 +19,12 @@
 package handlers.voicedcommandhandlers;
 
 import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
-import com.l2jserver.gameserver.instancemanager.HellboundManager;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 
+import hellbound.HellboundEngine;
+
 /**
+ * Hellbound voiced command.
  * @author DS
  */
 public class Hellbound implements IVoicedCommandHandler
@@ -35,14 +37,14 @@ public class Hellbound implements IVoicedCommandHandler
 	@Override
 	public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
 	{
-		if (HellboundManager.getInstance().isLocked())
+		if (HellboundEngine.getInstance().isLocked())
 		{
 			activeChar.sendMessage("Hellbound is currently locked.");
 			return true;
 		}
 		
-		final int maxTrust = HellboundManager.getInstance().getMaxTrust();
-		activeChar.sendMessage("Hellbound level: " + HellboundManager.getInstance().getLevel() + " trust: " + HellboundManager.getInstance().getTrust() + (maxTrust > 0 ? "/" + maxTrust : ""));
+		final int maxTrust = HellboundEngine.getInstance().getMaxTrust();
+		activeChar.sendMessage("Hellbound level: " + HellboundEngine.getInstance().getLevel() + " trust: " + HellboundEngine.getInstance().getTrust() + (maxTrust > 0 ? "/" + maxTrust : ""));
 		return true;
 	}
 	

+ 6 - 10
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Amaskari.java → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/Amaskari.java

@@ -16,12 +16,11 @@
  * 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.individual;
+package hellbound.AI;
 
 import ai.npc.AbstractNpcAI;
 
 import com.l2jserver.gameserver.ai.CtrlIntention;
-import com.l2jserver.gameserver.instancemanager.HellboundManager;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -32,6 +31,8 @@ import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.clientpackets.Say2;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
 
+import hellbound.HellboundEngine;
+
 /**
  * Manages Amaskari's and minions' chat and some skill usage.
  * @author GKR
@@ -66,9 +67,9 @@ public final class Amaskari extends AbstractNpcAI
 		NpcStringId.EEEK_I_FEEL_SICKYOW
 	};
 	
-	private Amaskari()
+	public Amaskari()
 	{
-		super(Amaskari.class.getSimpleName(), "ai/individual");
+		super(Amaskari.class.getSimpleName(), "hellbound/AI");
 		addKillId(AMASKARI, AMASKARI_PRISONER);
 		addAttackId(AMASKARI);
 		addSpawnId(AMASKARI_PRISONER);
@@ -165,7 +166,7 @@ public final class Amaskari extends AbstractNpcAI
 						minion.broadcastPacket(new NpcSay(minion.getObjectId(), Say2.NPC_ALL, minion.getId(), MINIONS_NPCSTRING_ID[1]));
 					}
 					
-					HellboundManager.getInstance().updateTrust(30, true);
+					HellboundEngine.getInstance().updateTrust(30, true);
 					minion.deleteMe();
 				}
 			}
@@ -182,9 +183,4 @@ public final class Amaskari extends AbstractNpcAI
 		}
 		return super.onSpawn(npc);
 	}
-	
-	public static void main(String[] args)
-	{
-		new Amaskari();
-	}
 }

+ 8 - 12
L2J_DataPack_BETA/dist/game/data/scripts/ai/group_template/Chimeras.java → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/Chimeras.java

@@ -16,12 +16,11 @@
  * 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.group_template;
+package hellbound.AI;
 
 import ai.npc.AbstractNpcAI;
 
 import com.l2jserver.gameserver.ThreadPoolManager;
-import com.l2jserver.gameserver.instancemanager.HellboundManager;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Attackable;
@@ -29,6 +28,8 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.skills.Skill;
 
+import hellbound.HellboundEngine;
+
 /**
  * Chimeras AI.
  * @author DS
@@ -60,9 +61,9 @@ public class Chimeras extends AbstractNpcAI
 	private static final int LIFE_FORCE = 9681;
 	private static final int CONTAINED_LIFE_FORCE = 9682;
 	
-	private Chimeras()
+	public Chimeras()
 	{
-		super(Chimeras.class.getSimpleName(), "ai/group_template");
+		super(Chimeras.class.getSimpleName(), "hellbound/AI");
 		addSkillSeeId(NPCS);
 		addSpawnId(CELTUS);
 		addSkillSeeId(CELTUS);
@@ -71,7 +72,7 @@ public class Chimeras extends AbstractNpcAI
 	@Override
 	public final String onSpawn(L2Npc npc)
 	{
-		if ((HellboundManager.getInstance().getLevel() == 7) && !npc.isTeleporting()) // Have random spawn points only in 7 lvl
+		if ((HellboundEngine.getInstance().getLevel() == 7) && !npc.isTeleporting()) // Have random spawn points only in 7 lvl
 		{
 			final Location loc = LOCATIONS[getRandom(LOCATIONS.length)];
 			if (!npc.isInsideRadius(loc, 200, false, false))
@@ -92,9 +93,9 @@ public class Chimeras extends AbstractNpcAI
 			{
 				if (npc.getCurrentHp() < (npc.getMaxHp() * 0.1))
 				{
-					if (HellboundManager.getInstance().getLevel() == 7)
+					if (HellboundEngine.getInstance().getLevel() == 7)
 					{
-						HellboundManager.getInstance().updateTrust(3, true);
+						HellboundEngine.getInstance().updateTrust(3, true);
 					}
 					
 					npc.setIsDead(true);
@@ -137,9 +138,4 @@ public class Chimeras extends AbstractNpcAI
 			_npc.teleToLocation(_loc, false);
 		}
 	}
-	
-	public static void main(String[] args)
-	{
-		new Chimeras();
-	}
 }

+ 3 - 8
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/DemonPrince.java → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/DemonPrince.java

@@ -16,7 +16,7 @@
  * 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.individual;
+package hellbound.AI;
 
 import java.util.Map;
 
@@ -47,9 +47,9 @@ public final class DemonPrince extends AbstractNpcAI
 	
 	private static final Map<Integer, Boolean> ATTACK_STATE = new FastMap<>();
 	
-	private DemonPrince()
+	public DemonPrince()
 	{
-		super(DemonPrince.class.getSimpleName(), "ai/individual");
+		super(DemonPrince.class.getSimpleName(), "hellbound/AI");
 		addAttackId(DEMON_PRINCE);
 		addKillId(DEMON_PRINCE);
 		addSpawnId(FIEND);
@@ -124,9 +124,4 @@ public final class DemonPrince extends AbstractNpcAI
 			addSpawn(FIEND, x + 100, y + 140, z, 0, false, 0, false, instanceId);
 		}
 	}
-	
-	public static void main(String[] args)
-	{
-		new DemonPrince();
-	}
 }

+ 6 - 10
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/HellboundCore.java → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/HellboundCore.java

@@ -16,16 +16,17 @@
  * 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.individual;
+package hellbound.AI;
 
 import ai.npc.AbstractNpcAI;
 
-import com.l2jserver.gameserver.instancemanager.HellboundManager;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.holders.SkillHolder;
 
+import hellbound.HellboundEngine;
+
 /**
  * Manages Naia's cast on the Hellbound Core
  * @author GKR
@@ -37,16 +38,16 @@ public final class HellboundCore extends AbstractNpcAI
 	
 	private static SkillHolder BEAM = new SkillHolder(5493, 1);
 	
-	private HellboundCore()
+	public HellboundCore()
 	{
-		super(HellboundCore.class.getSimpleName(), "ai/individual");
+		super(HellboundCore.class.getSimpleName(), "hellbound/AI");
 		addSpawnId(HELLBOUND_CORE);
 	}
 	
 	@Override
 	public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
-		if (event.equalsIgnoreCase("cast") && (HellboundManager.getInstance().getLevel() <= 6))
+		if (event.equalsIgnoreCase("cast") && (HellboundEngine.getInstance().getLevel() <= 6))
 		{
 			for (L2Character naia : npc.getKnownList().getKnownCharactersInRadius(900))
 			{
@@ -67,9 +68,4 @@ public final class HellboundCore extends AbstractNpcAI
 		startQuestTimer("cast", 10000, npc, null);
 		return super.onSpawn(npc);
 	}
-	
-	public static void main(String[] args)
-	{
-		new HellboundCore();
-	}
 }

+ 3 - 8
L2J_DataPack_BETA/dist/game/data/scripts/ai/individual/Keltas.java → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/Keltas.java

@@ -16,7 +16,7 @@
  * 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.individual;
+package hellbound.AI;
 
 import java.util.List;
 
@@ -105,9 +105,9 @@ public final class Keltas extends AbstractNpcAI
 		new Location(-28492, 250704, -3523)
 	};
 	
-	private Keltas()
+	public Keltas()
 	{
-		super(Keltas.class.getSimpleName(), "ai/individual");
+		super(Keltas.class.getSimpleName(), "hellbound/AI");
 		addKillId(KELTAS);
 		addSpawnId(KELTAS);
 		
@@ -191,9 +191,4 @@ public final class Keltas extends AbstractNpcAI
 		}
 		return super.onSpawn(npc);
 	}
-	
-	public static void main(String[] args)
-	{
-		new Keltas();
-	}
 }

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-01.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-01.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-01a.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-01a.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-01c.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-01c.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-01d.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-01d.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-01f.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-01f.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-02.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-02.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-02a.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-02a.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-02b.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-02b.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-02c.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-02c.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-02d.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-02d.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-02e.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-02e.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-03.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-03.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-10r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-10r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-11r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-11r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-1r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-1r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-2r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-2r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-3r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-3r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-4r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-4r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-5r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-5r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-6r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-6r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-7r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-7r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-8r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-8r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/32300-9r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/32300-9r.htm


+ 17 - 20
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Bernarde/Bernarde.java → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Bernade/Bernarde.java

@@ -16,17 +16,19 @@
  * 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 hellbound.Bernarde;
+package hellbound.AI.NPC.Bernade;
 
-import com.l2jserver.gameserver.instancemanager.HellboundManager;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 
+import hellbound.HellboundEngine;
+
 /**
+ * Bernarde AI.
  * @author DS
  */
-public class Bernarde extends Quest
+public final class Bernarde extends Quest
 {
 	private static final int BERNARDE = 32300;
 	private static final int NATIVE_TRANSFORM = 101;
@@ -34,9 +36,12 @@ public class Bernarde extends Quest
 	private static final int DARION_BADGE = 9674;
 	private static final int TREASURE = 9684;
 	
-	private static final boolean isTransformed(L2PcInstance player)
+	public Bernarde()
 	{
-		return player.isTransformed() && (player.getTransformation().getId() == NATIVE_TRANSFORM);
+		super(-1, Bernarde.class.getSimpleName(), "hellbound/AI/NPC");
+		addFirstTalkId(BERNARDE);
+		addStartNpc(BERNARDE);
+		addTalkId(BERNARDE);
 	}
 	
 	@Override
@@ -44,7 +49,7 @@ public class Bernarde extends Quest
 	{
 		if ("HolyWater".equalsIgnoreCase(event))
 		{
-			if (HellboundManager.getInstance().getLevel() == 2)
+			if (HellboundEngine.getInstance().getLevel() == 2)
 			{
 				if (player.getInventory().getInventoryItemCount(DARION_BADGE, -1, false) >= 5)
 				{
@@ -58,13 +63,13 @@ public class Bernarde extends Quest
 		}
 		else if ("Treasure".equalsIgnoreCase(event))
 		{
-			if (HellboundManager.getInstance().getLevel() == 3)
+			if (HellboundEngine.getInstance().getLevel() == 3)
 			{
 				if (player.getInventory().getInventoryItemCount(TREASURE, -1, false) > 0)
 				{
 					if (player.destroyItemByItemId("Quest", TREASURE, player.getInventory().getInventoryItemCount(TREASURE, -1, false), npc, true))
 					{
-						HellboundManager.getInstance().updateTrust((int) (player.getInventory().getInventoryItemCount(TREASURE, -1, false) * 1000), true);
+						HellboundEngine.getInstance().updateTrust((int) (player.getInventory().getInventoryItemCount(TREASURE, -1, false) * 1000), true);
 						return "32300-02d.htm";
 					}
 				}
@@ -73,7 +78,7 @@ public class Bernarde extends Quest
 		}
 		else if ("rumors".equalsIgnoreCase(event))
 		{
-			event = "32300-" + HellboundManager.getInstance().getLevel() + "r.htm";
+			event = "32300-" + HellboundEngine.getInstance().getLevel() + "r.htm";
 		}
 		return event;
 	}
@@ -86,7 +91,7 @@ public class Bernarde extends Quest
 			newQuestState(player);
 		}
 		
-		switch (HellboundManager.getInstance().getLevel())
+		switch (HellboundEngine.getInstance().getLevel())
 		{
 			case 0:
 			case 1:
@@ -102,16 +107,8 @@ public class Bernarde extends Quest
 		}
 	}
 	
-	public Bernarde(int questId, String name, String descr)
-	{
-		super(questId, name, descr);
-		addFirstTalkId(BERNARDE);
-		addStartNpc(BERNARDE);
-		addTalkId(BERNARDE);
-	}
-	
-	public static void main(String[] args)
+	private static final boolean isTransformed(L2PcInstance player)
 	{
-		new Bernarde(-1, Bernarde.class.getSimpleName(), "hellbound");
+		return player.isTransformed() && (player.getTransformation().getId() == NATIVE_TRANSFORM);
 	}
 }

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Budenka/32294-premium.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Budenka/32294-premium.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Budenka/32294-standart.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Budenka/32294-standart.htm


+ 12 - 13
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Budenka/Budenka.java → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Budenka/Budenka.java

@@ -16,18 +16,27 @@
  * 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 hellbound.Budenka;
+package hellbound.AI.NPC.Budenka;
 
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 
-public class Budenka extends Quest
+/**
+ * Budenka AI.
+ */
+public final class Budenka extends Quest
 {
 	private static final int BUDENKA = 32294;
 	private static final int STANDART_CERT = 9851;
 	private static final int PREMIUM_CERT = 9852;
 	
+	public Budenka()
+	{
+		super(-1, Budenka.class.getSimpleName(), "hellbound/AI/NPC");
+		addFirstTalkId(BUDENKA);
+	}
+	
 	@Override
 	public final String onFirstTalk(L2Npc npc, L2PcInstance player)
 	{
@@ -35,6 +44,7 @@ public class Budenka extends Quest
 		{
 			return "32294-premium.htm";
 		}
+		
 		if (player.getInventory().getInventoryItemCount(STANDART_CERT, -1, false) > 0)
 		{
 			return "32294-standart.htm";
@@ -43,15 +53,4 @@ public class Budenka extends Quest
 		npc.showChatWindow(player);
 		return null;
 	}
-	
-	public Budenka(int questId, String name, String descr)
-	{
-		super(questId, name, descr);
-		addFirstTalkId(BUDENKA);
-	}
-	
-	public static void main(String[] args)
-	{
-		new Budenka(-1, "Budenka", "hellbound");
-	}
 }

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/32345-01.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-01.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/32345-01a.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-01a.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/32345-02.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-02.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/32345-10r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-10r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/32345-11r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-11r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/32345-1r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-1r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/32345-2r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-2r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/32345-3r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-3r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/32345-4r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-4r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/32345-5r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-5r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/32345-6r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-6r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/32345-7r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-7r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/32345-8r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-8r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/32345-9r.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-9r.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/32345-lowlvl.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-lowlvl.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/32345-noitems.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/32345-noitems.htm


+ 19 - 33
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Buron/Buron.java → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Buron/Buron.java

@@ -16,18 +16,19 @@
  * 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 hellbound.Buron;
+package hellbound.AI.NPC.Buron;
 
-import com.l2jserver.gameserver.instancemanager.HellboundManager;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
+
+import hellbound.HellboundEngine;
 
 /**
+ * Buron AI.
  * @author DS
  */
-public class Buron extends Quest
+public final class Buron extends Quest
 {
 	private static final int BURON = 32345;
 	private static final int HELMET = 9669;
@@ -35,31 +36,33 @@ public class Buron extends Quest
 	private static final int PANTS = 9671;
 	private static final int DARION_BADGE = 9674;
 	
+	public Buron()
+	{
+		super(-1, Buron.class.getSimpleName(), "hellbound/AI/NPC");
+		addFirstTalkId(BURON);
+		addStartNpc(BURON);
+		addTalkId(BURON);
+	}
+	
 	@Override
 	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = event;
 		if ("Rumor".equalsIgnoreCase(event))
 		{
-			htmltext = "32345-" + HellboundManager.getInstance().getLevel() + "r.htm";
+			htmltext = "32345-" + HellboundEngine.getInstance().getLevel() + "r.htm";
 		}
 		else
 		{
-			if (HellboundManager.getInstance().getLevel() < 2)
+			if (HellboundEngine.getInstance().getLevel() < 2)
 			{
 				htmltext = "32345-lowlvl.htm";
 			}
 			else
 			{
-				QuestState qs = player.getQuestState(getName());
-				if (qs == null)
+				if (getQuestItemsCount(player, DARION_BADGE) >= 10)
 				{
-					qs = newQuestState(player);
-				}
-				
-				if (qs.getQuestItemsCount(DARION_BADGE) >= 10)
-				{
-					qs.takeItems(DARION_BADGE, 10);
+					takeItems(player, DARION_BADGE, 10);
 					if (event.equalsIgnoreCase("Tunic"))
 					{
 						player.addItem("Quest", TUNIC, 1, npc, true);
@@ -86,12 +89,8 @@ public class Buron extends Quest
 	@Override
 	public final String onFirstTalk(L2Npc npc, L2PcInstance player)
 	{
-		if (player.getQuestState(getName()) == null)
-		{
-			newQuestState(player);
-		}
-		
-		switch (HellboundManager.getInstance().getLevel())
+		getQuestState(player, true);
+		switch (HellboundEngine.getInstance().getLevel())
 		{
 			case 1:
 				return "32345-01.htm";
@@ -103,17 +102,4 @@ public class Buron extends Quest
 				return "32345-01a.htm";
 		}
 	}
-	
-	public Buron(int questId, String name, String descr)
-	{
-		super(questId, name, descr);
-		addFirstTalkId(BURON);
-		addStartNpc(BURON);
-		addTalkId(BURON);
-	}
-	
-	public static void main(String[] args)
-	{
-		new Buron(-1, "Buron", "hellbound");
-	}
 }

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Deltuva/32313-02.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Deltuva/32313-02.htm


+ 10 - 14
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Deltuva/Deltuva.java → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Deltuva/Deltuva.java

@@ -16,7 +16,7 @@
  * 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 hellbound.Deltuva;
+package hellbound.AI.NPC.Deltuva;
 
 import quests.Q00132_MatrasCuriosity.Q00132_MatrasCuriosity;
 
@@ -27,14 +27,22 @@ import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
 
 /**
+ * Deltuva AI.
  * @author GKR
  */
-public class Deltuva extends Quest
+public final class Deltuva extends Quest
 {
 	private static final int DELTUVA = 32313;
 	// Location
 	private static final Location TELEPORT = new Location(17934, 283189, -9701);
 	
+	public Deltuva()
+	{
+		super(-1, Deltuva.class.getSimpleName(), "hellbound/AI/NPC");
+		addStartNpc(DELTUVA);
+		addTalkId(DELTUVA);
+	}
+	
 	@Override
 	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
@@ -53,16 +61,4 @@ public class Deltuva extends Quest
 		}
 		return htmltext;
 	}
-	
-	public Deltuva(int questId, String name, String descr)
-	{
-		super(questId, name, descr);
-		addStartNpc(DELTUVA);
-		addTalkId(DELTUVA);
-	}
-	
-	public static void main(String[] args)
-	{
-		new Deltuva(-1, "Deltuva", "hellbound");
-	}
 }

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Falk/32297-01.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-01.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Falk/32297-01a.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-01a.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Falk/32297-02.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-02.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Falk/32297-02a.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-02a.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Falk/32297-02b.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Falk/32297-02b.htm


+ 17 - 40
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Falk/Falk.java → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Falk/Falk.java

@@ -16,17 +16,17 @@
  * 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 hellbound.Falk;
+package hellbound.AI.NPC.Falk;
 
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
 
 /**
+ * Falk AI.
  * @author DS
  */
-public class Falk extends Quest
+public final class Falk extends Quest
 {
 	private static final int FALK = 32297;
 	private static final int BASIC_CERT = 9850;
@@ -34,16 +34,18 @@ public class Falk extends Quest
 	private static final int PREMIUM_CERT = 9852;
 	private static final int DARION_BADGE = 9674;
 	
+	public Falk()
+	{
+		super(-1, Falk.class.getSimpleName(), "hellbound/AI/NPC");
+		addFirstTalkId(FALK);
+		addStartNpc(FALK);
+		addTalkId(FALK);
+	}
+	
 	@Override
 	public final String onFirstTalk(L2Npc npc, L2PcInstance player)
 	{
-		QuestState qs = player.getQuestState(getName());
-		if (qs == null)
-		{
-			qs = newQuestState(player);
-		}
-		
-		if (qs.hasQuestItems(BASIC_CERT) || qs.hasQuestItems(STANDART_CERT) || qs.hasQuestItems(PREMIUM_CERT))
+		if (hasAtLeastOneQuestItem(player, BASIC_CERT, STANDART_CERT, PREMIUM_CERT))
 		{
 			return "32297-01a.htm";
 		}
@@ -53,13 +55,7 @@ public class Falk extends Quest
 	@Override
 	public final String onTalk(L2Npc npc, L2PcInstance player)
 	{
-		QuestState qs = player.getQuestState(getName());
-		if (qs == null)
-		{
-			qs = newQuestState(player);
-		}
-		
-		if (qs.hasQuestItems(BASIC_CERT) || qs.hasQuestItems(STANDART_CERT) || qs.hasQuestItems(PREMIUM_CERT))
+		if (hasAtLeastOneQuestItem(player, BASIC_CERT, STANDART_CERT, PREMIUM_CERT))
 		{
 			return "32297-01a.htm";
 		}
@@ -69,20 +65,14 @@ public class Falk extends Quest
 	@Override
 	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
-		QuestState qs = player.getQuestState(getName());
-		if (qs == null)
-		{
-			qs = newQuestState(player);
-		}
-		
 		if (event.equalsIgnoreCase("badges"))
 		{
-			if (!qs.hasQuestItems(BASIC_CERT) && !qs.hasQuestItems(STANDART_CERT) && !qs.hasQuestItems(PREMIUM_CERT))
+			if (!hasAtLeastOneQuestItem(player, BASIC_CERT, STANDART_CERT, PREMIUM_CERT))
 			{
-				if (qs.getQuestItemsCount(DARION_BADGE) >= 20)
+				if (getQuestItemsCount(player, DARION_BADGE) >= 20)
 				{
-					qs.takeItems(DARION_BADGE, 20);
-					qs.giveItems(BASIC_CERT, 1);
+					takeItems(player, DARION_BADGE, 20);
+					giveItems(player, BASIC_CERT, 1);
 					return "32297-02a.htm";
 				}
 				return "32297-02b.htm";
@@ -90,17 +80,4 @@ public class Falk extends Quest
 		}
 		return event;
 	}
-	
-	public Falk(int questId, String name, String descr)
-	{
-		super(questId, name, descr);
-		addFirstTalkId(FALK);
-		addStartNpc(FALK);
-		addTalkId(FALK);
-	}
-	
-	public static void main(String[] args)
-	{
-		new Falk(-1, "Falk", "hellbound");
-	}
 }

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Hude/32298-01.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-01.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Hude/32298-03.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-03.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Hude/32298-04a.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-04a.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Hude/32298-04b.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-04b.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Hude/32298-05.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-05.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Hude/32298-06a.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-06a.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Hude/32298-06b.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-06b.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Hude/32298-07.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/32298-07.htm


+ 32 - 48
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Hude/Hude.java → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Hude/Hude.java

@@ -16,19 +16,20 @@
  * 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 hellbound.Hude;
+package hellbound.AI.NPC.Hude;
 
 import com.l2jserver.gameserver.datatables.MultisellData;
-import com.l2jserver.gameserver.instancemanager.HellboundManager;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
+
+import hellbound.HellboundEngine;
 
 /**
+ * Hude AI.
  * @author DS
  */
-public class Hude extends Quest
+public final class Hude extends Quest
 {
 	private static final int HUDE = 32298;
 	private static final int BASIC_CERT = 9850;
@@ -40,25 +41,27 @@ public class Hude extends Quest
 	private static final int MAP = 9994;
 	private static final int STINGER = 10012;
 	
+	public Hude()
+	{
+		super(-1, Hude.class.getSimpleName(), "hellbound/AI/NPC");
+		addFirstTalkId(HUDE);
+		addStartNpc(HUDE);
+		addTalkId(HUDE);
+	}
+	
 	@Override
 	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
-		QuestState qs = player.getQuestState(getName());
-		if (qs == null)
-		{
-			qs = newQuestState(player);
-		}
-		
 		if ("scertif".equalsIgnoreCase(event))
 		{
-			if (HellboundManager.getInstance().getLevel() > 3)
+			if (HellboundEngine.getInstance().getLevel() > 3)
 			{
-				if (qs.hasQuestItems(BASIC_CERT) && (qs.getQuestItemsCount(MARK_OF_BETRAYAL) >= 30) && (qs.getQuestItemsCount(STINGER) >= 60))
+				if (hasQuestItems(player, BASIC_CERT) && (getQuestItemsCount(player, MARK_OF_BETRAYAL) >= 30) && (getQuestItemsCount(player, STINGER) >= 60))
 				{
-					qs.takeItems(MARK_OF_BETRAYAL, 30);
-					qs.takeItems(STINGER, 60);
-					qs.takeItems(BASIC_CERT, 1);
-					qs.giveItems(STANDART_CERT, 1);
+					takeItems(player, MARK_OF_BETRAYAL, 30);
+					takeItems(player, STINGER, 60);
+					takeItems(player, BASIC_CERT, 1);
+					giveItems(player, STANDART_CERT, 1);
 					return "32298-04a.htm";
 				}
 			}
@@ -66,15 +69,15 @@ public class Hude extends Quest
 		}
 		else if ("pcertif".equalsIgnoreCase(event))
 		{
-			if (HellboundManager.getInstance().getLevel() > 6)
+			if (HellboundEngine.getInstance().getLevel() > 6)
 			{
-				if (qs.hasQuestItems(STANDART_CERT) && (qs.getQuestItemsCount(LIFE_FORCE) >= 56) && (qs.getQuestItemsCount(CONTAINED_LIFE_FORCE) >= 14))
+				if (hasQuestItems(player, STANDART_CERT) && (getQuestItemsCount(player, LIFE_FORCE) >= 56) && (getQuestItemsCount(player, CONTAINED_LIFE_FORCE) >= 14))
 				{
-					qs.takeItems(LIFE_FORCE, 56);
-					qs.takeItems(CONTAINED_LIFE_FORCE, 14);
-					qs.takeItems(STANDART_CERT, 1);
-					qs.giveItems(PREMIUM_CERT, 1);
-					qs.giveItems(MAP, 1);
+					takeItems(player, LIFE_FORCE, 56);
+					takeItems(player, CONTAINED_LIFE_FORCE, 14);
+					takeItems(player, STANDART_CERT, 1);
+					giveItems(player, PREMIUM_CERT, 1);
+					giveItems(player, MAP, 1);
 					return "32298-06a.htm";
 				}
 			}
@@ -82,14 +85,14 @@ public class Hude extends Quest
 		}
 		else if ("multisell1".equalsIgnoreCase(event))
 		{
-			if (qs.hasQuestItems(STANDART_CERT) || qs.hasQuestItems(PREMIUM_CERT))
+			if (hasQuestItems(player, STANDART_CERT) || hasQuestItems(player, PREMIUM_CERT))
 			{
 				MultisellData.getInstance().separateAndSend(322980001, player, npc, false);
 			}
 		}
 		else if ("multisell2".equalsIgnoreCase(event))
 		{
-			if (qs.hasQuestItems(PREMIUM_CERT))
+			if (hasQuestItems(player, PREMIUM_CERT))
 			{
 				MultisellData.getInstance().separateAndSend(322980002, player, npc, false);
 			}
@@ -101,41 +104,22 @@ public class Hude extends Quest
 	public final String onFirstTalk(L2Npc npc, L2PcInstance player)
 	{
 		String htmltext = "";
-		QuestState qs = player.getQuestState(getName());
-		if (qs == null)
-		{
-			qs = newQuestState(player);
-		}
-		
-		if (!qs.hasQuestItems(BASIC_CERT) && !qs.hasQuestItems(STANDART_CERT) && !qs.hasQuestItems(PREMIUM_CERT))
+		if (!hasAtLeastOneQuestItem(player, BASIC_CERT, STANDART_CERT, PREMIUM_CERT))
 		{
 			htmltext = "32298-01.htm";
 		}
-		else if (qs.hasQuestItems(BASIC_CERT) && !qs.hasQuestItems(STANDART_CERT) && !qs.hasQuestItems(PREMIUM_CERT))
+		else if (hasQuestItems(player, BASIC_CERT) && !hasAtLeastOneQuestItem(player, STANDART_CERT, PREMIUM_CERT))
 		{
 			htmltext = "32298-03.htm";
 		}
-		else if (qs.hasQuestItems(STANDART_CERT) && !qs.hasQuestItems(PREMIUM_CERT))
+		else if (hasQuestItems(player, STANDART_CERT) && !hasQuestItems(player, PREMIUM_CERT))
 		{
 			htmltext = "32298-05.htm";
 		}
-		else if (qs.hasQuestItems(PREMIUM_CERT))
+		else if (hasQuestItems(player, PREMIUM_CERT))
 		{
 			htmltext = "32298-07.htm";
 		}
 		return htmltext;
 	}
-	
-	public Hude(int questId, String name, String descr)
-	{
-		super(questId, name, descr);
-		addFirstTalkId(HUDE);
-		addStartNpc(HUDE);
-		addTalkId(HUDE);
-	}
-	
-	public static void main(String[] args)
-	{
-		new Hude(-1, "Hude", "hellbound");
-	}
 }

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Jude/32356-01.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-01.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Jude/32356-01a.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-01a.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Jude/32356-01b.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-01b.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Jude/32356-01c.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-01c.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Jude/32356-02.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-02.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Jude/32356-02a.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Jude/32356-02a.htm


+ 20 - 30
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Jude/Jude.java → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Jude/Jude.java

@@ -16,40 +16,43 @@
  * 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 hellbound.Jude;
+package hellbound.AI.NPC.Jude;
 
-import com.l2jserver.gameserver.instancemanager.HellboundManager;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.quest.QuestState;
+
+import hellbound.HellboundEngine;
 
 /**
+ * Jude AI.
  * @author DS
  */
-public class Jude extends Quest
+public final class Jude extends Quest
 {
 	private static final int JUDE = 32356;
-	private static final int NativeTreasure = 9684;
-	private static final int RingOfWindMastery = 9677;
+	private static final int NATIVE_TREASURE = 9684;
+	private static final int RING_OF_WIND_MASTERY = 9677;
+	
+	public Jude()
+	{
+		super(-1, Jude.class.getSimpleName(), "hellbound/AI/NPC");
+		addFirstTalkId(JUDE);
+		addStartNpc(JUDE);
+		addTalkId(JUDE);
+	}
 	
 	@Override
 	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
-		QuestState qs = player.getQuestState(getName());
-		if (qs == null)
-		{
-			qs = newQuestState(player);
-		}
-		
 		if ("TreasureSacks".equalsIgnoreCase(event))
 		{
-			if (HellboundManager.getInstance().getLevel() == 3)
+			if (HellboundEngine.getInstance().getLevel() == 3)
 			{
-				if (qs.getQuestItemsCount(NativeTreasure) >= 40)
+				if (getQuestItemsCount(player, NATIVE_TREASURE) >= 40)
 				{
-					qs.takeItems(NativeTreasure, 40);
-					qs.giveItems(RingOfWindMastery, 1);
+					takeItems(player, NATIVE_TREASURE, 40);
+					giveItems(player, RING_OF_WIND_MASTERY, 1);
 					return "32356-02.htm";
 				}
 			}
@@ -66,7 +69,7 @@ public class Jude extends Quest
 			newQuestState(player);
 		}
 		
-		switch (HellboundManager.getInstance().getLevel())
+		switch (HellboundEngine.getInstance().getLevel())
 		{
 			case 0:
 			case 1:
@@ -81,17 +84,4 @@ public class Jude extends Quest
 				return "32356-01b.htm";
 		}
 	}
-	
-	public Jude(int questId, String name, String descr)
-	{
-		super(questId, name, descr);
-		addFirstTalkId(JUDE);
-		addStartNpc(JUDE);
-		addTalkId(JUDE);
-	}
-	
-	public static void main(String[] args)
-	{
-		new Jude(-1, "Jude", "hellbound");
-	}
 }

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kanaf/32346-01.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/32346-01.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kanaf/32346-02.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/32346-02.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kanaf/32346-03.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/32346-03.htm


+ 11 - 15
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kanaf/Kanaf.java → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kanaf/Kanaf.java

@@ -16,19 +16,27 @@
  * 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 hellbound.Kanaf;
+package hellbound.AI.NPC.Kanaf;
 
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 
 /**
+ * Kanaf AI.
  * @author GKR
  */
-public class Kanaf extends Quest
+public final class Kanaf extends Quest
 {
 	private static final int KANAF = 32346;
 	
+	public Kanaf()
+	{
+		super(-1, Kanaf.class.getSimpleName(), "hellbound/AI/NPC");
+		addStartNpc(KANAF);
+		addTalkId(KANAF);
+	}
+	
 	@Override
 	public final String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
 	{
@@ -37,18 +45,6 @@ public class Kanaf extends Quest
 			return "32346-0" + getRandom(1, 3) + ".htm";
 		}
 		
-		return null;
-	}
-	
-	public Kanaf(int questId, String name, String descr)
-	{
-		super(questId, name, descr);
-		addStartNpc(KANAF);
-		addTalkId(KANAF);
-	}
-	
-	public static void main(String[] args)
-	{
-		new Kanaf(-1, "Kanaf", "hellbound");
+		return super.onAdvEvent(event, npc, player);
 	}
 }

+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-01.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-01a.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01a.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-01b.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01b.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-01c.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01c.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-01d.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01d.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-01e.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01e.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-01f.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-01f.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-10.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-10.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-10a.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-10a.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-11a.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11a.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-11b.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11b.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-11c.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11c.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-11d.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11d.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-11e.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11e.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-11f.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11f.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-11g.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11g.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-11h.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11h.htm


+ 0 - 0
L2J_DataPack_BETA/dist/game/data/scripts/hellbound/Kief/32354-11i.htm → L2J_DataPack_BETA/dist/game/data/scripts/hellbound/AI/NPC/Kief/32354-11i.htm


Some files were not shown because too many files changed in this diff