Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Дроп
#1
Привет всем!

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

Вот код:
PHP код:
<?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 != null; globalNode = globalNode.getNextSibling())
{
if (!
"list".equalsIgnoreCase(globalNode.getNodeName()))
{
continue;
}
for (
Node npcNode = globalNode.getFirstChild(); npcNode != null; npcNode = 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 != null; dropNode = dropNode.getNextSibling())
{
if (
"droplist".equalsIgnoreCase(dropNode.getNodeName()))
{
type = RewardType.RATED_GROUPED;
list = new
RewardList(type, false);
for (
Node catNode = dropNode.getFirstChild(); catNode != null; catNode = 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 != null; itemNode = 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(type, false);
for (
Node itemNode = dropNode.getFirstChild(); itemNode != null; itemNode = 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;
}
}
Ответ
#2
Есть такой косяк, если выключить подгрузку скриптов.

Код:
NoScripts = True
Ответ
#3
Donatte Написал:Есть такой косяк, если выключить подгрузку скриптов.

Код:
NoScripts = True

Поподробнее можно?:Olen':
Ответ
#4
Я не понимаю, причем тут парсер дропа...
Ответ
#5
elastic Написал:Я не понимаю, причем тут парсер дропа...

через npc парсер работает! но если есть другие предположения пиши, я сейчас рассматриваю все возможные варианты!
Ответ
#6
А какой понт от DropListDataParser, если RewardListParser в NpcParser то же самое, только, в отличии от DropListDataParser, рабочее?
Ответ
#7
Warencense Написал:А какой понт от DropListDataParser, если RewardListParser в NpcParser то же самое, только, в отличии от DropListDataParser, рабочее?

DropListDataParser устроен по другому с ним легче работать!

Добавлено через 6 минут
Примечание с рб дроп работает!
Ответ
#8
DXVSI Написал:DropListDataParser устроен по другому с ним легче работать!

Добавлено через 6 минут
Примечание с рб дроп работает!
Тогда дело вообще не в парсере. Смотрите, не допустили ли ошибок в xml/все ли указали так, как хотелось бы.
Ответ
#9
Ответ
#10
chance="0.08522" - попробуй поменять значения. А если уж и это не сработает и при чем гс не выбрасывает ошибок, то тем более не вижу смысла в этом droplistdatа.
Ответ


Возможно похожие темы ...
Тема Автор Ответы Просмотры Последний пост
  Дроп для newbie из Гремлинов Blue Gamestone Magican 2 2,147 03-30-2023, 03:51 PM
Последний пост: ntking
  Вопрос по AI моба и дроп с нпц mercury320 7 2,365 08-29-2018, 04:14 PM
Последний пост: Zubastic
  Как Добавить Дроп Колов Всем Рб Сборка Rebellion Hf? Xample 19 6,021 02-22-2014, 03:45 PM
Последний пост: Xample
  дроп лист NuboRB 7 1,923 10-01-2013, 05:09 PM
Последний пост: NuboRB
  дроп с мобов twist911 22 3,544 08-26-2013, 03:37 PM
Последний пост: L2scripts-Guard
  Камалока, дроп. LDD 7 4,133 07-09-2012, 01:03 PM
Последний пост: LDD
  Меняем Дроп KpoIIIuK 1 1,621 06-27-2012, 11:55 PM
Последний пост: 4ipolino
  [Core] Дроп итема surfacing 6 3,031 01-10-2011, 03:01 AM
Последний пост: surfacing
  [SQL] Удалить дроп у всех кроме рейд боссов, а также оставить адену и колы TuIIoK 2 6,391 10-30-2010, 02:02 AM
Последний пост: TuIIoK
  Дроп с мобов skil 11 13,259 06-11-2010, 12:51 PM
Последний пост: Nameoff

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


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