From 563027575829668e22d47a85f2c4e16d2758cf35 Mon Sep 17 00:00:00 2001
From: MELERIX <MELERIX@users.noreply.github.com>
Date: Thu, 11 Aug 2011 15:07:11 +0000
Subject: [PATCH] BETA: Changed id version with class version (WalkerRoutes.xml
 with IDs) by Nyaran.

---
 L2J_DataPack_BETA/data/WalkerRoutes.xml       | 40 ++++++-------
 .../data/scripts/ai/fantasy_isle/MC_Show.java | 60 ++++++++++---------
 .../ai/group_template/GiantScouts.java        |  3 +-
 .../scripts/ai/group_template/Monastery.java  |  9 +--
 .../group_template/PolymorphingOnAttack.java  | 33 +++++-----
 .../ai/group_template/PrisonGuards.java       |  5 +-
 .../ai/group_template/SummonMinions.java      |  3 +-
 .../data/scripts/ai/individual/Core.java      | 13 ++--
 .../scripts/ai/individual/GeneralDilios.java  | 21 +++----
 .../scripts/ai/individual/IceFairySirra.java  | 19 +++---
 .../data/scripts/ai/individual/Orfen.java     | 11 ++--
 .../PinsAndPouchUnseal.java                   |  3 +-
 .../FreyaCelebration/FreyaCelebration.java    | 19 +++---
 .../CrystalCaverns/CrystalCaverns.java        |  9 +--
 .../DarkCloudMansion/DarkCloudMansion.java    | 37 ++++++------
 .../instances/SeedOfDestruction/Stage1.java   |  9 +--
 .../Q463_IMustBeaGenius.java                  | 13 ++--
 .../KillTheKeyTargets.java                    |  4 +-
 .../TerritoryWarScripts/KillTheKnights.java   |  4 +-
 .../TerritoryWarScripts/KillThePriests.java   |  4 +-
 .../TerritoryWarScripts/KillTheWarriors.java  |  4 +-
 .../TerritoryWarScripts/KillTheWizards.java   |  4 +-
 .../TerritoryWarSuperClass.java               | 17 ++++--
 .../TerritoryWarScripts/TheTerritoryAden.java |  4 +-
 .../TerritoryWarScripts/TheTerritoryDion.java |  4 +-
 .../TheTerritoryGiran.java                    |  4 +-
 .../TheTerritoryGludio.java                   |  4 +-
 .../TheTerritoryGoddard.java                  |  4 +-
 .../TheTerritoryInnadril.java                 |  4 +-
 .../TerritoryWarScripts/TheTerritoryOren.java |  4 +-
 .../TerritoryWarScripts/TheTerritoryRune.java |  4 +-
 .../TheTerritorySchuttgart.java               |  4 +-
 .../TeleportToFantasy/TeleportToFantasy.java  |  3 +-
 .../scripts/vehicles/AirShipController.java   |  3 +-
 .../AirShipGludioGracia.java                  | 17 +++---
 .../scripts/vehicles/BoatGiranTalking.java    | 45 +++++++-------
 .../data/scripts/vehicles/BoatGludinRune.java | 45 +++++++-------
 .../scripts/vehicles/BoatInnadrilTour.java    | 21 +++----
 .../scripts/vehicles/BoatRunePrimeval.java    | 15 ++---
 .../scripts/vehicles/BoatTalkingGludin.java   | 43 ++++++-------
 40 files changed, 316 insertions(+), 256 deletions(-)

diff --git a/L2J_DataPack_BETA/data/WalkerRoutes.xml b/L2J_DataPack_BETA/data/WalkerRoutes.xml
index 49f7483333..7c13d4b33f 100644
--- a/L2J_DataPack_BETA/data/WalkerRoutes.xml
+++ b/L2J_DataPack_BETA/data/WalkerRoutes.xml
@@ -4,7 +4,7 @@
 		<route id="0" X="23436" Y="11164" Z="-3720" delay="0" run="true" />
 		<route id="1" X="20256" Y="11104" Z="-3720" delay="0" run="true" />
 		<route id="2" X="17330" Y="13579" Z="-3728" delay="0" run="true" />
-		<route id="3" npcString="1010214" X="17415" Y="13044" Z="-3736" delay="10" run="true" />
+		<route id="3" npcStringId="1010214" X="17415" Y="13044" Z="-3736" delay="10" run="true" />
 		<route id="4" X="20153" Y="12880" Z="-3712" delay="0" run="true" />
 		<route id="5" X="21621" Y="13349" Z="-3624" delay="0" run="true" />
 		<route id="6" X="20686" Y="10432" Z="-3712" delay="0" run="true" />
@@ -15,13 +15,13 @@
 		<route id="0" X="10968" Y="14620" Z="-4240" delay="0" run="false" />
 		<route id="1" X="11308" Y="15847" Z="-4584" delay="0" run="false" />
 		<route id="2" X="12119" Y="16441" Z="-4584" delay="0" run="false" />
-		<route id="3" npcString="1010212" X="15104" Y="15661" Z="-4376" delay="5" run="false" />
+		<route id="3" npcStringId="1010212" X="15104" Y="15661" Z="-4376" delay="5" run="false" />
 		<route id="4" X="15265" Y="16288" Z="-4376" delay="0" run="false" />
 		<route id="5" X="12292" Y="16934" Z="-4584" delay="0" run="false" />
 		<route id="6" X="11777" Y="17669" Z="-4584" delay="0" run="false" />
 		<route id="7" X="11229" Y="17650" Z="-4568" delay="0" run="false" />
 		<route id="8" X="10641" Y="17282" Z="-4584" delay="0" run="false" />
-		<route id="9" npcString="1010213" X="7683" Y="18034" Z="-4376" delay="5" run="false" />
+		<route id="9" npcStringId="1010213" X="7683" Y="18034" Z="-4376" delay="5" run="false" />
 		<route id="10" X="10551" Y="16775" Z="-4584" delay="0" run="false" />
 		<route id="11" X="11004" Y="15942" Z="-4584" delay="0" run="false" />
 		<route id="12" X="10827" Y="14757" Z="-4240" delay="0" run="false" />
@@ -29,17 +29,17 @@
 	</walker>
 	<walker npcId="31362">
 		<route id="0" X="115824" Y="-181564" Z="-1336" delay="20" run="false" />
-		<route id="1" npcString="1010218" X="116048" Y="-181575" Z="-1352" delay="0" run="false" />
+		<route id="1" npcStringId="1010218" X="116048" Y="-181575" Z="-1352" delay="0" run="false" />
 		<route id="2" X="116521" Y="-181476" Z="-1384" delay="0" run="false" />
 		<route id="3" X="116632" Y="-180022" Z="-1160" delay="0" run="false" />
 		<route id="4" X="115355" Y="-178617" Z="-928" delay="0" run="false" />
 		<route id="5" X="115763" Y="-177585" Z="-888" delay="0" run="false" />
-		<route id="6" npcString="1010219" X="115795" Y="-177361" Z="-880" delay="0" run="false" />
+		<route id="6" npcStringId="1010219" X="115795" Y="-177361" Z="-880" delay="0" run="false" />
 		<route id="7" X="115877" Y="-177338" Z="-880" delay="15" run="false" />
 		<route id="8" X="115783" Y="-177493" Z="-880" delay="0" run="false" />
 		<route id="9" X="115112" Y="-179836" Z="-880" delay="0" run="false" />
 		<route id="10" X="115102" Y="-180026" Z="-872" delay="0" run="false" />
-		<route id="11" npcString="1010220" X="114876" Y="-180045" Z="-872" delay="30" run="false" />
+		<route id="11" npcStringId="1010220" X="114876" Y="-180045" Z="-872" delay="30" run="false" />
 		<route id="12" X="114840" Y="-179694" Z="-872" delay="0" run="false" />
 		<route id="13" X="116322" Y="-179602" Z="-1088" delay="0" run="false" />
 		<route id="14" X="116792" Y="-180386" Z="-1200" delay="0" run="false" />
@@ -50,11 +50,11 @@
 		<route id="0" X="115744" Y="-183424" Z="-1472" delay="60" run="true" />
 		<route id="1" X="115878" Y="-183267" Z="-1472" delay="0" run="true" />
 		<route id="2" X="116116" Y="-183090" Z="-1496" delay="0" run="true" />
-		<route id="3" npcString="1010215" X="116587" Y="-184306" Z="-1568" delay="10" run="true" />
+		<route id="3" npcStringId="1010215" X="116587" Y="-184306" Z="-1568" delay="10" run="true" />
 		<route id="4" X="116392" Y="-184090" Z="-1560" delay="0" run="true" />
 		<route id="5" X="117083" Y="-182538" Z="-1520" delay="0" run="true" />
-		<route id="6" npcString="1010216" X="117802" Y="-182541" Z="-1528" delay="10" run="true" />
-		<route id="7" npcString="1010217" X="116720" Y="-182479" Z="-1512" delay="10" run="true" />
+		<route id="6" npcStringId="1010216" X="117802" Y="-182541" Z="-1528" delay="10" run="true" />
+		<route id="7" npcStringId="1010217" X="116720" Y="-182479" Z="-1512" delay="10" run="true" />
 		<route id="8" X="115857" Y="-183287" Z="-1472" delay="0" run="true" />
 		<route id="9" X="115744" Y="-183424" Z="-1472" delay="0" run="true" />
 	</walker>
@@ -62,8 +62,8 @@
 		<route id="0" X="44964" Y="50568" Z="-3056" delay="0" run="false" />
 		<route id="1" X="44435" Y="50025" Z="-3056" delay="0" run="false" />
 		<route id="2" X="44455" Y="49078" Z="-3056" delay="0" run="false" />
-		<route id="3" npcString="1010208" X="45402" Y="48437" Z="-3056" delay="5" run="false" />
-		<route id="4" npcString="1010209" X="46104" Y="48788" Z="-3056" delay="5" run="false" />
+		<route id="3" npcStringId="1010208" X="45402" Y="48437" Z="-3056" delay="5" run="false" />
+		<route id="4" npcStringId="1010209" X="46104" Y="48788" Z="-3056" delay="5" run="false" />
 		<route id="5" X="46452" Y="49743" Z="-3056" delay="0" run="false" />
 		<route id="6" X="45730" Y="50590" Z="-3056" delay="60" run="false" />
 	</walker>
@@ -73,11 +73,11 @@
 		<route id="2" X="43041" Y="49312" Z="-2992" delay="0" run="false" />
 		<route id="3" X="43612" Y="48322" Z="-2992" delay="0" run="false" />
 		<route id="4" X="44009" Y="47645" Z="-2992" delay="0" run="false" />
-		<route id="5" npcString="1010210" X="45309" Y="47341" Z="-2992" delay="5" run="false" />
+		<route id="5" npcStringId="1010210" X="45309" Y="47341" Z="-2992" delay="5" run="false" />
 		<route id="6" X="46726" Y="47762" Z="-2992" delay="0" run="false" />
 		<route id="7" X="47509" Y="49004" Z="-2992" delay="0" run="false" />
 		<route id="8" X="47443" Y="50456" Z="-2992" delay="0" run="false" />
-		<route id="9" npcString="1010211" X="47013" Y="51287" Z="-2992" delay="60" run="false" />
+		<route id="9" npcStringId="1010211" X="47013" Y="51287" Z="-2992" delay="60" run="false" />
 	</walker>
 	<walker npcId="31357">
 		<route id="0" X="-82428" Y="245204" Z="-3712" delay="0" run="false" />
@@ -85,30 +85,30 @@
 		<route id="2" X="-82091" Y="245028" Z="-3720" delay="0" run="false" />
 		<route id="3" X="-82381" Y="244911" Z="-3720" delay="0" run="false" />
 		<route id="4" X="-82935" Y="244481" Z="-3728" delay="0" run="false" />
-		<route id="5" npcString="1010205" X="-83980" Y="242776" Z="-3728" delay="10" run="false" />
+		<route id="5" npcStringId="1010205" X="-83980" Y="242776" Z="-3728" delay="10" run="false" />
 		<route id="6" X="-85966" Y="241371" Z="-3728" delay="0" run="false" />
-		<route id="7" npcString="1010206" X="-86079" Y="240868" Z="-3720" delay="5" run="false" />
+		<route id="7" npcStringId="1010206" X="-86079" Y="240868" Z="-3720" delay="5" run="false" />
 		<route id="8" X="-86076" Y="240392" Z="-3712" delay="0" run="false" />
 		<route id="9" X="-86519" Y="240706" Z="-3704" delay="0" run="false" />
-		<route id="10" npcString="1010207" X="-86343" Y="241130" Z="-3728" delay="60" run="false" />
+		<route id="10" npcStringId="1010207" X="-86343" Y="241130" Z="-3728" delay="60" run="false" />
 	</walker>
 	<walker npcId="31356">
 		<route id="0" X="-81926" Y="243894" Z="-3712" delay="3" run="true" />
 		<route id="1" X="-82134" Y="243600" Z="-3728" delay="0" run="true" />
 		<route id="2" X="-83182" Y="243723" Z="-3728" delay="0" run="true" />
-		<route id="3" npcString="1010202" X="-84486" Y="243236" Z="-3728" delay="5" run="true" />
+		<route id="3" npcStringId="1010202" X="-84486" Y="243236" Z="-3728" delay="5" run="true" />
 		<route id="4" X="-85205" Y="243187" Z="-3728" delay="0" run="true" />
 		<route id="5" X="-86152" Y="242898" Z="-3728" delay="0" run="true" />
 		<route id="6" X="-86288" Y="242962" Z="-3720" delay="0" run="true" />
-		<route id="7" npcString="1010203" X="-86352" Y="243207" Z="-3720" delay="5" run="true" />
+		<route id="7" npcStringId="1010203" X="-86352" Y="243207" Z="-3720" delay="5" run="true" />
 		<route id="8" X="-86501" Y="242762" Z="-3720" delay="0" run="true" />
 		<route id="9" X="-86500" Y="242615" Z="-3728" delay="0" run="true" />
 		<route id="10" X="-86123" Y="241606" Z="-3728" delay="0" run="true" />
 		<route id="11" X="-85207" Y="240698" Z="-3728" delay="0" run="true" />
-		<route id="12" npcString="1010204" X="-84066" Y="241285" Z="-3728" delay="5" run="true" />
+		<route id="12" npcStringId="1010204" X="-84066" Y="241285" Z="-3728" delay="5" run="true" />
 		<route id="13" X="-83215" Y="241170" Z="-3728" delay="0" run="true" />
 		<route id="14" X="-82364" Y="242944" Z="-3720" delay="0" run="true" />
-		<route id="15" npcString="1010201" X="-81674" Y="243391" Z="-3712" delay="60" run="true" />
+		<route id="15" npcStringId="1010201" X="-81674" Y="243391" Z="-3712" delay="60" run="true" />
 		<route id="16" X="-81926" Y="243894" Z="-3712" delay="0" run="true" />
 	</walker>
 	<walker npcId="31364">
diff --git a/L2J_DataPack_BETA/data/scripts/ai/fantasy_isle/MC_Show.java b/L2J_DataPack_BETA/data/scripts/ai/fantasy_isle/MC_Show.java
index a82eeac6be..0bf7c61d0f 100644
--- a/L2J_DataPack_BETA/data/scripts/ai/fantasy_isle/MC_Show.java
+++ b/L2J_DataPack_BETA/data/scripts/ai/fantasy_isle/MC_Show.java
@@ -27,6 +27,7 @@ import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.model.L2CharPosition;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
 import com.l2jserver.gameserver.network.serverpackets.PlaySound;
 import com.l2jserver.gameserver.network.serverpackets.SocialAction;
@@ -44,31 +45,32 @@ public class MC_Show extends L2AttackableAIScript
 	private static int[] individuals = {32439,32440,32441};
 	private static int[] showstuff = {32424,32425,32426,32427,32428};
 	private static boolean isStarted = false;
-	private static int[] messages = {
-		1800105, // How come people are not here... We are about to start the show.. Hmm
-		1800082, // Ugh, I have butterflies in my stomach.. The show starts soon...
-		1800083, // Thank you all for coming here tonight.
-		1800084, // It is an honor to have the special show today.
-		1800085, // Our Fantasy Isle is fully committed to your happiness.
-		1800086, // Now I'd like to introduce the most beautiful singer in Aden. Please welcome Leyla Mira!
-		1800087, // Here she comes!
-		1800088, // Thank you very much, Leyla!
-		// 1800089 Now we're in for a real treat.
-		1800090, // Just back from their world tourÃ…put your hands together for the Fantasy Isle Circus!
-		1800091, // Come on ~ everyone
-		1800092, // Did you like it? That was so amazing.
-		1800093, // Now we also invited individuals with special talents.
-		1800094, // Let's welcome the first person here!
-		1800095, // ;;;;;;Oh
-		1800096, // Okay, now here comes the next person. Come on up please.
-		1800097, // Oh, it looks like something great is going to happen, right?
-		1800098, // Oh, my ;;;;
-		1800099, // That's g- .. great. Now, here comes the last person.
-		1800100, // Now this is the end of today's show.
-		1800101, // How was it? I am not sure if you really enjoyed it.
-		1800102, // Please remember that Fantasy Isle is always planning a lot of great shows for you.
-		1800103, // Well, I wish I could continue all night long, but this is it for today. Thank you.
-		1800104 // We love you
+	private static NpcStringId[] messages = {
+		NpcStringId.HOW_COME_PEOPLE_ARE_NOT_HERE_WE_ARE_ABOUT_TO_START_THE_SHOW_HMM,
+		NpcStringId.UGH_I_HAVE_BUTTERFLIES_IN_MY_STOMACH_THE_SHOW_STARTS_SOON,
+		NpcStringId.THANK_YOU_ALL_FOR_COMING_HERE_TONIGHT,
+		NpcStringId.IT_IS_AN_HONOR_TO_HAVE_THE_SPECIAL_SHOW_TODAY,
+		NpcStringId.FANTASY_ISLE_IS_FULLY_COMMITTED_TO_YOUR_HAPPINESS,
+		NpcStringId.NOW_ID_LIKE_TO_INTRODUCE_THE_MOST_BEAUTIFUL_SINGER_IN_ADEN_PLEASE_WELCOMELEYLA_MIRA,
+		NpcStringId.HERE_SHE_COMES,
+		NpcStringId.THANK_YOU_VERY_MUCH_LEYLA,
+		//NpcStringId.1800089 Now we're in for a real treat.
+		NpcStringId.JUST_BACK_FROM_THEIR_WORLD_TOUR_PUT_YOUR_HANDS_TOGETHER_FOR_THE_FANTASY_ISLE_CIRCUS,
+		NpcStringId.COME_ON_EVERYONE,
+		NpcStringId.DID_YOU_LIKE_IT_THAT_WAS_SO_AMAZING,
+		NpcStringId.NOW_WE_ALSO_INVITED_INDIVIDUALS_WITH_SPECIAL_TALENTS,
+		NpcStringId.LETS_WELCOME_THE_FIRST_PERSON_HERE,
+		NpcStringId.OH,
+		NpcStringId.OKAY_NOW_HERE_COMES_THE_NEXT_PERSON_COME_ON_UP_PLEASE,
+		NpcStringId.OH_IT_LOOKS_LIKE_SOMETHING_GREAT_IS_GOING_TO_HAPPEN_RIGHT,
+		NpcStringId.OH_MY,
+		NpcStringId.THATS_G_GREAT_NOW_HERE_COMES_THE_LAST_PERSON,
+		NpcStringId.NOW_THIS_IS_THE_END_OF_TODAYS_SHOW,
+		NpcStringId.HOW_WAS_IT_I_HOPE_YOU_ALL_ENJOYED_IT,
+		NpcStringId.PLEASE_REMEMBER_THAT_FANTASY_ISLE_IS_ALWAYS_PLANNING_A_LOT_OF_GREAT_SHOWS_FOR_YOU,
+		NpcStringId.WELL_I_WISH_I_COULD_CONTINUE_ALL_NIGHT_LONG_BUT_THIS_IS_IT_FOR_TODAY_THANK_YOU,
+		NpcStringId.WE_LOVE_YOU
+
 	};
 	
 	private static Map<String, Object[]> talks = new FastMap<String, Object[]>();
@@ -222,9 +224,9 @@ public class MC_Show extends L2AttackableAIScript
 		
 	}
 	
-	 private void autoChat(L2Npc npc, int stringId, int type)
+	private void autoChat(L2Npc npc, NpcStringId npcString, int type)
 	{
-		 npc.broadcastPacket(new NpcSay(npc.getObjectId(), type, npc.getNpcId(), stringId));
+		npc.broadcastPacket(new NpcSay(npc.getObjectId(), type, npc.getNpcId(), npcString));
 	}
 	
 	@Override
@@ -383,10 +385,10 @@ public class MC_Show extends L2AttackableAIScript
 			{
 				if (talks.containsKey(event))
 				{
-					int stringId = (Integer) talks.get(event)[0];
+					NpcStringId npcString = (NpcStringId) talks.get(event)[0];
 					String nextEvent = (String) talks.get(event)[1];
 					int time = (Integer) talks.get(event)[2];
-					autoChat(npc,stringId,1);
+					autoChat(npc,npcString, 1);
 					startQuestTimer(nextEvent,time, npc, null);
 				}
 				else if (walks.containsKey(event))
diff --git a/L2J_DataPack_BETA/data/scripts/ai/group_template/GiantScouts.java b/L2J_DataPack_BETA/data/scripts/ai/group_template/GiantScouts.java
index a5d537055c..8a591efcc4 100644
--- a/L2J_DataPack_BETA/data/scripts/ai/group_template/GiantScouts.java
+++ b/L2J_DataPack_BETA/data/scripts/ai/group_template/GiantScouts.java
@@ -24,6 +24,7 @@ import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.clientpackets.Say2;
 import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
 
@@ -45,7 +46,7 @@ public class GiantScouts extends L2AttackableAIScript
 		if(GeoData.getInstance().canSeeTarget(npc, target))
 		{
 			if (!npc.isInCombat() && npc.getTarget() == null)
-				npc.broadcastPacket(new CreatureSay(npc.getObjectId(), Say2.SHOUT, npc.getName(), 1800861));
+				npc.broadcastPacket(new CreatureSay(npc.getObjectId(), Say2.SHOUT, npc.getName(), NpcStringId.OH_GIANTS_AN_INTRUDER_HAS_BEEN_DISCOVERED));
 			
 			npc.setTarget(target);
 			npc.setRunning();
diff --git a/L2J_DataPack_BETA/data/scripts/ai/group_template/Monastery.java b/L2J_DataPack_BETA/data/scripts/ai/group_template/Monastery.java
index dc43e35308..1953e9e31e 100644
--- a/L2J_DataPack_BETA/data/scripts/ai/group_template/Monastery.java
+++ b/L2J_DataPack_BETA/data/scripts/ai/group_template/Monastery.java
@@ -30,6 +30,7 @@ import com.l2jserver.gameserver.model.actor.L2Playable;
 import com.l2jserver.gameserver.model.actor.L2Summon;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PetInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
 import com.l2jserver.gameserver.templates.skills.L2SkillType;
 import com.l2jserver.gameserver.util.Util;
@@ -40,10 +41,10 @@ public class Monastery extends L2AttackableAIScript
 	static final int[] mobs1 = {22124, 22125, 22126, 22127, 22129};
 	static final int[] mobs2 = {22134, 22135};
 	
-	static final int[] messages = {
-		1121006, // You cannot carry a weapon without authorization!
-		10077, // $s1, why would you choose the path of darkness?!
-		10078 // $s1! How dare you defy the will of Einhasad!
+	static final NpcStringId[] messages = {
+		NpcStringId.YOU_CANNOT_CARRY_A_WEAPON_WITHOUT_AUTHORIZATION,
+		NpcStringId.S1_WHY_WOULD_YOU_CHOOSE_THE_PATH_OF_DARKNESS,
+		NpcStringId.S1_HOW_DARE_YOU_DEFY_THE_WILL_OF_EINHASAD
 	};
 	public Monastery(int questId, String name, String descr)
 	{
diff --git a/L2J_DataPack_BETA/data/scripts/ai/group_template/PolymorphingOnAttack.java b/L2J_DataPack_BETA/data/scripts/ai/group_template/PolymorphingOnAttack.java
index ca0d102e61..5e86195443 100644
--- a/L2J_DataPack_BETA/data/scripts/ai/group_template/PolymorphingOnAttack.java
+++ b/L2J_DataPack_BETA/data/scripts/ai/group_template/PolymorphingOnAttack.java
@@ -21,6 +21,7 @@ import com.l2jserver.gameserver.model.actor.L2Attackable;
 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.network.NpcStringId;
 import com.l2jserver.gameserver.network.clientpackets.Say2;
 import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
 import com.l2jserver.util.Rnd;
@@ -34,24 +35,25 @@ public class PolymorphingOnAttack extends L2AttackableAIScript
 	static
 	{
 		MOBSPAWNS.put(21258,new Integer[]{21259,100,100,-1}); //Fallen Orc Shaman -> Sharp Talon Tiger (always polymorphs)
-		MOBSPAWNS.put(21261,new Integer[]{21262,100,20 ,0}); //Ol Mahum Transcender 1st stage
-		MOBSPAWNS.put(21262,new Integer[]{21263,100,10 ,1}); //Ol Mahum Transcender 2nd stage
-		MOBSPAWNS.put(21263,new Integer[]{21264,100,5  ,2}); //Ol Mahum Transcender 3rd stage
-		MOBSPAWNS.put(21265,new Integer[]{21271,100,33 ,0}); //Cave Ant Larva -> Cave Ant
+		MOBSPAWNS.put(21261,new Integer[]{21262,100,20,0}); //Ol Mahum Transcender 1st stage
+		MOBSPAWNS.put(21262,new Integer[]{21263,100,10,1}); //Ol Mahum Transcender 2nd stage
+		MOBSPAWNS.put(21263,new Integer[]{21264,100,5,2}); //Ol Mahum Transcender 3rd stage
+		MOBSPAWNS.put(21265,new Integer[]{21271,100,33,0}); //Cave Ant Larva -> Cave Ant
 		MOBSPAWNS.put(21266,new Integer[]{21269,100,100,-1}); //Cave Ant Larva -> Cave Ant (always polymorphs)
 		MOBSPAWNS.put(21267,new Integer[]{21270,100,100,-1}); //Cave Ant Larva -> Cave Ant Soldier (always polymorphs)
-		MOBSPAWNS.put(21271,new Integer[]{21272,66,10 ,1}); //Cave Ant -> Cave Ant Soldier
-		MOBSPAWNS.put(21272,new Integer[]{21273,33 ,5  ,2}); //Cave Ant Soldier -> Cave Noble Ant
-		MOBSPAWNS.put(21521,new Integer[]{21522,100,30 ,-1}); //Claws of Splendor
-		MOBSPAWNS.put(21527,new Integer[]{21528,100,30 ,-1}); //Anger of Splendor
-		MOBSPAWNS.put(21533,new Integer[]{21534,100,30 ,-1}); //Alliance of Splendor
-		MOBSPAWNS.put(21537,new Integer[]{21538,100,30 ,-1}); //Fang of Splendor
+		MOBSPAWNS.put(21271,new Integer[]{21272,66,10,1}); //Cave Ant -> Cave Ant Soldier
+		MOBSPAWNS.put(21272,new Integer[]{21273,33,5,2}); //Cave Ant Soldier -> Cave Noble Ant
+		MOBSPAWNS.put(21521,new Integer[]{21522,100,30,-1}); //Claws of Splendor
+		MOBSPAWNS.put(21527,new Integer[]{21528,100,30,-1}); //Anger of Splendor
+		MOBSPAWNS.put(21533,new Integer[]{21534,100,30,-1}); //Alliance of Splendor
+		MOBSPAWNS.put(21537,new Integer[]{21538,100,30,-1}); //Fang of Splendor
 	}
-	protected static final int[][] MOBTEXTS =
+	protected static final NpcStringId[][] MOBTEXTS =
 	{
-		new int[]{1000407, 1000408, 1000406},
-		new int[]{1000411, 1000410, 1000409},
-		new int[]{1000414, 1000413, 1000412}
+		new NpcStringId[]{NpcStringId.ENOUGH_FOOLING_AROUND_GET_READY_TO_DIE, NpcStringId.YOU_IDIOT_IVE_JUST_BEEN_TOYING_WITH_YOU, NpcStringId.NOW_THE_FUN_STARTS},
+		new NpcStringId[]{NpcStringId.I_MUST_ADMIT_NO_ONE_MAKES_MY_BLOOD_BOIL_QUITE_LIKE_YOU_DO, NpcStringId.NOW_THE_BATTLE_BEGINS, NpcStringId.WITNESS_MY_TRUE_POWER},
+		new NpcStringId[]{NpcStringId.PREPARE_TO_DIE, NpcStringId.ILL_DOUBLE_MY_STRENGTH, NpcStringId.YOU_HAVE_MORE_SKILL_THAN_I_THOUGHT}
+
 	};
 	
 	public PolymorphingOnAttack(int questId, String name, String descr)
@@ -72,8 +74,9 @@ public class PolymorphingOnAttack extends L2AttackableAIScript
 				{
 					if (tmp[3] >= 0)
 					{
-						int npcString = MOBTEXTS[tmp[3]][Rnd.get(MOBTEXTS[tmp[3]].length)];
+						NpcStringId npcString = MOBTEXTS[tmp[3]][Rnd.get(MOBTEXTS[tmp[3]].length)];
 						npc.broadcastPacket(new CreatureSay(npc.getObjectId(),Say2.ALL,npc.getName(),npcString));
+
 					}
 					npc.deleteMe();
 					L2Attackable newNpc = (L2Attackable) addSpawn(tmp[0], npc.getX(), npc.getY(), npc.getZ()+10, npc.getHeading(), false, 0, true);
diff --git a/L2J_DataPack_BETA/data/scripts/ai/group_template/PrisonGuards.java b/L2J_DataPack_BETA/data/scripts/ai/group_template/PrisonGuards.java
index 6df582f416..230d76c327 100644
--- a/L2J_DataPack_BETA/data/scripts/ai/group_template/PrisonGuards.java
+++ b/L2J_DataPack_BETA/data/scripts/ai/group_template/PrisonGuards.java
@@ -26,6 +26,7 @@ import com.l2jserver.gameserver.model.actor.L2Attackable;
 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.network.NpcStringId;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
 import com.l2jserver.util.Rnd;
 
@@ -227,8 +228,8 @@ public class PrisonGuards extends L2AttackableAIScript
 			 * 1800107 It's not easy to obtain.
 			 * 1800108 You're out of your mind coming here...
 			 */
-			int msg = (npc.getNpcId() == GUARD1 ? 1800107 : 1800108);
-			npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), msg));
+			NpcStringId npcString = (npc.getNpcId() == GUARD1 ? NpcStringId.ITS_NOT_EASY_TO_OBTAIN : NpcStringId.YOURE_OUT_OF_YOUR_MIND_COMING_HERE);
+			npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), npcString));
 		}
 		
 		L2Skill skill = SkillTable.getInstance().getInfo(effectId, isSpell ? 9 : 1);
diff --git a/L2J_DataPack_BETA/data/scripts/ai/group_template/SummonMinions.java b/L2J_DataPack_BETA/data/scripts/ai/group_template/SummonMinions.java
index adc350da2f..acb9e4cca5 100644
--- a/L2J_DataPack_BETA/data/scripts/ai/group_template/SummonMinions.java
+++ b/L2J_DataPack_BETA/data/scripts/ai/group_template/SummonMinions.java
@@ -23,6 +23,7 @@ import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.model.actor.L2Attackable;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
 import com.l2jserver.util.Rnd;
 
@@ -180,7 +181,7 @@ public class SummonMinions extends L2AttackableAIScript
 						}
 						if (npcId == 20767)
 						{
-							npc.broadcastPacket(new NpcSay(npcObjId, 0, npcId, 1000294)); // Come out, you children of darkness!
+							npc.broadcastPacket(new NpcSay(npcObjId, 0, npcId, NpcStringId.COME_OUT_YOU_CHILDREN_OF_DARKNESS));
 						}
 						break;
 					}
diff --git a/L2J_DataPack_BETA/data/scripts/ai/individual/Core.java b/L2J_DataPack_BETA/data/scripts/ai/individual/Core.java
index c36489891f..6f7600e0cd 100644
--- a/L2J_DataPack_BETA/data/scripts/ai/individual/Core.java
+++ b/L2J_DataPack_BETA/data/scripts/ai/individual/Core.java
@@ -25,6 +25,7 @@ import com.l2jserver.gameserver.model.actor.L2Attackable;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2GrandBossInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
 import com.l2jserver.gameserver.network.serverpackets.PlaySound;
 import com.l2jserver.gameserver.templates.StatsSet;
@@ -172,13 +173,13 @@ public class Core extends L2AttackableAIScript
 			if (_FirstAttacked)
 			{
 				if (Rnd.get(100) == 0)
-					npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), 1000003)); // Removing intruders.
+					npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), NpcStringId.REMOVING_INTRUDERS));
 			}
 			else
 			{
 				_FirstAttacked = true;
-				npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), 1000001)); // A non-permitted target has been discovered.
-				npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), 1000002)); // Intruder removal system initiated.
+				npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), NpcStringId.A_NON_PERMITTED_TARGET_HAS_BEEN_DISCOVERED));
+				npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), NpcStringId.INTRUDER_REMOVAL_SYSTEM_INITIATED));
 			}
 		}
 		return super.onAttack(npc, attacker, damage, isPet);
@@ -192,9 +193,9 @@ public class Core extends L2AttackableAIScript
 		{
 			int objId = npc.getObjectId();
 			npc.broadcastPacket(new PlaySound(1, "BS02_D", 1, objId, npc.getX(), npc.getY(), npc.getZ()));
-			npc.broadcastPacket(new NpcSay(objId, 0, npcId, 1000004)); // A fatal error has occurred.
-			npc.broadcastPacket(new NpcSay(objId, 0, npcId, 1000005)); // System is being shut down...
-			npc.broadcastPacket(new NpcSay(objId, 0, npcId, 1000006)); // ......
+			npc.broadcastPacket(new NpcSay(objId, 0, npcId, NpcStringId.A_FATAL_ERROR_HAS_OCCURRED));
+			npc.broadcastPacket(new NpcSay(objId, 0, npcId, NpcStringId.SYSTEM_IS_BEING_SHUT_DOWN));
+			npc.broadcastPacket(new NpcSay(objId, 0, npcId, NpcStringId.DOT_DOT_DOT_DOT_DOT_DOT));
 			_FirstAttacked = false;
 			addSpawn(31842, 16502, 110165, -6394, 0, false, 900000);
 			addSpawn(31842, 18948, 110166, -6397, 0, false, 900000);
diff --git a/L2J_DataPack_BETA/data/scripts/ai/individual/GeneralDilios.java b/L2J_DataPack_BETA/data/scripts/ai/individual/GeneralDilios.java
index 75dd15da3d..0f0a64574a 100644
--- a/L2J_DataPack_BETA/data/scripts/ai/individual/GeneralDilios.java
+++ b/L2J_DataPack_BETA/data/scripts/ai/individual/GeneralDilios.java
@@ -23,6 +23,7 @@ import com.l2jserver.gameserver.datatables.SpawnTable;
 import com.l2jserver.gameserver.model.L2Spawn;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
 import com.l2jserver.gameserver.network.serverpackets.SocialAction;
 import com.l2jserver.util.Rnd;
@@ -40,16 +41,16 @@ public class GeneralDilios extends L2AttackableAIScript
 	private L2Npc _general;
 	private List<L2Npc> _guards = new ArrayList<L2Npc>();
 	
-	private static final int[] diliosText =
+	private static final NpcStringId[] diliosText =
 	{
-		1800695, // Messenger, inform the patrons of the Keucereus Alliance Base! We're gathering brave adventurers to attack Tiat's Mounted Troop that's rooted in the Seed of Destruction.
-	    //1800696,  Messenger, inform the patrons of the Keucereus Alliance Base! The Seed of Destruction is currently secured under the flag of the Keucereus Alliance!
-		//1800697,  Messenger, inform the patrons of the Keucereus Alliance Base! Tiat's Mounted Troop is currently trying to retake Seed of Destruction! Commit all the available reinforcements into Seed of Destruction!
-		1800698, // Messenger, inform the brothers in Kucereus' clan outpost! Brave adventurers who have challenged the Seed of Infinity are currently infiltrating the Hall of Erosion through the defensively weak Hall of Suffering!
-		//1800699,  Messenger, inform the brothers in Kucereus' clan outpost! Sweeping the Seed of Infinity is currently complete to the Heart of the Seed. Ekimus is being directly attacked, and the Undead remaining in the Hall of Suffering are being eradicated!
-		1800700  // Messenger, inform the patrons of the Keucereus Alliance Base! The Seed of Infinity is currently secured under the flag of the Keucereus Alliance!
-		//1800702   Messenger, inform the patrons of the Keucereus Alliance Base! The resurrected Undead in the Seed of Infinity are pouring into the Hall of Suffering and the Hall of Erosion! 
-		//1800703   Messenger, inform the brothers in Kucereus' clan outpost! Ekimus is about to be revived by the resurrected Undead in Seed of Infinity. Send all reinforcements to the Heart and the Hall of Suffering!
+		NpcStringId.MESSENGER_INFORM_THE_PATRONS_OF_THE_KEUCEREUS_ALLIANCE_BASE_WERE_GATHERING_BRAVE_ADVENTURERS_TO_ATTACK_TIATS_MOUNTED_TROOP_THATS_ROOTED_IN_THE_SEED_OF_DESTRUCTION,
+	    //NpcStringId.MESSENGER_INFORM_THE_PATRONS_OF_THE_KEUCEREUS_ALLIANCE_BASE_THE_SEED_OF_DESTRUCTION_IS_CURRENTLY_SECURED_UNDER_THE_FLAG_OF_THE_KEUCEREUS_ALLIANCE,
+	    //NpcStringId.MESSENGER_INFORM_THE_PATRONS_OF_THE_KEUCEREUS_ALLIANCE_BASE_TIATS_MOUNTED_TROOP_IS_CURRENTLY_TRYING_TO_RETAKE_SEED_OF_DESTRUCTION_COMMIT_ALL_THE_AVAILABLE_REINFORCEMENTS_INTO_SEED_OF_DESTRUCTION,
+		NpcStringId.MESSENGER_INFORM_THE_BROTHERS_IN_KUCEREUS_CLAN_OUTPOST_BRAVE_ADVENTURERS_WHO_HAVE_CHALLENGED_THE_SEED_OF_INFINITY_ARE_CURRENTLY_INFILTRATING_THE_HALL_OF_EROSION_THROUGH_THE_DEFENSIVELY_WEAK_HALL_OF_SUFFERING,
+		//NpcStringId.MESSENGER_INFORM_THE_BROTHERS_IN_KUCEREUS_CLAN_OUTPOST_SWEEPING_THE_SEED_OF_INFINITY_IS_CURRENTLY_COMPLETE_TO_THE_HEART_OF_THE_SEED_EKIMUS_IS_BEING_DIRECTLY_ATTACKED_AND_THE_UNDEAD_REMAINING_IN_THE_HALL_OF_SUFFERING_ARE_BEING_ERADICATED,
+		NpcStringId.MESSENGER_INFORM_THE_PATRONS_OF_THE_KEUCEREUS_ALLIANCE_BASE_THE_SEED_OF_INFINITY_IS_CURRENTLY_SECURED_UNDER_THE_FLAG_OF_THE_KEUCEREUS_ALLIANCE
+		//NpcStringId.MESSENGER_INFORM_THE_PATRONS_OF_THE_KEUCEREUS_ALLIANCE_BASE_THE_RESURRECTED_UNDEAD_IN_THE_SEED_OF_INFINITY_ARE_POURING_INTO_THE_HALL_OF_SUFFERING_AND_THE_HALL_OF_EROSION 
+		//NpcStringId.MESSENGER_INFORM_THE_BROTHERS_IN_KUCEREUS_CLAN_OUTPOST_EKIMUS_IS_ABOUT_TO_BE_REVIVED_BY_THE_RESURRECTED_UNDEAD_IN_SEED_OF_INFINITY_SEND_ALL_REINFORCEMENTS_TO_THE_HEART_AND_THE_HALL_OF_SUFFERING
 	};
 	
 	public GeneralDilios(int questId, String name, String descr)
@@ -79,7 +80,7 @@ public class GeneralDilios extends L2AttackableAIScript
 			int value = Integer.parseInt(event.substring(8));
 			if (value < 6)
 			{
-				_general.broadcastPacket(new NpcSay(_general.getObjectId(), 0, generalId, 1800704)); // Stabbing three times!
+				_general.broadcastPacket(new NpcSay(_general.getObjectId(), 0, generalId, NpcStringId.STABBING_THREE_TIMES));
 				startQuestTimer("guard_animation_0", 3400, null, null);
 			}
 			else
diff --git a/L2J_DataPack_BETA/data/scripts/ai/individual/IceFairySirra.java b/L2J_DataPack_BETA/data/scripts/ai/individual/IceFairySirra.java
index 35f269edc2..54cf0188af 100644
--- a/L2J_DataPack_BETA/data/scripts/ai/individual/IceFairySirra.java
+++ b/L2J_DataPack_BETA/data/scripts/ai/individual/IceFairySirra.java
@@ -32,6 +32,7 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.zone.type.L2BossZone;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
 import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
@@ -222,13 +223,13 @@ public class IceFairySirra extends L2AttackableAIScript
 			cleanUp();
 	}
 	
-	public void screenMessage(L2PcInstance player, int npcString, int time)
+	public void screenMessage(L2PcInstance player, NpcStringId npcString, int time)
 	{
 		if (player.getParty() != null)
 		{
 			for (L2PcInstance pc : player.getParty().getPartyMembers())
 			{
-				pc.sendPacket(new ExShowScreenMessage(npcString,5,time));
+				pc.sendPacket(new ExShowScreenMessage(npcString, 2, time));
 			}
 		}
 		else
@@ -340,7 +341,7 @@ public class IceFairySirra extends L2AttackableAIScript
 						destroyItems(player);
 						player.getInventory().addItem("Scroll",8379,3,player,null);
 						npc.setBusy(true);
-						screenMessage(player,1121000,100000);
+						screenMessage(player,NpcStringId.STEWARD_PLEASE_WAIT_A_MOMENT,100000);
 						filename = getHtmlPath(3);
 					}
 					else
@@ -372,26 +373,26 @@ public class IceFairySirra extends L2AttackableAIScript
 		else if (event.equalsIgnoreCase("Party_Port"))
 		{
 			teleportInside(player);
-			screenMessage(player,1121001,10000);
+			screenMessage(player,NpcStringId.STEWARD_PLEASE_RESTORE_THE_QUEENS_FORMER_APPEARANCE,10000);
 			startQuestTimer("30MinutesRemaining",300000,null,player);
 		}
 		else if (event.equalsIgnoreCase("30MinutesRemaining"))
 		{
-			screenMessage(player,1121008,10000);
+			screenMessage(player,NpcStringId.N30_MINUTES_REMAIN,10000);
 			startQuestTimer("20minutesremaining",600000,null,player);
 		}
 		else if (event.equalsIgnoreCase("20MinutesRemaining"))
 		{
-			screenMessage(player,1121009,10000);
+			screenMessage(player,NpcStringId.N20_MINUTES_REMAIN,10000);
 			startQuestTimer("10minutesremaining",600000,null,player);
 		}
 		else if (event.equalsIgnoreCase("10MinutesRemaining"))
 		{
-			screenMessage(player,1121002,10000);
+			screenMessage(player,NpcStringId.STEWARD_WASTE_NO_TIME_PLEASE_HURRY,10000);
 		}
 		else if (event.equalsIgnoreCase("End"))
 		{
-			screenMessage(player,1121003,10000);
+			screenMessage(player,NpcStringId.STEWARD_WAS_IT_INDEED_TOO_MUCH_TO_ASK,10000);
 			cleanUp();
 		}
 		else if (event.equalsIgnoreCase("respawn"))
@@ -429,7 +430,7 @@ public class IceFairySirra extends L2AttackableAIScript
 			int respawn_delay = Rnd.get(respawnMinDelay,respawnMaxDelay);
 			saveGlobalQuestVar("Sirra_Respawn", String.valueOf(System.currentTimeMillis()+respawn_delay));
 			startQuestTimer("respawn", respawn_delay, null, null);
-			//screenMessage(killer,"Steward: Thank you for restoring the Queen's appearance!",10000); FIXME What is the npcString?
+			screenMessage(killer,NpcStringId.STEWARD_PLEASE_RESTORE_THE_QUEENS_FORMER_APPEARANCE,10000);
 		}
 		return super.onKill(npc,killer,isPet);
 	}
diff --git a/L2J_DataPack_BETA/data/scripts/ai/individual/Orfen.java b/L2J_DataPack_BETA/data/scripts/ai/individual/Orfen.java
index 09f922e844..b33a0816f6 100644
--- a/L2J_DataPack_BETA/data/scripts/ai/individual/Orfen.java
+++ b/L2J_DataPack_BETA/data/scripts/ai/individual/Orfen.java
@@ -32,6 +32,7 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2GrandBossInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.zone.type.L2BossZone;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
 import com.l2jserver.gameserver.network.serverpackets.PlaySound;
 import com.l2jserver.gameserver.templates.StatsSet;
@@ -62,12 +63,12 @@ public class Orfen extends L2AttackableAIScript
 		}
 	};
 	
-	private static final int[] Text =
+	private static final NpcStringId[] Text =
 	{
-		1000028, // $s1. Stop kidding yourself about your own powerlessness!
-		1000029, // $s1. I'll make you feel what true fear is!
-		1000030, // You're really stupid to have challenged me. $s1! Get ready!
-		1000031  //$s1. Do you think that's going to work?!
+		NpcStringId.S1_STOP_KIDDING_YOURSELF_ABOUT_YOUR_OWN_POWERLESSNESS,
+		NpcStringId.S1_ILL_MAKE_YOU_FEEL_WHAT_TRUE_FEAR_IS,
+		NpcStringId.YOURE_REALLY_STUPID_TO_HAVE_CHALLENGED_ME_S1_GET_READY,
+		NpcStringId.S1_DO_YOU_THINK_THATS_GOING_TO_WORK
 	};
 	
 	private static final int ORFEN = 29014;
diff --git a/L2J_DataPack_BETA/data/scripts/custom/PinsAndPouchUnseal/PinsAndPouchUnseal.java b/L2J_DataPack_BETA/data/scripts/custom/PinsAndPouchUnseal/PinsAndPouchUnseal.java
index cf662fa387..a6e56d0a9c 100644
--- a/L2J_DataPack_BETA/data/scripts/custom/PinsAndPouchUnseal/PinsAndPouchUnseal.java
+++ b/L2J_DataPack_BETA/data/scripts/custom/PinsAndPouchUnseal/PinsAndPouchUnseal.java
@@ -18,6 +18,7 @@ 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 com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
 import com.l2jserver.util.Rnd;
 
@@ -109,7 +110,7 @@ public class PinsAndPouchUnseal extends Quest
 					st.takeItems(itemIds[0], 1);
 					int rand = Rnd.get(100);
 					if (rand < CHANCES[0])
-						npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), 1300162));
+						npc.broadcastPacket(new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), NpcStringId.WHAT_A_PREDICAMENT_MY_ATTEMPTS_WERE_UNSUCCESSFUL));
 					else if (rand < CHANCES[1])
 						st.giveItems(itemIds[1], 1);
 					else if (rand < CHANCES[2])
diff --git a/L2J_DataPack_BETA/data/scripts/events/FreyaCelebration/FreyaCelebration.java b/L2J_DataPack_BETA/data/scripts/events/FreyaCelebration/FreyaCelebration.java
index 26e4c30e47..cbbda45f00 100644
--- a/L2J_DataPack_BETA/data/scripts/events/FreyaCelebration/FreyaCelebration.java
+++ b/L2J_DataPack_BETA/data/scripts/events/FreyaCelebration/FreyaCelebration.java
@@ -22,6 +22,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
 import com.l2jserver.gameserver.model.quest.State;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.clientpackets.Say2;
 import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
@@ -43,13 +44,13 @@ public class FreyaCelebration extends Quest
 	
 	private static final int[] _skills = { 9150, 9151, 9152, 9153, 9154, 9155, 9156 };
 	
-	private static final int[] _freya_texts = 
+	private static final NpcStringId[] _freya_texts =
 	{
-		1801190,
-		1801191,
-		1801192,
-		1801193,
-		1801194
+		NpcStringId.EVEN_THOUGH_YOU_BRING_SOMETHING_CALLED_A_GIFT_AMONG_YOUR_HUMANS_IT_WOULD_JUST_BE_PROBLEMATIC_FOR_ME,
+		NpcStringId.I_JUST_DONT_KNOW_WHAT_EXPRESSION_I_SHOULD_HAVE_IT_APPEARED_ON_ME_ARE_HUMANS_EMOTIONS_LIKE_THIS_FEELING,
+		NpcStringId.THE_FEELING_OF_THANKS_IS_JUST_TOO_MUCH_DISTANT_MEMORY_FOR_ME,
+		NpcStringId.BUT_I_KIND_OF_MISS_IT_LIKE_I_HAD_FELT_THIS_FEELING_BEFORE,
+		NpcStringId.I_AM_ICE_QUEEN_FREYA_THIS_FEELING_AND_EMOTION_ARE_NOTHING_BUT_A_PART_OF_MELISSAA_MEMORIES
 	};
 	
 	private static final int[][] _spawns = {
@@ -141,11 +142,11 @@ public class FreyaCelebration extends Quest
 		{
 			if (Rnd.get(100) < 5)
 			{
-				CreatureSay cs = new CreatureSay(npc.getObjectId(), Say2.ALL, npc.getName(), 1801195);
+				CreatureSay cs = new CreatureSay(npc.getObjectId(), Say2.ALL, npc.getName(), NpcStringId.DEAR_S1_THINK_OF_THIS_AS_MY_APPRECIATION_FOR_THE_GIFT_TAKE_THIS_WITH_YOU_THERES_NOTHING_STRANGE_ABOUT_IT_ITS_JUST_A_BIT_OF_MY_CAPRICIOUSNESS);
 				cs.addStringParameter(caster.getName());
-				
+
 				npc.broadcastPacket(cs);
-				
+
 				caster.addItem("FreyaCelebration", _freya_gift, 1, npc, true);
 			}
 			else
diff --git a/L2J_DataPack_BETA/data/scripts/instances/CrystalCaverns/CrystalCaverns.java b/L2J_DataPack_BETA/data/scripts/instances/CrystalCaverns/CrystalCaverns.java
index 15e30f7f1b..6ed908e394 100644
--- a/L2J_DataPack_BETA/data/scripts/instances/CrystalCaverns/CrystalCaverns.java
+++ b/L2J_DataPack_BETA/data/scripts/instances/CrystalCaverns/CrystalCaverns.java
@@ -45,6 +45,7 @@ import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
 import com.l2jserver.gameserver.model.quest.State;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
@@ -1135,7 +1136,7 @@ public class CrystalCaverns extends Quest
 					world._alarm = addSpawn(ALARMID,spawnLoc[0],spawnLoc[1],spawnLoc[2],10800,false,0,false,world.instanceId);
 					world._alarm.disableCoreAI(true);
 					world._alarm.setIsImmobilized(true);
-					world._alarm.broadcastPacket(new CreatureSay(world._alarm.getObjectId(),1,world._alarm.getName(),1800031));
+					world._alarm.broadcastPacket(new CreatureSay(world._alarm.getObjectId(),1,world._alarm.getName(),NpcStringId.AN_ALARM_HAS_BEEN_SET_OFF_EVERYBODY_WILL_BE_IN_DANGER_IF_THEY_ARE_NOT_TAKEN_CARE_OF_IMMEDIATELY));
 				}
 			}
 			else if (event.equalsIgnoreCase("baylor_skill"))
@@ -1155,12 +1156,12 @@ public class CrystalCaverns extends Quest
 						if (nowHp < maxHp * 0.15 && world._raidStatus == 2)
 						{
 							npc.doCast(SkillTable.getInstance().getInfo(5225, 1));
-							npc.broadcastPacket(new CreatureSay(npc.getObjectId(),1,npc.getName(),1800067));
+							npc.broadcastPacket(new CreatureSay(npc.getObjectId(),1,npc.getName(),NpcStringId.DEMON_KING_BELETH_GIVE_ME_THE_POWER_AAAHH));
 						}
 						else if (rand < 10 || nowHp < maxHp * 0.15)
 						{
 							npc.doCast(SkillTable.getInstance().getInfo(5225, 1));
-							npc.broadcastPacket(new CreatureSay(npc.getObjectId(),1,npc.getName(),1800067));
+							npc.broadcastPacket(new CreatureSay(npc.getObjectId(),1,npc.getName(),NpcStringId.DEMON_KING_BELETH_GIVE_ME_THE_POWER_AAAHH));
 							startQuestTimer("baylor_remove_invul",30000, world._baylor, null);
 						}
 					}
@@ -1220,7 +1221,7 @@ public class CrystalCaverns extends Quest
 				else
 				{
 					if (Rnd.get(100) < 5)
-						npc.broadcastPacket(new CreatureSay(npc.getObjectId(),1,npc.getName(),1800042));
+						npc.broadcastPacket(new CreatureSay(npc.getObjectId(),1,npc.getName(),NpcStringId.AH_IM_HUNGRY));
 					startQuestTimer("autoFood",2000,npc,null);
 				}
 				return "";
diff --git a/L2J_DataPack_BETA/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/L2J_DataPack_BETA/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java
index c9fc3c67db..a5a886af98 100644
--- a/L2J_DataPack_BETA/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java
+++ b/L2J_DataPack_BETA/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java
@@ -14,6 +14,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.entity.Instance;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
@@ -112,34 +113,34 @@ public class DarkCloudMansion extends Quest
 	private static int W6 = 24230012; //Wall 6
 	private static int W7 = 24230013; //Wall 7*/
 	
-	private static int[] _spawnChat =
+	private static NpcStringId[] _spawnChat =
 	{
-		1800043, // I'm the real one!
-		1800044, // Pick me!
-		1800045, // Trust me!
-		1800046, // Not that dude, I'm the real one!
-		1800047  // Don't be fooled! Don't be fooled! I'm the real one!!
+		NpcStringId.IM_THE_REAL_ONE,
+		NpcStringId.PICK_ME,
+		NpcStringId.TRUST_ME,
+		NpcStringId.NOT_THAT_DUDE_IM_THE_REAL_ONE,
+		NpcStringId.DONT_BE_FOOLED_DONT_BE_FOOLED_IM_THE_REAL_ONE
 	};
 	
-	private static int[] _decayChat =
+	private static NpcStringId[] _decayChat =
 	{
-		1800051, // I'm the real one! Phew!!
-		1800052, // Can't you even find out?
-		1800053  // Find me!
+		NpcStringId.IM_THE_REAL_ONE_PHEW,
+		NpcStringId.CANT_YOU_EVEN_FIND_OUT,
+		NpcStringId.FIND_ME
 	};
 	
-	private static int[] _successChat =
+	private static NpcStringId[] _successChat =
 	{
-		1800054, // Huh?! How did you know it was me?
-		1800055, // Excellent choice! Teehee!
-		1800056, // You've done well!
-		1800057  // Oh... very sensible?
+		NpcStringId.HUH_HOW_DID_YOU_KNOW_IT_WAS_ME,
+		NpcStringId.EXCELLENT_CHOICE_TEEHEE,
+		NpcStringId.YOUVE_DONE_WELL,
+		NpcStringId.OH_VERY_SENSIBLE
 	};
 	
-	private static int[] _faildChat =
+	private static NpcStringId[] _faildChat =
 	{
-		1800049, // You've been fooled!
-		1800050  // Sorry, but...I'm the fake one.		
+		NpcStringId.YOUVE_BEEN_FOOLED,
+		NpcStringId.SORRY_BUT_IM_THE_FAKE_ONE		
 	};
 	
 	//Second room - random monolith order
diff --git a/L2J_DataPack_BETA/data/scripts/instances/SeedOfDestruction/Stage1.java b/L2J_DataPack_BETA/data/scripts/instances/SeedOfDestruction/Stage1.java
index 7d944fe611..c165151da4 100644
--- a/L2J_DataPack_BETA/data/scripts/instances/SeedOfDestruction/Stage1.java
+++ b/L2J_DataPack_BETA/data/scripts/instances/SeedOfDestruction/Stage1.java
@@ -55,6 +55,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2MonsterInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
@@ -517,7 +518,7 @@ public class Stage1 extends Quest
 					spawnFlaggedNPCs(world, 0);
 					break;
 				case 1:
-					ExShowScreenMessage message1 = new ExShowScreenMessage(1800273,5,10000);
+					ExShowScreenMessage message1 = new ExShowScreenMessage(NpcStringId.THE_ENEMIES_HAVE_ATTACKED_EVERYONE_COME_OUT_AND_FIGHT_URGH, 5, 1);
 					sendScreenMessage(world, message1);
 					for(int i : ENTRANCE_ROOM_DOORS)
 						openDoor(i,world.instanceId);
@@ -528,7 +529,7 @@ public class Stage1 extends Quest
 					// handled elsewhere
 					return true;
 				case 4:
-					ExShowScreenMessage message2 = new ExShowScreenMessage(1800295,5,10000);
+					ExShowScreenMessage message2 = new ExShowScreenMessage(NpcStringId.OBELISK_HAS_COLLAPSED_DONT_LET_THE_ENEMIES_JUMP_AROUND_WILDLY_ANYMORE, 5, 1);
 					sendScreenMessage(world, message2);
 					for(int i : SQUARE_DOORS)
 						openDoor(i,world.instanceId);
@@ -546,7 +547,7 @@ public class Stage1 extends Quest
 					spawnFlaggedNPCs(world, 7);
 					break;
 				case 8:
-					ExShowScreenMessage message4 = new ExShowScreenMessage(1800297,5,10000);
+					ExShowScreenMessage message4 = new ExShowScreenMessage(NpcStringId.COME_OUT_WARRIORS_PROTECT_SEED_OF_DESTRUCTION, 5, 1);
 					sendScreenMessage(world, message4);
 					world.deviceSpawnedMobCount = 0;
 					spawnFlaggedNPCs(world, 8);
@@ -743,7 +744,7 @@ public class Stage1 extends Quest
 				{
 					world.deviceSpawnedMobCount = 0;
 					spawnFlaggedNPCs(world,6);
-					ExShowScreenMessage message3 = new ExShowScreenMessage(1800296,5,10000);
+					ExShowScreenMessage message3 = new ExShowScreenMessage(NpcStringId.ENEMIES_ARE_TRYING_TO_DESTROY_THE_FORTRESS_EVERYONE_DEFEND_THE_FORTRESS, 5, 1);
 					sendScreenMessage(world, message3);
 				}
 				else
diff --git a/L2J_DataPack_BETA/data/scripts/quests/Q463_IMustBeaGenius/Q463_IMustBeaGenius.java b/L2J_DataPack_BETA/data/scripts/quests/Q463_IMustBeaGenius/Q463_IMustBeaGenius.java
index cff6e3e712..cede91e503 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/Q463_IMustBeaGenius/Q463_IMustBeaGenius.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/Q463_IMustBeaGenius/Q463_IMustBeaGenius.java
@@ -19,6 +19,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
 import com.l2jserver.gameserver.model.quest.State;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
 import com.l2jserver.gameserver.util.Util;
 import com.l2jserver.util.Rnd;
@@ -136,23 +137,23 @@ public class Q463_IMustBeaGenius extends Quest
 			{
 				st.giveItems(_corpse_log, _number);
 				st.playSound("ItemSound.quest_itemget");
-				
-				NpcSay ns = new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), 46350);
+				NpcSay ns = new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), NpcStringId.ATT_ATTACK_S1_RO_ROGUE_S2);
 				ns.addStringParameter(player.getName());
 				ns.addStringParameter(String.valueOf(_number));
-				
+
 				npc.broadcastPacket(ns);
+
 			}
 			else if (_number < 0 && ((st.getQuestItemsCount(_corpse_log)+_number) > 0))
 			{
 				st.takeItems(_corpse_log, Math.abs(_number));
 				st.playSound("ItemSound.quest_itemget");
-
-				NpcSay ns = new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), 46350);
+				NpcSay ns = new NpcSay(npc.getObjectId(), 0, npc.getNpcId(), NpcStringId.ATT_ATTACK_S1_RO_ROGUE_S2);
 				ns.addStringParameter(player.getName());
 				ns.addStringParameter(String.valueOf(_number));
-				
+
 				npc.broadcastPacket(ns);
+
 			}
 			
 			if (st.getQuestItemsCount(_corpse_log) == _day_number)
diff --git a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillTheKeyTargets.java b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillTheKeyTargets.java
index 470a15ffba..e35f773a40 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillTheKeyTargets.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillTheKeyTargets.java
@@ -14,6 +14,8 @@
  */
 package quests.TerritoryWarScripts;
 
+import com.l2jserver.gameserver.network.NpcStringId;
+
 
 /**
  *
@@ -33,6 +35,6 @@ public class KillTheKeyTargets extends TerritoryWarSuperClass
 		qn = qn1;
 		RANDOM_MIN = 3;
 		RANDOM_MAX = 8;
-		npcString = new int[]{73861,73862};
+		npcString = new NpcStringId[]{NpcStringId.YOU_HAVE_DEFEATED_S2_OF_S1_WARSMITHS_AND_OVERLORDS,NpcStringId.YOU_DESTROYED_THE_ENEMYS_PROFESSIONALS};
 	}
 }
diff --git a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillTheKnights.java b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillTheKnights.java
index 6f6c9dc75d..887ec5cb52 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillTheKnights.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillTheKnights.java
@@ -14,6 +14,8 @@
  */
 package quests.TerritoryWarScripts;
 
+import com.l2jserver.gameserver.network.NpcStringId;
+
 
 /**
  *
@@ -33,6 +35,6 @@ public class KillTheKnights extends TerritoryWarSuperClass
 		qn = qn1;
 		RANDOM_MIN = 10;
 		RANDOM_MAX = 15;
-		npcString = new int[]{73461,73462};
+		npcString = new NpcStringId[]{NpcStringId.YOU_HAVE_DEFEATED_S2_OF_S1_KNIGHTS,NpcStringId.YOU_WEAKENED_THE_ENEMYS_DEFENSE};
 	}
 }
diff --git a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillThePriests.java b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillThePriests.java
index f38e07740a..5556e9e97a 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillThePriests.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillThePriests.java
@@ -14,6 +14,8 @@
  */
 package quests.TerritoryWarScripts;
 
+import com.l2jserver.gameserver.network.NpcStringId;
+
 
 /**
  *
@@ -33,6 +35,6 @@ public class KillThePriests extends TerritoryWarSuperClass
 		qn = qn1;
 		RANDOM_MIN = 3;
 		RANDOM_MAX = 8;
-		npcString = new int[]{73761,73762};
+		npcString = new NpcStringId[]{NpcStringId.YOU_HAVE_DEFEATED_S2_OF_S1_HEALERS_AND_BUFFERS,NpcStringId.YOU_WEAKENED_THE_ENEMYS_ATTACK};
 	}
 }
diff --git a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillTheWarriors.java b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillTheWarriors.java
index 7ddd097532..50f6b9acd9 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillTheWarriors.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillTheWarriors.java
@@ -14,6 +14,8 @@
  */
 package quests.TerritoryWarScripts;
 
+import com.l2jserver.gameserver.network.NpcStringId;
+
 
 /**
  *
@@ -33,6 +35,6 @@ public class KillTheWarriors extends TerritoryWarSuperClass
 		qn = qn1;
 		RANDOM_MIN = 15;
 		RANDOM_MAX = 20;
-		npcString = new int[]{73561,73562};
+		npcString = new NpcStringId[]{NpcStringId.YOU_HAVE_DEFEATED_S2_OF_S1_WARRIORS_AND_ROGUES,NpcStringId.YOU_WEAKENED_THE_ENEMYS_ATTACK};
 	}
 }
diff --git a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillTheWizards.java b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillTheWizards.java
index 9859b58cc1..93dfbbaef2 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillTheWizards.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/KillTheWizards.java
@@ -14,6 +14,8 @@
  */
 package quests.TerritoryWarScripts;
 
+import com.l2jserver.gameserver.network.NpcStringId;
+
 
 /**
  *
@@ -33,6 +35,6 @@ public class KillTheWizards extends TerritoryWarSuperClass
 		qn = qn1;
 		RANDOM_MIN = 10;
 		RANDOM_MAX = 15;
-		npcString = new int[]{73661,73662};
+		npcString = new NpcStringId[]{NpcStringId.YOU_HAVE_DEFEATED_S2_OF_S1_ENEMIES,NpcStringId.YOU_WEAKENED_THE_ENEMYS_MAGIC};
 	}
 }
diff --git a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java
index 867c31a777..791c374555 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TerritoryWarSuperClass.java
@@ -30,6 +30,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
 import com.l2jserver.gameserver.model.quest.State;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.serverpackets.ExShowScreenMessage;
 import com.l2jserver.gameserver.util.Util;
 import com.l2jserver.util.L2FastMap;
@@ -48,7 +49,7 @@ public class TerritoryWarSuperClass extends Quest
 	public int TERRITORY_ID;
 	public int[] LEADER_IDS;
 	public int[] GUARD_IDS;
-	public int[] npcString = {};
+	public NpcStringId[] npcString = {};
 	// "Protect the ..." quests variables
 	public int[] NPC_IDS;
 	// "Kill The ..."
@@ -157,7 +158,7 @@ public class TerritoryWarSuperClass extends Quest
 		{
 			TerritoryWarManager.getInstance().territoryCatapultDestroyed(TERRITORY_ID - 80);
 			TerritoryWarManager.getInstance().giveTWPoint(killer, TERRITORY_ID, 4);
-			TerritoryWarManager.getInstance().announceToParticipants(new ExShowScreenMessage(npcString[0],5,10000), 135000, 13500);
+			TerritoryWarManager.getInstance().announceToParticipants(new ExShowScreenMessage(npcString[0],2,10000), 135000, 13500);
 			handleBecomeMercenaryQuest(killer,true);
 		}
 		else if (Util.contains(LEADER_IDS, npc.getNpcId()))
@@ -230,15 +231,17 @@ public class TerritoryWarSuperClass extends Quest
 				st.set("doneDate", String.valueOf(Calendar.getInstance().get(Calendar.DAY_OF_YEAR)));
 				st.setState(State.COMPLETED);
 				st.exitQuest(true);
-				player.sendPacket(new ExShowScreenMessage(npcString[1],5,10000));
+				player.sendPacket(new ExShowScreenMessage(npcString[1],2,10000));
 			}
 			else
 			{
 				st.set("kill", String.valueOf(kill));
-				ExShowScreenMessage message = new ExShowScreenMessage(npcString[0],5,10000);
+				
+				ExShowScreenMessage message = new ExShowScreenMessage(npcString[0],2,10000);
 				message.addStringParameter(String.valueOf(max));
 				message.addStringParameter(String.valueOf(kill));
 				player.sendPacket(message);
+				
 			}
 		}
 		else if (st.getInt("doneDate") != Calendar.getInstance().get(Calendar.DAY_OF_YEAR))
@@ -248,7 +251,8 @@ public class TerritoryWarSuperClass extends Quest
 			st.set("kill", "1");
 			max = Rnd.get(RANDOM_MIN, RANDOM_MAX);
 			st.set("max", String.valueOf(max));
-			ExShowScreenMessage message = new ExShowScreenMessage(npcString[0],5,10000);
+			
+			ExShowScreenMessage message = new ExShowScreenMessage(npcString[0],2,10000);
 			message.addStringParameter(String.valueOf(max));
 			message.addStringParameter(String.valueOf(kill));
 			player.sendPacket(message);
@@ -262,7 +266,8 @@ public class TerritoryWarSuperClass extends Quest
 			st.set("kill", "1");
 			max = Rnd.get(RANDOM_MIN, RANDOM_MAX);
 			st.set("max", String.valueOf(max));
-			ExShowScreenMessage message = new ExShowScreenMessage(npcString[0],5,10000);
+
+			ExShowScreenMessage message = new ExShowScreenMessage(npcString[0],2,10000);
 			message.addStringParameter(String.valueOf(max));
 			message.addStringParameter(String.valueOf(kill));
 			player.sendPacket(message);
diff --git a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryAden.java b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryAden.java
index f3cd48edfa..6630f14ed1 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryAden.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryAden.java
@@ -14,6 +14,8 @@
  */
 package quests.TerritoryWarScripts;
 
+import com.l2jserver.gameserver.network.NpcStringId;
+
 
 /**
  *
@@ -34,7 +36,7 @@ public class TheTerritoryAden extends TerritoryWarSuperClass
 		LEADER_IDS = new int[]{36532, 36534, 36537, 36595};
 		GUARD_IDS = new int[]{36533, 36535, 36536};
 		qn = qn1;
-		npcString = new int[]{72965};
+		npcString = new NpcStringId[]{NpcStringId.THE_CATAPULT_OF_ADEN_HAS_BEEN_DESTROYED};
 		registerKillIds();
 	}
 }
diff --git a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryDion.java b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryDion.java
index 58db24661d..8197b116c7 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryDion.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryDion.java
@@ -14,6 +14,8 @@
  */
 package quests.TerritoryWarScripts;
 
+import com.l2jserver.gameserver.network.NpcStringId;
+
 
 /**
  *
@@ -34,7 +36,7 @@ public class TheTerritoryDion extends TerritoryWarSuperClass
 		LEADER_IDS = new int[]{36514, 36516, 36519, 36592};
 		GUARD_IDS = new int[]{36515, 36517, 36518};
 		qn = qn1;
-		npcString = new int[]{72962};
+		npcString = new NpcStringId[]{NpcStringId.THE_CATAPULT_OF_DION_HAS_BEEN_DESTROYED};
 		registerKillIds();
 	}
 }
diff --git a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryGiran.java b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryGiran.java
index 6cb2576366..2d25024b2e 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryGiran.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryGiran.java
@@ -14,6 +14,8 @@
  */
 package quests.TerritoryWarScripts;
 
+import com.l2jserver.gameserver.network.NpcStringId;
+
 
 /**
  *
@@ -34,7 +36,7 @@ public class TheTerritoryGiran extends TerritoryWarSuperClass
 		LEADER_IDS = new int[]{36520, 36522, 36525, 36593};
 		GUARD_IDS = new int[]{36521, 36523, 36524};
 		qn = qn1;
-		npcString = new int[]{72963};
+		npcString = new NpcStringId[]{NpcStringId.THE_CATAPULT_OF_GIRAN_HAS_BEEN_DESTROYED};
 		registerKillIds();
 	}
 }
diff --git a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryGludio.java b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryGludio.java
index 4684ba3684..829bdcd380 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryGludio.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryGludio.java
@@ -14,6 +14,8 @@
  */
 package quests.TerritoryWarScripts;
 
+import com.l2jserver.gameserver.network.NpcStringId;
+
 
 /**
  *
@@ -34,7 +36,7 @@ public class TheTerritoryGludio extends TerritoryWarSuperClass
 		LEADER_IDS = new int[]{36508, 36510, 36513, 36591};
 		GUARD_IDS = new int[]{36509, 36511, 36512};
 		qn = qn1;
-		npcString = new int[]{72961};
+		npcString = new NpcStringId[]{NpcStringId.THE_CATAPULT_OF_GLUDIO_HAS_BEEN_DESTROYED};
 		registerKillIds();
 	}
 }
diff --git a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryGoddard.java b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryGoddard.java
index 6f190185bd..5e31159381 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryGoddard.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryGoddard.java
@@ -14,6 +14,8 @@
  */
 package quests.TerritoryWarScripts;
 
+import com.l2jserver.gameserver.network.NpcStringId;
+
 
 /**
  *
@@ -34,7 +36,7 @@ public class TheTerritoryGoddard extends TerritoryWarSuperClass
 		LEADER_IDS = new int[]{36544, 36546, 36549, 36597};
 		GUARD_IDS = new int[]{36545, 36547, 36548};
 		qn = qn1;
-		npcString = new int[]{72967};
+		npcString = new NpcStringId[]{NpcStringId.THE_CATAPULT_OF_GODDARD_HAS_BEEN_DESTROYED};
 		registerKillIds();
 	}
 }
diff --git a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryInnadril.java b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryInnadril.java
index 79166c9e16..52195137f5 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryInnadril.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryInnadril.java
@@ -14,6 +14,8 @@
  */
 package quests.TerritoryWarScripts;
 
+import com.l2jserver.gameserver.network.NpcStringId;
+
 
 /**
  *
@@ -34,7 +36,7 @@ public class TheTerritoryInnadril extends TerritoryWarSuperClass
 		LEADER_IDS = new int[]{36538, 36540, 36543, 36596};
 		GUARD_IDS = new int[]{36539, 36541, 36542};
 		qn = qn1;
-		npcString = new int[]{72966};
+		npcString = new NpcStringId[]{NpcStringId.THE_CATAPULT_OF_INNADRIL_HAS_BEEN_DESTROYED};
 		registerKillIds();
 	}
 }
diff --git a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryOren.java b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryOren.java
index 64c8c9dc74..599f48e342 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryOren.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryOren.java
@@ -14,6 +14,8 @@
  */
 package quests.TerritoryWarScripts;
 
+import com.l2jserver.gameserver.network.NpcStringId;
+
 
 /**
  *
@@ -34,7 +36,7 @@ public class TheTerritoryOren extends TerritoryWarSuperClass
 		LEADER_IDS = new int[]{36526, 36528, 36531, 36594};
 		GUARD_IDS = new int[]{36527, 36529, 36530};
 		qn = qn1;
-		npcString = new int[]{72964};
+		npcString = new NpcStringId[]{NpcStringId.THE_CATAPULT_OF_OREN_HAS_BEEN_DESTROYED};
 		registerKillIds();
 	}
 }
diff --git a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryRune.java b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryRune.java
index 2668834254..341e777748 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryRune.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritoryRune.java
@@ -14,6 +14,8 @@
  */
 package quests.TerritoryWarScripts;
 
+import com.l2jserver.gameserver.network.NpcStringId;
+
 
 /**
  *
@@ -34,7 +36,7 @@ public class TheTerritoryRune extends TerritoryWarSuperClass
 		LEADER_IDS = new int[]{36550, 36552, 36555, 36598};
 		GUARD_IDS = new int[]{36551, 36553, 36554};
 		qn = qn1;
-		npcString = new int[]{72968};
+		npcString = new NpcStringId[]{NpcStringId.THE_CATAPULT_OF_RUNE_HAS_BEEN_DESTROYED};
 		registerKillIds();
 	}
 }
diff --git a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritorySchuttgart.java b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritorySchuttgart.java
index b5a1c6d767..8e1190ed58 100644
--- a/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritorySchuttgart.java
+++ b/L2J_DataPack_BETA/data/scripts/quests/TerritoryWarScripts/TheTerritorySchuttgart.java
@@ -14,6 +14,8 @@
  */
 package quests.TerritoryWarScripts;
 
+import com.l2jserver.gameserver.network.NpcStringId;
+
 
 /**
  *
@@ -34,7 +36,7 @@ public class TheTerritorySchuttgart extends TerritoryWarSuperClass
 		LEADER_IDS = new int[]{36556, 36558, 36561, 36599};
 		GUARD_IDS = new int[]{36557, 36559, 36560};
 		qn = qn1;
-		npcString = new int[]{72969};
+		npcString = new NpcStringId[]{NpcStringId.THE_CATAPULT_OF_SCHUTTGART_HAS_BEEN_DESTROYED};
 		registerKillIds();
 	}
 }
diff --git a/L2J_DataPack_BETA/data/scripts/teleports/TeleportToFantasy/TeleportToFantasy.java b/L2J_DataPack_BETA/data/scripts/teleports/TeleportToFantasy/TeleportToFantasy.java
index 722b8238d4..04b195fea5 100644
--- a/L2J_DataPack_BETA/data/scripts/teleports/TeleportToFantasy/TeleportToFantasy.java
+++ b/L2J_DataPack_BETA/data/scripts/teleports/TeleportToFantasy/TeleportToFantasy.java
@@ -22,6 +22,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
 import com.l2jserver.gameserver.model.quest.State;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
 
 /**
@@ -86,7 +87,7 @@ public class TeleportToFantasy extends Quest
 			
 			else
 			{
-				player.sendPacket(new NpcSay(npc.getObjectId(),0,npc.getNpcId(),1600019));
+				player.sendPacket(new NpcSay(npc.getObjectId(),0,npc.getNpcId(),NpcStringId.IF_YOUR_MEANS_OF_ARRIVAL_WAS_A_BIT_UNCONVENTIONAL_THEN_ILL_BE_SENDING_YOU_BACK_TO_RUNE_TOWNSHIP_WHICH_IS_THE_NEAREST_TOWN));
 		        st.getPlayer().teleToLocation(43835,-47749,-792);
 			}
 			
diff --git a/L2J_DataPack_BETA/data/scripts/vehicles/AirShipController.java b/L2J_DataPack_BETA/data/scripts/vehicles/AirShipController.java
index 736a549e97..fdd27bbec6 100644
--- a/L2J_DataPack_BETA/data/scripts/vehicles/AirShipController.java
+++ b/L2J_DataPack_BETA/data/scripts/vehicles/AirShipController.java
@@ -32,6 +32,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 import com.l2jserver.gameserver.model.zone.type.L2ScriptZone;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.clientpackets.Say2;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
@@ -131,7 +132,7 @@ public abstract class AirShipController extends Quest
 					ship.executePath(_arrivalPath);
 				
 				if (_arrivalMessage == null)
-					_arrivalMessage = new NpcSay(npc.getObjectId(), Say2.SHOUT, npc.getNpcId(), 1800219); // The airship has been summoned. It will automatically depart in 5 minutes.
+					_arrivalMessage = new NpcSay(npc.getObjectId(), Say2.SHOUT, npc.getNpcId(), NpcStringId.THE_AIRSHIP_HAS_BEEN_SUMMONED_IT_WILL_AUTOMATICALLY_DEPART_IN_5_MINUTES);
 					
 				npc.broadcastPacket(_arrivalMessage);
 			}
diff --git a/L2J_DataPack_BETA/data/scripts/vehicles/AirShipGludioGracia/AirShipGludioGracia.java b/L2J_DataPack_BETA/data/scripts/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
index 95c2a47328..1dbaaf099c 100644
--- a/L2J_DataPack_BETA/data/scripts/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
+++ b/L2J_DataPack_BETA/data/scripts/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
@@ -24,6 +24,7 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2AirShipInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
+import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.clientpackets.Say2;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
@@ -196,7 +197,7 @@ public class AirShipGludioGracia extends Quest implements Runnable
 			switch (_cycle)
 			{
 				case 0:
-					broadcastInGludio(1800223); // The regularly scheduled airship that flies to the Gracia continent has departed.
+					broadcastInGludio(NpcStringId.THE_REGULARLY_SCHEDULED_AIRSHIP_THAT_FLIES_TO_THE_GRACIA_CONTINENT_HAS_DEPARTED);
 					_ship.setInDock(0);
 					_ship.executePath(GLUDIO_TO_WARPGATE);
 					break;
@@ -209,13 +210,13 @@ public class AirShipGludioGracia extends Quest implements Runnable
 					_ship.executePath(WARPGATE_TO_GRACIA);
 					break;
 				case 3:
-					broadcastInGracia(1800220); // The regularly scheduled airship has arrived. It will depart for the Aden continent in 1 minute.
+					broadcastInGracia(NpcStringId.THE_REGULARLY_SCHEDULED_AIRSHIP_HAS_ARRIVED_IT_WILL_DEPART_FOR_THE_ADEN_CONTINENT_IN_1_MINUTE);
 					_ship.setInDock(GRACIA_DOCK_ID);
 					_ship.oustPlayers();
 					ThreadPoolManager.getInstance().scheduleGeneral(this, 60000);
 					break;
 				case 4:
-					broadcastInGracia(1800221); // The regularly scheduled airship that flies to the Aden continent has departed.
+					broadcastInGracia(NpcStringId.THE_REGULARLY_SCHEDULED_AIRSHIP_THAT_FLIES_TO_THE_ADEN_CONTINENT_HAS_DEPARTED);
 					_ship.setInDock(0);
 					_ship.executePath(GRACIA_TO_WARPGATE);
 					break;
@@ -228,7 +229,7 @@ public class AirShipGludioGracia extends Quest implements Runnable
 					_ship.executePath(WARPGATE_TO_GLUDIO);
 					break;
 				case 7:
-					broadcastInGludio(1800222); // The regularly scheduled airship has arrived. It will depart for the Gracia continent in 1 minute.
+					broadcastInGludio(NpcStringId.THE_REGULARLY_SCHEDULED_AIRSHIP_HAS_ARRIVED_IT_WILL_DEPART_FOR_THE_GRACIA_CONTINENT_IN_1_MINUTE);
 					_ship.setInDock(GLUDIO_DOCK_ID);
 					_ship.oustPlayers();
 					ThreadPoolManager.getInstance().scheduleGeneral(this, 60000);
@@ -244,7 +245,7 @@ public class AirShipGludioGracia extends Quest implements Runnable
 		}
 	}
 	
-	private final void broadcastInGludio(int msg)
+	private final void broadcastInGludio(NpcStringId npcString)
 	{
 		if (!_foundAtcGludio)
 		{
@@ -252,10 +253,10 @@ public class AirShipGludioGracia extends Quest implements Runnable
 			_atcGludio = findController();
 		}
 		if (_atcGludio != null)
-			_atcGludio.broadcastPacket(new NpcSay(_atcGludio.getObjectId(), Say2.SHOUT, _atcGludio.getNpcId(), msg));
+			_atcGludio.broadcastPacket(new NpcSay(_atcGludio.getObjectId(), Say2.SHOUT, _atcGludio.getNpcId(), npcString));
 	}
 	
-	private final void broadcastInGracia(int msg)
+	private final void broadcastInGracia(NpcStringId npcStringId)
 	{
 		if (!_foundAtcGracia)
 		{
@@ -263,7 +264,7 @@ public class AirShipGludioGracia extends Quest implements Runnable
 			_atcGracia = findController();
 		}
 		if (_atcGracia != null)
-			_atcGracia.broadcastPacket(new NpcSay(_atcGracia.getObjectId(), Say2.SHOUT, _atcGracia.getNpcId(), msg));
+			_atcGracia.broadcastPacket(new NpcSay(_atcGracia.getObjectId(), Say2.SHOUT, _atcGracia.getNpcId(), npcStringId));
 	}
 	
 	private final L2Npc findController()
diff --git a/L2J_DataPack_BETA/data/scripts/vehicles/BoatGiranTalking.java b/L2J_DataPack_BETA/data/scripts/vehicles/BoatGiranTalking.java
index 53ab49c000..449cb5d7c2 100644
--- a/L2J_DataPack_BETA/data/scripts/vehicles/BoatGiranTalking.java
+++ b/L2J_DataPack_BETA/data/scripts/vehicles/BoatGiranTalking.java
@@ -21,6 +21,7 @@ import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.instancemanager.BoatManager;
 import com.l2jserver.gameserver.model.VehiclePathPoint;
 import com.l2jserver.gameserver.model.actor.instance.L2BoatInstance;
+import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.clientpackets.Say2;
 import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
 import com.l2jserver.gameserver.network.serverpackets.PlaySound;
@@ -123,29 +124,29 @@ public class BoatGiranTalking implements Runnable
 	{
 		_boat = boat;
 		
-		ARRIVED_AT_GIRAN = new CreatureSay(0, Say2.BOAT, 801, 992);
-		ARRIVED_AT_GIRAN_2 = new CreatureSay(0, Say2.BOAT, 801, 987);
-		LEAVE_GIRAN5 = new CreatureSay(0, Say2.BOAT, 801, 988);
-		LEAVE_GIRAN1 = new CreatureSay(0, Say2.BOAT, 801, 989);
-		LEAVE_GIRAN0 = new CreatureSay(0, Say2.BOAT, 801, 990);
-		LEAVING_GIRAN = new CreatureSay(0, Say2.BOAT, 801, 991);
-		ARRIVED_AT_TALKING = new CreatureSay(0, Say2.BOAT, 801, 979);
-		ARRIVED_AT_TALKING_2 = new CreatureSay(0, Say2.BOAT, 801, 993);
-		LEAVE_TALKING5 = new CreatureSay(0, Say2.BOAT, 801, 994);
-		LEAVE_TALKING1 = new CreatureSay(0, Say2.BOAT, 801, 995);
-		LEAVE_TALKING0 = new CreatureSay(0, Say2.BOAT, 801, 996);
-		LEAVING_TALKING = new CreatureSay(0, Say2.BOAT, 801, 997);
-		BUSY_TALKING = new CreatureSay(0, Say2.BOAT, 801, 1487);
+		ARRIVED_AT_GIRAN = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_ARRIVED_AT_GIRAN );
+		ARRIVED_AT_GIRAN_2 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_FOR_TALKING_AFTER_10_MINUTES);
+		LEAVE_GIRAN5 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_FOR_TALKING_IN_5_MINUTES);
+		LEAVE_GIRAN1 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_FOR_TALKING_IN_1_MINUTE);
+		LEAVE_GIRAN0 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_SOON_FOR_TALKING);
+		LEAVING_GIRAN = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVING_FOR_TALKING);
+		ARRIVED_AT_TALKING = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_ARRIVED_AT_TALKING);
+		ARRIVED_AT_TALKING_2 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_FOR_GIRAN_AFTER_10_MINUTES);
+		LEAVE_TALKING5 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_FOR_GIRAN_IN_5_MINUTES);
+		LEAVE_TALKING1 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_FOR_GIRAN_IN_1_MINUTE);
+		LEAVE_TALKING0 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_SOON_FOR_GIRAN);
+		LEAVING_TALKING = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVING_FOR_GIRAN);
+		BUSY_TALKING = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_GIRAN_TALKING_DELAYED);
 		
-		ARRIVAL_TALKING15 = new CreatureSay(0, Say2.BOAT, 801, 1162);
-		ARRIVAL_TALKING10 = new CreatureSay(0, Say2.BOAT, 801, 1163);
-		ARRIVAL_TALKING5 = new CreatureSay(0, Say2.BOAT, 801, 1164);
-		ARRIVAL_TALKING1 = new CreatureSay(0, Say2.BOAT, 801, 1165);
-		ARRIVAL_GIRAN20 = new CreatureSay(0, Say2.BOAT, 801, 1166);
-		ARRIVAL_GIRAN15 = new CreatureSay(0, Say2.BOAT, 801, 1167);
-		ARRIVAL_GIRAN10 = new CreatureSay(0, Say2.BOAT, 801, 1168);
-		ARRIVAL_GIRAN5 = new CreatureSay(0, Say2.BOAT, 801, 1169);
-		ARRIVAL_GIRAN1 = new CreatureSay(0, Say2.BOAT, 801, 1170);
+		ARRIVAL_TALKING15 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_GIRAN_ARRIVE_AT_TALKING_15_MINUTES);
+		ARRIVAL_TALKING10 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_GIRAN_ARRIVE_AT_TALKING_10_MINUTES);
+		ARRIVAL_TALKING5 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_GIRAN_ARRIVE_AT_TALKING_5_MINUTES);
+		ARRIVAL_TALKING1 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_GIRAN_ARRIVE_AT_TALKING_1_MINUTE);
+		ARRIVAL_GIRAN20 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_TALKING_ARRIVE_AT_GIRAN_20_MINUTES);
+		ARRIVAL_GIRAN15 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_TALKING_ARRIVE_AT_GIRAN_15_MINUTES);
+		ARRIVAL_GIRAN10 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_TALKING_ARRIVE_AT_GIRAN_10_MINUTES);
+		ARRIVAL_GIRAN5 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_TALKING_ARRIVE_AT_GIRAN_5_MINUTES);
+		ARRIVAL_GIRAN1 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_TALKING_ARRIVE_AT_GIRAN_1_MINUTE);
 		
 		GIRAN_SOUND = new PlaySound(0, "itemsound.ship_arrival_departure", 1, _boat.getObjectId(), GIRAN_DOCK.x, GIRAN_DOCK.y, GIRAN_DOCK.z);
 		TALKING_SOUND = new PlaySound(0, "itemsound.ship_arrival_departure", 1, _boat.getObjectId(), TALKING_DOCK[0].x, TALKING_DOCK[0].y, TALKING_DOCK[0].z);
diff --git a/L2J_DataPack_BETA/data/scripts/vehicles/BoatGludinRune.java b/L2J_DataPack_BETA/data/scripts/vehicles/BoatGludinRune.java
index 210683e5cf..57e79896e7 100644
--- a/L2J_DataPack_BETA/data/scripts/vehicles/BoatGludinRune.java
+++ b/L2J_DataPack_BETA/data/scripts/vehicles/BoatGludinRune.java
@@ -21,6 +21,7 @@ import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.instancemanager.BoatManager;
 import com.l2jserver.gameserver.model.VehiclePathPoint;
 import com.l2jserver.gameserver.model.actor.instance.L2BoatInstance;
+import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.clientpackets.Say2;
 import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
 import com.l2jserver.gameserver.network.serverpackets.PlaySound;
@@ -138,29 +139,29 @@ public class BoatGludinRune implements Runnable
 	{
 		_boat = boat;
 		
-		ARRIVED_AT_GLUDIN = new CreatureSay(0, Say2.BOAT, 801, 986);
-		ARRIVED_AT_GLUDIN_2 = new CreatureSay(0, Say2.BOAT, 801, 1625);
-		LEAVE_GLUDIN5 = new CreatureSay(0, Say2.BOAT, 801, 1626);
-		LEAVE_GLUDIN1 = new CreatureSay(0, Say2.BOAT, 801, 1627);
-		LEAVE_GLUDIN0 = new CreatureSay(0, Say2.BOAT, 801, 1628);
-		LEAVING_GLUDIN = new CreatureSay(0, Say2.BOAT, 801, 1629);
-		ARRIVED_AT_RUNE = new CreatureSay(0, Say2.BOAT, 801, 1620);
-		ARRIVED_AT_RUNE_2 = new CreatureSay(0, Say2.BOAT, 801, 980);
-		LEAVE_RUNE5 = new CreatureSay(0, Say2.BOAT, 801, 1621);
-		LEAVE_RUNE1 = new CreatureSay(0, Say2.BOAT, 801, 1622);
-		LEAVE_RUNE0 = new CreatureSay(0, Say2.BOAT, 801, 1623);
-		LEAVING_RUNE = new CreatureSay(0, Say2.BOAT, 801, 1624);
-		BUSY_GLUDIN = new CreatureSay(0, Say2.BOAT, 801, 1618);
-		BUSY_RUNE = new CreatureSay(0, Say2.BOAT, 801, 1619);
+		ARRIVED_AT_GLUDIN = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_ARRIVED_AT_GLUDIN);
+		ARRIVED_AT_GLUDIN_2 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.DEPARTURE_FOR_RUNE_10_MINUTES);
+		LEAVE_GLUDIN5 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.DEPARTURE_FOR_RUNE_5_MINUTES);
+		LEAVE_GLUDIN1 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.DEPARTURE_FOR_RUNE_1_MINUTE);
+		LEAVE_GLUDIN0 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.DEPARTURE_FOR_GLUDIN_SHORTLY2);
+		LEAVING_GLUDIN = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.DEPARTURE_FOR_GLUDIN_NOW);
+		ARRIVED_AT_RUNE = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.ARRIVED_AT_RUNE);
+		ARRIVED_AT_RUNE_2 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_FOR_GLUDIN_AFTER_10_MINUTES);
+		LEAVE_RUNE5 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.DEPARTURE_FOR_GLUDIN_5_MINUTES);
+		LEAVE_RUNE1 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.DEPARTURE_FOR_GLUDIN_1_MINUTE);
+		LEAVE_RUNE0 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.DEPARTURE_FOR_GLUDIN_SHORTLY);
+		LEAVING_RUNE = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.DEPARTURE_FOR_GLUDIN_NOW);
+		BUSY_GLUDIN = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_RUNE_GLUDIN_DELAYED);
+		BUSY_RUNE = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_GLUDIN_RUNE_DELAYED);
 		
-		ARRIVAL_RUNE15 = new CreatureSay(0, Say2.BOAT, 801, 1634);
-		ARRIVAL_RUNE10 = new CreatureSay(0, Say2.BOAT, 801, 1635);
-		ARRIVAL_RUNE5 = new CreatureSay(0, Say2.BOAT, 801, 1636);
-		ARRIVAL_RUNE1 = new CreatureSay(0, Say2.BOAT, 801, 1637);
-		ARRIVAL_GLUDIN15 = new CreatureSay(0, Say2.BOAT, 801, 1630);
-		ARRIVAL_GLUDIN10 = new CreatureSay(0, Say2.BOAT, 801, 1631);
-		ARRIVAL_GLUDIN5 = new CreatureSay(0, Say2.BOAT, 801, 1632);
-		ARRIVAL_GLUDIN1 = new CreatureSay(0, Say2.BOAT, 801, 1633);
+		ARRIVAL_RUNE15 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_GLUDIN_AT_RUNE_15_MINUTES);
+		ARRIVAL_RUNE10 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_GLUDIN_AT_RUNE_10_MINUTES);
+		ARRIVAL_RUNE5 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_GLUDIN_AT_RUNE_5_MINUTES);
+		ARRIVAL_RUNE1 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_GLUDIN_AT_RUNE_1_MINUTE);
+		ARRIVAL_GLUDIN15 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_RUNE_AT_GLUDIN_15_MINUTES);
+		ARRIVAL_GLUDIN10 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_RUNE_AT_GLUDIN_10_MINUTES);
+		ARRIVAL_GLUDIN5 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_RUNE_AT_GLUDIN_5_MINUTES);
+		ARRIVAL_GLUDIN1 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_RUNE_AT_GLUDIN_1_MINUTE);
 		
 		GLUDIN_SOUND = new PlaySound(0, "itemsound.ship_arrival_departure", 1, _boat.getObjectId(), GLUDIN_DOCK[0].x, GLUDIN_DOCK[0].y, GLUDIN_DOCK[0].z);
 		RUNE_SOUND = new PlaySound(0, "itemsound.ship_arrival_departure", 1, _boat.getObjectId(), RUNE_DOCK[0].x, RUNE_DOCK[0].y, RUNE_DOCK[0].z);
diff --git a/L2J_DataPack_BETA/data/scripts/vehicles/BoatInnadrilTour.java b/L2J_DataPack_BETA/data/scripts/vehicles/BoatInnadrilTour.java
index 2c30e9bac6..c61cbc4a41 100644
--- a/L2J_DataPack_BETA/data/scripts/vehicles/BoatInnadrilTour.java
+++ b/L2J_DataPack_BETA/data/scripts/vehicles/BoatInnadrilTour.java
@@ -21,6 +21,7 @@ import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.instancemanager.BoatManager;
 import com.l2jserver.gameserver.model.VehiclePathPoint;
 import com.l2jserver.gameserver.model.actor.instance.L2BoatInstance;
+import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.clientpackets.Say2;
 import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
 import com.l2jserver.gameserver.network.serverpackets.PlaySound;
@@ -94,17 +95,17 @@ public class BoatInnadrilTour implements Runnable
 	{
 		_boat = boat;
 		
-		ARRIVED_AT_INNADRIL = new CreatureSay(0, Say2.BOAT, 801, 998);
-		LEAVE_INNADRIL5 = new CreatureSay(0, Say2.BOAT, 801, 999);
-		LEAVE_INNADRIL1 = new CreatureSay(0, Say2.BOAT, 801, 1000);
-		LEAVE_INNADRIL0 = new CreatureSay(0, Say2.BOAT, 801, 1001);
-		LEAVING_INNADRIL = new CreatureSay(0, Say2.BOAT, 801, 1002);
+		ARRIVED_AT_INNADRIL = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.INNADRIL_BOAT_ANCHOR_10_MINUTES);
+		LEAVE_INNADRIL5 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.INNADRIL_BOAT_LEAVE_IN_5_MINUTES);
+		LEAVE_INNADRIL1 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.INNADRIL_BOAT_LEAVE_IN_1_MINUTE);
+		LEAVE_INNADRIL0 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.INNADRIL_BOAT_LEAVE_SOON);
+		LEAVING_INNADRIL = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.INNADRIL_BOAT_LEAVING);
 		
-		ARRIVAL20 = new CreatureSay(0, Say2.BOAT, 801, 1171);
-		ARRIVAL15 = new CreatureSay(0, Say2.BOAT, 801, 1172);
-		ARRIVAL10 = new CreatureSay(0, Say2.BOAT, 801, 1173);
-		ARRIVAL5 = new CreatureSay(0, Say2.BOAT, 801, 1174);
-		ARRIVAL1 = new CreatureSay(0, Say2.BOAT, 801, 1175);
+		ARRIVAL20 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.INNADRIL_BOAT_ARRIVE_20_MINUTES);
+		ARRIVAL15 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.INNADRIL_BOAT_ARRIVE_15_MINUTES);
+		ARRIVAL10 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.INNADRIL_BOAT_ARRIVE_10_MINUTES);
+		ARRIVAL5 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.INNADRIL_BOAT_ARRIVE_5_MINUTES);
+		ARRIVAL1 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.INNADRIL_BOAT_ARRIVE_1_MINUTE);
 		
 		INNADRIL_SOUND = new PlaySound(0, "itemsound.ship_arrival_departure", 1, _boat.getObjectId(), DOCK.x, DOCK.y, DOCK.z);
 	}
diff --git a/L2J_DataPack_BETA/data/scripts/vehicles/BoatRunePrimeval.java b/L2J_DataPack_BETA/data/scripts/vehicles/BoatRunePrimeval.java
index 0e42f620c0..526830afa6 100644
--- a/L2J_DataPack_BETA/data/scripts/vehicles/BoatRunePrimeval.java
+++ b/L2J_DataPack_BETA/data/scripts/vehicles/BoatRunePrimeval.java
@@ -21,6 +21,7 @@ import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.instancemanager.BoatManager;
 import com.l2jserver.gameserver.model.VehiclePathPoint;
 import com.l2jserver.gameserver.model.actor.instance.L2BoatInstance;
+import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.clientpackets.Say2;
 import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
 import com.l2jserver.gameserver.network.serverpackets.PlaySound;
@@ -90,13 +91,13 @@ public class BoatRunePrimeval implements Runnable
 	{
 		_boat = boat;
 		
-		ARRIVED_AT_RUNE = new CreatureSay(0, Say2.BOAT, 801, 1620);
-		ARRIVED_AT_RUNE_2 = new CreatureSay(0, Say2.BOAT, 801, 1991);
-		LEAVING_RUNE = new CreatureSay(0, Say2.BOAT, 801, 1992);
-		ARRIVED_AT_PRIMEVAL = new CreatureSay(0, Say2.BOAT, 801, 1988);
-		ARRIVED_AT_PRIMEVAL_2 = new CreatureSay(0, Say2.BOAT, 801, 1989);
-		LEAVING_PRIMEVAL = new CreatureSay(0, Say2.BOAT, 801, 1990);
-		BUSY_RUNE = new CreatureSay(0, Say2.BOAT, 801, 1993);
+		ARRIVED_AT_RUNE = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.ARRIVED_AT_RUNE);
+		ARRIVED_AT_RUNE_2 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVING_FOR_PRIMEVAL_3_MINUTES);
+		LEAVING_RUNE = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVING_RUNE_FOR_PRIMEVAL_NOW);
+		ARRIVED_AT_PRIMEVAL = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_ARRIVED_AT_PRIMEVAL);
+		ARRIVED_AT_PRIMEVAL_2 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVING_FOR_RUNE_3_MINUTES);
+		LEAVING_PRIMEVAL = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVING_PRIMEVAL_FOR_RUNE_NOW);
+		BUSY_RUNE = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_PRIMEVAL_TO_RUNE_DELAYED);
 		
 		RUNE_SOUND = new PlaySound(0, "itemsound.ship_arrival_departure", 1, _boat.getObjectId(), RUNE_DOCK[0].x, RUNE_DOCK[0].y, RUNE_DOCK[0].z);
 		PRIMEVAL_SOUND = new PlaySound(0, "itemsound.ship_arrival_departure", 1, _boat.getObjectId(), PRIMEVAL_DOCK.x, PRIMEVAL_DOCK.y, PRIMEVAL_DOCK.z);
diff --git a/L2J_DataPack_BETA/data/scripts/vehicles/BoatTalkingGludin.java b/L2J_DataPack_BETA/data/scripts/vehicles/BoatTalkingGludin.java
index 9b47538237..39a82e224b 100644
--- a/L2J_DataPack_BETA/data/scripts/vehicles/BoatTalkingGludin.java
+++ b/L2J_DataPack_BETA/data/scripts/vehicles/BoatTalkingGludin.java
@@ -21,6 +21,7 @@ import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.instancemanager.BoatManager;
 import com.l2jserver.gameserver.model.VehiclePathPoint;
 import com.l2jserver.gameserver.model.actor.instance.L2BoatInstance;
+import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.clientpackets.Say2;
 import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
 import com.l2jserver.gameserver.network.serverpackets.PlaySound;
@@ -108,28 +109,28 @@ public class BoatTalkingGludin implements Runnable
 		_boat = boat;
 		_cycle = 0;
 		
-		ARRIVED_AT_TALKING = new CreatureSay(0, Say2.BOAT, 801, 979);
-		ARRIVED_AT_TALKING_2 = new CreatureSay(0, Say2.BOAT, 801, 980);
-		LEAVE_TALKING5 = new CreatureSay(0, Say2.BOAT, 801, 981);
-		LEAVE_TALKING1 = new CreatureSay(0, Say2.BOAT, 801, 982);
-		LEAVE_TALKING1_2 = new CreatureSay(0, Say2.BOAT, 801, 983);
-		LEAVE_TALKING0 = new CreatureSay(0, Say2.BOAT, 801, 984);
-		LEAVING_TALKING = new CreatureSay(0, Say2.BOAT, 801, 985);
-		ARRIVED_AT_GLUDIN = new CreatureSay(0, Say2.BOAT, 801, 986);
-		ARRIVED_AT_GLUDIN_2 = new CreatureSay(0, Say2.BOAT, 801, 987);
-		LEAVE_GLUDIN5 = new CreatureSay(0, Say2.BOAT, 801, 988);
-		LEAVE_GLUDIN1 = new CreatureSay(0, Say2.BOAT, 801, 989);
-		LEAVE_GLUDIN0 = new CreatureSay(0, Say2.BOAT, 801, 990);
-		LEAVING_GLUDIN = new CreatureSay(0, Say2.BOAT, 801, 991);
-		BUSY_TALKING = new CreatureSay(0, Say2.BOAT, 801, 1486);
-		BUSY_GLUDIN = new CreatureSay(0, Say2.BOAT, 801, 1485);
+		ARRIVED_AT_TALKING = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_ARRIVED_AT_TALKING);
+		ARRIVED_AT_TALKING_2 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_FOR_GLUDIN_AFTER_10_MINUTES);
+		LEAVE_TALKING5 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_FOR_GLUDIN_IN_5_MINUTES);
+		LEAVE_TALKING1 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_FOR_GLUDIN_IN_1_MINUTE);
+		LEAVE_TALKING1_2 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.MAKE_HASTE_GET_ON_BOAT);
+		LEAVE_TALKING0 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_SOON_FOR_GLUDIN);
+		LEAVING_TALKING = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVING_FOR_GLUDIN);
+		ARRIVED_AT_GLUDIN = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_ARRIVED_AT_GLUDIN);
+		ARRIVED_AT_GLUDIN_2 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_FOR_TALKING_AFTER_10_MINUTES);
+		LEAVE_GLUDIN5 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_FOR_TALKING_IN_5_MINUTES);
+		LEAVE_GLUDIN1 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_FOR_TALKING_IN_1_MINUTE);
+		LEAVE_GLUDIN0 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVE_SOON_FOR_TALKING);
+		LEAVING_GLUDIN = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_LEAVING_FOR_TALKING);
+		BUSY_TALKING = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_GLUDIN_TALKING_DELAYED);
+		BUSY_GLUDIN = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_TALKING_GLUDIN_DELAYED);
 		
-		ARRIVAL_GLUDIN10 = new CreatureSay(0, Say2.BOAT, 801, 1159);
-		ARRIVAL_GLUDIN5 = new CreatureSay(0, Say2.BOAT, 801, 1160);
-		ARRIVAL_GLUDIN1 = new CreatureSay(0, Say2.BOAT, 801, 1161);
-		ARRIVAL_TALKING10 = new CreatureSay(0, Say2.BOAT, 801, 1191);
-		ARRIVAL_TALKING5 = new CreatureSay(0, Say2.BOAT, 801, 1192);
-		ARRIVAL_TALKING1 = new CreatureSay(0, Say2.BOAT, 801, 1193);
+		ARRIVAL_GLUDIN10 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_TALKING_ARRIVE_AT_GLUDIN_10_MINUTES);
+		ARRIVAL_GLUDIN5 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_TALKING_ARRIVE_AT_GLUDIN_5_MINUTES);
+		ARRIVAL_GLUDIN1 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_TALKING_ARRIVE_AT_GLUDIN_1_MINUTE);
+		ARRIVAL_TALKING10 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_GLUDIN_ARRIVE_AT_TALKING_10_MINUTES);
+		ARRIVAL_TALKING5 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_GLUDIN_ARRIVE_AT_TALKING_5_MINUTES);
+		ARRIVAL_TALKING1 = new CreatureSay(0, Say2.BOAT, 801, SystemMessageId.FERRY_FROM_GLUDIN_ARRIVE_AT_TALKING_1_MINUTE);
 		
 		TALKING_SOUND = new PlaySound(0, "itemsound.ship_arrival_departure", 1, _boat.getObjectId(), TALKING_DOCK[0].x, TALKING_DOCK[0].y, TALKING_DOCK[0].z);
 		GLUDIN_SOUND = new PlaySound(0, "itemsound.ship_arrival_departure", 1, _boat.getObjectId(), GLUDIN_DOCK[0].x, GLUDIN_DOCK[0].y, GLUDIN_DOCK[0].z);
-- 
GitLab