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

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.

Ответ
Опции темы
Непрочитано 17.06.2014, 18:01   #1
Аватар для DXVSI
Пользователь

Автор темы (Топик Стартер) Дроп

Привет всем!

Сегодня столкнулся с такой проблемой что не падает дроп с мобов но спойл работает, уже где-то час сижу над кодом шаманю но все бесполезно!,
Тем кто поможет много+++
В заранее спасибо!

Вот код:
PHP код:
public final class DropListDataParser extends DocumentParser
{
        private static final 
Logger _log LoggerFactory.getLogger(DropListDataParser.class);
        private static 
DropListDataParser _instance = new DropListDataParser();
        private 
int _dropsParsed;
        private 
int _spoilsParsed;
        
        public static final 
DropListDataParser getInstance()
        {
                if (
_instance == null)
                {
                        
_instance = new DropListDataParser();
                }
                return 
_instance;
        }
       
        @
Override
        
public void load()
        {
                
_dropsParsed = (_spoilsParsed 0);
                
parseDirectory(Config.DATAPACK_ROOT "/data/xml/stats/droplist/");
                
_log.info("Loaded " _dropsParsed " drops & " _spoilsParsed " spoils.");
        }
       
        public 
void reload()
        {
                
load();
        }
        
        @
Override
        
protected void parseDocument()
        {
                for (
Node globalNode getCurrentDocument().getFirstChild(); globalNode != nullglobalNode globalNode.getNextSibling())
                {
                        if (!
"list".equalsIgnoreCase(globalNode.getNodeName()))
                        {
                                continue;
                        }
                        for (
Node npcNode globalNode.getFirstChild(); npcNode != nullnpcNode npcNode.getNextSibling())
                        {
                                if (!
"npc".equalsIgnoreCase(npcNode.getNodeName()))
                                {
                                        continue;
                                }
                                
NamedNodeMap attrs npcNode.getAttributes();
                                
RewardList list = null;
                                
RewardType type null;
                                
int npcId parseInt(attrs"id");
                                
NpcTemplate template NpcHolder.getInstance().getTemplate(npcId);
                                if (
template == null)
                                {
                                        
_log.warn("Omitted NPC ID: " npcId " - NPC template does not exists!");
                                }
                                else
                                {
                                        for (
Node dropNode npcNode.getFirstChild(); dropNode != nulldropNode dropNode.getNextSibling())
                                        {
                                                if (
"droplist".equalsIgnoreCase(dropNode.getNodeName()))
                                                {
                                                        
type RewardType.RATED_GROUPED;
                                                        list = new 
RewardList(typefalse);
                                                        for (
Node catNode dropNode.getFirstChild(); catNode != nullcatNode catNode.getNextSibling())
                                                        {
                                                                if (!
"category".equalsIgnoreCase(catNode.getNodeName()))
                                                                {
                                                                        continue;
                                                                }
                                                                
attrs catNode.getAttributes();
                                                                
int chance = (int) (parseDouble(attrs"chance") * 10000.0D);
                                                                
RewardGroup group = new RewardGroup(chance);
                                                                for (
Node itemNode catNode.getFirstChild(); itemNode != nullitemNode itemNode.getNextSibling())
                                                                {
                                                                        if (!
"item".equalsIgnoreCase(itemNode.getNodeName()))
                                                                        {
                                                                                continue;
                                                                        }
                                                                        
_dropsParsed += 1;
                                                                        
attrs itemNode.getAttributes();
                                                                        
RewardData data parseReward(attrs);
                                                                        
group.addData(data);
                                                                }
                                                                list.
add(group);
                                                        }
                                                }
                                                else
                                                {
                                                        if (!
"spoillist".equalsIgnoreCase(dropNode.getNodeName()))
                                                        {
                                                                continue;
                                                        }
                                                        
RewardGroup g = new RewardGroup(RewardList.MAX_CHANCE);
                                                        
type RewardType.SWEEP;
                                                        list = new 
RewardList(typefalse);
                                                        for (
Node itemNode dropNode.getFirstChild(); itemNode != nullitemNode itemNode.getNextSibling())
                                                        {
                                                                if (!
"item".equalsIgnoreCase(itemNode.getNodeName()))
                                                                {
                                                                        continue;
                                                                }
                                                                
_spoilsParsed += 1;
                                                                
attrs itemNode.getAttributes();
                                                                
RewardData data parseReward(attrs);
                                                                
g.addData(data);
                                                        }
                                                        list.
add(g);
                                                }
                                                
template.putRewardList(type, list);
                                        }
                                }
                        }
                }
        }
       
        private 
RewardData parseReward(NamedNodeMap attrs)
        {
                
int itemId parseInt(attrs"id");
                
int min parseInt(attrs"min");
                
int max parseInt(attrs"max");
                
double chance parseDouble(attrs"chance") * 10000.0D;
                
RewardData data = new RewardData(itemId);
                if (
data.getItem().isCommonItem())
                {
                        
data.setChance(chance Config.RATE_DROP_COMMON_ITEMS);
                }
                else
                {
                        
data.setChance(chance);
                }
                
data.setMinDrop(min);
                
data.setMaxDrop(max);
                return 
data;
        }

DXVSI вне форума Отправить сообщение для DXVSI с помощью Skype™ Ответить с цитированием
Непрочитано 17.06.2014, 19:09   #2
Аватар для Donatte
Герой

По умолчанию Re: Дроп

Есть такой косяк, если выключить подгрузку скриптов.

Код:
NoScripts = True
Donatte вне форума Ответить с цитированием
Непрочитано 18.06.2014, 10:55   #3
Аватар для DXVSI
Пользователь

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

Цитата:
Сообщение от Donatte Посмотреть сообщение
Есть такой косяк, если выключить подгрузку скриптов.

Код:
NoScripts = True
Поподробнее можно?
DXVSI вне форума Отправить сообщение для DXVSI с помощью Skype™ Ответить с цитированием
Непрочитано 18.06.2014, 13:26   #4
Аватар для elastic
Ooh, who's that handsome devil?

По умолчанию Re: Дроп

Я не понимаю, причем тут парсер дропа...
elastic вне форума Отправить сообщение для elastic с помощью ICQ Ответить с цитированием
Сказали спасибо:
Непрочитано 18.06.2014, 17:38   #5
Аватар для DXVSI
Пользователь

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

Цитата:
Сообщение от elastic Посмотреть сообщение
Я не понимаю, причем тут парсер дропа...
через npc парсер работает! но если есть другие предположения пиши, я сейчас рассматриваю все возможные варианты!
DXVSI вне форума Отправить сообщение для DXVSI с помощью Skype™ Ответить с цитированием
Непрочитано 18.06.2014, 18:30   #6
Аватар для Daan Raven
Пользователь

По умолчанию Re: Дроп

А какой понт от DropListDataParser, если RewardListParser в NpcParser то же самое, только, в отличии от DropListDataParser, рабочее?
Daan Raven вне форума Ответить с цитированием
Непрочитано 18.06.2014, 18:52   #7
Аватар для DXVSI
Пользователь

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

Цитата:
Сообщение от Warencense Посмотреть сообщение
А какой понт от DropListDataParser, если RewardListParser в NpcParser то же самое, только, в отличии от DropListDataParser, рабочее?
DropListDataParser устроен по другому с ним легче работать!

Добавлено через 6 минут
Примечание с рб дроп работает!

Последний раз редактировалось DXVSI; 18.06.2014 в 18:59. Причина: Добавлено сообщение
DXVSI вне форума Отправить сообщение для DXVSI с помощью Skype™ Ответить с цитированием
Непрочитано 18.06.2014, 22:40   #8
Аватар для Daan Raven
Пользователь

По умолчанию Re: Дроп

Цитата:
Сообщение от DXVSI Посмотреть сообщение
DropListDataParser устроен по другому с ним легче работать!

Добавлено через 6 минут
Примечание с рб дроп работает!
Тогда дело вообще не в парсере. Смотрите, не допустили ли ошибок в xml/все ли указали так, как хотелось бы.
Daan Raven вне форума Ответить с цитированием
Непрочитано 18.06.2014, 23:24   #9
Аватар для DXVSI
Пользователь

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

Цитата:
Сообщение от Warencense Посмотреть сообщение
Тогда дело вообще не в парсере. Смотрите, не допустили ли ошибок в xml/все ли указали так, как хотелось бы.

я думаю гс бы кричал!

вот так составлен xml файл все верно!

PHP код:
<?xml version="1.0" encoding="UTF-8"?>
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/DropListData.xsd">
    <npc id="22782">
        <droplist>
            <category id="1" chance="100">
                <item id="57" min="325" max="758" chance="70.00000"/>
                <item id="36518" min="1" max="1" chance="0.08522"/>
                <item id="36523" min="1" max="1" chance="0.02658"/>
                <item id="36563" min="1" max="1" chance="0.00469"/>
                <item id="36553" min="1" max="1" chance="0.00156"/>
                <item id="36903" min="1" max="1" chance="0.00100"/>
                <item id="10222" min="1" max="1" chance="0.00100"/>
                <item id="10220" min="1" max="1" chance="0.00100"/>
                <item id="6622" min="1" max="1" chance="0.03753"/>
                <item id="10483" min="1" max="1" chance="0.02502"/>
                <item id="10484" min="1" max="1" chance="0.00312"/>
                <item id="10485" min="1" max="1" chance="0.00100"/>
            </category>
        </droplist>
        <spoillist>
            <item id="36532" min="1" max="1" chance="2.61900"/>
            <item id="36533" min="1" max="1" chance="0.75000"/>
            <item id="36882" min="1" max="1" chance="0.03000"/>
            <item id="36881" min="1" max="1" chance="0.00300"/>
        </spoillist>
    </npc>
</list>

Последний раз редактировалось DXVSI; 18.06.2014 в 23:49.
DXVSI вне форума Отправить сообщение для DXVSI с помощью Skype™ Ответить с цитированием
Непрочитано 19.06.2014, 15:02   #10
Аватар для Daan Raven
Пользователь

По умолчанию Re: Дроп

chance="0.08522" - попробуй поменять значения. А если уж и это не сработает и при чем гс не выбрасывает ошибок, то тем более не вижу смысла в этом droplistdatа.
Daan Raven вне форума Ответить с цитированием
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
дроп с мобов twist911 Работа со скриптами 22 26.08.2013 15:37
[SQL] Удалить дроп у всех кроме рейд боссов, а также оставить адену и колы TuIIoK Работа со скриптами 2 30.10.2010 02:02
[Продам] Gracia Part 2 L2Dream PaInKiLlEr Рынок / Marketplace 10 04.06.2010 00:18
Dream 654.RB дроп Walkrok Lineage II 1 31.01.2009 21:01


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

Вверх