Сообщений: 68
Тем: 7
Зарегистрирован: Feb 2015
03-20-2015, 10:54 PM
(Сообщение последний раз редактировалось: 03-20-2015, 11:46 PM Confusion.)
Доброго времени суток, пробую переносить кое какие классы из сурсов от L2CCCP(Vistal), на другую сборку и столкнулся с такой проблемой в классе AbstractHolder- существует метод
Код: protected void process()
{
}
Который загружается через
AbstractParser
Код: public void load()
{
parse();
_holder.process();
_holder.log();
}
сам метод Process нужен для загрузки
Код: @Override
protected void processs()
{
buildFastLookupTable();
}
buildFastLookupTable(); которая в свою очередь добавляет эллементы в мапку, _allTemplates, и делает возможным работу SpawnManagera,
и в общем почему то при идентичном переносе - на другую сборку этого метода, он не работает,
да и если просто переиминовать Process, на Proces, в самом классе и всех его наследующих, то он попросту не будет работать даже в оригинальной сборке - пжлста подскажите в чем может быть причина ?
P.S.
Может ли быть проблема в самом классе который заполняет через buildFastLookupTable - NpcTemplate. Ибо в моей сборке он отличается - L2NpcTemplate. Хотя почему тогда выскакивает ошибка с Process - при преиминовании, в оригинальной сборке.
Сообщений: 1,912
Тем: 56
Зарегистрирован: Jan 2009
Репутация:
12,921
Confusion Написал:Доброго времени суток, пробую переносить кое какие классы из сурсов от L2CCCP(Vistal), на другую сборку и столкнулся с такой проблемой в классе AbstractHolder- существует метод
Код: protected void process()
{
}
Который загружается через
AbstractParser
Код: public void load()
{
parse();
_holder.process();
_holder.log();
}
сам метод Process нужен для загрузки
Код: @Override
protected void processs()
{
buildFastLookupTable();
}
buildFastLookupTable(); которая в свою очередь добавляет эллементы в мапку, _allTemplates, и делает возможным работу SpawnManagera,
и в общем почему то при идентичном переносе - на другую сборку этого метода, он не работает,
да и если просто переиминовать Process, на Proces, в самом классе и всех его наследующих, то он попросту не будет работать даже в оригинальной сборке - пжлста подскажите в чем может быть причина ?
P.S.
Может ли быть проблема в самом классе который заполняет через buildFastLookupTable - NpcTemplate. Ибо в моей сборке он отличается - L2NpcTemplate. Хотя почему тогда выскакивает ошибка с Process - при преиминовании, в оригинальной сборке.
Это ваша халатность. работать будет в 100% случаях если сделать все верно
Сообщений: 2,102
Тем: 40
Зарегистрирован: Apr 2008
Репутация:
12,296
rasRas
А бывали же времена, да дядя Висталл
Код: /**
* Author: VISTALL
* Date: 20.07.2009
* Time: 12:27:04
*/
public abstract class AbstractHolder {
Сообщений: 68
Тем: 7
Зарегистрирован: Feb 2015
VISTALL Написал:Это ваша халатность. работать будет в 100% случаях если сделать все верно Я и не вкуриваю где - допустил ошибку, или точнее почему оно не загружает ? Можно это как то выявить ?
Сообщений: 1,912
Тем: 56
Зарегистрирован: Jan 2009
Репутация:
12,921
KilRoy Написал:
rasRas
А бывали же времена, да дядя Висталл
Код: /**
* Author: VISTALL
* Date: 20.07.2009
* Time: 12:27:04
*/
public abstract class AbstractHolder {
Цитата:Я и не вкуриваю где - допустил ошибку, или точнее почему оно не загружает ? Можно это как то выявить ?
Продебажить?
Сообщений: 68
Тем: 7
Зарегистрирован: Feb 2015
VISTALL Написал:
Продебажить? Пробовал но как то не сильно вышло(видно не сильно я дружу с дебагингом), я не могу понять этот Process с чем то еще связан- почему при изменении на 1 символ, он перестает работать -даже в оригинальной сборке от CCCP?
дня 3-4 мучаюсь) все перепробовал.
Сообщений: 252
Тем: 2
Зарегистрирован: Mar 2012
Репутация:
902
В вашем описании не увидел описания точки вызова load() - про него не забыли? В оригинале они вызываются Parsers.parseAll()
Сообщений: 68
Тем: 7
Зарегистрирован: Feb 2015
ProDev Написал:В вашем описании не увидел описания точки вызова load() - про него не забыли? В оригинале они вызываются Parsers.parseAll() Блин ивправду, только я не пойму почему не работает с GameServer - у меня указывается public GameServer() throws Exception
{
NpcParser.getInstance().load();
}
А в оригинале при вызове на Load() - указывается
ParseAll{
ItemNameLineParser.getInstance().load();
}
причем Parsers.parseAll(); указывается - в самом GameServer, это может быть как то связанно с ItemNameLineParser ? или это просто особенность Parsers.ParseAll ?
Сообщений: 252
Тем: 2
Зарегистрирован: Mar 2012
Репутация:
902
Confusion Написал:Блин ивправду, только я не пойму почему не работает с GameServer - у меня указывается public GameServer() throws Exception
{
NpcParser.getInstance().load();
}
А в оригинале при вызове на Load() - указывается
ParseAll{
ItemNameLineParser.getInstance().load();
}
причем Parsers.parseAll(); указывается - в самом GameServer, это может быть как то связанно с ItemNameLineParser ? или это просто особенность Parsers.ParseAll ?
Parsers - это просто helper-класс, который вызывает уже все нужные парсер внутри. Т.е. что вызов Parser.parseAll(), что напрямую NpcParser.getInstance().load() - без разницы. Видимо, что-то наломано внутри. Какая ошибка? NpcHolder по пути в конструкторе не потерялся?
Сообщений: 68
Тем: 7
Зарегистрирован: Feb 2015
ProDev Написал:Parsers - это просто helper-класс, который вызывает уже все нужные парсер внутри. Т.е. что вызов Parser.parseAll(), что напрямую NpcParser.getInstance().load() - без разницы. Видимо, что-то наломано внутри. Какая ошибка? NpcHolder по пути в конструкторе не потерялся? Да я примерно описал, вот сам Log Ошибки
Код: xception in thread "main" java.lang.ExceptionInInitializerError
at net.sf.l2j.gameserver.GameServer.<init>(GameServer.java:153)
at net.sf.l2j.gameserver.GameServer.main(GameServer.java:390)
aused by: java.lang.NullPointerException
at net.sf.l2j.gameserver.model.HardSpawner.getCurrentNpcId(HardSpawner.j
va:84)
at net.sf.l2j.gameserver.datatables.SpawnManager.fillSpawn(SpawnManager.
ava:87)
at net.sf.l2j.gameserver.datatables.SpawnManager.<init>(SpawnManager.jav
:66)
at net.sf.l2j.gameserver.datatables.SpawnManager.<clinit>(SpawnManager.j
va:50)
... 2 more
не заполняется _allTemplates в методе GetTemplate, из NpcHolder'a, которая просчитывается в методе buildFastLookupTable - который должен загружаться через processs(), но почему то этого не происходит, и получается ошибка NullPointerException - указывающая на все тот же метод из SpawnManagera' NpcHolder.getInstance().getTemplate(spawner.getCurrentNpcId());
- то есть GetTemplate,
Я в оригинале(L2cccP) брал и менял Process(), на Proces() - везде где встречается, и билдил ядро, закидывал в Gameserver, и выскакивала та же самая ошибка - null pointer excpetion - GetCurrentNpcId, + еще и на ItemHolder Ругалась.
Не пойму в чем дело.
|