Facebook
From Scanty Baboon, 1 Year ago, written in Plain Text.
This paste is a reply to Skin aCis from Williams and Stinkymadness - go back
Embed
Viewing differences between Skin aCis and Re: Skin aCis
diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/UserInfo.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/UserInfo.java
index 4be8789..0c79f70 100644
--- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/UserInfo.java
+++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/UserInfo.java
@@ -4,6 +4,7 @@
 import net.sf.l2j.gameserver.data.manager.CursedWeaponManager;
 import net.sf.l2j.gameserver.enums.PolyType;
 import net.sf.l2j.gameserver.enums.skills.AbnormalEffect;
+import net.sf.l2j.gameserver.model.DressMe;
 import net.sf.l2j.gameserver.model.actor.Player;
 import net.sf.l2j.gameserver.model.actor.Summon;
 import net.sf.l2j.gameserver.model.itemcontainer.Inventory;
@@ -55,6 +56,7 @@
                 writeD(_player.getMaxLoad());
                 writeD(_player.getActiveWeaponItem() != null ? 40 : 20);
                 
+                final DressMe dress = _player.getDress();
                 writeD(_player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_HAIRALL));
                 writeD(_player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_REAR));
                 writeD(_player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LEAR));
@@ -64,13 +66,13 @@
                 writeD(_player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_HEAD));
                 writeD(_player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_RHAND));
                 writeD(_player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LHAND));
-                writeD(_player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_GLOVES));
-                writeD(_player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_CHEST));
-                writeD(_player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LEGS));
-                writeD(_player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_FEET));
+                writeD(dress != null ? dress.getGlovesId() : _player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_GLOVES));
+                writeD(dress != null ? dress.getChestId() : _player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_CHEST));
+                writeD(dress != null ? dress.getLegsId() : _player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_LEGS));
+                writeD(dress != null ? dress.getFeetId() : _player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_FEET));
                 writeD(_player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_BACK));
                 writeD(_player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_RHAND));
-                writeD(_player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_HAIR));
+                writeD(dress != null ? dress.getHairId() : _player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_HAIR));
                 writeD(_player.getInventory().getPaperdollObjectId(Inventory.PAPERDOLL_FACE));
                 
                 writeD(_player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIRALL));
@@ -82,13 +84,13 @@
                 writeD(_player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
                 writeD(_player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
                 writeD(_player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LHAND));
-                writeD(_player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_GLOVES));
-                writeD(_player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST));
-                writeD(_player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEGS));
-                writeD(_player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FEET));
+                writeD(dress != null ? dress.getGlovesId() : _player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_GLOVES));
+                writeD(dress != null ? dress.getChestId() : _player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST));
+                writeD(dress != null ? dress.getLegsId() : _player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEGS));
+                writeD(dress != null ? dress.getFeetId() : _player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FEET));
                 writeD(_player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_BACK));
                 writeD(_player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
-                writeD(_player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
+                writeD(dress != null ? dress.getHairId() : _player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
                 writeD(_player.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FACE));
                 
                 writeH(0x00);
diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/CharInfo.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/CharInfo.java
index 6212b93..b81b28a 100644
--- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/CharInfo.java
+++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/CharInfo.java
@@ -3,6 +3,7 @@
 import net.sf.l2j.Config;
 import net.sf.l2j.gameserver.data.manager.CursedWeaponManager;
 import net.sf.l2j.gameserver.enums.skills.AbnormalEffect;
+import net.sf.l2j.gameserver.model.DressMe;
 import net.sf.l2j.gameserver.model.actor.Player;
 import net.sf.l2j.gameserver.model.actor.Summon;
 import net.sf.l2j.gameserver.model.itemcontainer.Inventory;
@@ -29,29 +30,30 @@
                         if (tmp != null && tmp.isGM())
                                 canSeeInvis = true;
                 }
                 writeD((_player.getClassIndex() == 0) ? _player.getClassId().getId() : _player.getBaseClass());
                 
+                final DressMe dress = _player.getDress();
                 writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HAIRALL));
                 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(dress != null ? dress.getGlovesId() : _inv.getPaperdollItemId(Inventory.PAPERDOLL_GLOVES));
+                writeD(dress != null ? dress.getChestId() : _inv.getPaperdollItemId(Inventory.PAPERDOLL_CHEST));
+                writeD(dress != null ? dress.getLegsId() : _inv.getPaperdollItemId(Inventory.PAPERDOLL_LEGS));
+                writeD(dress != null ? dress.getFeetId() : _inv.getPaperdollItemId(Inventory.PAPERDOLL_FEET));
                 writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_BACK));
                 writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
-                writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
+                writeD(dress != null ? dress.getHairId() : _inv.getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
                 writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_FACE));
                 
                 writeH(0x00);
diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/Skins.java b/aCis_gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/Skins.java
new file mode 100644
index 0000000..98d8580
--- /dev/null
+++ b/aCis_gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/Skins.java
@@ -0,0 +1,31 @@
+package net.sf.l2j.gameserver.handler.itemhandlers;
+
+import net.sf.l2j.gameserver.data.xml.DressMeData;
+import net.sf.l2j.gameserver.handler.IItemHandler;
+import net.sf.l2j.gameserver.model.DressMe;
+import net.sf.l2j.gameserver.model.actor.Playable;
+import net.sf.l2j.gameserver.model.actor.Player;
+import net.sf.l2j.gameserver.model.item.instance.ItemInstance;
+import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse;
+
+/**
+ * @author Williams and Stinkymadness
+ */
+public class Skins implements IItemHandler
+{
+        @Override
+        public void useItem(Playable playable, ItemInstance item, boolean forceUse)
+        {
+                if (!(playable instanceof Player))
+                        return;
+                
+                final DressMe dress = DressMeData.getInstance().getItemId(item.getItemId());
+                if (dress == null)
+                        return;
+                
+                final Player player = (Player) playable;
+                player.setDress(dress);
+                player.broadcastPacket(new MagicSkillUse(player, player, 1036, 1, 4000, 0));
+                player.broadcastUserInfo();
+        }
+}
diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/handler/ItemHandler.java b/aCis_gameserver/java/net/sf/l2j/gameserver/handler/ItemHandler.java
index b1df7fd..7b6ee78 100644
--- a/aCis_gameserver/java/net/sf/l2j/gameserver/handler/ItemHandler.java
+++ b/aCis_gameserver/java/net/sf/l2j/gameserver/handler/ItemHandler.java
@@ -28,11 +28,13 @@
 import net.sf.l2j.gameserver.handler.itemhandlers.NobleCoin;
 import net.sf.l2j.gameserver.handler.itemhandlers.PaganKeys;
 import net.sf.l2j.gameserver.handler.itemhandlers.PetFood;
 import net.sf.l2j.gameserver.handler.itemhandlers.Recipes;
 import net.sf.l2j.gameserver.handler.itemhandlers.RollingDice;
 import net.sf.l2j.gameserver.handler.itemhandlers.ScrollOfResurrection;
 import net.sf.l2j.gameserver.handler.itemhandlers.SeedHandler;
 import net.sf.l2j.gameserver.handler.itemhandlers.SevenSignsRecord;
+import net.sf.l2j.gameserver.handler.itemhandlers.Skins;
 import net.sf.l2j.gameserver.handler.itemhandlers.SoulCrystals;
 import net.sf.l2j.gameserver.handler.itemhandlers.SoulShots;
 import net.sf.l2j.gameserver.handler.itemhandlers.SpecialXMas;
@@ -80,6 +83,7 @@
                 registerHandler(new SevenSignsRecord());
                 registerHandler(new SoulShots());
                 registerHandler(new SpecialXMas());
+                registerHandler(new Skins());
                 registerHandler(new SoulCrystals());
                 registerHandler(new SpiritShot());
                 registerHandler(new SummonItems());
diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/data/xml/DressMeData.java b/aCis_gameserver/java/net/sf/l2j/gameserver/data/xml/DressMeData.java
new file mode 100644
index 0000000..178bb63
--- /dev/null
+++ b/aCis_gameserver/java/net/sf/l2j/gameserver/data/xml/DressMeData.java
@@ -0,0 +1,63 @@
+package net.sf.l2j.gameserver.data.xml;
+
+import java.nio.file.Path;
+import java.util.ArrayList;
+import java.util.List;
+
+import net.sf.l2j.commons.data.xml.IXmlReader;
+
+import net.sf.l2j.gameserver.model.DressMe;
+
+import org.w3c.dom.Document;
+
+/**
+ * @author Williams and Stinkymadness
+ */
+public class DressMeData implements IXmlReader
+{
+        private final List _entries = new ArrayList<>();
+        
+        public DressMeData()
+        {
+                load();
+        }
+        
+        public void reload()
+        {
+                _entries.clear();
+                load();
+        }
+        
+        @Override
+        public void load()
+        {
+                parseFile("./data/xml/dressme.xml");
+                LOGGER.info("Loaded {} dressme templates.", _entries.size());
+        }
+        
+        @Override
+        public void parseDocument(Document doc, Path path)
+        {
+                forEach(doc, "list", listNode -> forEach(listNode, "dressme", dressNode -> _entries.add(new DressMe(parseAttributes(dressNode)))));
+        }
+        
+        public DressMe getItemId(int itemId)
+        {
+                return _entries.stream().filter(x -> x.getItemId() == itemId).findFirst().orElse(null);
+        }
+        
+        public List getEntries()
+        {
+                return _entries;
+        }
+        
+        public static DressMeData getInstance()
+        {
+                return SingletonHolder.INSTANCE;
+        }
+        
+        private static class SingletonHolder
+        {
+                protected static final DressMeData INSTANCE = new DressMeData();
+        }
+}
diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminAdmin.java b/aCis_gameserver/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminAdmin.java
index a9e88c0..64a30e8 100644
--- a/aCis_gameserver/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminAdmin.java
+++ b/aCis_gameserver/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminAdmin.java
@@ -13,8 +13,12 @@
 import net.sf.l2j.gameserver.data.manager.ZoneManager;
 import net.sf.l2j.gameserver.data.xml.AdminData;
 import net.sf.l2j.gameserver.data.xml.AnnouncementData;
 import net.sf.l2j.gameserver.data.xml.DoorData;
+import net.sf.l2j.gameserver.data.xml.DressMeData;
 import net.sf.l2j.gameserver.data.xml.EnchantData;
+import net.sf.l2j.gameserver.data.xml.ItemRestrictionData;
 import net.sf.l2j.gameserver.data.xml.MultisellData;
 import net.sf.l2j.gameserver.data.xml.NpcData;
 import net.sf.l2j.gameserver.data.xml.PolymorphData;
@@ -145,6 +154,16 @@
                                                 CursedWeaponManager.getInstance().reload();
                                                 activeChar.sendMessage("Cursed weapons have been reloaded.");
                                         }
+                                        else if (type.startsWith("dress"))
+                                        {
+                                                DressMeData.getInstance().reload();
+                                                activeChar.sendMessage("Dress me have been reloaded.");
+                                        }
@@ -208,8 +232,8 @@
                                         else
                                         {
                                                 activeChar.sendMessage("Usage : //reload ");
-                                                activeChar.sendMessage("Usage : //reload ");
-                                                activeChar.sendMessage("Usage : //reload ");
+                                                activeChar.sendMessage("Usage : //reload ");
+                                                activeChar.sendMessage("Usage : //reload ");
                                         }
                                 }
                                 while (st.hasMoreTokens());
@@ -217,8 +241,8 @@
                         catch (Exception e)
                         {
                                 activeChar.sendMessage("Usage : //reload ");
-                                activeChar.sendMessage("Usage : //reload ");
-                                activeChar.sendMessage("Usage : //reload ");
+                                activeChar.sendMessage("Usage : //reload ");
+                                activeChar.sendMessage("Usage : //reload ");
                         }
                 }
                 return true;
diff --git a/aCis_datapack/data/html/admin/server_menu.htm b/aCis_datapack/data/html/admin/server_menu.htm
index a8a32e4..68a1f06 100644
--- a/aCis_datapack/data/html/admin/server_menu.htm
+++ b/aCis_datapack/data/html/admin/server_menu.htm
@@ -18,7 +18,7 @@
         Reload
         
                 
-                        
+                        
                         
                 
         

diff --git a/aCis_datapack/data/xml/dressme.xml b/aCis_datapack/data/xml/dressme.xml
new file mode 100644
index 0000000..06139d2
--- /dev/null
+++ b/aCis_datapack/data/xml/dressme.xml
@@ -0,0 +1,34 @@
+
+
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+        
+