Parser Skill - Страница 2 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Закрытая тема
Опции темы
Непрочитано 04.01.2014, 11:00   #11
Аватар для WoWan-SM
Герой

По умолчанию Re: Parser Skill

Цитата:
Сообщение от 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);
        }
    }
}
Изучаемые скиллы храняться в gameserver\data\skill_tree\normal_skill_tree.xml
Парсер этого файла находится в src\gameserver\westeros\gameserver\data\xml\parser \SkillAcquireParser.java
Проблему я бы начал искать там.
WoWan-SM вне форума Отправить сообщение для WoWan-SM с помощью ICQ Отправить сообщение для WoWan-SM с помощью Skype™
Непрочитано 04.01.2014, 11:52   #12
Изгнанные

По умолчанию Re: Parser Skill

Цитата:
Сообщение от lCxAxAl Посмотреть сообщение
Кхм, сударь, а откуда нам еще качать?
Скачали мы вообще с MEGA.

Добавлено через 40 минут
http://yadi.sk/d/RSzDyRrrFRBam
Вот сборка на ЯДе
Так если вы качаете сборку с посторонних ресурсов, зачем обращаться за помощью по ней же на этот форум?Почему бы вам не обратиться за помощью туда где вы скачали свою сборку?
conversepwnz вне форума
Непрочитано 04.01.2014, 12:08   #13
Заинтересовавшийся

Автор темы (Топик Стартер) Re: Parser Skill

Ладно, пойду спрашивать на файлообменнике...


По теме:

Плюется такими еррорами:
Код:
[04.01.14 17:58:30:015] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:58:30:015] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:58:30:015] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:58:30:015] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:58:30:015] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:58:31:546] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'mbaseCrit' for enum BaseStats
[04.01.14 17:58:32:234] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'mbaseCrit' for enum BaseStats
[04.01.14 17:58:32:234] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'mbaseCrit' for enum BaseStats
[04.01.14 17:58:32:234] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'mbaseCrit' for enum BaseStats
[04.01.14 17:58:32:781] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'pAtkChance' for enum BaseStats
[04.01.14 17:58:32:781] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'pDefChance' for enum BaseStats
[04.01.14 17:59:36:562] ERROR parser.SkillParser: SkillParser: File: 6932[adventurers_vampiric_rage].xml:36 error: The content of element type "skill" must match "(for|triggers|cond|param)*".
[04.01.14 17:59:48:765] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:59:48:765] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'eraseResist' for enum BaseStats
[04.01.14 17:59:48:765] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'refdamResist' for enum BaseStats
[04.01.14 17:59:48:765] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'vampiricResist' for enum BaseStats
[04.01.14 17:59:53:093] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'refdamResist' for enum BaseStats
[04.01.14 17:59:53:093] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'refdamResist' for enum BaseStats
[04.01.14 17:59:53:093] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'refdamResist' for enum BaseStats
[04.01.14 17:59:53:593] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'mbaseCrit' for enum BaseStats

[04.01.14 18:01:09:359] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: dualclass_certification_skill_tree.xml:5 error: Element type "dualclass_certification_skill_tree" must be declared.
[04.01.14 18:01:09:359] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: dualclass_certification_skill_tree.xml:125 error: The content of element type "list" must match "(sub_unit_skill_tree|pledge_skill_tree|collection_skill_tree|certification_skill_tree|transfer_skill_tree|normal_skill_tree|fishing_skill_tree|transformation_skill_tree|race_special_skill_tree)*".
[04.01.14 18:01:09:406] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: fourth_prof_special_skill_tree.xml:4 error: Element type "fourth_prof_special_skill_tree" must be declared.
[04.01.14 18:01:09:406] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: fourth_prof_special_skill_tree.xml:17 error: The content of element type "list" must match "(sub_unit_skill_tree|pledge_skill_tree|collection_skill_tree|certification_skill_tree|transfer_skill_tree|normal_skill_tree|fishing_skill_tree|transformation_skill_tree|race_special_skill_tree)*".
[04.01.14 18:01:09:421] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: multi_skill_tree.xml:5 error: Element type "multi_skill_tree" must be declared.
[04.01.14 18:01:09:421] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: multi_skill_tree.xml:19 error: The content of element type "list" must match "(sub_unit_skill_tree|pledge_skill_tree|collection_skill_tree|certification_skill_tree|transfer_skill_tree|normal_skill_tree|fishing_skill_tree|transformation_skill_tree|race_special_skill_tree)*".

[04.01.14 18:01:10:421]  INFO holder.SkillAcquireHolder: SkillAcquireHolder: load 0 normal learns for 0 classes.
lCxAxAl вне форума
Непрочитано 04.01.2014, 12:44   #14

По умолчанию Re: Parser Skill

Стоит задуматься
The content of element type "list" must match "(sub_unit_skill_tree|pledge_skill_tree|collection _skill_tree|certification_skill_tree|transfer_skil l_tree|normal_skill_tree|fishing_skill_tree|transf ormation_skill_tree|race_special_skill_tree)*".
Mangol вне форума Отправить сообщение для Mangol с помощью ICQ
Непрочитано 04.01.2014, 13:13   #15
Аватар для WoWan-SM
Герой

По умолчанию Re: Parser Skill

Цитата:
Сообщение от lCxAxAl Посмотреть сообщение
Ладно, пойду спрашивать на файлообменнике...


По теме:

Плюется такими еррорами:
Код:
[04.01.14 17:58:30:015] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:58:30:015] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:58:30:015] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:58:30:015] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:58:30:015] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:58:31:546] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'mbaseCrit' for enum BaseStats
[04.01.14 17:58:32:234] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'mbaseCrit' for enum BaseStats
[04.01.14 17:58:32:234] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'mbaseCrit' for enum BaseStats
[04.01.14 17:58:32:234] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'mbaseCrit' for enum BaseStats
[04.01.14 17:58:32:781] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'pAtkChance' for enum BaseStats
[04.01.14 17:58:32:781] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'pDefChance' for enum BaseStats
[04.01.14 17:59:36:562] ERROR parser.SkillParser: SkillParser: File: 6932[adventurers_vampiric_rage].xml:36 error: The content of element type "skill" must match "(for|triggers|cond|param)*".
[04.01.14 17:59:48:765] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:59:48:765] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'eraseResist' for enum BaseStats
[04.01.14 17:59:48:765] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'refdamResist' for enum BaseStats
[04.01.14 17:59:48:765] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'vampiricResist' for enum BaseStats
[04.01.14 17:59:53:093] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'refdamResist' for enum BaseStats
[04.01.14 17:59:53:093] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'refdamResist' for enum BaseStats
[04.01.14 17:59:53:093] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'refdamResist' for enum BaseStats
[04.01.14 17:59:53:593] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'mbaseCrit' for enum BaseStats

[04.01.14 18:01:09:359] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: dualclass_certification_skill_tree.xml:5 error: Element type "dualclass_certification_skill_tree" must be declared.
[04.01.14 18:01:09:359] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: dualclass_certification_skill_tree.xml:125 error: The content of element type "list" must match "(sub_unit_skill_tree|pledge_skill_tree|collection_skill_tree|certification_skill_tree|transfer_skill_tree|normal_skill_tree|fishing_skill_tree|transformation_skill_tree|race_special_skill_tree)*".
[04.01.14 18:01:09:406] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: fourth_prof_special_skill_tree.xml:4 error: Element type "fourth_prof_special_skill_tree" must be declared.
[04.01.14 18:01:09:406] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: fourth_prof_special_skill_tree.xml:17 error: The content of element type "list" must match "(sub_unit_skill_tree|pledge_skill_tree|collection_skill_tree|certification_skill_tree|transfer_skill_tree|normal_skill_tree|fishing_skill_tree|transformation_skill_tree|race_special_skill_tree)*".
[04.01.14 18:01:09:421] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: multi_skill_tree.xml:5 error: Element type "multi_skill_tree" must be declared.
[04.01.14 18:01:09:421] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: multi_skill_tree.xml:19 error: The content of element type "list" must match "(sub_unit_skill_tree|pledge_skill_tree|collection_skill_tree|certification_skill_tree|transfer_skill_tree|normal_skill_tree|fishing_skill_tree|transformation_skill_tree|race_special_skill_tree)*".

[04.01.14 18:01:10:421]  INFO holder.SkillAcquireHolder: SkillAcquireHolder: load 0 normal learns for 0 classes.
Ищи тут westeros.gameserver.model.base.BaseStats;
WoWan-SM вне форума Отправить сообщение для WoWan-SM с помощью ICQ Отправить сообщение для WoWan-SM с помощью Skype™
Непрочитано 04.01.2014, 15:08   #16
Аватар для SoniPro
Супергерой

По умолчанию Re: Parser Skill

Цитата:
Сообщение от 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);
        }
    }
}
Цитата:
Сообщение от lCxAxAl Посмотреть сообщение
Кхм, сударь, а откуда нам еще качать?
Скачали мы вообще с MEGA.

Добавлено через 40 минут
http://yadi.sk/d/RSzDyRrrFRBam
Вот сборка на ЯДе
Цитата:
Сообщение от Aristocrat Посмотреть сообщение
Хотел бы я на это посмотреть)
MEGA это https://mega.co.nz
Цитата:
Сообщение от lCxAxAl Посмотреть сообщение
Ладно, пойду спрашивать на файлообменнике...
В идеота решили сыграть что-ли?
SoniPro вне форума
Непрочитано 05.01.2014, 03:35   #17
Супергерой

По умолчанию Re: Parser Skill

Цитата:
Сообщение от <~Kp@$o†ka~> Посмотреть сообщение
людишки с шмакси заметила к нам валят )
> к нам
> Регистрация: 01.01.2014

Цитата:
Сообщение от Aristocrat Посмотреть сообщение
Сюда скоро вообще перестанут кто-либо заглядывать, с таким отношением к новичкам.
Я не считаю правильным помогать всяким любителям пощекотать очко, с иксами в никах и шарной сборкой разработчика, которого ссаными тряпками выгнали с этого форума. От таких пользователей обратная отдача равна нулю. Серьёзно, пусть идут спрашивать на файлообменники. Тем более доделывать парсер скиллов, состоящий на 97.4% из реквизитов порнофильма в жанре "копро" и костылей, за, повторюсь, изгнанного недоразраба.
Romka вне форума
Непрочитано 05.01.2014, 05:06   #18
Аватар для darkevil

По умолчанию Re: Parser Skill

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

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

~Прелюдия:
Я не говорю про конкретного ТСа, но поверь когда знаешь о человеке чуть больше чем "А кто это такой?", то помогать отпадает всякое желание.
Сейчас и так идет борьба за каждого юзера, одно дело когда юзер спрашивает что-то в общих чертах и просить помочь разобраться в каких-то деталях которые ему не ясны, другое дело когда человек просит фиксануть ему "проблему", а завтра откроется очередная фришка на которую уйдут 10 человек от твоих 50 и будут твердить что это севрер лучшее что они когда-то видели всего за 10 донок в день.

Почему народ перестал помогать новичкам? Потому что больше нет единичных сообществ как это было раньше, было 2 форума общей тематики RZ, PP где попросту не было аудитории которая тырила с одного форума и продавала на другом, там либо шарилось с припиской "разбирайся сам" в мягкой форме, либо создавались целые топики с обсуждением проблем, но никогда никто не отвечал на такие вот вопросы опираясь что человек сам должен научиться, а если что-то будет непонятно то тогда объясни проблему где не понимаешь и мы постараемся помочь.
Сейчас форумов тематических сотни, один круче другого различаются только ценники на шары\патчи и прочую мишуру, а кол-во попрошаек выросло в геометрической прогрессии.
Я за образование единичного тематического сообщества, но только при условии что люди будут концентрироваться на одном форуме, а не бегать при необходимости то туда, то сюда и везде выискивать какую-то выгоду, тут выпросил, там продал и т.д.

Черт, снова целый эпик написал, в какой раз
И все равно, все повторяется снова и снова, и снова...

Добавлено через 7 минут
Цитата:
Сообщение от lCxAxAl Посмотреть сообщение
Ладно, пойду спрашивать на файлообменнике...


По теме:

Плюется такими еррорами:
Код:
[04.01.14 17:58:30:015] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:58:30:015] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:58:30:015] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:58:30:015] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:58:30:015] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:58:31:546] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'mbaseCrit' for enum BaseStats
[04.01.14 17:58:32:234] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'mbaseCrit' for enum BaseStats
[04.01.14 17:58:32:234] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'mbaseCrit' for enum BaseStats
[04.01.14 17:58:32:234] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'mbaseCrit' for enum BaseStats
[04.01.14 17:58:32:781] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'pAtkChance' for enum BaseStats
[04.01.14 17:58:32:781] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'pDefChance' for enum BaseStats
[04.01.14 17:59:36:562] ERROR parser.SkillParser: SkillParser: File: 6932[adventurers_vampiric_rage].xml:36 error: The content of element type "skill" must match "(for|triggers|cond|param)*".
[04.01.14 17:59:48:765] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'bindingResist' for enum BaseStats
[04.01.14 17:59:48:765] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'eraseResist' for enum BaseStats
[04.01.14 17:59:48:765] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'refdamResist' for enum BaseStats
[04.01.14 17:59:48:765] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'vampiricResist' for enum BaseStats
[04.01.14 17:59:53:093] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'refdamResist' for enum BaseStats
[04.01.14 17:59:53:093] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'refdamResist' for enum BaseStats
[04.01.14 17:59:53:093] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'refdamResist' for enum BaseStats
[04.01.14 17:59:53:593] ERROR parser.SkillParser: SkillParser: parse param error java.util.NoSuchElementException: Unknown name 'mbaseCrit' for enum BaseStats

[04.01.14 18:01:09:359] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: dualclass_certification_skill_tree.xml:5 error: Element type "dualclass_certification_skill_tree" must be declared.
[04.01.14 18:01:09:359] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: dualclass_certification_skill_tree.xml:125 error: The content of element type "list" must match "(sub_unit_skill_tree|pledge_skill_tree|collection_skill_tree|certification_skill_tree|transfer_skill_tree|normal_skill_tree|fishing_skill_tree|transformation_skill_tree|race_special_skill_tree)*".
[04.01.14 18:01:09:406] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: fourth_prof_special_skill_tree.xml:4 error: Element type "fourth_prof_special_skill_tree" must be declared.
[04.01.14 18:01:09:406] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: fourth_prof_special_skill_tree.xml:17 error: The content of element type "list" must match "(sub_unit_skill_tree|pledge_skill_tree|collection_skill_tree|certification_skill_tree|transfer_skill_tree|normal_skill_tree|fishing_skill_tree|transformation_skill_tree|race_special_skill_tree)*".
[04.01.14 18:01:09:421] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: multi_skill_tree.xml:5 error: Element type "multi_skill_tree" must be declared.
[04.01.14 18:01:09:421] ERROR parser.SkillAcquireParser: SkillAcquireParser: File: multi_skill_tree.xml:19 error: The content of element type "list" must match "(sub_unit_skill_tree|pledge_skill_tree|collection_skill_tree|certification_skill_tree|transfer_skill_tree|normal_skill_tree|fishing_skill_tree|transformation_skill_tree|race_special_skill_tree)*".

[04.01.14 18:01:10:421]  INFO holder.SkillAcquireHolder: SkillAcquireHolder: load 0 normal learns for 0 classes.
А вам совет
1. Грузите сборку свою прямо в ИДЕ, и дебажте так сказать в реалтайм.
2. Не смогли загрузить проект в ИДЕ, дебажте проект по методу вывода информации в консоль что и где у вас происходит и что читается.
3. Ну или опираться на свое зрение и интуитивно шерстить код и сравниваться с xml структурой которую пытаетесь прогрузить.

P.S. Самый простой способ 2й, немного долгий но вполне годный для начала.
__________________

Последний раз редактировалось darkevil; 05.01.2014 в 05:14. Причина: Добавлено сообщение
darkevil вне форума Отправить сообщение для darkevil с помощью ICQ Отправить сообщение для darkevil с помощью Skype™
Непрочитано 05.01.2014, 06:51   #19
Аватар для Aristocrat
Мастер

По умолчанию Re: Parser Skill

Цитата:
Сообщение от darkevil Посмотреть сообщение
эпик
Так в чем проблема? Окукливайте форум, делайте регу по инвайтам, карму как на лепре или хабре. Мне кажется, что по содержимому темы, в 90% случаев можно определить, что хочет ТС.

Когда я начинал работать в этой сфере, мне помогал один замечательный человек. Он никогда не делал за меня ничего, но всегда находил минутку, ответить на вопрос и натолкнуть на верную мысль. Дал наводку, а дальше я уже сам учился. Анализировал, читал мат.часть, гуглил.
Согласен, что шароторговцев нужно изолировать, но я склонен считать, что если тебе нечего сказать в теме, лучше промолчи. Гнать человека на другой форум, хамить и просто всех под одну гребенку ровнять, это как-то неправильно.
Aristocrat вне форума
Непрочитано 05.01.2014, 11:12   #20
Аватар для Gaikotsu
Герой

По умолчанию Re: Parser Skill

ну дык человеку вроде как уже подсказали в каком направлении копать.
тем более что сами ошибки в логе прямо подсказывают что именно не так в файлах скиллов и в самом сервере.

З.Ы. а по самой сборке - хрень, думаю не особо далеко ушедшая от предыдущей шары того же автора. лучше брать за основу то что шарил Киллрой и допиливать, чем пытаться починить "это".
Gaikotsu вне форума
Сказали спасибо:
Закрытая тема


Здесь присутствуют: 2 (пользователей: 0 , гостей: 2)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мануал! Установка ява сервера SF, RT, ST etc. PROGRAMMATOR Тех-документация 567 28.02.2021 18:13
Гс Ошибка Литион Lineage II 20 03.02.2013 00:56
Помогите с компилом Daan Raven Работа со скриптами 12 13.01.2013 21:15
Адаптируем SQL BimBom Работа со скриптами 9 14.10.2009 15:14
Сервер RedLine rev 0007x0001SE Каратель Lineage II 30 02.04.2009 14:58


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 19:06. Часовой пояс GMT +3.

Вверх