Jump to content
  • 0

Change Exp Values


Question

Posted

Hi, I am using L2jHellas project.

I have changed on experience.xml some values to test how lvl up works.

but i set for example

    <experience level="1" tolevel="0" />

    <experience level="2" tolevel="100" />

    <experience level="3" tolevel="150" />

    <experience level="4" tolevel="200" />

    <experience level="5" tolevel="300" />

and i have this problem

fail_Exp.jpg

 

How can i solve that? i normally get lvl with 100 exp points but on exp bar i get that!! (on 134% i go to lvl 2 and my bar has already 10% on it)

6 answers to this question

Recommended Posts

  • 0
Posted

You should take a look at experience.java as well

 

public class ExperienceData
{
    private static Logger _log = Logger.getLogger(ExperienceData.class.getName());

    private byte MAX_LEVEL;
    private byte MAX_PET_LEVEL;

    private final Map<Integer, Long> _expTable = new HashMap<Integer, Long>();

    private ExperienceData()
    {
        loadData();
    }

    private void loadData()
    {
        final File xml = new File(PackRoot.DATAPACK_ROOT, "data/xml/experience.xml");
        if (!xml.exists())
        {
            _log.warning(getClass().getSimpleName() + ": experience.xml not found!");
            return;
        }

        Document doc = null;
        final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setValidating(false);
        factory.setIgnoringComments(true);
        try
        {
            doc = factory.newDocumentBuilder().parse(xml);
        }
        catch (Exception e)
        {
            _log.warning("Could not parse experience.xml: " + e.getMessage());
            return;
        }

        final Node table = doc.getFirstChild();
        final NamedNodeMap tableAttr = table.getAttributes();

        MAX_LEVEL = (byte) (Byte.parseByte(tableAttr.getNamedItem("maxLevel").getNodeValue()) + 1);
        MAX_PET_LEVEL = (byte) (Byte.parseByte(tableAttr.getNamedItem("maxPetLevel").getNodeValue()) + 1);

        _expTable.clear();

        NamedNodeMap attrs;
        Integer level;
        Long exp;
        for (Node experience = table.getFirstChild(); experience != null; experience = experience.getNextSibling())
        {
            if (experience.getNodeName().equals("experience"))
            {
                attrs = experience.getAttributes();
                level = Integer.valueOf(attrs.getNamedItem("level").getNodeValue());
                exp = Long.valueOf(attrs.getNamedItem("tolevel").getNodeValue());
                _expTable.put(level, exp);
            }
        }

        _log.info(getClass().getSimpleName() + ": Loaded " + _expTable.size() + " levels");
        _log.info(getClass().getSimpleName() + ": Max Player Level is: " + (MAX_LEVEL - 1));
        _log.info(getClass().getSimpleName() + ": Max Pet Level is: " + (MAX_PET_LEVEL - 1));
    }

    public long getExpForLevel(int level)
    {
        return _expTable.get(level);
    }

    public byte getMaxLevel()
    {
        return MAX_LEVEL;
    }

    public byte getMaxPetLevel()
    {
        return MAX_PET_LEVEL;
    }

    public static ExperienceData getInstance()
    {
        return SingletonHolder._instance;
    }

    @SuppressWarnings("synthetic-access")
    private static class SingletonHolder
    {
        protected static final ExperienceData _instance = new ExperienceData();
    }

that is what i found ExperienceData.java but i cant find anything helpful here!

Guest
This topic is now closed to further replies.


×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and 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..