Noticias:

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

Menú Principal

Mensajes recientes

#81
L2 | Apartado de Soporte / VoteReward Topzone
Último mensaje por matiasl2 - Nov 04, 2025, 11:13 PM
hola gente , queria q me ayuden lo antes posible , me aceptaron los top en mi server y me dan esto para el votereward

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

como puedo colocarlo , se q es java , a lo q voy es como lo colocaria en mi server freya ... para q me funcione ?

porq tiene varios y nose cual tendria q implementar , alguno me ayudaria ,
gracias
#82
L2 | Apartado de Soporte / Formato fecha respawn
Último mensaje por motorhead - Nov 04, 2025, 11:12 PM
Buenas, me gustaria saber cual es el formato de la fecha marcada en la foto.

No puedes ver este adjunto.

en la tabla aparece "1489347675", el gameserver lo carga como "16:41 - 12.03.2017

me gustaria saber a que se deben esos numeros y como funcionan, para poder modificar las fechas a antojo de antemano gracias!

Saludos!.
#83
L2 | Apartado de Soporte / Modificar comando Dressme
Último mensaje por motorhead - Nov 04, 2025, 11:11 PM
Buenas, tratare  de explicar el problema de la forma mas sencilla posible  :-*


Pude poner en mi proyecto un dressme que saque del source de fandc (l2 tales) que hace tiempo andaba en la red.

me carga sin problemas. Lo que quiero ahora es modificar una cosa:

Este mod tiene la opcion para ver o deshabilitar la visual de las texturas custom en los demas jugadores, es decir, el player decide si quiere ver o no los customs de los demas (tal como muestran las imagenes 1 y 2).

Por defecto, viene habilitada la opcion de NO moestar las texturas de los demas players, lo que significa que los jugadores deben activar los efectos visuales antes de poder verlos en los demas.

Mi pregunta es: Puedo cambiar la opcion que viene por defecto?
Para que los jugadores vean las texturas por defecto y la opcion de no verlas sea opcional y no al reves como esta?

Aqui el codigo del No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.

package handler.voicecommands;

import java.util.HashMap;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import l2f.commons.dao.JdbcEntityState;
import l2f.gameserver.Config;
import l2f.gameserver.data.htm.HtmCache;
import l2f.gameserver.data.xml.holder.DressArmorHolder;
import l2f.gameserver.data.xml.holder.DressCloakHolder;
import l2f.gameserver.data.xml.holder.DressShieldHolder;
import l2f.gameserver.data.xml.holder.DressWeaponHolder;
import l2f.gameserver.data.xml.holder.ItemHolder;
import l2f.gameserver.handler.voicecommands.IVoicedCommandHandler;
import l2f.gameserver.handler.voicecommands.VoicedCommandHandler;
import l2f.gameserver.model.DressArmorData;
import l2f.gameserver.model.DressCloakData;
import l2f.gameserver.model.DressShieldData;
import l2f.gameserver.model.DressWeaponData;
import l2f.gameserver.model.Player;
import l2f.gameserver.model.World;
import l2f.gameserver.model.items.Inventory;
import l2f.gameserver.model.items.ItemInstance;
import l2f.gameserver.network.serverpackets.CharInfo;
import l2f.gameserver.scripts.Functions;
import l2f.gameserver.scripts.ScriptFile;
import l2f.gameserver.templates.item.ItemTemplate;
import l2f.gameserver.templates.item.ItemType;
import l2f.gameserver.utils.Util;

public class DressMe implements IVoicedCommandHandler, ScriptFile
{
    private static final Logger _log = LoggerFactory.getLogger(DressMe.class);

    private static Map<Integer, DressWeaponData> SWORD;
    private static Map<Integer, DressWeaponData> BLUNT;
    private static Map<Integer, DressWeaponData> DAGGER;
    private static Map<Integer, DressWeaponData> BOW;
    private static Map<Integer, DressWeaponData> POLE;
    private static Map<Integer, DressWeaponData> FIST;
    private static Map<Integer, DressWeaponData> DUAL;
    private static Map<Integer, DressWeaponData> DUALFIST;
    private static Map<Integer, DressWeaponData> BIGSWORD;
    private static Map<Integer, DressWeaponData> ROD;
    private static Map<Integer, DressWeaponData> BIGBLUNT;
    private static Map<Integer, DressWeaponData> CROSSBOW;
    private static Map<Integer, DressWeaponData> RAPIER;
    private static Map<Integer, DressWeaponData> ANCIENTSWORD;
    private static Map<Integer, DressWeaponData> DUALDAGGER;

    private String[] _commandList = new String[] {
            "dressme",
            "dressme-armor",
            "dressme-cloak",
            "dressme-shield",
            "dressme-weapon",
            "dress-armor",
            "dress-cloak",
            "dress-shield",
            "dress-weapon",
            "dress-armorpage",
            "dress-cloakpage",
            "dress-shieldpage",
            "dress-weaponpage",
            "dressinfo",
            "undressme",
            "undressme-armor",
            "undressme-cloak",
            "undressme-shield",
            "undressme-weapon",
            "showdress",
            "hidedress" };

    @Override
    public boolean useVoicedCommand(String command, Player player, String args)
    {
        if(!Config.COMMAND_DRESSME_ENABLE)
            return false;

        if(command.equals("dressme"))
        {
            String html = HtmCache.getInstance().getNotNull("command/dressme/index.htm", player);
            html = html.replace("<?show_hide?>", player.getVarObject("showVisualChange") == null ? "Show visual equip on other player!" : "Hide visual equip on other player!");
            html = html.replace("<?show_hide_b?>", player.getVarObject("showVisualChange") == null ? "showdress" : "hidedress");

            Functions.show(html, player, null);
            return true;
        }
        else if(command.equals("dressme-armor"))
        {
            String html = HtmCache.getInstance().getNotNull("command/dressme/index-armor.htm", player);
            String template = HtmCache.getInstance().getNotNull("command/dressme/template-armor.htm", player);
            String block = "";
            String list = "";

            if(args == null)
                args = "1";

            String[] param = args.split(" ");

            final int page = param[0].length() > 0 ? Integer.parseInt(param[0]) : 1;
            final int perpage = 5;
            int counter = 0;

            for(int i = (page - 1) * perpage; i < DressArmorHolder.getInstance().size(); i++)
            {
                DressArmorData dress = DressArmorHolder.getInstance().getArmor(i + 1);
                if(dress != null)
                {
                    block = template;

                    String dress_name = dress.getName();

                    if(dress_name.length() > 29)
                        dress_name = dress_name.substring(0, 29) + "...";

                    block = block.replace("{bypass}", "bypass -h user_dress-armorpage " + (i + 1));
                    block = block.replace("{name}", dress_name);
                    block = block.replace("{price}", Util.formatPay(player, dress.getPriceCount(), dress.getPriceId()));
                    block = block.replace("{icon}", Util.getItemIcon(dress.getChest()));
                    list += block;
                }

                counter++;

                if(counter >= perpage)
                    break;
            }

            double count = Math.ceil((double) DressArmorHolder.getInstance().size() / (double) perpage);
            int inline = 1;
            String navigation = "";

            for(int i = 1; i <= count; i++)
            {
                if(i == page)
                    navigation += "<td width=25 align=center valign=top><button value=\"[" + i + "]\" action=\"bypass -h user_dressme-armor " + i + "\" width=32 height=25 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td>";
                else
                    navigation += "<td width=25 align=center valign=top><button value=\"" + i + "\" action=\"bypass -h user_dressme-armor " + i + "\" width=32 height=25 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td>";

                if(inline == 7)
                {
                    navigation += "</tr><tr>";
                    inline = 0;
                }
                inline++;
            }

            if(navigation.equals(""))
                navigation = "<td width=30 align=center valign=top>...</td>";

            html = html.replace("{list}", list);
            html = html.replace("{navigation}", navigation);

            Functions.show(html, player, null);
            return true;
        }
        else if(command.equals("dressme-cloak"))
        {
            String html = HtmCache.getInstance().getNotNull("command/dressme/index-cloak.htm", player);
            String template = HtmCache.getInstance().getNotNull("command/dressme/template-cloak.htm", player);
            String block = "";
            String list = "";

            if(args == null)
                args = "1";

            String[] param = args.split(" ");

            final int page = param[0].length() > 0 ? Integer.parseInt(param[0]) : 1;
            final int perpage = 5;
            int counter = 0;

            for(int i = (page - 1) * perpage; i < DressCloakHolder.getInstance().size(); i++)
            {
                DressCloakData cloak = DressCloakHolder.getInstance().getCloak(i + 1);
                if(cloak != null)
                {
                    block = template;

                    String cloak_name = cloak.getName();

                    if(cloak_name.length() > 29)
                        cloak_name = cloak_name.substring(0, 29) + "...";

                    block = block.replace("{bypass}", "bypass -h user_dress-cloakpage " + (i + 1));
                    block = block.replace("{name}", cloak_name);
                    block = block.replace("{price}", Util.formatPay(player, cloak.getPriceCount(), cloak.getPriceId()));
                    block = block.replace("{icon}", Util.getItemIcon(cloak.getCloakId()));
                    list += block;
                }

                counter++;

                if(counter >= perpage)
                    break;
            }

            double count = Math.ceil((double) DressCloakHolder.getInstance().size() / (double) perpage);
            int inline = 1;
            String navigation = "";

            for(int i = 1; i <= count; i++)
            {
                if(i == page)
                    navigation += "<td width=25 align=center valign=top><button value=\"[" + i + "]\" action=\"bypass -h user_dressme-cloak " + i + "\" width=32 height=25 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td>";
                else
                    navigation += "<td width=25 align=center valign=top><button value=\"" + i + "\" action=\"bypass -h user_dressme-cloak " + i + "\" width=32 height=25 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td>";

                if(inline == 7)
                {
                    navigation += "</tr><tr>";
                    inline = 0;
                }
                inline++;
            }

            if(navigation.equals(""))
                navigation = "<td width=30 align=center valign=top>...</td>";

            html = html.replace("{list}", list);
            html = html.replace("{navigation}", navigation);

            Functions.show(html, player, null);
            return true;
        }
        else if(command.equals("dressme-shield"))
        {
            String html = HtmCache.getInstance().getNotNull("command/dressme/index-shield.htm", player);
            String template = HtmCache.getInstance().getNotNull("command/dressme/template-shield.htm", player);
            String block = "";
            String list = "";

            if(args == null)
                args = "1";

            String[] param = args.split(" ");

            final int page = param[0].length() > 0 ? Integer.parseInt(param[0]) : 1;
            final int perpage = 5;
            int counter = 0;

            for(int i = (page - 1) * perpage; i < DressShieldHolder.getInstance().size(); i++)
            {
                DressShieldData shield = DressShieldHolder.getInstance().getShield(i + 1);
                if(shield != null)
                {
                    block = template;

                    String shield_name = shield.getName();

                    if(shield_name.length() > 29)
                        shield_name = shield_name.substring(0, 29) + "...";

                    block = block.replace("{bypass}", "bypass -h user_dress-shieldpage " + (i + 1));
                    block = block.replace("{name}", shield_name);
                    block = block.replace("{price}", Util.formatPay(player, shield.getPriceCount(), shield.getPriceId()));
                    block = block.replace("{icon}", Util.getItemIcon(shield.getShieldId()));
                    list += block;
                }

                counter++;

                if(counter >= perpage)
                    break;
            }

            double count = Math.ceil((double) DressShieldHolder.getInstance().size() / (double) perpage);
            int inline = 1;
            String navigation = "";

            for(int i = 1; i <= count; i++)
            {
                if(i == page)
                    navigation += "<td width=25 align=center valign=top><button value=\"[" + i + "]\" action=\"bypass -h user_dressme-shield " + i + "\" width=32 height=25 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td>";
                else
                    navigation += "<td width=25 align=center valign=top><button value=\"" + i + "\" action=\"bypass -h user_dressme-shield " + i + "\" width=32 height=25 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td>";

                if(inline == 7)
                {
                    navigation += "</tr><tr>";
                    inline = 0;
                }
                inline++;
            }

            if(navigation.equals(""))
                navigation = "<td width=30 align=center valign=top>...</td>";

            html = html.replace("{list}", list);
            html = html.replace("{navigation}", navigation);

            Functions.show(html, player, null);
            return true;
        }
        else if(command.equals("dressme-weapon"))
        {
            ItemInstance slot = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND);
            if(slot == null)
            {
                player.sendMessage("Error: Weapon must be equiped!");
                return false;
            }

            ItemType type = slot.getItemType();

            String html = HtmCache.getInstance().getNotNull("command/dressme/index-weapon.htm", player);
            String template = HtmCache.getInstance().getNotNull("command/dressme/template-weapon.htm", player);
            String block = "";
            String list = "";

            if(args == null)
                args = "1";

            String[] param = args.split(" ");

            final int page = param[0].length() > 0 ? Integer.parseInt(param[0]) : 1;
            final int perpage = 5;
            int counter = 0;
            Map<Integer, DressWeaponData> map = new HashMap<Integer, DressWeaponData>();

            map = initMap(type.toString(), map);

            if(map == null)
            {
                _log.error("Dress me system: Weapon Map is null.");
                return false;
            }

            for(int i = (page - 1) * perpage; i < map.size(); i++)
            {
                DressWeaponData weapon = map.get(i + 1);
                if(weapon != null)
                {
                    block = template;

                    String cloak_name = weapon.getName();

                    if(cloak_name.length() > 29)
                        cloak_name = cloak_name.substring(0, 29) + "...";

                    block = block.replace("{bypass}", "bypass -h user_dress-weaponpage " + weapon.getId());
                    block = block.replace("{name}", cloak_name);
                    block = block.replace("{price}", Util.formatPay(player, weapon.getPriceCount(), weapon.getPriceId()));
                    block = block.replace("{icon}", Util.getItemIcon(weapon.getId()));
                    list += block;
                }

                counter++;

                if(counter >= perpage)
                    break;
            }

            double count = Math.ceil((double) map.size() / (double) perpage);
            int inline = 1;
            String navigation = "";

            for(int i = 1; i <= count; i++)
            {
                if(i == page)
                    navigation += "<td width=25 align=center valign=top><button value=\"[" + i + "]\" action=\"bypass -h user_dressme-weapon " + i + "\" width=32 height=25 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td>";
                else
                    navigation += "<td width=25 align=center valign=top><button value=\"" + i + "\" action=\"bypass -h user_dressme-weapon " + i + "\" width=32 height=25 back=\"L2UI_CT1.Button_DF_Down\" fore=\"L2UI_CT1.Button_DF\"></td>";

                if(inline == 7)
                {
                    navigation += "</tr><tr>";
                    inline = 0;
                }
                inline++;
            }

            if(navigation.equals(""))
                navigation = "<td width=30 align=center valign=top>...</td>";

            html = html.replace("{list}", list);
            html = html.replace("{navigation}", navigation);

            Functions.show(html, player, null);
            return true;
        }
        else if(command.equals("dress-armorpage"))
        {
            final int set = Integer.parseInt(args.split(" ")[0]);
            DressArmorData dress = DressArmorHolder.getInstance().getArmor(set);
            if(dress != null)
            {
                String html = HtmCache.getInstance().getNotNull("command/dressme/dress-armor.htm", player);

                Inventory inv = player.getInventory();

                ItemInstance my_chest = inv.getPaperdollItem(Inventory.PAPERDOLL_CHEST);
                html = html.replace("{my_chest_icon}", my_chest == null ? "icon.NOIMAGE" : my_chest.getTemplate().getIcon());
                ItemInstance my_legs = inv.getPaperdollItem(Inventory.PAPERDOLL_LEGS);
                html = html.replace("{my_legs_icon}", my_legs == null ? "icon.NOIMAGE" : my_legs.getTemplate().getIcon());
                ItemInstance my_gloves = inv.getPaperdollItem(Inventory.PAPERDOLL_GLOVES);
                html = html.replace("{my_gloves_icon}", my_gloves == null ? "icon.NOIMAGE" : my_gloves.getTemplate().getIcon());
                ItemInstance my_feet = inv.getPaperdollItem(Inventory.PAPERDOLL_FEET);
                html = html.replace("{my_feet_icon}", my_feet == null ? "icon.NOIMAGE" : my_feet.getTemplate().getIcon());

                html = html.replace("{bypass}", "bypass -h user_dress-armor " + set);
                html = html.replace("{name}", dress.getName());
                html = html.replace("{price}", Util.formatPay(player, dress.getPriceCount(), dress.getPriceId()));

                ItemTemplate chest = ItemHolder.getInstance().getTemplate(dress.getChest());
                html = html.replace("{chest_icon}", chest.getIcon());
                html = html.replace("{chest_name}", chest.getName());
                html = html.replace("{chest_grade}", chest.getItemGrade().name());

                if(dress.getLegs() != -1)
                {
                    ItemTemplate legs = ItemHolder.getInstance().getTemplate(dress.getLegs());
                    html = html.replace("{legs_icon}", legs.getIcon());
                    html = html.replace("{legs_name}", legs.getName());
                    html = html.replace("{legs_grade}", legs.getItemGrade().name());
                }
                else
                {
                    html = html.replace("{legs_icon}", "icon.NOIMAGE");
                    html = html.replace("{legs_name}", "<font color=FF0000>...</font>");
                    html = html.replace("{legs_grade}", "NO");
                }

                ItemTemplate gloves = ItemHolder.getInstance().getTemplate(dress.getGloves());
                html = html.replace("{gloves_icon}", gloves.getIcon());
                html = html.replace("{gloves_name}", gloves.getName());
                html = html.replace("{gloves_grade}", gloves.getItemGrade().name());

                ItemTemplate feet = ItemHolder.getInstance().getTemplate(dress.getFeet());
                html = html.replace("{feet_icon}", feet.getIcon());
                html = html.replace("{feet_name}", feet.getName());
                html = html.replace("{feet_grade}", feet.getItemGrade().name());

                Functions.show(html, player, null);
                return true;
            }
            else
                return false;

        }
        else if(command.equals("dress-cloakpage"))
        {
            final int set = Integer.parseInt(args.split(" ")[0]);
            DressCloakData cloak = DressCloakHolder.getInstance().getCloak(set);
            if(cloak != null)
            {
                String html = HtmCache.getInstance().getNotNull("command/dressme/dress-cloak.htm", player);

                Inventory inv = player.getInventory();

                ItemInstance my_cloak = inv.getPaperdollItem(Inventory.PAPERDOLL_BACK);
                html = html.replace("{my_cloak_icon}", my_cloak == null ? "icon.NOIMAGE" : my_cloak.getTemplate().getIcon());

                html = html.replace("{bypass}", "bypass -h user_dress-cloak " + cloak.getId());
                html = html.replace("{name}", cloak.getName());
                html = html.replace("{price}", Util.formatPay(player, cloak.getPriceCount(), cloak.getPriceId()));

                ItemTemplate item = ItemHolder.getInstance().getTemplate(cloak.getCloakId());
                html = html.replace("{item_icon}", item.getIcon());
                html = html.replace("{item_name}", item.getName());
                html = html.replace("{item_grade}", item.getItemGrade().name());

                Functions.show(html, player, null);
                return true;
            }
            else
                return false;
        }
        else if(command.equals("dress-shieldpage"))
        {
            final int set = Integer.parseInt(args.split(" ")[0]);
            DressShieldData shield = DressShieldHolder.getInstance().getShield(set);
            if(shield != null)
            {
                String html = HtmCache.getInstance().getNotNull("command/dressme/dress-shield.htm", player);

                Inventory inv = player.getInventory();

                ItemInstance my_shield = inv.getPaperdollItem(Inventory.PAPERDOLL_LHAND);
                html = html.replace("{my_shield_icon}", my_shield == null ? "icon.NOIMAGE" : my_shield.getTemplate().getIcon());

                html = html.replace("{bypass}", "bypass -h user_dress-shield " + shield.getId());
                html = html.replace("{name}", shield.getName());
                html = html.replace("{price}", Util.formatPay(player, shield.getPriceCount(), shield.getPriceId()));

                ItemTemplate item = ItemHolder.getInstance().getTemplate(shield.getShieldId());
                html = html.replace("{item_icon}", item.getIcon());
                html = html.replace("{item_name}", item.getName());
                html = html.replace("{item_grade}", item.getItemGrade().name());

                Functions.show(html, player, null);
                return true;
            }
            else
                return false;
        }
        else if(command.equals("dress-weaponpage"))
        {
            final int set = Integer.parseInt(args.split(" ")[0]);
            DressWeaponData weapon = DressWeaponHolder.getInstance().getWeapon(set);
            if(weapon != null)
            {
                String html = HtmCache.getInstance().getNotNull("command/dressme/dress-weapon.htm", player);

                Inventory inv = player.getInventory();

                ItemInstance my_weapon = inv.getPaperdollItem(Inventory.PAPERDOLL_RHAND);

                html = html.replace("{my_weapon_icon}", my_weapon == null ? "icon.NOIMAGE" : my_weapon.getTemplate().getIcon());

                html = html.replace("{bypass}", "bypass -h user_dress-weapon " + weapon.getId());
                html = html.replace("{name}", weapon.getName());
                html = html.replace("{price}", Util.formatPay(player, weapon.getPriceCount(), weapon.getPriceId()));

                ItemTemplate item = ItemHolder.getInstance().getTemplate(weapon.getId());
                html = html.replace("{item_icon}", item.getIcon());
                html = html.replace("{item_name}", item.getName());
                html = html.replace("{item_grade}", item.getItemGrade().name());

                Functions.show(html, player, null);
                return true;
            }
            else
                return false;
        }
        else if(command.equals("dressinfo"))
        {
            String html = HtmCache.getInstance().getNotNull("command/dressme/info.htm", player);
            Functions.show(html, player, null);
            return true;
        }
        else if(command.equals("dress-armor"))
        {
            final int set = Integer.parseInt(args.split(" ")[0]);

            DressArmorData dress = DressArmorHolder.getInstance().getArmor(set);
            Inventory inv = player.getInventory();

            ItemInstance chest = inv.getPaperdollItem(Inventory.PAPERDOLL_CHEST);

            if(chest == null)
            {
                player.sendMessage("Error: Chest must be equiped.");
                useVoicedCommand("dress-armorpage", player, args);
                return false;
            }

            ItemTemplate visual = ItemHolder.getInstance().getTemplate(dress.getChest());
            if(chest.getTemplate().getBodyPart() != visual.getBodyPart())
            {
                player.sendMessage("Error: You can't change visual chest to full body and on the contrary!");
                useVoicedCommand("dress-armorpage", player, args);
                return false;
            }

            ItemInstance legs = inv.getPaperdollItem(Inventory.PAPERDOLL_LEGS);

            if(legs == null && chest.getBodyPart() != ItemTemplate.SLOT_FULL_ARMOR)
            {
                player.sendMessage("Error: Legs must be equiped.");
                useVoicedCommand("dress-armorpage", player, args);
                return false;
            }

            ItemInstance gloves = inv.getPaperdollItem(Inventory.PAPERDOLL_GLOVES);

            if(gloves == null)
            {
                player.sendMessage("Error: Gloves must be equiped.");
                useVoicedCommand("dress-armorpage", player, args);
                return false;
            }

            ItemInstance feet = inv.getPaperdollItem(Inventory.PAPERDOLL_FEET);

            if(feet == null)
            {
                player.sendMessage("Error: Feet must be equiped.");
                useVoicedCommand("dress-armorpage", player, args);
                return false;
            }

            if(player.getInventory().getCountOf(dress.getPriceId()) >= dress.getPriceCount())
            {
                player.getInventory().destroyItemByItemId(dress.getPriceId(), dress.getPriceCount(), "VisualChange");
                visuality(player, chest, dress.getChest());

                if(dress.getLegs() != -1)
                    visuality(player, legs, dress.getLegs());

                visuality(player, gloves, dress.getGloves());
                visuality(player, feet, dress.getFeet());

                player.sendUserInfo(true);
                player.broadcastUserInfo(true);
                return true;
            }
            else
            {
                player.sendMessage("Error: You don't have items to pay.");
                return false;
            }
        }
        else if(command.equals("dress-cloak"))
        {
            final int set = Integer.parseInt(args.split(" ")[0]);

            DressCloakData cloak_data = DressCloakHolder.getInstance().getCloak(set);
            Inventory inv = player.getInventory();

            ItemInstance cloak = inv.getPaperdollItem(Inventory.PAPERDOLL_BACK);

            if(cloak == null)
            {
                player.sendMessage("Error: Cloak must be equiped.");
                useVoicedCommand("dress-cloakpage", player, args);
                return false;
            }

            if(player.getInventory().getCountOf(cloak_data.getPriceId()) >= cloak_data.getPriceCount())
            {
                player.getInventory().destroyItemByItemId(cloak_data.getPriceId(), cloak_data.getPriceCount(), "VisualChange");
                visuality(player, cloak, cloak_data.getCloakId());

                player.sendUserInfo(true);
                player.broadcastUserInfo(true);
                return true;
            }
            else
            {
                player.sendMessage("Error: You don't have items to pay.");
                return false;
            }
        }
        else if(command.equals("dress-shield"))
        {
            final int shield_id = Integer.parseInt(args.split(" ")[0]);

            DressShieldData shield_data = DressShieldHolder.getInstance().getShield(shield_id);
            Inventory inv = player.getInventory();

            ItemInstance shield = inv.getPaperdollItem(Inventory.PAPERDOLL_LHAND);

            if(shield == null)
            {
                player.sendMessage("Error: Shield must be equiped.");
                useVoicedCommand("dress-shieldpage", player, args);
                return false;
            }

            if(player.getInventory().getCountOf(shield_data.getPriceId()) >= shield_data.getPriceCount())
            {
                player.getInventory().destroyItemByItemId(shield_data.getPriceId(), shield_data.getPriceCount(), "VisualChange");
                visuality(player, shield, shield_data.getShieldId());

                player.sendUserInfo(true);
                player.broadcastUserInfo(true);
                return true;
            }
            else
            {
                player.sendMessage("Error: You don't have items to pay.");
                return false;
            }
        }
        else if(command.equals("dress-weapon"))
        {
            final int set = Integer.parseInt(args.split(" ")[0]);

            DressWeaponData weapon_data = DressWeaponHolder.getInstance().getWeapon(set);
            Inventory inv = player.getInventory();

            ItemInstance weapon = inv.getPaperdollItem(Inventory.PAPERDOLL_RHAND);

            if(weapon == null)
            {
                player.sendMessage("Error: Weapon must be equiped.");
                useVoicedCommand("dress-weaponpage", player, args);
                return false;
            }

            if(!weapon.getItemType().toString().equals(weapon_data.getType()))
            {
                player.sendMessage("Error: Weapon must be equals type.");
                useVoicedCommand("dressme-weapon", player, null);
                return false;
            }

            if(player.getInventory().getCountOf(weapon_data.getPriceId()) >= weapon_data.getPriceCount())
            {
                player.getInventory().destroyItemByItemId(weapon_data.getPriceId(), weapon_data.getPriceCount(), "VisualChange");
                visuality(player, weapon, weapon_data.getId());

                player.sendUserInfo(true);
                player.broadcastUserInfo(true);
                return true;
            }
            else
            {
                player.sendMessage("Error: You don't have items to pay.");
                return false;
            }
        }
        else if(command.equals("undressme"))
        {
            String html = HtmCache.getInstance().getNotNull("command/dressme/undressme.htm", player);
            html = html.replace("<?show_hide?>", player.getVarObject("showVisualChange") == null ? "Show visual equip on other player!" : "Hide visual equip on other player!");
            html = html.replace("<?show_hide_b?>", player.getVarObject("showVisualChange") == null ? "showdress" : "hidedress");

            Functions.show(html, player, null);
            return true;
        }
        else if(command.equals("undressme-armor"))
        {
            Inventory inv = player.getInventory();
            ItemInstance chest = inv.getPaperdollItem(Inventory.PAPERDOLL_CHEST);
            ItemInstance legs = inv.getPaperdollItem(Inventory.PAPERDOLL_LEGS);
            ItemInstance gloves = inv.getPaperdollItem(Inventory.PAPERDOLL_GLOVES);
            ItemInstance feet = inv.getPaperdollItem(Inventory.PAPERDOLL_FEET);

            if(chest != null)
                visuality(player, chest, 0);
            if(legs != null)
                visuality(player, legs, 0);
            if(gloves != null)
                visuality(player, gloves, 0);
            if(feet != null)
                visuality(player, feet, 0);

            player.sendUserInfo(true);
            player.broadcastUserInfo(true);

            useVoicedCommand("undressme", player, null);
            return true;
        }
        else if(command.equals("undressme-cloak"))
        {
            Inventory inv = player.getInventory();
            ItemInstance cloak = inv.getPaperdollItem(Inventory.PAPERDOLL_BACK);

            if(cloak != null)
                visuality(player, cloak, 0);

            player.sendUserInfo(true);
            player.broadcastUserInfo(true);

            useVoicedCommand("undressme", player, null);
            return true;
        }
        else if(command.equals("undressme-shield"))
        {
            Inventory inv = player.getInventory();
            ItemInstance shield = inv.getPaperdollItem(Inventory.PAPERDOLL_LHAND);

            if(shield != null)
                visuality(player, shield, 0);

            player.sendUserInfo(true);
            player.broadcastUserInfo(true);

            useVoicedCommand("undressme", player, null);
            return true;
        }
        else if(command.equals("undressme-weapon"))
        {
            Inventory inv = player.getInventory();
            ItemInstance weapon = inv.getPaperdollItem(Inventory.PAPERDOLL_RHAND);

            if(weapon != null)
                visuality(player, weapon, 0);

            player.sendUserInfo(true);
            player.broadcastUserInfo(true);

            useVoicedCommand("undressme", player, null);
            return true;
        }
        else if(command.equals("showdress"))
        {
            if(player.getVarObject("showVisualChange") == null)
            {
                player.setVar("showVisualChange", "-1", -1);

                for(Player character : World.getAroundPlayers(player))
                {
                    player.sendPacket(new CharInfo(character, player));
                }
            }

            useVoicedCommand("dressme", player, null);
            return true;
        }
        else if(command.equals("hidedress"))
        {
            if(player.getVarObject("showVisualChange") != null)
            {
                player.unsetVar("showVisualChange");

                for(Player character : World.getAroundPlayers(player))
                {
                    player.sendPacket(new CharInfo(character, player));
                }
            }

            useVoicedCommand("dressme", player, null);
            return true;
        }
        else
            return false;
    }

    private Map<Integer, DressWeaponData> initMap(String type, Map<Integer, DressWeaponData> map)
    {
        if(type.equals("Sword"))
            return map = SWORD;
        else if(type.equals("Blunt"))
            return map = BLUNT;
        else if(type.equals("Dagger"))
            return map = DAGGER;
        else if(type.equals("Bow"))
            return map = BOW;
        else if(type.equals("Pole"))
            return map = POLE;
        else if(type.equals("Fist"))
            return map = FIST;
        else if(type.equals("Dual Sword"))
            return map = DUAL;
        else if(type.equals("Dual Fist"))
            return map = DUALFIST;
        else if(type.equals("Big Sword"))
            return map = BIGSWORD;
        else if(type.equals("Rod"))
            return map = ROD;
        else if(type.equals("Big Blunt"))
            return map = BIGBLUNT;
        else if(type.equals("Crossbow"))
            return map = CROSSBOW;
        else if(type.equals("Rapier"))
            return map = RAPIER;
        else if(type.equals("Ancient Sword"))
            return map = ANCIENTSWORD;
        else if(type.equals("Dual Dagger"))
            return map = DUALDAGGER;
        else
        {
            _log.error("Dress me system: Unknown type: " + type);
            return null;
        }
    }

    private int parseWeapon()
    {
        int Sword = 1, Blunt = 1, Dagger = 1, Bow = 1, Pole = 1, Fist = 1, DualSword = 1, DualFist = 1, BigSword = 1, Rod = 1, BigBlunt = 1, Crossbow = 1, Rapier = 1, AncientSword = 1, DualDagger = 1;

        for(DressWeaponData weapon : DressWeaponHolder.getInstance().getAllWeapons())
        {
            if(weapon.getType().equals("Sword"))
            {
                SWORD.put(Sword, weapon);
                Sword++;
            }
            else if(weapon.getType().equals("Blunt"))
            {
                BLUNT.put(Blunt, weapon);
                Blunt++;
            }
            else if(weapon.getType().equals("Dagger"))
            {
                DAGGER.put(Dagger, weapon);
                Dagger++;
            }
            else if(weapon.getType().equals("Bow"))
            {
                BOW.put(Bow, weapon);
                Bow++;
            }
            else if(weapon.getType().equals("Pole"))
            {
                POLE.put(Pole, weapon);
                Pole++;
            }
            else if(weapon.getType().equals("Fist"))
            {
                FIST.put(Fist, weapon);
                Fist++;
            }
            else if(weapon.getType().equals("Dual Sword"))
            {
                DUAL.put(DualSword, weapon);
                DualSword++;
            }
            else if(weapon.getType().equals("Dual Fist"))
            {
                DUALFIST.put(DualFist, weapon);
                DualFist++;
            }
            else if(weapon.getType().equals("Big Sword"))
            {
                BIGSWORD.put(BigSword, weapon);
                BigSword++;
            }
            else if(weapon.getType().equals("Rod"))
            {
                ROD.put(Rod, weapon);
                Rod++;
            }
            else if(weapon.getType().equals("Big Blunt"))
            {
                BIGBLUNT.put(BigBlunt, weapon);
                BigBlunt++;
            }
            else if(weapon.getType().equals("Crossbow"))
            {
                CROSSBOW.put(Crossbow, weapon);
                Crossbow++;
            }
            else if(weapon.getType().equals("Rapier"))
            {
                RAPIER.put(Rapier, weapon);
                Rapier++;
            }
            else if(weapon.getType().equals("Ancient Sword"))
            {
                ANCIENTSWORD.put(AncientSword, weapon);
                AncientSword++;
            }
            else if(weapon.getType().equals("Dual Dagger"))
            {
                DUALDAGGER.put(DualDagger, weapon);
                DualDagger++;
            }
            else
                _log.error("Dress me system: Can't find type: " + weapon.getType());
        }

        _log.info("Dress me system: Load " + Sword + " Sword(s).");
        _log.info("Dress me system: Load " + Blunt + " Blunt(s).");
        _log.info("Dress me system: Load " + Dagger + " Dagger(s).");
        _log.info("Dress me system: Load " + Bow + " Bow(s).");
        _log.info("Dress me system: Load " + Pole + " Pole(s).");
        _log.info("Dress me system: Load " + Fist + " Fist(s).");
        _log.info("Dress me system: Load " + DualSword + " Dual Sword(s).");
        _log.info("Dress me system: Load " + DualFist + " Dual Fist(s).");
        _log.info("Dress me system: Load " + BigSword + " Big Sword(s).");
        _log.info("Dress me system: Load " + Rod + " Rod(s).");
        _log.info("Dress me system: Load " + BigBlunt + " Big Blunt(s).");
        _log.info("Dress me system: Load " + Crossbow + " Crossbow(s).");
        _log.info("Dress me system: Load " + Rapier + " Rapier(s).");
        _log.info("Dress me system: Load " + AncientSword + " Ancient Sword(s).");
        _log.info("Dress me system: Load " + DualDagger + " Dual Dagger(s).");

        return 0;
    }

    private void visuality(Player player, ItemInstance item, int visual)
    {
        item.setVisualItemId(visual);
        item.setJdbcState(JdbcEntityState.UPDATED);
        item.update();

        if(visual > 0)
            player.sendMessage(item.getName() + " has been visual change to " + Util.getItemName(visual));
        else
            player.sendMessage("Visual change from " + item.getName() + " has been remove.");
    }

    @Override
    public void onLoad()
    {
        SWORD = new HashMap<Integer, DressWeaponData>();
        BLUNT = new HashMap<Integer, DressWeaponData>();
        DAGGER = new HashMap<Integer, DressWeaponData>();
        BOW = new HashMap<Integer, DressWeaponData>();
        POLE = new HashMap<Integer, DressWeaponData>();
        FIST = new HashMap<Integer, DressWeaponData>();
        DUAL = new HashMap<Integer, DressWeaponData>();
        DUALFIST = new HashMap<Integer, DressWeaponData>();
        BIGSWORD = new HashMap<Integer, DressWeaponData>();
        ROD = new HashMap<Integer, DressWeaponData>();
        BIGBLUNT = new HashMap<Integer, DressWeaponData>();
        CROSSBOW = new HashMap<Integer, DressWeaponData>();
        RAPIER = new HashMap<Integer, DressWeaponData>();
        ANCIENTSWORD = new HashMap<Integer, DressWeaponData>();
        DUALDAGGER = new HashMap<Integer, DressWeaponData>();

        parseWeapon();
        VoicedCommandHandler.getInstance().registerVoicedCommandHandler(this);
    }

    @Override
    public void onReload()
    {}

    @Override
    public void onShutdown()
    {}

    @Override
    public String[] getVoicedCommandList()
    {
        return _commandList;
    }
}

Espero haberme explicado de forma adecuada.

No puedes ver este adjunto.

No puedes ver este adjunto.

de antemano gracias!.

Fuente: No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate. (L2Tales)
#84
L2 | Apartado de Soporte / Npc que suba de nivel
Último mensaje por motorhead - Nov 04, 2025, 11:11 PM
Buenas, alguien me ayudaria a crear un npc que de lvl up a 85 plis?
#85
L2 | Apartado de Soporte / problemas con los puntos de de...
Último mensaje por kerb1 - Nov 04, 2025, 11:09 PM
hola tengo un problema los char tienen mucha defensa.... miren el screen

No puedes ver este adjunto.
#86
L2 | Apartado de Soporte / Como pasar de int a String
Último mensaje por Jacop - Nov 04, 2025, 11:08 PM
Hola, pues eso. Estoy haciendo un código y necesito saber como puedo hacerlo.

Gracias.
#87
L2 | Apartado de Soporte / Como cambiar color del nombre ...
Último mensaje por djjose - Nov 04, 2025, 11:07 PM
Alguien puede decirme como puedo cambiarle el color del nombre/titulo a un npc determinado

No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate. <3
#88
L2 | Apartado de Soporte / Bonus Vip Html
Último mensaje por djjose - Nov 04, 2025, 11:07 PM
Aqui intento de alguna manera activar la quest

@Override
	public String onEnterWorld(L2PcInstance player)
	{
		if (player.getInventory().getInventoryItemCount(ITEM_VIP, 0) != 0)
		{
			String firstlogin = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/html/vip/startVipRewards.htm");
			player.sendPacket(new NpcHtmlMessage(1, firstlogin));
			
			final QuestState qs = player.getQuestState("VipRewards");// quest creada 0
			if (qs.getState() == State.CREATED)
			{
				qs.setState(State.STARTED);
			}
			else
			{
				qs.setState(State.CREATED);
				qs.setState(State.STARTED);
			}
			
			player.sendMessage("Vip Systen Enabled!");
		}
		else
		{
			final QuestState qs = getQuestState(player, true);
			if ((qs.getState() == 1) || (qs.getState() == 0))
			{
				qs.setState(State.COMPLETED);
				qs.exitQuest(false);
			}
		}
		
		return null;
	}
#89
Bots Telegram / Re:Bot: Convert YouTube videos...
Último mensaje por Temi7 - Nov 04, 2025, 11:04 PM
Muchas gracias por crearlo. ¿Qué comandos debo utilizar para hacer la conversión?
#90
L2 | Taberna / Re:¿Que ha pasado con l2jserve...
Último mensaje por Swarlog - Nov 04, 2025, 10:57 PM
No tienes permiso para ver los enlaces. Para poder verlos Registrate o Conectate.Pues sigue igual, no se puede acceder a la web solo al proyecto git.

Pues sí, sigue igual... ni idea de que ha podido pasar.