Al utilizar el comando, guarda la armadura actual para luego editar visualmente la armadura indicada a continuación.
Los datos se guardan en la base de datos, ideal para personalizar armaduras.
CitarCORE:
Index: java/com/l2jserver/extensions/VisualArmorController.java
===================================================================
--- java/com/l2jserver/extensions/VisualArmorController.java (revision 0)
java/com/l2jserver/extensions/VisualArmorController.java (revision 0)
@@ -0,0 1,373 @@
/*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see .
*/
package com.l2jserver.extensions;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.datatables.ItemTable;
import com.l2jserver.gameserver.model.L2ItemInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.itemcontainer.Inventory;
import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
import com.l2jserver.gameserver.templates.item.L2Armor;
import com.l2jserver.gameserver.templates.item.L2ArmorType;
import com.l2jserver.gameserver.templates.item.L2Item;
import com.l2jserver.gameserver.templates.item.L2Weapon;
import com.l2jserver.gameserver.templates.item.L2WeaponType;
/**
* @author giorgakis
*
*/
public class VisualArmorController
{
//As of freya there are 19 weapon types.
public static final int totalWeaponTypes = 19;
//As of freya there are 6 armor types.
public static final int totalArmorTypes = 6;
public static boolean[][] weaponMapping = new boolean[totalWeaponTypes][totalWeaponTypes];
public static boolean[][] armorMapping = new boolean[totalArmorTypes][totalArmorTypes];
public static void migrate()
{
System.out.println("[VisualArmor]:Migrating the database.");
Connection con = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = con.prepareStatement(VisualArmorModel.CREATE);
statement.execute();
statement.close();
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
try { con.close(); } catch (Exception e) {}
}
}
public static void load()
{
migrate();
generateMappings();
}
/**
* All same type armors and same type weapons can get visual. All different types
* cannot get visual unless it is stated in here.
*/
public static void generateMappings()
{
for(int i =0; i< weaponMapping.length; i )
for(int j = 0; j< weaponMapping.length; j )
weaponMapping[i][j]=false;
for(int i =0; i< armorMapping.length; i )
for(int j = 0; j< armorMapping.length; j )
armorMapping[i][j]=false;
callRules();
}
public static void callRules()
{
//Example: a Virtual sword can mount an Equipped blunt.
weaponMapping[L2WeaponType.SWORD.ordinal()][L2WeaponType.BLUNT.ordinal()] = true;
//Example: a Virtual blunt can mount an Equipped sword.
weaponMapping[L2WeaponType.BLUNT.ordinal()][L2WeaponType.SWORD.ordinal()] = true;
weaponMapping[L2WeaponType.BIGSWORD.ordinal()][L2WeaponType.BIGBLUNT.ordinal()] = true;
weaponMapping[L2WeaponType.BIGBLUNT.ordinal()][L2WeaponType.BIGSWORD.ordinal()] = true;
armorMapping[L2ArmorType.SIGIL.ordinal()][L2ArmorType.SHIELD.ordinal()] = true;
armorMapping[L2ArmorType.SHIELD.ordinal()][L2ArmorType.SIGIL.ordinal()] = true;
//armorMapping[L2ArmorType.HEAVY.ordinal()][L2ArmorType.LIGHT.ordinal()] = true;
//armorMapping[L2ArmorType.HEAVY.ordinal()][L2ArmorType.MAGIC.ordinal()] = true;
//armorMapping[L2ArmorType.LIGHT.ordinal()][L2ArmorType.HEAVY.ordinal()] = true;
//armorMapping[L2ArmorType.LIGHT.ordinal()][L2ArmorType.MAGIC.ordinal()] = true;
//armorMapping[L2ArmorType.MAGIC.ordinal()][L2ArmorType.LIGHT.ordinal()] = true;
//armorMapping[L2ArmorType.MAGIC.ordinal()][L2ArmorType.HEAVY.ordinal()] = true;
}
/**
* Checks if the weapon is the same type. If that is true then return
* the matching virtual id. Else check the mapping tables if any
* rule states that the two different weapon types should be matched.
* @param virtual
* @param equiped
* @param matchId
* @param noMatchId
* @return
*/
public static int weaponMatching(L2WeaponType virtual, L2WeaponType equiped, int matchId, int noMatchId)
{
if(virtual == equiped)
return matchId;
if(weaponMapping[virtual.ordinal()][equiped.ordinal()] == true)
{
return matchId;
}
return noMatchId;
}
/**
* Checks if the armor is the same type. If that is true then return
* the matching virtual id. Else check the mapping tables if any
* rule states that the two different armor types should be matched.
* @param virtual
* @param equiped
* @param matchId
* @param noMatchId
* @return
*/
public static int armorMatching(L2ArmorType virtual, L2ArmorType equiped, int matchId , int noMatchId)
{
if(virtual == equiped)
return matchId;
if(armorMapping[virtual.ordinal()][equiped.ordinal()] == true)
return matchId;
return noMatchId;
}
public static void setVirtualRhand(L2PcInstance actor)
{
actor.visualArmor.weaponRHANDId = actor.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RHAND);
}
public static void setVirtualLhand(L2PcInstance actor)
{
actor.visualArmor.weaponLHANDId = actor.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LHAND);
}
public static void setVirtualGloves(L2PcInstance actor)
{
actor.visualArmor.glovesTextureId = actor.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_GLOVES);
}
public static void setVirtualBody(L2PcInstance actor)
{
actor.visualArmor.armorTextureId = actor.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST);
}
public static void setVirtualPants(L2PcInstance actor)
{
int chestId = actor.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST);
int pantsId = actor.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEGS);
if(chestId != 0 && pantsId==0)
actor.visualArmor.pantsTextureId = chestId;
else
actor.visualArmor.pantsTextureId = pantsId;
}
public static void setVirtualBoots(L2PcInstance actor)
{
actor.visualArmor.bootsTextureId = actor.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FEET);
}
//TODO: Merge the armor getters in one function.
public static int getVirtualGloves(L2PcInstance actor)
{
L2ItemInstance equipedItem = actor.getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES);
if(equipedItem == null)
return 0;
//ClassCastException wont happen unless some jackass changes the values from the database.
L2Armor equipedGloves = (L2Armor)actor.getInventory().getPaperdollItem(Inventory.PAPERDOLL_GLOVES).getItem();
int equipedGlovesId = actor.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_GLOVES);
int glovesTextureId = actor.visualArmor.glovesTextureId;
L2Armor virtualGloves = (L2Armor)ItemTable.getInstance().getTemplate(glovesTextureId);
if(glovesTextureId != 0)
return armorMatching(virtualGloves.getItemType(), equipedGloves.getItemType(),glovesTextureId, equipedGlovesId);
else
return equipedGlovesId;
}
public static int getVirtualBody(L2PcInstance actor)
{
L2ItemInstance equipedItem = actor.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST);
if(equipedItem == null)
return 0;
//ClassCastException wont happen unless some jackass changes the values from the database.
L2Armor equipedChest = (L2Armor)actor.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST).getItem();
int equipedChestId = actor.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST);
int chestTextureId = actor.visualArmor.armorTextureId;
L2Armor virtualChest = (L2Armor)ItemTable.getInstance().getTemplate(chestTextureId);
if(chestTextureId != 0)
return armorMatching(virtualChest.getItemType(), equipedChest.getItemType(),chestTextureId, equipedChestId);
else
return equipedChestId;
}
/**
* This is a brain fu**er handling the pants since they are
* also part of a fullbody armor.
* @param actor
* @return
*/
public static int getVirtualPants(L2PcInstance actor)
{
L2ItemInstance equipedItem = actor.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LEGS);
//Here comes the tricky part. If pants are null, then check for a fullbody armor.
if(equipedItem == null)
equipedItem = actor.getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST);
if(equipedItem == null)
return 0;
int pantsTextureId = actor.visualArmor.pantsTextureId;
L2Armor equipedPants = (L2Armor) equipedItem.getItem();
if(equipedPants.getBodyPart() != L2Item.SLOT_FULL_ARMOR && equipedPants.getBodyPart() != L2Item.SLOT_LEGS)
return 0;
int equipedPantsId = actor.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEGS);
L2Armor virtualPants = (L2Armor)ItemTable.getInstance().getTemplate(pantsTextureId);
if(pantsTextureId != 0)
return armorMatching(virtualPants.getItemType(), equipedPants.getItemType(),pantsTextureId, equipedPantsId);
else
return equipedPantsId;
}
public static int getVirtualBoots(L2PcInstance actor)
{
L2ItemInstance equipedItem = actor.getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET);
if(equipedItem == null)
return 0;
//ClassCastException wont happen unless some jackass changes the values from the database.
L2Armor equipedBoots = (L2Armor)actor.getInventory().getPaperdollItem(Inventory.PAPERDOLL_FEET).getItem();
int equipedBootsId = actor.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FEET);
int bootsTextureId = actor.visualArmor.bootsTextureId;
L2Armor virtualGloves = (L2Armor)ItemTable.getInstance().getTemplate(bootsTextureId);
if(bootsTextureId != 0)
return armorMatching(virtualGloves.getItemType(), equipedBoots.getItemType(),bootsTextureId, equipedBootsId);
else
return equipedBootsId;
}
public static int getLHAND(L2PcInstance actor)
{
L2ItemInstance equipedItem = actor.getInventory().getPaperdollItem(Inventory.PAPERDOLL_LHAND);
int equipedItemId = actor.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LHAND);
int weaponLHANDId = actor.visualArmor.weaponLHANDId;
L2Item virtualItem = ItemTable.getInstance().getTemplate(weaponLHANDId);
if(equipedItem == null || weaponLHANDId == 0)
return equipedItemId;
//Only check same weapon types. Virtual replacement should not happen between armor/weapons.
if(equipedItem.getItem() instanceof L2Weapon && virtualItem instanceof L2Weapon)
{
L2Weapon weapon = (L2Weapon) equipedItem.getItem();
L2Weapon virtualweapon = (L2Weapon)virtualItem;
return weaponMatching(virtualweapon.getItemType(), weapon.getItemType(), weaponLHANDId, equipedItemId);
}
else if(equipedItem.getItem() instanceof L2Armor && virtualItem instanceof L2Armor)
{
L2Armor armor = (L2Armor) equipedItem.getItem();
L2Armor virtualarmor = (L2Armor)virtualItem;
return armorMatching(virtualarmor.getItemType(), armor.getItemType(), weaponLHANDId, equipedItemId);
}
return equipedItemId;
}
public static int getRHAND(L2PcInstance actor)
{
int weaponRHANDId = actor.visualArmor.weaponRHANDId;
L2ItemInstance equipedItem = actor.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
int equipedItemId = actor.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RHAND);
L2Item virtualItem = ItemTable.getInstance().getTemplate(weaponRHANDId);
if(equipedItem == null || weaponRHANDId == 0)
return equipedItemId;
//Only check same weapon types. Virtual replacement should not happen between armor/weapons.
if(equipedItem.getItem() instanceof L2Weapon && virtualItem instanceof L2Weapon)
{
L2Weapon weapon = (L2Weapon) equipedItem.getItem();
L2Weapon virtualweapon = (L2Weapon)virtualItem;
return weaponMatching(virtualweapon.getItemType(), weapon.getItemType(), weaponRHANDId, equipedItemId);
}
else if(equipedItem.getItem() instanceof L2Armor && virtualItem instanceof L2Armor)
{
L2Armor armor = (L2Armor) equipedItem.getItem();
L2Armor virtualarmor = (L2Armor)virtualItem;
return armorMatching(virtualarmor.getItemType(), armor.getItemType(), weaponRHANDId, equipedItemId);
}
return equipedItemId;
}
public static int getCloak(L2PcInstance actor)
{
if(actor.visualArmor.weaponLRHANDId == 1)
return 0;
else
return actor.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CLOAK);
}
public static void dressMe(L2PcInstance activeChar)
{
setVirtualBody(activeChar);
setVirtualGloves(activeChar);
setVirtualPants(activeChar);
setVirtualBoots(activeChar);
setVirtualLhand(activeChar);
setVirtualRhand(activeChar);
InventoryUpdate iu = new InventoryUpdate();
activeChar.sendPacket(iu);
activeChar.broadcastUserInfo();
InventoryUpdate iu2 = new InventoryUpdate();
activeChar.sendPacket(iu2);
activeChar.broadcastUserInfo();
activeChar.sendMessage("You changed clothes.");
activeChar.visualArmor.updateVisualArmor();
}
}
Index: java/com/l2jserver/extensions/VisualArmorModel.java
===================================================================
--- java/com/l2jserver/extensions/VisualArmorModel.java (revision 0)
java/com/l2jserver/extensions/VisualArmorModel.java (revision 0)
@@ -0,0 1,171 @@
/*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see .
*/
package com.l2jserver.extensions;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
/**
* @author Issle
*
*/
public class VisualArmorModel
{
private static final String RESTORE_VISUAL_ARMOR = "SELECT
GlovesId,ChestId,BootsId,PantsId,LeftHandId,RightHandId,DoubleHandId
FROM visual_armor WHERE CharId=?";
private static final String UPDATE_VISUAL_ARMOR = "UPDATE
visual_armor SET
GlovesId=?,ChestId=?,BootsId=?,PantsId=?,LeftHandId=?,RightHandId=?,DoubleHandId=?
WHERE CharId=?";
private static final String CREATE_VISUAL_ARMOR = "INSERT INTO
visual_armor
(CharId,GlovesId,ChestId,BootsId,PantsId,LeftHandId,RightHandId,DoubleHandId)
values (?,?,?,?,?,?,?,?)";
public static final String CREATE =
"CREATE TABLE IF NOT EXISTS `visual_armor` ("
"`CharId` int(11) NOT NULL,"
"`GlovesId` int(11) NOT NULL DEFAULT '0',"
"`BootsId` int(11) NOT NULL DEFAULT '0',"
"`ChestId` int(11) NOT NULL DEFAULT '0',"
"`PantsId` int(11) NOT NULL DEFAULT '0',"
"`LeftHandId` int(11) NOT NULL DEFAULT '0',"
"`RightHandId` int(11) NOT NULL DEFAULT '0',"
"`DoubleHandId` int(11) NOT NULL DEFAULT '0',PRIMARY KEY (`CharId`))";
public static final String DROP =
"DROP TABLE 'visual_armor'";
public int glovesTextureId=0;
public int armorTextureId=0;
public int pantsTextureId=0;
public int bootsTextureId=0;
public int weaponLHANDId=0;
public int weaponRHANDId=0;
public int weaponLRHANDId=0;
public int ownerId;
public void updateVisualArmor()
{
Connection con = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = con.prepareStatement(UPDATE_VISUAL_ARMOR);
statement.setInt(1, glovesTextureId);
statement.setInt(2, armorTextureId);
statement.setInt(3, bootsTextureId);
statement.setInt(4, pantsTextureId);
statement.setInt(5, weaponLHANDId);
statement.setInt(6, weaponRHANDId);
statement.setInt(7, weaponLRHANDId);
statement.setInt(8, ownerId);
statement.execute();
statement.close();
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
try { con.close(); } catch (Exception e) {}
}
}
public VisualArmorModel(L2PcInstance activeChar)
{
ownerId = activeChar.getObjectId();
Connection con = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = con.prepareStatement(RESTORE_VISUAL_ARMOR);
statement.setInt(1, ownerId);
ResultSet rset = statement.executeQuery();
boolean got = false;
while(rset.next())
{
glovesTextureId = rset.getInt("GlovesId");
armorTextureId = rset.getInt("ChestId");
pantsTextureId = rset.getInt("PantsId");
bootsTextureId = rset.getInt("BootsId");
weaponLHANDId = rset.getInt("LeftHandId");
weaponRHANDId = rset.getInt("RightHandId");
weaponLRHANDId = rset.getInt("DoubleHandId");
got = true;
}
rset.close();
statement.close();
if(got == false)
{
createVisualArmor();
}
InventoryUpdate iu = new InventoryUpdate();
activeChar.sendPacket(iu);
activeChar.broadcastUserInfo();
InventoryUpdate iu2 = new InventoryUpdate();
activeChar.sendPacket(iu2);
activeChar.broadcastUserInfo();
activeChar.sendMessage("You changed clothes.");
}
catch (SQLException e)
{
e.printStackTrace();
}
finally
{
try { con.close(); } catch (Exception e) {}
}
}
public void createVisualArmor() throws SQLException
{
Connection con = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement statement = con.prepareStatement(CREATE_VISUAL_ARMOR);
statement.setInt(1, ownerId);
statement.setInt(2, 0);
statement.setInt(3, 0);
statement.setInt(4, 0);
statement.setInt(5, 0);
statement.setInt(6, 0);
statement.setInt(7, 0);
statement.setInt(8, 0);
statement.executeUpdate();
statement.close();
}
catch (Exception e)
{
e.printStackTrace();
}
finally
{
try { con.close(); } catch (Exception e) {}
}
}
}
Index: java/com/l2jserver/gameserver/GameServer.java
===================================================================
--- java/com/l2jserver/gameserver/GameServer.java (revision 4469)
java/com/l2jserver/gameserver/GameServer.java (working copy)
@@ -32,6 32,7 @@
import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.Server;
import com.l2jserver.extensions.VisualArmorController;
import com.l2jserver.gameserver.cache.CrestCache;
import com.l2jserver.gameserver.cache.HtmCache;
import com.l2jserver.gameserver.datatables.AccessLevels;
@@ -315,6 316,7 @@
BoatManager.getInstance();
AirShipManager.getInstance();
GraciaSeedsManager.getInstance();
VisualArmorController.load();
try
{
Index: java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 4469)
java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (working copy)
@@ -38,6 38,7 @@
import com.l2jserver.Config;
import com.l2jserver.L2DatabaseFactory;
import com.l2jserver.extensions.VisualArmorModel;
import com.l2jserver.gameserver.Announcements;
import com.l2jserver.gameserver.GameTimeController;
import com.l2jserver.gameserver.GeoData;
@@ -274,6 275,7 @@
*/
public final class L2PcInstance extends L2Playable
{
public VisualArmorModel visualArmor;
// Character Skill SQL String Definitions:
private static final String RESTORE_SKILLS_FOR_CHAR = "SELECT
skill_id,skill_level FROM character_skills WHERE charId=? AND
class_index=?";
private static final String ADD_NEW_SKILL = "INSERT INTO
character_skills (charId,skill_id,skill_level,class_index) VALUES
(?,?,?,?)";
@@ -324,6 326,8 @@
public static final int STORE_PRIVATE_MANUFACTURE = 5;
public static final int STORE_PRIVATE_PACKAGE_SELL = 8;
/** The table containing all minimum level needed for each Expertise (None, D, C, B, A, S, S80, S84)*/
private static final int[] EXPERTISE_LEVELS =
{
@@ -1254,6 1258,7 @@
if (!Config.WAREHOUSE_CACHE)
getWarehouse();
startVitalityTask();
visualArmor = new VisualArmorModel(this);
}
private L2PcInstance(int objectId)
Index: java/com/l2jserver/gameserver/network/serverpackets/CharInfo.java
===================================================================
--- java/com/l2jserver/gameserver/network/serverpackets/CharInfo.java (revision 4469)
java/com/l2jserver/gameserver/network/serverpackets/CharInfo.java (working copy)
@@ -17,6 17,7 @@
import java.util.logging.Logger;
import com.l2jserver.Config;
import com.l2jserver.extensions.VisualArmorController;
import com.l2jserver.gameserver.datatables.NpcTable;
import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;
import com.l2jserver.gameserver.model.actor.L2Decoy;
@@ -249,20 250,20 @@
writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
if (_airShipHelm == 0)
{
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_LHAND));
writeD(VisualArmorController.getRHAND(_activeChar));
writeD(VisualArmorController.getLHAND(_activeChar));
}
else
{
writeD(_airShipHelm);
writeD(0);
}
- 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_CLOAK));
- writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
writeD(VisualArmorController.getVirtualGloves(_activeChar));
writeD(VisualArmorController.getVirtualBody(_activeChar));
writeD(VisualArmorController.getVirtualPants(_activeChar));
writeD(VisualArmorController.getVirtualBoots(_activeChar));
writeD(VisualArmorController.getCloak(_activeChar));
writeD(VisualArmorController.getRHAND(_activeChar));
writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
writeD(_inv.getPaperdollItemId(Inventory.PAPERDOLL_HAIR2));
// T1 new d's
Index: java/com/l2jserver/gameserver/network/serverpackets/UserInfo.java
===================================================================
--- java/com/l2jserver/gameserver/network/serverpackets/UserInfo.java (revision 4469)
java/com/l2jserver/gameserver/network/serverpackets/UserInfo.java (working copy)
@@ -15,6 15,7 @@
package com.l2jserver.gameserver.network.serverpackets;
import com.l2jserver.Config;
import com.l2jserver.extensions.VisualArmorController;
import com.l2jserver.gameserver.datatables.NpcTable;
import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;
import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
@@ -192,20 193,20 @@
writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HEAD));
if (_airShipHelm == 0)
{
- writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
- writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LHAND));
writeD(VisualArmorController.getRHAND(_activeChar));
writeD(VisualArmorController.getLHAND(_activeChar));
}
else
{
writeD(_airShipHelm);
writeD(0);
}
- writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_GLOVES));
- writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CHEST));
- writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_LEGS));
- writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_FEET));
- writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_CLOAK));
- writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RHAND));
writeD(VisualArmorController.getVirtualGloves(_activeChar));
writeD(VisualArmorController.getVirtualBody(_activeChar));
writeD(VisualArmorController.getVirtualPants(_activeChar));
writeD(VisualArmorController.getVirtualBoots(_activeChar));
writeD(VisualArmorController.getCloak(_activeChar));
writeD(VisualArmorController.getRHAND(_activeChar));
writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR));
writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_HAIR2));
writeD(_activeChar.getInventory().getPaperdollItemId(Inventory.PAPERDOLL_RBRACELET));
CitarDATA:
Index: data/scripts/handlers/MasterHandler.java===================================================================
--- data/scripts/handlers/MasterHandler.java (revision 7732)
data/scripts/handlers/MasterHandler.java (working copy)
@@ -245,6 245,7 @@
import handlers.voicedcommandhandlers.Debug;
import handlers.voicedcommandhandlers.Lang;
import handlers.voicedcommandhandlers.TvTVoicedInfo;
import handlers.voicedcommandhandlers.VisualArmor;
import handlers.voicedcommandhandlers.Wedding;
import handlers.voicedcommandhandlers.stats;
@@ -550,6 551,8 @@
VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new Lang());
if (Config.L2JMOD_DEBUG_VOICE_COMMAND)
VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new Debug());
VoicedCommandHandler.getInstance().registerVoicedCommandHandler(new VisualArmor());
_log.config("Loaded " VoicedCommandHandler.getInstance().size() " VoicedHandlers");
}
Index: data/scripts/handlers/voicedcommandhandlers/VisualArmor.java
===================================================================
--- data/scripts/handlers/voicedcommandhandlers/VisualArmor.java (revision 0)
data/scripts/handlers/voicedcommandhandlers/VisualArmor.java (revision 0)
@@ -0,0 1,65 @@
/*
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 3 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see .
*/
package handlers.voicedcommandhandlers;
import com.l2jserver.extensions.VisualArmorController;
import com.l2jserver.gameserver.handler.IVoicedCommandHandler;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
public class VisualArmor implements IVoicedCommandHandler
{
private static final String[] VOICED_COMMANDS =
{
"dressme"
};
public boolean useVoicedCommand(String command, L2PcInstance activeChar, String params)
{
if(command.contains("dressme"))
{
VisualArmorController.dressMe(activeChar);
activeChar.sendMessage("Dressme command enabled.");
}
return true;
}
public String[] getVoicedCommandList()
{
return VOICED_COMMANDS;
}
}
\ No newline at end of file