Ir para conteúdo
  • Cadastre-se

Skin 2 Click Para L2jfrozen 1132


Christian-SDM

Posts recomendados

Pessoal ta um bom tempo pedindo isso, então ta tudo prontinho para l2jfrozen 1132, sem bugs de animação, tanto com a tela principal como a tela secundaria..

Mod funciona perfeitamente, não tem voice comando, é somente item 2 click,  o código foi reduzido.

Diff do mod, só tem todo código menos os skins handler. Os skins handlers, vai numa pasta para donwload, só copiar e colar direto itemhandlers.

Agora video demostrativo.

Deixem seu like xD

skins handlers.rar

Editado por Christian-SDM
Link para o comentário
Compartilhar em outros sites


top demais valeu por posta 

17 minutos atrás, Marlon disse:

Bacana cara, valeu por trazer para a galera!

dei um peteleco no monitor achando que era um mosquito

Screenshot_1.png

" Os homens tendem a acreditar sobretudo naquilo que menos compreendem. "

Link para o comentário
Compartilhar em outros sites

Boa hein!! Muito bom cara, excelente trabalho com skins.. nesse caminho já já teremos várias outras haha

pD5PSQp.png

" Você nunca sabe que resultados virão de suas ações, mas se você não fizer nada, não existirão resultados"

 

 

Link para o comentário
Compartilhar em outros sites

  • 3 weeks later...

Olá, seu tópico se encontra com um ou mais links offline. Caso ainda possua o conteúdo, favor postar aqui mesmo no tópico ou mandar MP para algum staff que estaremos normalizando o tópico.

 

Grato pela atenção!

Você sabia que a L2JBrasil tem uma empresa de Hosting Oficial?
Conheça a L2JCenter.com

L2JBRASIL - 15 anos vendendo SS e flechas em Giran! (Trade / Adena)

Link para o comentário
Compartilhar em outros sites

  • 1 year later...

Olá, seu tópico se encontra com um ou mais links offline. Caso ainda possua o conteúdo, favor postar aqui mesmo no tópico ou mandar MP para algum staff que estaremos normalizando o tópico.

 

Grato pela atenção!

Você sabia que a L2JBrasil tem uma empresa de Hosting Oficial?
Conheça a L2JCenter.com

L2JBRASIL - 15 anos vendendo SS e flechas em Giran! (Trade / Adena)

Link para o comentário
Compartilhar em outros sites

  • 6 months later...
57 minutos atrás, frank1 disse:

off, puede resubir?

diff --git a/config/CustomMods/Skin.ini b/config/CustomMods/Skin.ini
new file mode 100644
index 0000000..f26c954
--- /dev/null
+++ b/config/CustomMods/Skin.ini
@@ -0,0 +1,207 @@
+#===============================================================
+#                    Skin Item
+#===============================================================
+#Enable Skin
+AllowDressMeSystem = True
+
+#Effect Time All Skins
+# 4000 = 4 Segunds
+SkillEffectsTime = 4000
+
+#Skill ID Skin 1
+SkillIDSkin1 = 1036
+
+#Skill ID Skin 2
+SkillIDSkin2 = 0
+
+#Skill ID Skin 3
+SkillIDSkin3 = 0
+
+#Skill ID Skin 4
+SkillIDSkin4 = 0
+
+#Skill ID Skin 5
+SkillIDSkin5 = 0
+
+#Skill ID Skin 6
+SkillIDSkin6 = 0
+
+#Skill ID Skin 7
+SkillIDSkin7 = 0
+
+#Skill ID Skin 8
+SkillIDSkin8 = 0
+
+#Skill ID Skin 9
+SkillIDSkin9 = 0
+
+#Skill ID Skin 10
+SkillIDSkin10 = 0
+
+#Skill ID Skin 11
+SkillIDSkin11 = 0
+
+#Skill ID Skin 12
+SkillIDSkin12 = 0
+
+#Skill ID Skin 13
+SkillIDSkin13 = 0
+
+#Skill ID Skin 14
+SkillIDSkin14 = 0
+
+#Skill ID Skin 15
+SkillIDSkin15 = 0
+
+#None Quando equipar Item
+NameArmor1 = Draconic Light
+NameArmor2 = Titanium Armor Wizzard
+NameArmor3 = Titanium Armor Heavy
+NameArmor4 = Dark Knight Heavy
+NameArmor5 = Dark Knight Light
+NameArmor6 = Dark Knight Wizzard
+NameArmor7 = Dynasty Armor Heavy
+NameArmor8 = Dynasty Armor Light
+NameArmor9 = Dynasty Armor Wizzard
+NameArmor10 = Vesper Black Armor Heavy
+NameArmor11 = Vesper Black Armor Light
+NameArmor12 = Vesper Black Armor Wizzard
+NameArmor13 = Moirai Armor Heavy
+NameArmor14 = Moirai Armor Light
+NameArmor15 = Moirai Armor Wizzard
+
+# DressMe values.
+#Aqui não pode ultilizar Espaco!
+# Skin name (Example: "Draconic")
+SkinName1 = Draconic_light
+SkinName2 = Titanium_Robe
+SkinName3 = Titanium_Heavy
+SkinName4 = Dark_Kinight_Heavy
+SkinName5 = Dark_Kinight_Light
+SkinName6 = Dark_Kinight_Robe
+SkinName7 = Dynasty_Heavy
+SkinName8 = Dynasty_Light
+SkinName9 = Dynasty_Robe
+SkinName10 = VesperBlack_Heavy
+SkinName11 = VesperBlack_Light
+SkinName12 = VesperBlack_Robe
+SkinName13 = Moirai_H
+SkinName14 = Moirai_L
+SkinName15 = Moirai_R
+
+# Skin item id (Example: "6673")
+SkinItem1 = 0
+SkinItem2 = 0
+SkinItem3 = 0
+SkinItem4 = 0
+SkinItem5 = 0
+SkinItem6 = 0
+SkinItem7 = 0
+SkinItem8 = 0
+SkinItem9 = 0
+SkinItem10 = 0
+SkinItem11 = 0
+SkinItem12 = 0
+SkinItem13 = 0
+SkinItem14 = 0
+SkinItem15 = 0
+
+
+# Note: It works like name,id;name,id
+# WARNING: No spaces on names, use _ instead of space.
+#Hair Accesories
+DressMeHair = Draconic_light,6842;\
+Titanium_Robe,21002;\
+Titanium_Heavy,21002;\
+Dark_Kinight_Heavy,21003;\
+Dark_Kinight_Light,21004;\
+Dark_Kinight_Robe,21005;\
+Dynasty_Heavy,21006;\
+Dynasty_Light,21011;\
+Dynasty_Robe,21010;\
+VesperBlack_Heavy,21009;\
+VesperBlack_Light,21008;\
+VesperBlack_Robe,21007;\
+Moirai_H,21001;\
+Moirai_L,21000;\
+Moirai_R,20097;\
+Tauti_H,20089;\
+Tauti_L,20090;\
+Tauti_R,20091
+
+#Armor Chests
+DressMeChests = Draconic_light,6379;\
+Titanium_Robe,20071;\
+Titanium_Heavy,20067;\
+Dark_Kinight_Heavy,21023;\
+Dark_Kinight_Light,21028;\
+Dark_Kinight_Robe,21033;\
+Dynasty_Heavy,21038;\
+Dynasty_Light,21043;\
+Dynasty_Robe,21048;\
+VesperBlack_Heavy,21053;\
+VesperBlack_Light,21058;\
+VesperBlack_Robe,21063;\
+Moirai_H,21068;\
+Moirai_L,21073;\
+Moirai_R,21078;\
+Tauti_H,21083;\
+Tauti_L,21088;\
+Tauti_R,21093
+
+# Armor Legs
+DressMeLegs = Dark_Kinight_Heavy,21024;\
+Dark_Kinight_Light,21029;\
+Dark_Kinight_Robe,21034;\
+Dynasty_Heavy,21039;\
+Dynasty_Light,21044;\
+Dynasty_Robe,21049;\
+VesperBlack_Heavy,21054;\
+VesperBlack_Light,21059;\
+VesperBlack_Robe,21064;\
+Moirai_H,21069;\
+Moirai_L,21074;\
+Moirai_R,21079;\
+Tauti_H,21084;\
+Tauti_L,21089;\
+Tauti_R,21094
+
+# Armor Gloves
+DressMeGloves = Draconic_light,6380;\
+Titanium_Robe,20072;\
+Titanium_Heavy,20068;\
+Dark_Kinight_Heavy,21025;\
+Dark_Kinight_Light,21030;\
+Dark_Kinight_Robe,21035;\
+Dynasty_Heavy,21040;\
+Dynasty_Light,21045;\
+Dynasty_Robe,21050;\
+VesperBlack_Heavy,21055;\
+VesperBlack_Light,21060;\
+VesperBlack_Robe,21065;\
+Moirai_H,21070;\
+Moirai_L,21075;\
+Moirai_R,21080;\
+Tauti_H,21085;\
+Tauti_L,21090;\
+Tauti_R,21095
+
+#Armor Boots
+DressMeBoots = Draconic_light,6381;\
+Titanium_Robe,20073;\
+Titanium_Heavy,20069;\
+Dark_Kinight_Heavy,21026;\
+Dark_Kinight_Light,21031;\
+Dark_Kinight_Robe,21036;\
+Dynasty_Heavy,21041;\
+Dynasty_Light,21046;\
+Dynasty_Robe,21051;\
+VesperBlack_Heavy,21056;\
+VesperBlack_Light,21061;\
+VesperBlack_Robe,21066;\
+Moirai_H,21071;\
+Moirai_L,21076;\
+Moirai_R,21081;\
+Tauti_H,21086;\
+Tauti_L,21091;\
+Tauti_R,21096
diff --git a/head-src/com/l2jfrozen/Config.java b/head-src/com/l2jfrozen/Config.java
index 7f8d0ef..38d378e 100644
--- a/head-src/com/l2jfrozen/Config.java
+++ b/head-src/com/l2jfrozen/Config.java
@@ -56,6 +56,202 @@
 	private static final Logger LOGGER = Logger.getLogger(Config.class);
 	
 	// ============================================================
+	public static int SEGUNDS_SKILL_ANIMATION;
+	public static int SKILL_ID_SKIN1;
+	public static int SKILL_ID_SKIN2;
+	public static int SKILL_ID_SKIN3;
+	public static int SKILL_ID_SKIN4;
+	public static int SKILL_ID_SKIN5;
+	public static int SKILL_ID_SKIN6;
+	public static int SKILL_ID_SKIN7;
+	public static int SKILL_ID_SKIN8;
+	public static int SKILL_ID_SKIN9;
+	public static int SKILL_ID_SKIN10;
+	public static int SKILL_ID_SKIN11;
+	public static int SKILL_ID_SKIN12;
+	public static int SKILL_ID_SKIN13;
+	public static int SKILL_ID_SKIN14;
+	public static int SKILL_ID_SKIN15;
+	/** Skins Dressme  */
+	public static boolean ALLOW_DRESS_ME_SYSTEM;
+	public static Map<String, Integer> DRESS_ME_HELMET = new HashMap<>();
+	public static Map<String, Integer> DRESS_ME_CHESTS = new HashMap<>();
+	public static Map<String, Integer> DRESS_ME_LEGS = new HashMap<>();
+	public static Map<String, Integer> DRESS_ME_BOOTS = new HashMap<>();
+	public static Map<String, Integer> DRESS_ME_GLOVES = new HashMap<>();
+	public static String SKIN_NAME1;
+	public static String SKIN_NAME2;
+	public static String SKIN_NAME3;
+	public static String SKIN_NAME4;
+	public static String SKIN_NAME5;
+	public static String SKIN_NAME6;
+	public static String SKIN_NAME7;
+	public static String SKIN_NAME8;
+	public static String SKIN_NAME9;
+	public static String SKIN_NAME10;
+	public static String SKIN_NAME11;
+	public static String SKIN_NAME12;
+	public static String SKIN_NAME13;
+	public static String SKIN_NAME14;
+	public static String SKIN_NAME15;
+	
+	public static int SKIN_ITEM_1;
+	public static int SKIN_ITEM_2;
+	public static int SKIN_ITEM_3;
+	public static int SKIN_ITEM_4;
+	public static int SKIN_ITEM_5;
+	public static int SKIN_ITEM_6;
+	public static int SKIN_ITEM_7;
+	public static int SKIN_ITEM_8;
+	public static int SKIN_ITEM_9;
+	public static int SKIN_ITEM_10;
+	public static int SKIN_ITEM_11;
+	public static int SKIN_ITEM_12;
+	public static int SKIN_ITEM_13;
+	public static int SKIN_ITEM_14;
+	public static int SKIN_ITEM_15;
+	
+	public static String NAME1;
+	public static String NAME2;
+	public static String NAME3;
+	public static String NAME4;
+	public static String NAME5;
+	public static String NAME6;
+	public static String NAME7;
+	public static String NAME8;
+	public static String NAME9;
+	public static String NAME10;
+	public static String NAME11;
+	public static String NAME12;
+	public static String NAME13;
+	public static String NAME14;
+	public static String NAME15;
+	// ============================================================
+	public static void loadSkin()
+	{
+		final String SKIN = FService.SKIN;
+		
+		try
+		{
+			final Properties Skins = new Properties();
+			final InputStream is = new FileInputStream(new File(SKIN));
+			Skins.load(is);
+			is.close();
+			SEGUNDS_SKILL_ANIMATION = Integer.parseInt(Skins.getProperty("SkillEffectsTime", "0"));
+			SKILL_ID_SKIN1 = Integer.parseInt(Skins.getProperty("SkillIDSkin1", "0"));
+			SKILL_ID_SKIN2 = Integer.parseInt(Skins.getProperty("SkillIDSkin2", "0"));
+			SKILL_ID_SKIN3 = Integer.parseInt(Skins.getProperty("SkillIDSkin3", "0"));
+			SKILL_ID_SKIN4 = Integer.parseInt(Skins.getProperty("SkillIDSkin4", "0"));
+			SKILL_ID_SKIN5 = Integer.parseInt(Skins.getProperty("SkillIDSkin5", "0"));
+			SKILL_ID_SKIN6 = Integer.parseInt(Skins.getProperty("SkillIDSkin6", "0"));
+			SKILL_ID_SKIN7 = Integer.parseInt(Skins.getProperty("SkillIDSkin7", "0"));
+			SKILL_ID_SKIN8 = Integer.parseInt(Skins.getProperty("SkillIDSkin8", "0"));
+			SKILL_ID_SKIN9 = Integer.parseInt(Skins.getProperty("SkillIDSkin9", "0"));
+			SKILL_ID_SKIN10 = Integer.parseInt(Skins.getProperty("SkillIDSkin10", "0"));
+			SKILL_ID_SKIN11 = Integer.parseInt(Skins.getProperty("SkillIDSkin11", "0"));
+			SKILL_ID_SKIN12 = Integer.parseInt(Skins.getProperty("SkillIDSkin12", "0"));
+			SKILL_ID_SKIN13 = Integer.parseInt(Skins.getProperty("SkillIDSkin13", "0"));
+			SKILL_ID_SKIN14 = Integer.parseInt(Skins.getProperty("SkillIDSkin14", "0"));
+			SKILL_ID_SKIN15 = Integer.parseInt(Skins.getProperty("SkillIDSkin15", "0"));
+			ALLOW_DRESS_ME_SYSTEM = Boolean.parseBoolean(Skins.getProperty("AllowDressMeSystem", "false"));
+			SKIN_NAME1 = String.valueOf(Skins.getProperty("SkinName1", "SkinName"));
+			SKIN_NAME2 = String.valueOf(Skins.getProperty("SkinName2", "SkinName"));
+			SKIN_NAME3 = String.valueOf(Skins.getProperty("SkinName3", "SkinName"));
+			SKIN_NAME4 = String.valueOf(Skins.getProperty("SkinName4", "SkinName"));
+			SKIN_NAME5 = String.valueOf(Skins.getProperty("SkinName5", "SkinName"));
+			SKIN_NAME6 = String.valueOf(Skins.getProperty("SkinName6", "SkinName"));
+			SKIN_NAME7 = String.valueOf(Skins.getProperty("SkinName7", "SkinName"));
+			SKIN_NAME8 = String.valueOf(Skins.getProperty("SkinName8", "SkinName"));
+			SKIN_NAME9 = String.valueOf(Skins.getProperty("SkinName9", "SkinName"));
+			SKIN_NAME10 = String.valueOf(Skins.getProperty("SkinName10", "SkinName"));
+			SKIN_NAME11 = String.valueOf(Skins.getProperty("SkinName11", "SkinName"));
+			SKIN_NAME12 = String.valueOf(Skins.getProperty("SkinName12", "SkinName"));
+			SKIN_NAME13 = String.valueOf(Skins.getProperty("SkinName13", "SkinName"));
+			SKIN_NAME14 = String.valueOf(Skins.getProperty("SkinName14", "SkinName"));
+			SKIN_NAME15 = String.valueOf(Skins.getProperty("SkinName15", "SkinName"));
+			
+			
+			SKIN_ITEM_1 = Integer.parseInt(Skins.getProperty("SkinItem1", "0"));
+			SKIN_ITEM_2 = Integer.parseInt(Skins.getProperty("SkinItem2", "0"));
+			SKIN_ITEM_3 = Integer.parseInt(Skins.getProperty("SkinItem3", "0"));
+			SKIN_ITEM_4 = Integer.parseInt(Skins.getProperty("SkinItem4", "0"));
+			SKIN_ITEM_5 = Integer.parseInt(Skins.getProperty("SkinItem5", "0"));
+			SKIN_ITEM_6 = Integer.parseInt(Skins.getProperty("SkinItem6", "0"));
+			SKIN_ITEM_7 = Integer.parseInt(Skins.getProperty("SkinItem7", "0"));
+			SKIN_ITEM_8 = Integer.parseInt(Skins.getProperty("SkinItem8", "0"));
+			SKIN_ITEM_9 = Integer.parseInt(Skins.getProperty("SkinItem9", "0"));
+			SKIN_ITEM_10 = Integer.parseInt(Skins.getProperty("SkinItem10", "0"));
+			SKIN_ITEM_11 = Integer.parseInt(Skins.getProperty("SkinItem11", "0"));
+			SKIN_ITEM_12 = Integer.parseInt(Skins.getProperty("SkinItem12", "0"));
+			SKIN_ITEM_13 = Integer.parseInt(Skins.getProperty("SkinItem13", "0"));
+			SKIN_ITEM_14 = Integer.parseInt(Skins.getProperty("SkinItem14", "0"));
+			SKIN_ITEM_15 = Integer.parseInt(Skins.getProperty("SkinItem15", "0"));
+			
+			String temp = Skins.getProperty("DressMeChests", "");
+			String[] temp2 = temp.split(";");
+			for (String s : temp2)
+			{
+				String[] t = s.split(",");
+				DRESS_ME_CHESTS.put(t[0], Integer.parseInt(t[1]));
+			}
+			
+			temp = Skins.getProperty("DressMeHair", "");
+			temp2 = temp.split(";");
+			for (String s : temp2)
+			{
+				String[] t = s.split(",");
+				DRESS_ME_HELMET.put(t[0], Integer.parseInt(t[1]));
+			}
+			
+			
+			temp = Skins.getProperty("DressMeLegs", "");
+			temp2 = temp.split(";");
+			for (String s : temp2)
+			{
+				String[] t = s.split(",");
+				DRESS_ME_LEGS.put(t[0], Integer.parseInt(t[1]));
+			}
+			temp = Skins.getProperty("DressMeBoots", "");
+			temp2 = temp.split(";");
+			for (String s : temp2)
+			{
+				String[] t = s.split(",");
+				DRESS_ME_BOOTS.put(t[0], Integer.parseInt(t[1]));
+			}
+			temp = Skins.getProperty("DressMeGloves", "");
+			temp2 = temp.split(";");
+			for (String s : temp2)
+			{
+				String[] t = s.split(",");
+				DRESS_ME_GLOVES.put(t[0], Integer.parseInt(t[1]));
+			}
+			
+			NAME1 = Skins.getProperty("NameArmor1", " Skins Dressme");
+			NAME2 = Skins.getProperty("NameArmor2", " Skins Dressme");
+			NAME3 = Skins.getProperty("NameArmor3", " Skins Dressme");
+			NAME4 = Skins.getProperty("NameArmor4", " Skins Dressme");
+			NAME5 = Skins.getProperty("NameArmor5", " Skins Dressme");
+			NAME6 = Skins.getProperty("NameArmor6", " Skins Dressme");
+			NAME7 = Skins.getProperty("NameArmor7", " Skins Dressme");
+			NAME8 = Skins.getProperty("NameArmor8", " Skins Dressme");
+			NAME9 = Skins.getProperty("NameArmor9", " Skins Dressme");
+			NAME10 = Skins.getProperty("NameArmor10", " Skins Dressme");
+			NAME11 = Skins.getProperty("NameArmor11", " Skins Dressme");
+			NAME12 = Skins.getProperty("NameArmor12", " Skins Dressme");
+			NAME13 = Skins.getProperty("NameArmor13", " Skins Dressme");
+			NAME14 = Skins.getProperty("NameArmor14", " Skins Dressme");
+			NAME15 = Skins.getProperty("NameArmor15", " Skins Dressme");
+			
+		}
+		catch (final Exception e)
+		{
+			e.printStackTrace();
+			throw new Error("Failed to Load " + SKIN + " File.");
+		}
+	}
+	
+	
+	// ============================================================
 	public static boolean EVERYBODY_HAS_ADMIN_RIGHTS;
 	public static boolean SHOW_GM_LOGIN;
 	public static boolean GM_STARTUP_INVISIBLE;
@@ -4534,6 +4730,7 @@
 			loadAccessConfig();
 			loadPvpConfig();
 			loadCraftConfig();
+			loadSkin();
 			
 			// Frozen config
 			loadCTFConfig();
diff --git a/head-src/com/l2jfrozen/FService.java b/head-src/com/l2jfrozen/FService.java
index f8afb7c..f4bf4d3 100644
--- a/head-src/com/l2jfrozen/FService.java
+++ b/head-src/com/l2jfrozen/FService.java
@@ -34,7 +34,7 @@
 	public static final String QUESTION_FILE = "./config/questionwords.txt";
 	public static final String HEXID_FILE = "./config/hexid.txt";
 	public static final String TELNET_FILE = "./config/telnet.properties";
-	
+	public static final String SKIN = "./config/CustomMods/Skin.ini";
 	// head
 	public static final String ALT_SETTINGS_FILE = "./config/head/altsettings.properties";
 	public static final String CLANHALL_CONFIG_FILE = "./config/head/clanhall.properties";
diff --git a/head-src/com/l2jfrozen/gameserver/handler/ItemHandler.java b/head-src/com/l2jfrozen/gameserver/handler/ItemHandler.java
index 8dad568..8b8cb8d 100644
--- a/head-src/com/l2jfrozen/gameserver/handler/ItemHandler.java
+++ b/head-src/com/l2jfrozen/gameserver/handler/ItemHandler.java
@@ -63,6 +63,21 @@
 import com.l2jfrozen.gameserver.handler.itemhandlers.Scrolls;
 import com.l2jfrozen.gameserver.handler.itemhandlers.Seed;
 import com.l2jfrozen.gameserver.handler.itemhandlers.SevenSignsRecord;
+import com.l2jfrozen.gameserver.handler.itemhandlers.Skin1;
+import com.l2jfrozen.gameserver.handler.itemhandlers.Skin10;
+import com.l2jfrozen.gameserver.handler.itemhandlers.Skin11;
+import com.l2jfrozen.gameserver.handler.itemhandlers.Skin12;
+import com.l2jfrozen.gameserver.handler.itemhandlers.Skin13;
+import com.l2jfrozen.gameserver.handler.itemhandlers.Skin14;
+import com.l2jfrozen.gameserver.handler.itemhandlers.Skin15;
+import com.l2jfrozen.gameserver.handler.itemhandlers.Skin2;
+import com.l2jfrozen.gameserver.handler.itemhandlers.Skin3;
+import com.l2jfrozen.gameserver.handler.itemhandlers.Skin4;
+import com.l2jfrozen.gameserver.handler.itemhandlers.Skin5;
+import com.l2jfrozen.gameserver.handler.itemhandlers.Skin6;
+import com.l2jfrozen.gameserver.handler.itemhandlers.Skin7;
+import com.l2jfrozen.gameserver.handler.itemhandlers.Skin8;
+import com.l2jfrozen.gameserver.handler.itemhandlers.Skin9;
 import com.l2jfrozen.gameserver.handler.itemhandlers.SoulCrystals;
 import com.l2jfrozen.gameserver.handler.itemhandlers.SoulShots;
 import com.l2jfrozen.gameserver.handler.itemhandlers.SpecialXMas;
@@ -110,6 +125,21 @@
 	private ItemHandler()
 	{
 		_datatable = new TreeMap<>();
+		registerItemHandler(new Skin1());
+		registerItemHandler(new Skin2());
+		registerItemHandler(new Skin3());
+		registerItemHandler(new Skin4());
+		registerItemHandler(new Skin5());
+		registerItemHandler(new Skin6());
+		registerItemHandler(new Skin7());
+		registerItemHandler(new Skin8());
+		registerItemHandler(new Skin9());
+		registerItemHandler(new Skin10());
+		registerItemHandler(new Skin11());
+		registerItemHandler(new Skin12());
+		registerItemHandler(new Skin13());
+		registerItemHandler(new Skin14());
+		registerItemHandler(new Skin15());
 		registerItemHandler(new ScrollOfEscape());
 		registerItemHandler(new ScrollOfResurrection());
 		registerItemHandler(new SoulShots());
diff --git a/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin1.java b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin1.java
new file mode 100644
index 0000000..26c70a0
--- /dev/null
+++ b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin1.java
@@ -0,0 +1,76 @@
+package com.l2jfrozen.gameserver.handler.itemhandlers;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.handler.IItemHandler;
+import com.l2jfrozen.gameserver.model.L2Object;
+import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
+import com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer;
+import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser;
+import com.l2jfrozen.gameserver.network.serverpackets.SetupGauge;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.util.Broadcast;
+
+public class Skin1 implements IItemHandler
+
+{
+	@Override
+	public void useItem(final L2PlayableInstance playable, final L2ItemInstance item)
+	{
+		ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				playable.setIsImmobileUntilAttacked(false);
+			}
+		}, Config.SEGUNDS_SKILL_ANIMATION);
+		final L2Object oldTarget = playable.getTarget();
+		playable.setTarget(playable);		
+		Broadcast.toSelfAndKnownPlayers(playable, new MagicSkillUser(playable, Config.SKILL_ID_SKIN1, 1, Config.SEGUNDS_SKILL_ANIMATION, 0));
+		playable.setTarget(oldTarget);
+		playable.sendPacket(new SetupGauge(0, Config.SEGUNDS_SKILL_ANIMATION));	
+		playable.setIsImmobileUntilAttacked(true);
+		if(Config.ALLOW_DRESS_ME_SYSTEM)
+		{
+			if(!(playable instanceof L2PcInstance))
+				return;
+			
+			L2PcInstance activeChar = (L2PcInstance)playable;
+			
+			RequestBypassToServer.setPart(activeChar, "helmet", Config.SKIN_NAME1);
+			RequestBypassToServer.setPart(activeChar, "chest", Config.SKIN_NAME1);
+			RequestBypassToServer.setPart(activeChar, "legs", Config.SKIN_NAME1);
+			RequestBypassToServer.setPart(activeChar, "gloves", Config.SKIN_NAME1);
+			RequestBypassToServer.setPart(activeChar, "boots", Config.SKIN_NAME1);
+			
+			if (activeChar.isDressMeEnabled())
+			{
+				activeChar.setDressMeEnabled(false);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have disabled skin.");
+				
+			}
+			else
+			{
+				activeChar.setDressMeEnabled(true);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have activated " + Config.NAME1 + " skin.");
+				
+			}
+		}
+		else
+			playable.sendMessage("Sorry, admin has disabled skins.");
+	}
+	
+	@Override
+	public int[] getItemIds()
+	{
+		return ITEM_IDS;
+	}
+	
+	private static final int ITEM_IDS[] = {
+		Config.SKIN_ITEM_1
+	};
+}
\ No newline at end of file
diff --git a/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin10.java b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin10.java
new file mode 100644
index 0000000..5201a2e
--- /dev/null
+++ b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin10.java
@@ -0,0 +1,71 @@
+package com.l2jfrozen.gameserver.handler.itemhandlers;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.handler.IItemHandler;
+import com.l2jfrozen.gameserver.model.L2Object;
+import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
+import com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer;
+import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser;
+import com.l2jfrozen.gameserver.network.serverpackets.SetupGauge;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.util.Broadcast;
+
+public class Skin10 implements IItemHandler
+{
+	@Override
+	public void useItem(final L2PlayableInstance playable, final L2ItemInstance item)
+	{
+		ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				playable.setIsImmobileUntilAttacked(false);
+			}
+		}, Config.SEGUNDS_SKILL_ANIMATION);
+		final L2Object oldTarget = playable.getTarget();
+		playable.setTarget(playable);		
+		Broadcast.toSelfAndKnownPlayers(playable, new MagicSkillUser(playable, Config.SKILL_ID_SKIN10, 1, Config.SEGUNDS_SKILL_ANIMATION, 0));
+		playable.setTarget(oldTarget);
+		playable.sendPacket(new SetupGauge(0, Config.SEGUNDS_SKILL_ANIMATION));	
+		playable.setIsImmobileUntilAttacked(true);
+		if(Config.ALLOW_DRESS_ME_SYSTEM)
+		{
+			if(!(playable instanceof L2PcInstance))
+				return;
+			L2PcInstance activeChar = (L2PcInstance)playable;
+			RequestBypassToServer.setPart(activeChar, "helmet", Config.SKIN_NAME10);
+			RequestBypassToServer.setPart(activeChar, "chest", Config.SKIN_NAME10);
+			RequestBypassToServer.setPart(activeChar, "legs", Config.SKIN_NAME10);
+			RequestBypassToServer.setPart(activeChar, "gloves", Config.SKIN_NAME10);
+			RequestBypassToServer.setPart(activeChar, "boots", Config.SKIN_NAME10);
+			
+			if (activeChar.isDressMeEnabled())
+			{
+				activeChar.setDressMeEnabled(false);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have disabled skin.");
+			}
+			else
+			{
+				activeChar.setDressMeEnabled(true);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have activated " + Config.NAME10 + " skin.");
+			}
+		}
+		else
+			playable.sendMessage("Sorry, admin has disabled skins.");
+	}
+	
+	@Override
+	public int[] getItemIds()
+	{
+		return ITEM_IDS;
+	}
+	
+	private static final int ITEM_IDS[] = {
+		Config.SKIN_ITEM_10
+	};
+}
\ No newline at end of file
diff --git a/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin11.java b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin11.java
new file mode 100644
index 0000000..0b94f81
--- /dev/null
+++ b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin11.java
@@ -0,0 +1,72 @@
+package com.l2jfrozen.gameserver.handler.itemhandlers;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.handler.IItemHandler;
+import com.l2jfrozen.gameserver.model.L2Object;
+import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
+import com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer;
+import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser;
+import com.l2jfrozen.gameserver.network.serverpackets.SetupGauge;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.util.Broadcast;
+
+public class Skin11 implements IItemHandler
+{
+	@Override
+	public void useItem(final L2PlayableInstance playable, final L2ItemInstance item)
+	{
+		ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				playable.setIsImmobileUntilAttacked(false);
+			}
+		}, Config.SEGUNDS_SKILL_ANIMATION);
+		final L2Object oldTarget = playable.getTarget();
+		playable.setTarget(playable);		
+		Broadcast.toSelfAndKnownPlayers(playable, new MagicSkillUser(playable, Config.SKILL_ID_SKIN11, 1, Config.SEGUNDS_SKILL_ANIMATION, 0));
+		playable.setTarget(oldTarget);
+		playable.sendPacket(new SetupGauge(0, Config.SEGUNDS_SKILL_ANIMATION));	
+		playable.setIsImmobileUntilAttacked(true);
+		if(Config.ALLOW_DRESS_ME_SYSTEM)
+		{
+			if(!(playable instanceof L2PcInstance))
+				return;
+			L2PcInstance activeChar = (L2PcInstance)playable;
+			RequestBypassToServer.setPart(activeChar, "helmet", Config.SKIN_NAME11);
+			RequestBypassToServer.setPart(activeChar, "chest", Config.SKIN_NAME11);
+			RequestBypassToServer.setPart(activeChar, "legs", Config.SKIN_NAME11);
+			RequestBypassToServer.setPart(activeChar, "gloves", Config.SKIN_NAME11);
+			RequestBypassToServer.setPart(activeChar, "boots", Config.SKIN_NAME11);
+			
+			if (activeChar.isDressMeEnabled())
+			{
+				activeChar.setDressMeEnabled(false);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have disabled skin.");
+			}
+			else
+			{
+				activeChar.setDressMeEnabled(true);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have activated " + Config.NAME11 + " skin.");
+				
+			}
+		}
+		else
+			playable.sendMessage("Sorry, admin has disabled skins.");
+	}
+	
+	@Override
+	public int[] getItemIds()
+	{
+		return ITEM_IDS;
+	}
+	
+	private static final int ITEM_IDS[] = {
+		Config.SKIN_ITEM_11
+	};
+}
\ No newline at end of file
diff --git a/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin12.java b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin12.java
new file mode 100644
index 0000000..619008b
--- /dev/null
+++ b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin12.java
@@ -0,0 +1,72 @@
+package com.l2jfrozen.gameserver.handler.itemhandlers;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.handler.IItemHandler;
+import com.l2jfrozen.gameserver.model.L2Object;
+import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
+import com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer;
+import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser;
+import com.l2jfrozen.gameserver.network.serverpackets.SetupGauge;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.util.Broadcast;
+
+public class Skin12 implements IItemHandler
+{
+	@Override
+	public void useItem(final L2PlayableInstance playable, final L2ItemInstance item)
+	{
+		ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				playable.setIsImmobileUntilAttacked(false);
+			}
+		}, Config.SEGUNDS_SKILL_ANIMATION);
+		final L2Object oldTarget = playable.getTarget();
+		playable.setTarget(playable);		
+		Broadcast.toSelfAndKnownPlayers(playable, new MagicSkillUser(playable, Config.SKILL_ID_SKIN12, 1, Config.SEGUNDS_SKILL_ANIMATION, 0));
+		playable.setTarget(oldTarget);
+		playable.sendPacket(new SetupGauge(0, Config.SEGUNDS_SKILL_ANIMATION));	
+		playable.setIsImmobileUntilAttacked(true);
+		if(Config.ALLOW_DRESS_ME_SYSTEM)
+		{
+			if(!(playable instanceof L2PcInstance))
+				return;
+			L2PcInstance activeChar = (L2PcInstance)playable;
+			RequestBypassToServer.setPart(activeChar, "helmet", Config.SKIN_NAME12);
+			RequestBypassToServer.setPart(activeChar, "chest", Config.SKIN_NAME12);
+			RequestBypassToServer.setPart(activeChar, "legs", Config.SKIN_NAME12);
+			RequestBypassToServer.setPart(activeChar, "gloves", Config.SKIN_NAME12);
+			RequestBypassToServer.setPart(activeChar, "boots", Config.SKIN_NAME12);
+			
+			if (activeChar.isDressMeEnabled())
+			{
+				activeChar.setDressMeEnabled(false);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have disabled skin.");
+			}
+			else
+			{
+				activeChar.setDressMeEnabled(true);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have activated " + Config.NAME12 + " skin.");
+				
+			}
+		}
+		else
+			playable.sendMessage("Sorry, admin has disabled skins.");
+	}
+	
+	@Override
+	public int[] getItemIds()
+	{
+		return ITEM_IDS;
+	}
+	
+	private static final int ITEM_IDS[] = {
+		Config.SKIN_ITEM_12
+	};
+}
\ No newline at end of file
diff --git a/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin13.java b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin13.java
new file mode 100644
index 0000000..8ccca10
--- /dev/null
+++ b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin13.java
@@ -0,0 +1,71 @@
+package com.l2jfrozen.gameserver.handler.itemhandlers;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.handler.IItemHandler;
+import com.l2jfrozen.gameserver.model.L2Object;
+import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
+import com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer;
+import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser;
+import com.l2jfrozen.gameserver.network.serverpackets.SetupGauge;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.util.Broadcast;
+
+public class Skin13 implements IItemHandler
+{
+	@Override
+	public void useItem(final L2PlayableInstance playable, final L2ItemInstance item)
+	{
+		ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				playable.setIsImmobileUntilAttacked(false);
+			}
+		}, Config.SEGUNDS_SKILL_ANIMATION);
+		final L2Object oldTarget = playable.getTarget();
+		playable.setTarget(playable);		
+		Broadcast.toSelfAndKnownPlayers(playable, new MagicSkillUser(playable, Config.SKILL_ID_SKIN13, 1, Config.SEGUNDS_SKILL_ANIMATION, 0));
+		playable.setTarget(oldTarget);
+		playable.sendPacket(new SetupGauge(0, Config.SEGUNDS_SKILL_ANIMATION));	
+		playable.setIsImmobileUntilAttacked(true);
+		if(Config.ALLOW_DRESS_ME_SYSTEM)
+		{
+			if(!(playable instanceof L2PcInstance))
+				return;
+			L2PcInstance activeChar = (L2PcInstance)playable;
+			RequestBypassToServer.setPart(activeChar, "helmet", Config.SKIN_NAME13);
+			RequestBypassToServer.setPart(activeChar, "chest", Config.SKIN_NAME13);
+			RequestBypassToServer.setPart(activeChar, "legs", Config.SKIN_NAME13);
+			RequestBypassToServer.setPart(activeChar, "gloves", Config.SKIN_NAME13);
+			RequestBypassToServer.setPart(activeChar, "boots", Config.SKIN_NAME13);
+			
+			if (activeChar.isDressMeEnabled())
+			{
+				activeChar.setDressMeEnabled(false);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have disabled skin.");
+			}
+			else
+			{
+				activeChar.setDressMeEnabled(true);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have activated " + Config.NAME13 + " skin.");
+			}
+		}
+		else
+			playable.sendMessage("Sorry, admin has disabled skins.");
+	}
+	
+	@Override
+	public int[] getItemIds()
+	{
+		return ITEM_IDS;
+	}
+	
+	private static final int ITEM_IDS[] = {
+		Config.SKIN_ITEM_13
+	};
+}
\ No newline at end of file
diff --git a/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin14.java b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin14.java
new file mode 100644
index 0000000..414dd05
--- /dev/null
+++ b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin14.java
@@ -0,0 +1,71 @@
+package com.l2jfrozen.gameserver.handler.itemhandlers;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.handler.IItemHandler;
+import com.l2jfrozen.gameserver.model.L2Object;
+import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
+import com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer;
+import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser;
+import com.l2jfrozen.gameserver.network.serverpackets.SetupGauge;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.util.Broadcast;
+
+public class Skin14 implements IItemHandler
+{
+	@Override
+	public void useItem(final L2PlayableInstance playable, final L2ItemInstance item)
+	{
+		ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				playable.setIsImmobileUntilAttacked(false);
+			}
+		}, Config.SEGUNDS_SKILL_ANIMATION);
+		final L2Object oldTarget = playable.getTarget();
+		playable.setTarget(playable);		
+		Broadcast.toSelfAndKnownPlayers(playable, new MagicSkillUser(playable, Config.SKILL_ID_SKIN14, 1, Config.SEGUNDS_SKILL_ANIMATION, 0));
+		playable.setTarget(oldTarget);
+		playable.sendPacket(new SetupGauge(0, Config.SEGUNDS_SKILL_ANIMATION));	
+		playable.setIsImmobileUntilAttacked(true);
+		if(Config.ALLOW_DRESS_ME_SYSTEM)
+		{
+			if(!(playable instanceof L2PcInstance))
+				return;
+			L2PcInstance activeChar = (L2PcInstance)playable;
+			RequestBypassToServer.setPart(activeChar, "helmet", Config.SKIN_NAME14);
+			RequestBypassToServer.setPart(activeChar, "chest", Config.SKIN_NAME14);
+			RequestBypassToServer.setPart(activeChar, "legs", Config.SKIN_NAME14);
+			RequestBypassToServer.setPart(activeChar, "gloves", Config.SKIN_NAME14);
+			RequestBypassToServer.setPart(activeChar, "boots", Config.SKIN_NAME14);
+			
+			if (activeChar.isDressMeEnabled())
+			{
+				activeChar.setDressMeEnabled(false);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have disabled skin.");
+			}
+			else
+			{
+				activeChar.setDressMeEnabled(true);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have activated " + Config.NAME14 + " skin.");
+			}
+		}
+		else
+			playable.sendMessage("Sorry, admin has disabled skins.");
+	}
+	
+	@Override
+	public int[] getItemIds()
+	{
+		return ITEM_IDS;
+	}
+	
+	private static final int ITEM_IDS[] = {
+		Config.SKIN_ITEM_14
+	};
+}
\ No newline at end of file
diff --git a/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin15.java b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin15.java
new file mode 100644
index 0000000..1bfe6ce
--- /dev/null
+++ b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin15.java
@@ -0,0 +1,75 @@
+package com.l2jfrozen.gameserver.handler.itemhandlers;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.handler.IItemHandler;
+import com.l2jfrozen.gameserver.model.L2Object;
+import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
+import com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer;
+import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser;
+import com.l2jfrozen.gameserver.network.serverpackets.SetupGauge;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.util.Broadcast;
+
+public class Skin15 implements IItemHandler
+{
+	@Override
+	public void useItem(final L2PlayableInstance playable, final L2ItemInstance item)
+	{
+		ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				playable.setIsImmobileUntilAttacked(false);
+			}
+		}, Config.SEGUNDS_SKILL_ANIMATION);
+		final L2Object oldTarget = playable.getTarget();
+		playable.setTarget(playable);		
+		Broadcast.toSelfAndKnownPlayers(playable, new MagicSkillUser(playable, Config.SKILL_ID_SKIN15, 1, Config.SEGUNDS_SKILL_ANIMATION, 0));
+		playable.setTarget(oldTarget);
+		playable.sendPacket(new SetupGauge(0, Config.SEGUNDS_SKILL_ANIMATION));	
+		playable.setIsImmobileUntilAttacked(true);
+		if(Config.ALLOW_DRESS_ME_SYSTEM)
+		{
+			if(!(playable instanceof L2PcInstance))
+				return;
+			
+			L2PcInstance activeChar = (L2PcInstance)playable;
+			
+			RequestBypassToServer.setPart(activeChar, "helmet", Config.SKIN_NAME15);
+			RequestBypassToServer.setPart(activeChar, "chest", Config.SKIN_NAME15);
+			RequestBypassToServer.setPart(activeChar, "legs", Config.SKIN_NAME15);
+			RequestBypassToServer.setPart(activeChar, "gloves", Config.SKIN_NAME15);
+			RequestBypassToServer.setPart(activeChar, "boots", Config.SKIN_NAME15);
+			
+			if (activeChar.isDressMeEnabled())
+			{
+				
+				activeChar.setDressMeEnabled(false);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have disabled skin.");
+			}
+			else
+			{
+				
+				activeChar.setDressMeEnabled(true);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have activated " + Config.NAME15 + " skin.");
+			}
+		}
+		else
+			playable.sendMessage("Sorry, admin has disabled skins.");
+	}
+	
+	@Override
+	public int[] getItemIds()
+	{
+		return ITEM_IDS;
+	}
+	
+	private static final int ITEM_IDS[] = {
+		Config.SKIN_ITEM_15
+	};
+}
\ No newline at end of file
diff --git a/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin2.java b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin2.java
new file mode 100644
index 0000000..93d653a
--- /dev/null
+++ b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin2.java
@@ -0,0 +1,72 @@
+package com.l2jfrozen.gameserver.handler.itemhandlers;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.handler.IItemHandler;
+import com.l2jfrozen.gameserver.model.L2Object;
+import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
+import com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer;
+import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser;
+import com.l2jfrozen.gameserver.network.serverpackets.SetupGauge;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.util.Broadcast;
+
+public class Skin2 implements IItemHandler
+{
+	@Override
+	public void useItem(final L2PlayableInstance playable, final L2ItemInstance item)
+	{
+		ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				playable.setIsImmobileUntilAttacked(false);
+			}
+		}, Config.SEGUNDS_SKILL_ANIMATION);
+		final L2Object oldTarget = playable.getTarget();
+		playable.setTarget(playable);		
+		Broadcast.toSelfAndKnownPlayers(playable, new MagicSkillUser(playable, Config.SKILL_ID_SKIN2, 1, Config.SEGUNDS_SKILL_ANIMATION, 0));
+		playable.setTarget(oldTarget);
+		playable.sendPacket(new SetupGauge(0, Config.SEGUNDS_SKILL_ANIMATION));	
+		playable.setIsImmobileUntilAttacked(true);
+		if(Config.ALLOW_DRESS_ME_SYSTEM)
+		{
+			if(!(playable instanceof L2PcInstance))
+				return;
+			L2PcInstance activeChar = (L2PcInstance)playable;
+			RequestBypassToServer.setPart(activeChar, "helmet", Config.SKIN_NAME2);
+			RequestBypassToServer.setPart(activeChar, "chest", Config.SKIN_NAME2);
+			RequestBypassToServer.setPart(activeChar, "legs", Config.SKIN_NAME2);
+			RequestBypassToServer.setPart(activeChar, "gloves", Config.SKIN_NAME2);
+			RequestBypassToServer.setPart(activeChar, "boots", Config.SKIN_NAME2);
+			
+			if (activeChar.isDressMeEnabled())
+			{
+				activeChar.setDressMeEnabled(false);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have disabled skin.");
+				
+			}
+			else
+			{
+				activeChar.setDressMeEnabled(true);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have activated " + Config.NAME2 + " skin.");
+			}
+		}
+		else
+			playable.sendMessage("Sorry, admin has disabled skins.");
+	}
+	
+	@Override
+	public int[] getItemIds()
+	{
+		return ITEM_IDS;
+	}
+	
+	private static final int ITEM_IDS[] = {
+		Config.SKIN_ITEM_2
+	};
+}
\ No newline at end of file
diff --git a/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin3.java b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin3.java
new file mode 100644
index 0000000..1ac31ab
--- /dev/null
+++ b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin3.java
@@ -0,0 +1,72 @@
+package com.l2jfrozen.gameserver.handler.itemhandlers;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.handler.IItemHandler;
+import com.l2jfrozen.gameserver.model.L2Object;
+import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
+import com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer;
+import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser;
+import com.l2jfrozen.gameserver.network.serverpackets.SetupGauge;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.util.Broadcast;
+
+public class Skin3 implements IItemHandler
+{
+	@Override
+	public void useItem(final L2PlayableInstance playable, final L2ItemInstance item)
+	{
+		ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				playable.setIsImmobileUntilAttacked(false);
+			}
+		}, Config.SEGUNDS_SKILL_ANIMATION);
+		final L2Object oldTarget = playable.getTarget();
+		playable.setTarget(playable);		
+		Broadcast.toSelfAndKnownPlayers(playable, new MagicSkillUser(playable, Config.SKILL_ID_SKIN3, 1, Config.SEGUNDS_SKILL_ANIMATION, 0));
+		playable.setTarget(oldTarget);
+		playable.sendPacket(new SetupGauge(0, Config.SEGUNDS_SKILL_ANIMATION));	
+		playable.setIsImmobileUntilAttacked(true);
+		if(Config.ALLOW_DRESS_ME_SYSTEM)
+		{
+			if(!(playable instanceof L2PcInstance))
+				return;
+			L2PcInstance activeChar = (L2PcInstance)playable;
+			RequestBypassToServer.setPart(activeChar, "helmet", Config.SKIN_NAME3);
+			RequestBypassToServer.setPart(activeChar, "chest", Config.SKIN_NAME3);
+			RequestBypassToServer.setPart(activeChar, "legs", Config.SKIN_NAME3);
+			RequestBypassToServer.setPart(activeChar, "gloves", Config.SKIN_NAME3);
+			RequestBypassToServer.setPart(activeChar, "boots", Config.SKIN_NAME3);
+			
+			if (activeChar.isDressMeEnabled())
+			{
+				activeChar.setDressMeEnabled(false);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have disabled skin.");
+				
+			}
+			else
+			{
+				activeChar.setDressMeEnabled(true);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have activated " + Config.NAME3 + " skin.");
+			}
+		}
+		else
+			playable.sendMessage("Sorry, admin has disabled skins.");
+	}
+	
+	@Override
+	public int[] getItemIds()
+	{
+		return ITEM_IDS;
+	}
+	
+	private static final int ITEM_IDS[] = {
+		Config.SKIN_ITEM_3
+	};
+}
\ No newline at end of file
diff --git a/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin4.java b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin4.java
new file mode 100644
index 0000000..4b43152
--- /dev/null
+++ b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin4.java
@@ -0,0 +1,72 @@
+package com.l2jfrozen.gameserver.handler.itemhandlers;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.handler.IItemHandler;
+import com.l2jfrozen.gameserver.model.L2Object;
+import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
+import com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer;
+import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser;
+import com.l2jfrozen.gameserver.network.serverpackets.SetupGauge;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.util.Broadcast;
+
+public class Skin4 implements IItemHandler
+{
+	@Override
+	public void useItem(final L2PlayableInstance playable, final L2ItemInstance item)
+	{
+		ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				playable.setIsImmobileUntilAttacked(false);
+			}
+		}, Config.SEGUNDS_SKILL_ANIMATION);
+		final L2Object oldTarget = playable.getTarget();
+		playable.setTarget(playable);		
+		Broadcast.toSelfAndKnownPlayers(playable, new MagicSkillUser(playable, Config.SKILL_ID_SKIN4, 1, Config.SEGUNDS_SKILL_ANIMATION, 0));
+		playable.setTarget(oldTarget);
+		playable.sendPacket(new SetupGauge(0, Config.SEGUNDS_SKILL_ANIMATION));	
+		playable.setIsImmobileUntilAttacked(true);
+		if(Config.ALLOW_DRESS_ME_SYSTEM)
+		{
+			if(!(playable instanceof L2PcInstance))
+				return;
+			L2PcInstance activeChar = (L2PcInstance)playable;
+			RequestBypassToServer.setPart(activeChar, "helmet", Config.SKIN_NAME4);
+			RequestBypassToServer.setPart(activeChar, "chest", Config.SKIN_NAME4);
+			RequestBypassToServer.setPart(activeChar, "legs", Config.SKIN_NAME4);
+			RequestBypassToServer.setPart(activeChar, "gloves", Config.SKIN_NAME4);
+			RequestBypassToServer.setPart(activeChar, "boots", Config.SKIN_NAME4);
+			
+			if (activeChar.isDressMeEnabled())
+			{
+				activeChar.setDressMeEnabled(false);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have disabled skin.");
+				
+			}
+			else
+			{
+				activeChar.setDressMeEnabled(true);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have activated " + Config.NAME4 + " skin.");
+			}
+		}
+		else
+			playable.sendMessage("Sorry, admin has disabled skins.");
+	}
+	
+	@Override
+	public int[] getItemIds()
+	{
+		return ITEM_IDS;
+	}
+	
+	private static final int ITEM_IDS[] = {
+		Config.SKIN_ITEM_4
+	};
+}
\ No newline at end of file
diff --git a/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin5.java b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin5.java
new file mode 100644
index 0000000..896d73d
--- /dev/null
+++ b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin5.java
@@ -0,0 +1,72 @@
+package com.l2jfrozen.gameserver.handler.itemhandlers;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.handler.IItemHandler;
+import com.l2jfrozen.gameserver.model.L2Object;
+import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
+import com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer;
+import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser;
+import com.l2jfrozen.gameserver.network.serverpackets.SetupGauge;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.util.Broadcast;
+
+public class Skin5 implements IItemHandler
+{
+	@Override
+	public void useItem(final L2PlayableInstance playable, final L2ItemInstance item)
+	{
+		ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				playable.setIsImmobileUntilAttacked(false);
+			}
+		}, Config.SEGUNDS_SKILL_ANIMATION);
+		final L2Object oldTarget = playable.getTarget();
+		playable.setTarget(playable);		
+		Broadcast.toSelfAndKnownPlayers(playable, new MagicSkillUser(playable, Config.SKILL_ID_SKIN5, 1, Config.SEGUNDS_SKILL_ANIMATION, 0));
+		playable.setTarget(oldTarget);
+		playable.sendPacket(new SetupGauge(0, Config.SEGUNDS_SKILL_ANIMATION));	
+		playable.setIsImmobileUntilAttacked(true);
+		if(Config.ALLOW_DRESS_ME_SYSTEM)
+		{
+			if(!(playable instanceof L2PcInstance))
+				return;
+			L2PcInstance activeChar = (L2PcInstance)playable;
+			RequestBypassToServer.setPart(activeChar, "helmet", Config.SKIN_NAME5);
+			RequestBypassToServer.setPart(activeChar, "chest", Config.SKIN_NAME5);
+			RequestBypassToServer.setPart(activeChar, "legs", Config.SKIN_NAME5);
+			RequestBypassToServer.setPart(activeChar, "gloves", Config.SKIN_NAME5);
+			RequestBypassToServer.setPart(activeChar, "boots", Config.SKIN_NAME5);
+			
+			if (activeChar.isDressMeEnabled())
+			{
+				activeChar.setDressMeEnabled(false);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have disabled skin.");
+				
+			}
+			else
+			{
+				activeChar.setDressMeEnabled(true);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have activated " + Config.NAME5 + " skin.");
+			}
+		}
+		else
+			playable.sendMessage("Sorry, admin has disabled skins.");
+	}
+	
+	@Override
+	public int[] getItemIds()
+	{
+		return ITEM_IDS;
+	}
+	
+	private static final int ITEM_IDS[] = {
+		Config.SKIN_ITEM_5
+	};
+}
\ No newline at end of file
diff --git a/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin6.java b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin6.java
new file mode 100644
index 0000000..4ed33eb
--- /dev/null
+++ b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin6.java
@@ -0,0 +1,71 @@
+package com.l2jfrozen.gameserver.handler.itemhandlers;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.handler.IItemHandler;
+import com.l2jfrozen.gameserver.model.L2Object;
+import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
+import com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer;
+import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser;
+import com.l2jfrozen.gameserver.network.serverpackets.SetupGauge;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.util.Broadcast;
+
+public class Skin6 implements IItemHandler
+{
+	@Override
+	public void useItem(final L2PlayableInstance playable, final L2ItemInstance item)
+	{
+		ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				playable.setIsImmobileUntilAttacked(false);
+			}
+		}, Config.SEGUNDS_SKILL_ANIMATION);
+		final L2Object oldTarget = playable.getTarget();
+		playable.setTarget(playable);		
+		Broadcast.toSelfAndKnownPlayers(playable, new MagicSkillUser(playable, Config.SKILL_ID_SKIN6, 1, Config.SEGUNDS_SKILL_ANIMATION, 0));
+		playable.setTarget(oldTarget);
+		playable.sendPacket(new SetupGauge(0, Config.SEGUNDS_SKILL_ANIMATION));	
+		playable.setIsImmobileUntilAttacked(true);
+		if(Config.ALLOW_DRESS_ME_SYSTEM)
+		{
+			if(!(playable instanceof L2PcInstance))
+				return;
+			L2PcInstance activeChar = (L2PcInstance)playable;
+			RequestBypassToServer.setPart(activeChar, "helmet", Config.SKIN_NAME6);
+			RequestBypassToServer.setPart(activeChar, "chest", Config.SKIN_NAME6);
+			RequestBypassToServer.setPart(activeChar, "legs", Config.SKIN_NAME6);
+			RequestBypassToServer.setPart(activeChar, "gloves", Config.SKIN_NAME6);
+			RequestBypassToServer.setPart(activeChar, "boots", Config.SKIN_NAME6);
+			
+			if (activeChar.isDressMeEnabled())
+			{
+				activeChar.setDressMeEnabled(false);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have disabled skin.");
+			}
+			else
+			{
+				activeChar.setDressMeEnabled(true);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have activated " + Config.NAME6 + " skin.");
+			}
+		}
+		else
+			playable.sendMessage("Sorry, admin has disabled skins.");
+	}
+	
+	@Override
+	public int[] getItemIds()
+	{
+		return ITEM_IDS;
+	}
+	
+	private static final int ITEM_IDS[] = {
+		Config.SKIN_ITEM_6
+	};
+}
\ No newline at end of file
diff --git a/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin7.java b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin7.java
new file mode 100644
index 0000000..9d40c21
--- /dev/null
+++ b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin7.java
@@ -0,0 +1,71 @@
+package com.l2jfrozen.gameserver.handler.itemhandlers;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.handler.IItemHandler;
+import com.l2jfrozen.gameserver.model.L2Object;
+import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
+import com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer;
+import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser;
+import com.l2jfrozen.gameserver.network.serverpackets.SetupGauge;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.util.Broadcast;
+
+public class Skin7 implements IItemHandler
+{
+	@Override
+	public void useItem(final L2PlayableInstance playable, final L2ItemInstance item)
+	{
+		ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				playable.setIsImmobileUntilAttacked(false);
+			}
+		}, Config.SEGUNDS_SKILL_ANIMATION);
+		final L2Object oldTarget = playable.getTarget();
+		playable.setTarget(playable);		
+		Broadcast.toSelfAndKnownPlayers(playable, new MagicSkillUser(playable, Config.SKILL_ID_SKIN7, 1, Config.SEGUNDS_SKILL_ANIMATION, 0));
+		playable.setTarget(oldTarget);
+		playable.sendPacket(new SetupGauge(0, Config.SEGUNDS_SKILL_ANIMATION));	
+		playable.setIsImmobileUntilAttacked(true);
+		if(Config.ALLOW_DRESS_ME_SYSTEM)
+		{
+			if(!(playable instanceof L2PcInstance))
+				return;
+			L2PcInstance activeChar = (L2PcInstance)playable;
+			RequestBypassToServer.setPart(activeChar, "helmet", Config.SKIN_NAME7);
+			RequestBypassToServer.setPart(activeChar, "chest", Config.SKIN_NAME7);
+			RequestBypassToServer.setPart(activeChar, "legs", Config.SKIN_NAME7);
+			RequestBypassToServer.setPart(activeChar, "gloves", Config.SKIN_NAME7);
+			RequestBypassToServer.setPart(activeChar, "boots", Config.SKIN_NAME7);
+			
+			if (activeChar.isDressMeEnabled())
+			{
+				activeChar.setDressMeEnabled(false);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have disabled skin.");
+			}
+			else
+			{
+				activeChar.setDressMeEnabled(true);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have activated " + Config.NAME7 + " skin.");
+			}
+		}
+		else
+			playable.sendMessage("Sorry, admin has disabled skins.");
+	}
+	
+	@Override
+	public int[] getItemIds()
+	{
+		return ITEM_IDS;
+	}
+	
+	private static final int ITEM_IDS[] = {
+		Config.SKIN_ITEM_7
+	};
+}
\ No newline at end of file
diff --git a/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin8.java b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin8.java
new file mode 100644
index 0000000..d85c549
--- /dev/null
+++ b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin8.java
@@ -0,0 +1,72 @@
+package com.l2jfrozen.gameserver.handler.itemhandlers;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.handler.IItemHandler;
+import com.l2jfrozen.gameserver.model.L2Object;
+import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
+import com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer;
+import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser;
+import com.l2jfrozen.gameserver.network.serverpackets.SetupGauge;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.util.Broadcast;
+
+public class Skin8 implements IItemHandler
+{
+	@Override
+	public void useItem(final L2PlayableInstance playable, final L2ItemInstance item)
+	{
+		ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				playable.setIsImmobileUntilAttacked(false);
+			}
+		}, Config.SEGUNDS_SKILL_ANIMATION);
+		final L2Object oldTarget = playable.getTarget();
+		playable.setTarget(playable);
+		Broadcast.toSelfAndKnownPlayers(playable, new MagicSkillUser(playable, Config.SKILL_ID_SKIN8, 1, Config.SEGUNDS_SKILL_ANIMATION, 0));
+		playable.setTarget(oldTarget);
+		playable.sendPacket(new SetupGauge(0, Config.SEGUNDS_SKILL_ANIMATION));
+		playable.setIsImmobileUntilAttacked(true);
+		if (Config.ALLOW_DRESS_ME_SYSTEM)
+		{
+			if (!(playable instanceof L2PcInstance))
+				return;
+			L2PcInstance activeChar = (L2PcInstance) playable;
+			RequestBypassToServer.setPart(activeChar, "helmet", Config.SKIN_NAME8);
+			RequestBypassToServer.setPart(activeChar, "chest", Config.SKIN_NAME8);
+			RequestBypassToServer.setPart(activeChar, "legs", Config.SKIN_NAME8);
+			RequestBypassToServer.setPart(activeChar, "gloves", Config.SKIN_NAME8);
+			RequestBypassToServer.setPart(activeChar, "boots", Config.SKIN_NAME8);
+			
+			if (activeChar.isDressMeEnabled())
+			{
+				activeChar.setDressMeEnabled(false);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have disabled skin.");
+			}
+			else
+			{
+				activeChar.setDressMeEnabled(true);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have activated " + Config.NAME8 + " skin.");
+			}
+		}
+		else
+			playable.sendMessage("Sorry, admin has disabled skins.");
+	}
+	
+	@Override
+	public int[] getItemIds()
+	{
+		return ITEM_IDS;
+	}
+	
+	private static final int ITEM_IDS[] =
+	{
+		Config.SKIN_ITEM_8
+	};
+}
\ No newline at end of file
diff --git a/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin9.java b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin9.java
new file mode 100644
index 0000000..3bd6819
--- /dev/null
+++ b/head-src/com/l2jfrozen/gameserver/handler/itemhandlers/Skin9.java
@@ -0,0 +1,71 @@
+package com.l2jfrozen.gameserver.handler.itemhandlers;
+
+import com.l2jfrozen.Config;
+import com.l2jfrozen.gameserver.handler.IItemHandler;
+import com.l2jfrozen.gameserver.model.L2Object;
+import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance;
+import com.l2jfrozen.gameserver.network.clientpackets.RequestBypassToServer;
+import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser;
+import com.l2jfrozen.gameserver.network.serverpackets.SetupGauge;
+import com.l2jfrozen.gameserver.thread.ThreadPoolManager;
+import com.l2jfrozen.gameserver.util.Broadcast;
+
+public class Skin9 implements IItemHandler
+{
+	@Override
+	public void useItem(final L2PlayableInstance playable, final L2ItemInstance item)
+	{
+		ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
+		{
+			@Override
+			public void run()
+			{
+				playable.setIsImmobileUntilAttacked(false);
+			}
+		}, Config.SEGUNDS_SKILL_ANIMATION);
+		final L2Object oldTarget = playable.getTarget();
+		playable.setTarget(playable);		
+		Broadcast.toSelfAndKnownPlayers(playable, new MagicSkillUser(playable, Config.SKILL_ID_SKIN9, 1, Config.SEGUNDS_SKILL_ANIMATION, 0));
+		playable.setTarget(oldTarget);
+		playable.sendPacket(new SetupGauge(0, Config.SEGUNDS_SKILL_ANIMATION));	
+		playable.setIsImmobileUntilAttacked(true);
+		if(Config.ALLOW_DRESS_ME_SYSTEM)
+		{
+			if(!(playable instanceof L2PcInstance))
+				return;
+			L2PcInstance activeChar = (L2PcInstance)playable;
+			RequestBypassToServer.setPart(activeChar, "helmet", Config.SKIN_NAME9);
+			RequestBypassToServer.setPart(activeChar, "chest", Config.SKIN_NAME9);
+			RequestBypassToServer.setPart(activeChar, "legs", Config.SKIN_NAME9);
+			RequestBypassToServer.setPart(activeChar, "gloves", Config.SKIN_NAME9);
+			RequestBypassToServer.setPart(activeChar, "boots", Config.SKIN_NAME9);
+			
+			if (activeChar.isDressMeEnabled())
+			{
+				activeChar.setDressMeEnabled(false);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have disabled skin.");
+			}
+			else
+			{
+				activeChar.setDressMeEnabled(true);
+				activeChar.broadcastUserInfo();
+				activeChar.sendMessage("You have activated " + Config.NAME9 + " skin.");
+			}
+		}
+		else
+			playable.sendMessage("Sorry, admin has disabled skins.");
+	}
+	
+	@Override
+	public int[] getItemIds()
+	{
+		return ITEM_IDS;
+	}
+	
+	private static final int ITEM_IDS[] = {
+		Config.SKIN_ITEM_9
+	};
+}
\ No newline at end of file
diff --git a/head-src/com/l2jfrozen/gameserver/managers/DressMeData.java b/head-src/com/l2jfrozen/gameserver/managers/DressMeData.java
new file mode 100644
index 0000000..04e6dce
--- /dev/null
+++ b/head-src/com/l2jfrozen/gameserver/managers/DressMeData.java
@@ -0,0 +1,81 @@
+package com.l2jfrozen.gameserver.managers;
+
+public class DressMeData
+{
+	private int chestId,
+	helmetId,
+	legsId,
+	glovesId,
+	feetId,
+	weapId;
+	
+	public DressMeData()
+	{
+		helmetId = 0;
+		chestId = 0;
+		legsId = 0;
+		glovesId = 0;
+		feetId = 0;
+		weapId = 0;
+	}
+	
+	public int getHelmetId()
+	{
+		return helmetId;
+	}
+	
+	public int getChestId()
+	{
+		return chestId;
+	}
+	
+	public int getLegsId()
+	{
+		return legsId;
+	}
+	
+	public int getGlovesId()
+	{
+		return glovesId;
+	}
+	
+	public int getBootsId()
+	{
+		return feetId;
+	}
+	
+	public int getWeapId()
+	{
+		return weapId;
+	}
+	
+	public void setHelmetId(int val)
+	{
+		helmetId = val;
+	}
+	
+	public void setChestId(int val)
+	{
+		chestId = val;
+	}
+	
+	public void setLegsId(int val)
+	{
+		legsId = val;
+	}
+	
+	public void setGlovesId(int val)
+	{
+		glovesId = val;
+	}
+	
+	public void setBootsId(int val)
+	{
+		feetId = val;
+	}
+	
+	public void setWeapId(int val)
+	{
+		weapId = val;
+	}
+}
\ No newline at end of file
diff --git a/head-src/com/l2jfrozen/gameserver/model/L2Character.java b/head-src/com/l2jfrozen/gameserver/model/L2Character.java
index fc1cf18..19ffb4b 100644
--- a/head-src/com/l2jfrozen/gameserver/model/L2Character.java
+++ b/head-src/com/l2jfrozen/gameserver/model/L2Character.java
@@ -10956,7 +10956,17 @@
 	{
 		_isAttackDisabled = value;
 	}
-	
+	/**
+	 * <B><U> Overridden in </U> :</B><BR>
+	 * <BR>
+	 * <li>Player</li><BR>
+	 * <BR>
+	 * @param text The string to send.
+	 */
+	public void sendMessage(String text)
+	{
+		// default implementation
+	}
 	/*
 	 * AI not. Task
 	 */
diff --git a/head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java b/head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java
index 223b046..b318417 100644
--- a/head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java
+++ b/head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PcInstance.java
@@ -88,6 +88,7 @@
 import com.l2jfrozen.gameserver.managers.CoupleManager;
 import com.l2jfrozen.gameserver.managers.CursedWeaponsManager;
 import com.l2jfrozen.gameserver.managers.DimensionalRiftManager;
+import com.l2jfrozen.gameserver.managers.DressMeData;
 import com.l2jfrozen.gameserver.managers.DuelManager;
 import com.l2jfrozen.gameserver.managers.FortSiegeManager;
 import com.l2jfrozen.gameserver.managers.ItemsOnGroundManager;
@@ -19485,7 +19486,27 @@
 		sendMessage("========================");
 		
 	}
+	private DressMeData _dressmedata = null;
+	private boolean _dressed = false;
+	public DressMeData getDressMeData()
+	{
+		return _dressmedata;
+	}
 	
+	public void setDressMeData(DressMeData val)
+	{
+		_dressmedata = val;
+	}
+	
+	public boolean isDressMeEnabled()
+	{
+		return _dressed;
+	}
+	
+	public void setDressMeEnabled(boolean val)
+	{
+		_dressed = val;
+	}
 	public long getLastAttackPacket()
 	{
 		return _lastAttackPacket;
diff --git a/head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestBypassToServer.java b/head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestBypassToServer.java
index 921c087..0ca34f7 100644
--- a/head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestBypassToServer.java
+++ b/head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestBypassToServer.java
@@ -29,6 +29,8 @@
 import com.l2jfrozen.gameserver.handler.AdminCommandHandler;
 import com.l2jfrozen.gameserver.handler.IAdminCommandHandler;
 import com.l2jfrozen.gameserver.handler.custom.CustomBypassHandler;
+import com.l2jfrozen.gameserver.managers.DressMeData;
+import com.l2jfrozen.gameserver.model.Inventory;
 import com.l2jfrozen.gameserver.model.L2Object;
 import com.l2jfrozen.gameserver.model.L2World;
 import com.l2jfrozen.gameserver.model.actor.instance.L2ClassMasterInstance;
@@ -331,7 +333,201 @@
 		// activeChar.clearBypass();
 		// }
 	}
-	
+	public static void setPart(L2PcInstance p, String part, String type)
+	{
+		if (p.getDressMeData() == null)
+		{
+			DressMeData dmd = new DressMeData();
+			p.setDressMeData(dmd);
+		}
+		
+		switch (part)
+		{
+			
+			case "helmet":
+			{
+				if (Config.DRESS_ME_HELMET.keySet().contains(type))
+				{
+					p.getDressMeData().setHelmetId(Config.DRESS_ME_HELMET.get(type));
+				}
+				
+				break;
+			}
+			
+			
+			case "chest":
+			{
+				if (Config.DRESS_ME_CHESTS.keySet().contains(type))
+				{
+					p.getDressMeData().setChestId(Config.DRESS_ME_CHESTS.get(type));
+				}
+				
+				break;
+			}
+			case "legs":
+			{
+				if (Config.DRESS_ME_LEGS.keySet().contains(type))
+				{
+					p.getDressMeData().setLegsId(Config.DRESS_ME_LEGS.get(type));
+				}
+				
+				break;
+			}
+			case "gloves":
+			{
+				if (Config.DRESS_ME_GLOVES.keySet().contains(type))
+				{
+					p.getDressMeData().setGlovesId(Config.DRESS_ME_GLOVES.get(type));
+				}
+				
+				break;
+			}
+			case "boots":
+			{
+				if (Config.DRESS_ME_BOOTS.keySet().contains(type))
+				{
+					p.getDressMeData().setBootsId(Config.DRESS_ME_BOOTS.get(type));
+				}
+				
+				break;
+			}
+			
+		}
+		
+		p.broadcastUserInfo();
+		//		sendEditWindow(p, part);
+	}
+	public static void stealTarget(L2PcInstance p, String part)
+	{
+		if (p.getTarget() == null || !(p.getTarget() instanceof L2PcInstance))
+		{
+			p.sendMessage("Invalid target.");
+			return;
+		}
+		
+		L2PcInstance t = (L2PcInstance)p.getTarget();
+		
+		if (p.getDressMeData() == null)
+		{
+			DressMeData dmd = new DressMeData();
+			p.setDressMeData(dmd);
+		}
+		
+		
+		switch (part)
+		{
+			case "helmet":
+			{
+				if (t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_FACE) == null)
+				{
+					p.getDressMeData().setHelmetId(0);
+				}
+				else
+				{
+					p.getDressMeData().setHelmetId(t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_FACE).getItemId());
+				}
+				break;
+			}
+			
+			case "chest":
+			{
+				if (t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST) == null)
+				{
+					p.getDressMeData().setChestId(0);
+				}
+				else
+				{
+					p.getDressMeData().setChestId(t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST).getItemId());
+				}
+				break;
+			}
+			case "legs":
+			{
+				if (t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEGS) == null)
+				{
+					p.getDressMeData().setLegsId(0);
+				}
+				else
+				{
+					p.getDressMeData().setLegsId(t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEGS).getItemId());
+				}
+				break;
+			}
+			case "gloves":
+			{
+				if (t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES) == null)
+				{
+					p.getDressMeData().setGlovesId(0);
+				}
+				else
+				{
+					p.getDressMeData().setGlovesId(t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES).getItemId());
+				}
+				break;
+			}
+			case "boots":
+			{
+				if (t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET) == null)
+				{
+					p.getDressMeData().setBootsId(0);
+				}
+				else
+				{
+					p.getDressMeData().setBootsId(t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET).getItemId());
+				}
+				break;
+			}
+			case "all":
+			{
+				
+				if (t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_FACE) == null)
+				{
+					p.getDressMeData().setHelmetId(0);
+				}
+				else
+				{
+					p.getDressMeData().setHelmetId(t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_FACE).getItemId());
+				}
+				
+				if (t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST) == null)
+				{
+					p.getDressMeData().setChestId(0);
+				}
+				else
+				{
+					p.getDressMeData().setChestId(t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST).getItemId());
+				}
+				if (t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEGS) == null)
+				{
+					p.getDressMeData().setLegsId(0);
+				}
+				else
+				{
+					p.getDressMeData().setLegsId(t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEGS).getItemId());
+				}
+				if (t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES) == null)
+				{
+					p.getDressMeData().setGlovesId(0);
+				}
+				else
+				{
+					p.getDressMeData().setGlovesId(t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES).getItemId());
+				}
+				if (t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET) == null)
+				{
+					p.getDressMeData().setBootsId(0);
+				}
+				else
+				{
+					p.getDressMeData().setBootsId(t.getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET).getItemId());
+				}
+				
+				break;
+			}
+		}
+		
+		p.broadcastUserInfo();
+	}
 	/**
 	 * @param activeChar
 	 */
diff --git a/head-src/com/l2jfrozen/gameserver/network/serverpackets/CharInfo.java b/head-src/com/l2jfrozen/gameserver/network/serverpackets/CharInfo.java
index 840eff9..1550b8f 100644
--- a/head-src/com/l2jfrozen/gameserver/network/serverpackets/CharInfo.java
+++ b/head-src/com/l2jfrozen/gameserver/network/serverpackets/CharInfo.java
@@ -230,18 +230,37 @@
 				writeD(_activeChar.getBaseClass());
 			}
 			
-			writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DHAIR));
-			writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
-			writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
-			writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_LHAND));
-			writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_GLOVES));
-			writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_CHEST));
-			writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_LEGS));
-			writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_FEET));
-			writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_BACK));
-			writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_LRHAND));
-			writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
-			writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_FACE));
+			if (!_activeChar.isDressMeEnabled())
+			{
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_DHAIR));
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_LHAND));
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_GLOVES));
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_CHEST));
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_LEGS));
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_FEET));
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_BACK));
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_LRHAND));
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_FACE));
+			}
+			else
+			{
+				
+				writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_DHAIR));
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_LHAND));
+				writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_GLOVES) : (_activeChar.getDressMeData().getGlovesId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_GLOVES) : _activeChar.getDressMeData().getGlovesId()));
+				writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST) : (_activeChar.getDressMeData().getChestId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST) : _activeChar.getDressMeData().getChestId()));
+				writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEGS) : (_activeChar.getDressMeData().getLegsId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEGS) : _activeChar.getDressMeData().getLegsId()));
+				writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FEET) : (_activeChar.getDressMeData().getBootsId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FEET) : _activeChar.getDressMeData().getBootsId()));
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_BACK));
+				writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
+				writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FACE) : (_activeChar.getDressMeData().getHelmetId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FACE) : _activeChar.getDressMeData().getHelmetId()));
+				writeD(_inv.getPaperdollObjectId(Inventory.PAPERDOLL_HAIR));
+			}
 			
 			// c6 new h's
 			writeH(0x00);
diff --git a/head-src/com/l2jfrozen/gameserver/network/serverpackets/UserInfo.java b/head-src/com/l2jfrozen/gameserver/network/serverpackets/UserInfo.java
index ed24e1f..0fcbabb 100644
--- a/head-src/com/l2jfrozen/gameserver/network/serverpackets/UserInfo.java
+++ b/head-src/com/l2jfrozen/gameserver/network/serverpackets/UserInfo.java
@@ -139,6 +139,8 @@
 		
 		writeD(_activeChar.getActiveWeaponItem() != null ? 40 : 20); // 20 no weapon, 40 weapon equippe
 		
+		if (!_activeChar.isDressMeEnabled())
+		{
 		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_DHAIR));
 		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_REAR));
 		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LEAR));
@@ -156,7 +158,7 @@
 		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LRHAND));
 		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_HAIR));
 		writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_FACE));
-		
+			
 		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DHAIR));
 		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_REAR));
 		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEAR));
@@ -174,6 +176,47 @@
 		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LRHAND));
 		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
 		writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FACE));
+		}
+		else
+		{
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DHAIR) : (_activeChar.getDressMeData().getHelmetId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DHAIR) : _activeChar.getDressMeData().getHelmetId()));
+			
+			writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_REAR));
+			writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LEAR));
+			writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_NECK));
+			writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_RFINGER));
+			writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LFINGER));
+			writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_HEAD));
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_RHAND) : (_activeChar.getDressMeData().getWeapId() == 0 ? _activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_RHAND) : _activeChar.getDressMeData().getWeapId()));
+			writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LHAND));
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_GLOVES) : (_activeChar.getDressMeData().getGlovesId() == 0 ? _activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_GLOVES) : _activeChar.getDressMeData().getGlovesId()));
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_CHEST) : (_activeChar.getDressMeData().getChestId() == 0 ? _activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_CHEST) : _activeChar.getDressMeData().getChestId()));
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LEGS) : (_activeChar.getDressMeData().getLegsId() == 0 ? _activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LEGS) : _activeChar.getDressMeData().getLegsId()));
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_FEET) : (_activeChar.getDressMeData().getBootsId() == 0 ? _activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_FEET) : _activeChar.getDressMeData().getBootsId()));
+			writeD(_activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_BACK));
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_RHAND) : (_activeChar.getDressMeData().getWeapId() == 0 ? _activeChar.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_RHAND) : _activeChar.getDressMeData().getWeapId()));
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR) : (_activeChar.getDressMeData().getHelmetId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR) : _activeChar.getDressMeData().getHelmetId()));
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FACE) : (_activeChar.getDressMeData().getHelmetId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FACE) : _activeChar.getDressMeData().getHelmetId()));
+			
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DHAIR) : (_activeChar.getDressMeData().getHelmetId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_DHAIR) : _activeChar.getDressMeData().getHelmetId()));
+			writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_REAR));
+			writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEAR));
+			writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_NECK));
+			writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RFINGER));
+			writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LFINGER));
+			writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RHAND) : (_activeChar.getDressMeData().getWeapId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RHAND) : _activeChar.getDressMeData().getWeapId()));
+			writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LHAND));
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_GLOVES) : (_activeChar.getDressMeData().getGlovesId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_GLOVES) : _activeChar.getDressMeData().getGlovesId()));
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST) : (_activeChar.getDressMeData().getChestId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST) : _activeChar.getDressMeData().getChestId()));
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEGS) : (_activeChar.getDressMeData().getLegsId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEGS) : _activeChar.getDressMeData().getLegsId()));
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FEET) : (_activeChar.getDressMeData().getBootsId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FEET) : _activeChar.getDressMeData().getBootsId()));
+			writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_BACK));
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RHAND) : (_activeChar.getDressMeData().getWeapId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RHAND) : _activeChar.getDressMeData().getWeapId()));
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR) : (_activeChar.getDressMeData().getHelmetId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR) : _activeChar.getDressMeData().getHelmetId()));
+			writeD(_activeChar.getDressMeData() == null ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FACE) : (_activeChar.getDressMeData().getHelmetId() == 0 ? _activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FACE) : _activeChar.getDressMeData().getHelmetId()));
+			
+		}
 		
 		writeH(0x00);
 		writeH(0x00);

 

Link para o comentário
Compartilhar em outros sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Processando...
  • Registre-se

    Faça parte da maior e  mais antigas comunidades sobre Lineage2 da América Latina.





  • Patrocinadores

  • Quem Está Navegando

    • Nenhum usuário registrado visualizando esta página.
  • Posts

    • Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?     Teria como fazer do dusk shield e do zombie shield dessa maneira?    
    • muchas gracias muy lindos NPC 🙂
    • relaxa jovem gafanhoto, testa as quests. e posTa os erros indesejaveis.  
    • Se alguém pudesse me ensinar como codificar as missões, eu ficaria feliz em fazer isso sozinho ou pelo menos ajudar. Eu realmente quero jogar em um servidor onde todas as quests funcionem bem e melhor ainda se você puder fazer quests customizadas!
    • mas no interlude, nem todas as quests de class,  vai mostrar onde tem que ir, ate o reborn nao mostrava quando era interlude, só mostrou depois que eles colocaram client classic pra rodar, e ficou melhor ainda quando virou hellbound em diante, mas ha sim alguma chance de modificar isso direto no script para fazer igualmente, só basta te um pouco de paciencia e persistencia exato
    • 408_PathToElvenwizard dá Orion eu tive que mexer tbm, até modifiquei e consegui deixar ela igual do Classic, com a seta e a marcação no mapa. (não retail IL) Dá pra importar py de várias revs, o foda é que não da regular as quest py através do debug em tempo real, pelo menos eu não consegui rsrs
    • Hasta el momento todas las QUESTS son completables si te guias con un tutorial de youtube. El problema es que tienen bugs de locacion y de subquests que no avanzan o no te marcan correctamente a donde ir en el mapa, cosa que en Retail si se ve como corresponde.
    • estranho, mas pelo menos a galera nunca reclamo das quests quando tinha aberto 5x, geral fez class primeira e segunda job, poucos que compraram a class
    • en RUSaCis-3.5 data pack, las Quests estan en formato .java y son diferentes a como estan redactadas en jOrion y jFrozen 1.5 (ProyectX) package net.sf.l2j.gameserver.scripting.quest; import net.sf.l2j.commons.random.Rnd; import net.sf.l2j.gameserver.enums.Paperdoll; import net.sf.l2j.gameserver.enums.QuestStatus; import net.sf.l2j.gameserver.enums.actors.ClassId; import net.sf.l2j.gameserver.model.actor.Creature; import net.sf.l2j.gameserver.model.actor.Npc; import net.sf.l2j.gameserver.model.actor.Player; import net.sf.l2j.gameserver.network.serverpackets.SocialAction; import net.sf.l2j.gameserver.scripting.QuestState; public class Q224_TestOfSagittarius extends SecondClassQuest { private static final String QUEST_NAME = "Q224_TestOfSagittarius"; // Items private static final int BERNARD_INTRODUCTION = 3294; private static final int HAMIL_LETTER_1 = 3295; private static final int HAMIL_LETTER_2 = 3296; private static final int HAMIL_LETTER_3 = 3297; private static final int HUNTER_RUNE_1 = 3298; private static final int HUNTER_RUNE_2 = 3299; private static final int TALISMAN_OF_KADESH = 3300; private static final int TALISMAN_OF_SNAKE = 3301; private static final int MITHRIL_CLIP = 3302; private static final int STAKATO_CHITIN = 3303; private static final int REINFORCED_BOWSTRING = 3304; private static final int MANASHEN_HORN = 3305; private static final int BLOOD_OF_LIZARDMAN = 3306; private static final int CRESCENT_MOON_BOW = 3028; private static final int WOODEN_ARROW = 17; // Rewards private static final int MARK_OF_SAGITTARIUS = 3293; // NPCs private static final int BERNARD = 30702; private static final int HAMIL = 30626; private static final int SIR_ARON_TANFORD = 30653; private static final int VOKIAN = 30514; private static final int GAUEN = 30717; // Monsters private static final int ANT = 20079; private static final int ANT_CAPTAIN = 20080; private static final int ANT_OVERSEER = 20081; private static final int ANT_RECRUIT = 20082; private static final int ANT_PATROL = 20084; private static final int ANT_GUARD = 20086; private static final int NOBLE_ANT = 20089; private static final int NOBLE_ANT_LEADER = 20090; private static final int BREKA_ORC_SHAMAN = 20269; private static final int BREKA_ORC_OVERLORD = 20270; private static final int MARSH_STAKATO_WORKER = 20230; private static final int MARSH_STAKATO_SOLDIER = 20232; private static final int MARSH_STAKATO_DRONE = 20234; private static final int MARSH_SPIDER = 20233; private static final int ROAD_SCAVENGER = 20551; private static final int MANASHEN_GARGOYLE = 20563; private static final int LETO_LIZARDMAN = 20577; private static final int LETO_LIZARDMAN_ARCHER = 20578; private static final int LETO_LIZARDMAN_SOLDIER = 20579; private static final int LETO_LIZARDMAN_WARRIOR = 20580; private static final int LETO_LIZARDMAN_SHAMAN = 20581; private static final int LETO_LIZARDMAN_OVERLORD = 20582; private static final int SERPENT_DEMON_KADESH = 27090; public Q224_TestOfSagittarius() { super(224, "Test Of Sagittarius"); setItemsIds(BERNARD_INTRODUCTION, HAMIL_LETTER_1, HAMIL_LETTER_2, HAMIL_LETTER_3, HUNTER_RUNE_1, HUNTER_RUNE_2, TALISMAN_OF_KADESH, TALISMAN_OF_SNAKE, MITHRIL_CLIP, STAKATO_CHITIN, REINFORCED_BOWSTRING, MANASHEN_HORN, BLOOD_OF_LIZARDMAN, CRESCENT_MOON_BOW); addQuestStart(BERNARD); addTalkId(BERNARD, HAMIL, SIR_ARON_TANFORD, VOKIAN, GAUEN); addMyDying(ANT, ANT_CAPTAIN, ANT_OVERSEER, ANT_RECRUIT, ANT_PATROL, ANT_GUARD, NOBLE_ANT, NOBLE_ANT_LEADER, BREKA_ORC_SHAMAN, BREKA_ORC_OVERLORD, MARSH_STAKATO_WORKER, MARSH_STAKATO_SOLDIER, MARSH_STAKATO_DRONE, MARSH_SPIDER, ROAD_SCAVENGER, MANASHEN_GARGOYLE, LETO_LIZARDMAN, LETO_LIZARDMAN_ARCHER, LETO_LIZARDMAN_SOLDIER, LETO_LIZARDMAN_WARRIOR, LETO_LIZARDMAN_SHAMAN, LETO_LIZARDMAN_OVERLORD, SERPENT_DEMON_KADESH); } @Override public String onAdvEvent(String event, Npc npc, Player player) { String htmltext = event; QuestState st = player.getQuestList().getQuestState(QUEST_NAME); if (st == null) return htmltext; // BERNARD if (event.equalsIgnoreCase("30702-04.htm")) { st.setState(QuestStatus.STARTED); st.setCond(1); playSound(player, SOUND_ACCEPT); giveItems(player, BERNARD_INTRODUCTION, 1); if (giveDimensionalDiamonds39(player)) htmltext = "30702-04a.htm"; } // HAMIL else if (event.equalsIgnoreCase("30626-03.htm")) { st.setCond(2); playSound(player, SOUND_MIDDLE); takeItems(player, BERNARD_INTRODUCTION, 1); giveItems(player, HAMIL_LETTER_1, 1); } else if (event.equalsIgnoreCase("30626-07.htm")) { st.setCond(5); playSound(player, SOUND_MIDDLE); takeItems(player, HUNTER_RUNE_1, 10); giveItems(player, HAMIL_LETTER_2, 1); } // SIR_ARON_TANFORD else if (event.equalsIgnoreCase("30653-02.htm")) { st.setCond(3); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_1, 1); } // VOKIAN else if (event.equalsIgnoreCase("30514-02.htm")) { st.setCond(6); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_2, 1); } return htmltext; } @Override public String onTalk(Npc npc, Player player) { String htmltext = getNoQuestMsg(); QuestState st = player.getQuestList().getQuestState(QUEST_NAME); if (st == null) return htmltext; switch (st.getState()) { case CREATED: if (player.getClassId() != ClassId.ROGUE && player.getClassId() != ClassId.ELVEN_SCOUT && player.getClassId() != ClassId.ASSASSIN) htmltext = "30702-02.htm"; else if (player.getStatus().getLevel() < 39) htmltext = "30702-01.htm"; else htmltext = "30702-03.htm"; break; case STARTED: int cond = st.getCond(); switch (npc.getNpcId()) { case BERNARD: htmltext = "30702-05.htm"; break; case HAMIL: if (cond == 1) htmltext = "30626-01.htm"; else if (cond == 2 || cond == 3) htmltext = "30626-04.htm"; else if (cond == 4) htmltext = "30626-05.htm"; else if (cond > 4 && cond < 8) htmltext = "30626-08.htm"; else if (cond == 8) { htmltext = "30626-09.htm"; st.setCond(9); playSound(player, SOUND_MIDDLE); takeItems(player, HUNTER_RUNE_2, 10); giveItems(player, HAMIL_LETTER_3, 1); } else if (cond > 8 && cond < 12) htmltext = "30626-10.htm"; else if (cond == 12) { htmltext = "30626-11.htm"; st.setCond(13); playSound(player, SOUND_MIDDLE); } else if (cond == 13) htmltext = "30626-12.htm"; else if (cond == 14) { htmltext = "30626-13.htm"; takeItems(player, BLOOD_OF_LIZARDMAN, -1); takeItems(player, CRESCENT_MOON_BOW, 1); takeItems(player, TALISMAN_OF_KADESH, 1); giveItems(player, MARK_OF_SAGITTARIUS, 1); rewardExpAndSp(player, 54726, 20250); player.broadcastPacket(new SocialAction(player, 3)); playSound(player, SOUND_FINISH); st.exitQuest(false); } break; case SIR_ARON_TANFORD: if (cond == 2) htmltext = "30653-01.htm"; else if (cond > 2) htmltext = "30653-03.htm"; break; case VOKIAN: if (cond == 5) htmltext = "30514-01.htm"; else if (cond == 6) htmltext = "30514-03.htm"; else if (cond == 7) { htmltext = "30514-04.htm"; st.setCond(8); playSound(player, SOUND_MIDDLE); takeItems(player, TALISMAN_OF_SNAKE, 1); } else if (cond > 7) htmltext = "30514-05.htm"; break; case GAUEN: if (cond == 9) { htmltext = "30717-01.htm"; st.setCond(10); playSound(player, SOUND_MIDDLE); takeItems(player, HAMIL_LETTER_3, 1); } else if (cond == 10) htmltext = "30717-03.htm"; else if (cond == 11) { htmltext = "30717-02.htm"; st.setCond(12); playSound(player, SOUND_MIDDLE); takeItems(player, MANASHEN_HORN, 1); takeItems(player, MITHRIL_CLIP, 1); takeItems(player, REINFORCED_BOWSTRING, 1); takeItems(player, STAKATO_CHITIN, 1); giveItems(player, CRESCENT_MOON_BOW, 1); giveItems(player, WOODEN_ARROW, 10); } else if (cond > 11) htmltext = "30717-04.htm"; break; } break; case COMPLETED: htmltext = getAlreadyCompletedMsg(); break; } return htmltext; } @Override public void onMyDying(Npc npc, Creature killer) { final Player player = killer.getActingPlayer(); final QuestState st = checkPlayerState(player, npc, QuestStatus.STARTED); if (st == null) return; switch (npc.getNpcId()) { case ANT: case ANT_CAPTAIN: case ANT_OVERSEER: case ANT_RECRUIT: case ANT_PATROL: case ANT_GUARD: case NOBLE_ANT: case NOBLE_ANT_LEADER: if (st.getCond() == 3 && dropItems(player, HUNTER_RUNE_1, 1, 10, 500000)) st.setCond(4); break; case BREKA_ORC_SHAMAN: case BREKA_ORC_OVERLORD: if (st.getCond() == 6 && dropItems(player, HUNTER_RUNE_2, 1, 10, 500000)) { st.setCond(7); giveItems(player, TALISMAN_OF_SNAKE, 1); } break; case MARSH_STAKATO_WORKER: case MARSH_STAKATO_SOLDIER: case MARSH_STAKATO_DRONE: if (st.getCond() == 10 && dropItems(player, STAKATO_CHITIN, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, MITHRIL_CLIP, REINFORCED_BOWSTRING)) st.setCond(11); break; case MARSH_SPIDER: if (st.getCond() == 10 && dropItems(player, REINFORCED_BOWSTRING, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, MITHRIL_CLIP, STAKATO_CHITIN)) st.setCond(11); break; case ROAD_SCAVENGER: if (st.getCond() == 10 && dropItems(player, MITHRIL_CLIP, 1, 1, 100000) && player.getInventory().hasItems(MANASHEN_HORN, REINFORCED_BOWSTRING, STAKATO_CHITIN)) st.setCond(11); break; case MANASHEN_GARGOYLE: if (st.getCond() == 10 && dropItems(player, MANASHEN_HORN, 1, 1, 100000) && player.getInventory().hasItems(REINFORCED_BOWSTRING, MITHRIL_CLIP, STAKATO_CHITIN)) st.setCond(11); break; case LETO_LIZARDMAN: case LETO_LIZARDMAN_ARCHER: case LETO_LIZARDMAN_SOLDIER: case LETO_LIZARDMAN_WARRIOR: case LETO_LIZARDMAN_SHAMAN: case LETO_LIZARDMAN_OVERLORD: if (st.getCond() == 13) { if (((player.getInventory().getItemCount(BLOOD_OF_LIZARDMAN) - 120) * 5) > Rnd.get(100)) { playSound(player, SOUND_BEFORE_BATTLE); takeItems(player, BLOOD_OF_LIZARDMAN, -1); addSpawn(SERPENT_DEMON_KADESH, player, false, 300000, true); } else dropItemsAlways(player, BLOOD_OF_LIZARDMAN, 1, 0); } break; case SERPENT_DEMON_KADESH: if (st.getCond() == 13) { if (player.getInventory().getItemIdFrom(Paperdoll.RHAND) == CRESCENT_MOON_BOW) { st.setCond(14); playSound(player, SOUND_MIDDLE); giveItems(player, TALISMAN_OF_KADESH, 1); } else addSpawn(SERPENT_DEMON_KADESH, player, false, 300000, true); } break; } } }  
×
×
  • Criar Novo...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.