Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Parser Skill
#1
Добрый день.
Есть данная сборка: Тык
В ней по словам автора сломан Парсер скиллов...

Короче не сохраняются скиллы у персонажа, и соответсвенно не выдаются стартовые(которые должны быть при создании чара)

Как починить эту штуку?
Выручайте ребят.

сам парсер: (вроде этот)

Код:
package westeros.gameserver.data.xml.parser;

import org.dom4j.Element;
import westeros.gameserver.Config;
import westeros.gameserver.data.xml.holder.SkillHolder;
import westeros.gameserver.data.xml.holder.SystemMessageHolder;
import westeros.gameserver.model.Skill;
import westeros.gameserver.serverpackets.SystemMessage;
import westeros.gameserver.skills.SkillType;
import westeros.gameserver.skills.effects.EffectTemplate;
import westeros.gameserver.stats.StatTemplate;
import westeros.gameserver.stats.conditions.Condition;
import westeros.gameserver.templates.StatsSet;

import java.io.File;
import java.util.Iterator;

/**
*
* @author Monithly
*/
public class SkillParser extends StatParser<SkillHolder>
{
    private static final SkillParser _instance = new SkillParser();

    public SkillParser()
    {
        super(SkillHolder.getInstance());
    }

    public static SkillParser getInstance()
    {
        return _instance;
    }

    @Override
    public File getXMLDir()
    {
        return new File(Config.DATAPACK_ROOT, "data/skills/");
    }

    @Override
    public boolean isIgnored(File f)
    {
        return false;
    }

    @Override
    public String getDTDFileName()
    {
        return "skill.dtd";
    }

    @Override
    protected void readData(final Element rootElement)
    {
        Skill skill;

        for (Iterator<Element> skillElementIterator = rootElement.elementIterator(); skillElementIterator.hasNext();)
        {
            final Element skillElement = skillElementIterator.next();
            final StatsSet set = new StatsSet();

            set.set("skill_id", skillElement.attributeValue("id"));
            set.set("level", skillElement.attributeValue("level"));
            set.set("name", skillElement.attributeValue("name"));

            for (Iterator<Element> subIterator = skillElement.elementIterator("param"); subIterator.hasNext();)
            {
                final Element subElement = subIterator.next();

                set.set(subElement.attributeValue("name"), subElement.attributeValue("value"));
            }

            skill = set.getEnum("skillType", SkillType.class).makeSkill(set);

            for (Iterator<Element> subIterator = skillElement.elementIterator(); subIterator.hasNext();)
            {
                final Element subElement = subIterator.next();

                switch (subElement.getName())
                {
                    case "cond":
                    {
                        final Condition condition = parseFirstCond(subElement);

                        if (condition != null)
                        {
                            if (subElement.attribute("msgId") != null)
                            {
                                final SystemMessage sm = SystemMessageHolder.getInstance().get(Integer.parseInt(subElement.attributeValue("msgId")));
                                if (sm != null)
                                {
                                    if (sm.haveArguments())
                                    {
                                        sm.addSkillName(skill);
                                    }
                                    condition.setSystemMsg(sm);
                                }
                            }

                            skill.attach(condition);
                        }

                        break;
                    }
                    case "triggers":
                    {
                        parseTriggers(subElement, skill);
                        break;
                    }
                    case "for":
                    {
                        parseParams(subElement, skill);
                        break;
                    }
                }

            }

            getHolder().addSkill(skill);
        }
    }

    protected void parseEffect(final Element element, final StatTemplate template)
    {
        final StatsSet set = new StatsSet();

        set.set("name", element.attributeValue("name"));

        if (element.attribute("count") != null)
        {
            set.set("count", Integer.decode(element.attributeValue("count")));
        }

        if (element.attribute("time") != null)
        {
            set.set("time", element.attributeValue("time"));
        }

        if (element.attribute("val") != null)
        {
            set.set("value", element.attributeValue("val"));
        }

        if (element.attribute("abnormal") != null)
        {
            set.set("abnormal", element.attributeValue("abnormal"));
        }

        if (element.attribute("stackTypes") != null)
        {
            set.set("stackTypes", element.attributeValue("stackTypes"));
        }

        if (element.attribute("stackOrder") != null)
        {
            set.set("stackOrder", element.attributeValue("stackOrder"));
        }

        if (element.attribute("applyOnCaster") != null)
        {
            set.set("applyOnCaster", element.attributeValue("applyOnCaster"));
        }

        if (element.attribute("applyOnSummon") != null)
        {
            set.set("applyOnSummon", element.attributeValue("applyOnSummon"));
        }

        if (element.attribute("displayId") != null)
        {
            set.set("displayId", element.attributeValue("displayId"));
        }

        if (element.attribute("displayLevel") != null)
        {
            set.set("displayLevel", element.attributeValue("displayLevel"));
        }

        if (element.attribute("chance") != null)
        {
            set.set("chance", element.attributeValue("chance"));
        }

        if (element.attribute("cancelOnAction") != null)
        {
            set.set("cancelOnAction", element.attributeValue("cancelOnAction"));
        }

        if (element.attribute("isOffensive") != null)
        {
            set.set("isOffensive", element.attributeValue("isOffensive"));
        }

        if (element.attribute("isReflectable") != null)
        {
            set.set("isReflectable", element.attributeValue("isReflectable"));
        }

        final EffectTemplate eff = new EffectTemplate(set);

        parseParams(element, eff);
        ((Skill) template).attach(eff);
    }

    @Override
    protected void parseParam(final Element element, final StatTemplate template) throws Exception
    {
        if (element.getName().equalsIgnoreCase("effect"))
        {
            if (template instanceof EffectTemplate)
            {
                throw new RuntimeException("Nested effects");
            }

            parseEffect(element, template);
        }
        else if (template instanceof EffectTemplate)
        {
            if (element.getName().equalsIgnoreCase("def"))
            {
                ((EffectTemplate) template).addParam(element.attributeValue("name"), element.attributeValue("val"));
            }
            else if (element.getName().equalsIgnoreCase("triggers"))
            {
                parseTriggers(element, template);
            }
            else
            {
                final Condition cond = parseCond(element);

                if (cond != null)
                {
                    ((EffectTemplate) template).attachCond(cond);
                }
            }
        }
        else
        {
             super.parseParam(element, template);
        }
    }
}
#2
lCxAxAl Написал:Добрый день.
Есть данная сборка: Тык
В ней по словам автора сломан Парсер скиллов...

Короче не сохраняются скиллы у персонажа, и соответсвенно не выдаются стартовые(которые должны быть при создании чара)

Как починить эту штуку?
Выручайте ребят.

сам парсер: (вроде этот)

Код:
package westeros.gameserver.data.xml.parser;

import org.dom4j.Element;
import westeros.gameserver.Config;
import westeros.gameserver.data.xml.holder.SkillHolder;
import westeros.gameserver.data.xml.holder.SystemMessageHolder;
import westeros.gameserver.model.Skill;
import westeros.gameserver.serverpackets.SystemMessage;
import westeros.gameserver.skills.SkillType;
import westeros.gameserver.skills.effects.EffectTemplate;
import westeros.gameserver.stats.StatTemplate;
import westeros.gameserver.stats.conditions.Condition;
import westeros.gameserver.templates.StatsSet;

import java.io.File;
import java.util.Iterator;

/**
*
* @author Monithly
*/
public class SkillParser extends StatParser<SkillHolder>
{
    private static final SkillParser _instance = new SkillParser();

    public SkillParser()
    {
        super(SkillHolder.getInstance());
    }

    public static SkillParser getInstance()
    {
        return _instance;
    }

    @Override
    public File getXMLDir()
    {
        return new File(Config.DATAPACK_ROOT, "data/skills/");
    }

    @Override
    public boolean isIgnored(File f)
    {
        return false;
    }

    @Override
    public String getDTDFileName()
    {
        return "skill.dtd";
    }

    @Override
    protected void readData(final Element rootElement)
    {
        Skill skill;

        for (Iterator<Element> skillElementIterator = rootElement.elementIterator(); skillElementIterator.hasNext();)
        {
            final Element skillElement = skillElementIterator.next();
            final StatsSet set = new StatsSet();

            set.set("skill_id", skillElement.attributeValue("id"));
            set.set("level", skillElement.attributeValue("level"));
            set.set("name", skillElement.attributeValue("name"));

            for (Iterator<Element> subIterator = skillElement.elementIterator("param"); subIterator.hasNext();)
            {
                final Element subElement = subIterator.next();

                set.set(subElement.attributeValue("name"), subElement.attributeValue("value"));
            }

            skill = set.getEnum("skillType", SkillType.class).makeSkill(set);

            for (Iterator<Element> subIterator = skillElement.elementIterator(); subIterator.hasNext();)
            {
                final Element subElement = subIterator.next();

                switch (subElement.getName())
                {
                    case "cond":
                    {
                        final Condition condition = parseFirstCond(subElement);

                        if (condition != null)
                        {
                            if (subElement.attribute("msgId") != null)
                            {
                                final SystemMessage sm = SystemMessageHolder.getInstance().get(Integer.parseInt(subElement.attributeValue("msgId")));
                                if (sm != null)
                                {
                                    if (sm.haveArguments())
                                    {
                                        sm.addSkillName(skill);
                                    }
                                    condition.setSystemMsg(sm);
                                }
                            }

                            skill.attach(condition);
                        }

                        break;
                    }
                    case "triggers":
                    {
                        parseTriggers(subElement, skill);
                        break;
                    }
                    case "for":
                    {
                        parseParams(subElement, skill);
                        break;
                    }
                }

            }

            getHolder().addSkill(skill);
        }
    }

    protected void parseEffect(final Element element, final StatTemplate template)
    {
        final StatsSet set = new StatsSet();

        set.set("name", element.attributeValue("name"));

        if (element.attribute("count") != null)
        {
            set.set("count", Integer.decode(element.attributeValue("count")));
        }

        if (element.attribute("time") != null)
        {
            set.set("time", element.attributeValue("time"));
        }

        if (element.attribute("val") != null)
        {
            set.set("value", element.attributeValue("val"));
        }

        if (element.attribute("abnormal") != null)
        {
            set.set("abnormal", element.attributeValue("abnormal"));
        }

        if (element.attribute("stackTypes") != null)
        {
            set.set("stackTypes", element.attributeValue("stackTypes"));
        }

        if (element.attribute("stackOrder") != null)
        {
            set.set("stackOrder", element.attributeValue("stackOrder"));
        }

        if (element.attribute("applyOnCaster") != null)
        {
            set.set("applyOnCaster", element.attributeValue("applyOnCaster"));
        }

        if (element.attribute("applyOnSummon") != null)
        {
            set.set("applyOnSummon", element.attributeValue("applyOnSummon"));
        }

        if (element.attribute("displayId") != null)
        {
            set.set("displayId", element.attributeValue("displayId"));
        }

        if (element.attribute("displayLevel") != null)
        {
            set.set("displayLevel", element.attributeValue("displayLevel"));
        }

        if (element.attribute("chance") != null)
        {
            set.set("chance", element.attributeValue("chance"));
        }

        if (element.attribute("cancelOnAction") != null)
        {
            set.set("cancelOnAction", element.attributeValue("cancelOnAction"));
        }

        if (element.attribute("isOffensive") != null)
        {
            set.set("isOffensive", element.attributeValue("isOffensive"));
        }

        if (element.attribute("isReflectable") != null)
        {
            set.set("isReflectable", element.attributeValue("isReflectable"));
        }

        final EffectTemplate eff = new EffectTemplate(set);

        parseParams(element, eff);
        ((Skill) template).attach(eff);
    }

    @Override
    protected void parseParam(final Element element, final StatTemplate template) throws Exception
    {
        if (element.getName().equalsIgnoreCase("effect"))
        {
            if (template instanceof EffectTemplate)
            {
                throw new RuntimeException("Nested effects");
            }

            parseEffect(element, template);
        }
        else if (template instanceof EffectTemplate)
        {
            if (element.getName().equalsIgnoreCase("def"))
            {
                ((EffectTemplate) template).addParam(element.attributeValue("name"), element.attributeValue("val"));
            }
            else if (element.getName().equalsIgnoreCase("triggers"))
            {
                parseTriggers(element, template);
            }
            else
            {
                final Condition cond = parseCond(element);

                if (cond != null)
                {
                    ((EffectTemplate) template).attachCond(cond);
                }
            }
        }
        else
        {
             super.parseParam(element, template);
        }
    }
}

офф
#3
SoniPro Написал:
офф
КАКАЯ РАЗНИЦА ОТКУДА ОН СКАЧАЛ ЕСЛИ ПРОСИЛ ПОМОЩИ ?
#4
Сюда скоро вообще перестанут кто-либо заглядывать, с таким отношением к новичкам.
Останутся старички с датой регистрации 2007-2008 и администрация.
Совсем зазвездились, товарищи.

Я в свое время пришел на этот форум только потому, что тут было адекватное отношение к новичкам. Админы помогали, отвечали на вопросы некоторые, модераторы не страдали синдромом вахтера и не принимали любой пост, как смертельную угрозу существованию ЗГ.
Даже срачи были уютными, без обязательного перехода на скриптов.
#5
lCxAxAl Написал:Добрый день.
Есть данная сборка: Тык
В ней по словам автора сломан Парсер скиллов...

Короче не сохраняются скиллы у персонажа, и соответсвенно не выдаются стартовые(которые должны быть при создании чара)

Как починить эту штуку?
Выручайте ребят.

сам парсер: (вроде этот)

Код:
package westeros.gameserver.data.xml.parser;

import org.dom4j.Element;
import westeros.gameserver.Config;
import westeros.gameserver.data.xml.holder.SkillHolder;
import westeros.gameserver.data.xml.holder.SystemMessageHolder;
import westeros.gameserver.model.Skill;
import westeros.gameserver.serverpackets.SystemMessage;
import westeros.gameserver.skills.SkillType;
import westeros.gameserver.skills.effects.EffectTemplate;
import westeros.gameserver.stats.StatTemplate;
import westeros.gameserver.stats.conditions.Condition;
import westeros.gameserver.templates.StatsSet;

import java.io.File;
import java.util.Iterator;

/**
*
* @author Monithly
*/
public class SkillParser extends StatParser<SkillHolder>
{
    private static final SkillParser _instance = new SkillParser();

    public SkillParser()
    {
        super(SkillHolder.getInstance());
    }

    public static SkillParser getInstance()
    {
        return _instance;
    }

    @Override
    public File getXMLDir()
    {
        return new File(Config.DATAPACK_ROOT, "data/skills/");
    }

    @Override
    public boolean isIgnored(File f)
    {
        return false;
    }

    @Override
    public String getDTDFileName()
    {
        return "skill.dtd";
    }

    @Override
    protected void readData(final Element rootElement)
    {
        Skill skill;

        for (Iterator<Element> skillElementIterator = rootElement.elementIterator(); skillElementIterator.hasNext();)
        {
            final Element skillElement = skillElementIterator.next();
            final StatsSet set = new StatsSet();

            set.set("skill_id", skillElement.attributeValue("id"));
            set.set("level", skillElement.attributeValue("level"));
            set.set("name", skillElement.attributeValue("name"));

            for (Iterator<Element> subIterator = skillElement.elementIterator("param"); subIterator.hasNext();)
            {
                final Element subElement = subIterator.next();

                set.set(subElement.attributeValue("name"), subElement.attributeValue("value"));
            }

            skill = set.getEnum("skillType", SkillType.class).makeSkill(set);

            for (Iterator<Element> subIterator = skillElement.elementIterator(); subIterator.hasNext();)
            {
                final Element subElement = subIterator.next();

                switch (subElement.getName())
                {
                    case "cond":
                    {
                        final Condition condition = parseFirstCond(subElement);

                        if (condition != null)
                        {
                            if (subElement.attribute("msgId") != null)
                            {
                                final SystemMessage sm = SystemMessageHolder.getInstance().get(Integer.parseInt(subElement.attributeValue("msgId")));
                                if (sm != null)
                                {
                                    if (sm.haveArguments())
                                    {
                                        sm.addSkillName(skill);
                                    }
                                    condition.setSystemMsg(sm);
                                }
                            }

                            skill.attach(condition);
                        }

                        break;
                    }
                    case "triggers":
                    {
                        parseTriggers(subElement, skill);
                        break;
                    }
                    case "for":
                    {
                        parseParams(subElement, skill);
                        break;
                    }
                }

            }

            getHolder().addSkill(skill);
        }
    }

    protected void parseEffect(final Element element, final StatTemplate template)
    {
        final StatsSet set = new StatsSet();

        set.set("name", element.attributeValue("name"));

        if (element.attribute("count") != null)
        {
            set.set("count", Integer.decode(element.attributeValue("count")));
        }

        if (element.attribute("time") != null)
        {
            set.set("time", element.attributeValue("time"));
        }

        if (element.attribute("val") != null)
        {
            set.set("value", element.attributeValue("val"));
        }

        if (element.attribute("abnormal") != null)
        {
            set.set("abnormal", element.attributeValue("abnormal"));
        }

        if (element.attribute("stackTypes") != null)
        {
            set.set("stackTypes", element.attributeValue("stackTypes"));
        }

        if (element.attribute("stackOrder") != null)
        {
            set.set("stackOrder", element.attributeValue("stackOrder"));
        }

        if (element.attribute("applyOnCaster") != null)
        {
            set.set("applyOnCaster", element.attributeValue("applyOnCaster"));
        }

        if (element.attribute("applyOnSummon") != null)
        {
            set.set("applyOnSummon", element.attributeValue("applyOnSummon"));
        }

        if (element.attribute("displayId") != null)
        {
            set.set("displayId", element.attributeValue("displayId"));
        }

        if (element.attribute("displayLevel") != null)
        {
            set.set("displayLevel", element.attributeValue("displayLevel"));
        }

        if (element.attribute("chance") != null)
        {
            set.set("chance", element.attributeValue("chance"));
        }

        if (element.attribute("cancelOnAction") != null)
        {
            set.set("cancelOnAction", element.attributeValue("cancelOnAction"));
        }

        if (element.attribute("isOffensive") != null)
        {
            set.set("isOffensive", element.attributeValue("isOffensive"));
        }

        if (element.attribute("isReflectable") != null)
        {
            set.set("isReflectable", element.attributeValue("isReflectable"));
        }

        final EffectTemplate eff = new EffectTemplate(set);

        parseParams(element, eff);
        ((Skill) template).attach(eff);
    }

    @Override
    protected void parseParam(final Element element, final StatTemplate template) throws Exception
    {
        if (element.getName().equalsIgnoreCase("effect"))
        {
            if (template instanceof EffectTemplate)
            {
                throw new RuntimeException("Nested effects");
            }

            parseEffect(element, template);
        }
        else if (template instanceof EffectTemplate)
        {
            if (element.getName().equalsIgnoreCase("def"))
            {
                ((EffectTemplate) template).addParam(element.attributeValue("name"), element.attributeValue("val"));
            }
            else if (element.getName().equalsIgnoreCase("triggers"))
            {
                parseTriggers(element, template);
            }
            else
            {
                final Condition cond = parseCond(element);

                if (cond != null)
                {
                    ((EffectTemplate) template).attachCond(cond);
                }
            }
        }
        else
        {
             super.parseParam(element, template);
        }
    }
}

На яндекс диск выложи сборку.
#6
Aristocrat Написал:Сюда скоро вообще перестанут кто-либо заглядывать, с таким отношением к новичкам.
Останутся старички с датой регистрации 2007-2008 и администрация.
Совсем зазвездились, товарищи.

Я в свое время пришел на этот форум только потому, что тут было адекватное отношение к новичкам. Админы помогали, отвечали на вопросы некоторые, модераторы не страдали синдромом вахтера и не принимали любой пост, как смертельную угрозу существованию ЗГ.
Даже срачи были уютными, без обязательного перехода на скриптов.

просто автор темы привел ссылку
на сторонний портал думаю это и задело SoniPro
#7
Aristocrat Написал:Сюда скоро вообще перестанут кто-либо заглядывать, с таким отношением к новичкам.
Останутся старички с датой регистрации 2007-2008 и администрация.
Совсем зазвездились, товарищи.

Я в свое время пришел на этот форум только потому, что тут было адекватное отношение к новичкам. Админы помогали, отвечали на вопросы некоторые, модераторы не страдали синдромом вахтера и не принимали любой пост, как смертельную угрозу существованию ЗГ.
Даже срачи были уютными, без обязательного перехода на скриптов.

Далеко не любой пост. Они качают сборки с гавнофорума и идут сюда с ними в надежде, что жители этого форума будут им все править.
#8
Кхм, сударь, а откуда нам еще качать?
Скачали мы вообще с MEGA.

Добавлено через 40 минут
http://yadi.sk/d/RSzDyRrrFRBam
Вот сборка на ЯДе
#9
lCxAxAl Написал:Кхм, сударь, а откуда нам еще качать?
Скачали мы вообще с MEGA.

Добавлено через 40 минут
http://yadi.sk/d/RSzDyRrrFRBam
Вот сборка на ЯДе

Вот и задавайте вопросы свои там, где скачали.
#10
Цитата:Вот и задавайте вопросы свои там, где скачали.
Хотел бы я на это посмотреть)
MEGA это https://mega.co.nz


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  NPC Agument Trade Skill M1xF1ght 0 987 11-17-2015, 05:57 PM
Последний пост: M1xF1ght
  Skill power L2J 6 2,396 07-23-2014, 11:18 AM
Последний пост: L2J
  [share] Skill Handlers Gaikotsu 6 4,027 04-10-2012, 11:05 AM
Последний пост: rage
  skill ID AnakimVsLilith krisadr 2 1,464 05-31-2011, 03:39 PM
Последний пост: krisadr
  Skill mastery HastemaNS 0 1,308 02-15-2011, 10:47 AM
Последний пост: HastemaNS
  No skill info found adeptik 5 4,705 01-07-2011, 12:24 PM
Последний пост: adeptik
  вопросс по Item Skill: Battle Roar DjKrit 9 5,885 11-03-2010, 12:32 PM
Последний пост: VISTALL
  Itеm Skill: Might flaSh 1 2,029 07-28-2010, 03:48 PM
Последний пост: incognito
  Item Skill: Shield JaneKyun 9 3,895 07-01-2010, 02:43 PM
Последний пост: JaneKyun
  skill's 81+ Rakitmiha 6 3,649 10-31-2009, 10:51 PM
Последний пост: Dreampwer

Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)