L2JMobius

Prelude of War AutoLearnSkills Error

MASSACRE · 4 · 5221

Offline MASSACRE

  • Heir
  • **
    • Posts: 18
Hi, in Character.ini, when i set AutoLearnSkills = True i get this error:

Code: [Select]
[17/09 12:01:14] Exception for: [Account: test - IP: 192.168.1.103] on packet.run: CharacterCreate
java.lang.NullPointerException
at java.base/java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
at org.l2jmobius.gameserver.data.xml.impl.SendMessageLocalisationData.getLocalisation(SendMessageLocalisationData.java:94)
at org.l2jmobius.gameserver.model.actor.instance.PlayerInstance.sendMessage(PlayerInstance.java:8870)
at org.l2jmobius.gameserver.model.actor.instance.PlayerInstance.giveAvailableSkills(PlayerInstance.java:2577)
at org.l2jmobius.gameserver.model.actor.instance.PlayerInstance.rewardSkills(PlayerInstance.java:2475)
at org.l2jmobius.gameserver.model.actor.stat.PlayerStat.addLevel(PlayerStat.java:251)
at org.l2jmobius.gameserver.network.clientpackets.CharacterCreate.run(CharacterCreate.java:333)
at org.l2jmobius.gameserver.network.clientpackets.CharacterCreate.run(CharacterCreate.java:54)
at org.l2jmobius.gameserver.network.GameClient.channelRead0(GameClient.java:130)
at org.l2jmobius.gameserver.network.GameClient.channelRead0(GameClient.java:65)
at io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:328)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:302)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:328)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:302)
at io.netty.handler.codec.ByteToMessageCodec.channelRead(ByteToMessageCodec.java:103)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:328)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:302)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1421)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:697)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:632)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:549)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:511)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:918)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:832)

and when you create a new character, they have all status in 0 and you cant login/spawn


Here a copy of my Character.ini
https://justpaste.it/539oa



Online Mobius

  • Distinguished King
  • *****
    • Posts: 16033
According to the log you have SendMessageLocalisationData enabled?

Try this.
Code: [Select]
Index: java/org/l2jmobius/gameserver/data/xml/impl/SendMessageLocalisationData.java
===================================================================
--- java/org/l2jmobius/gameserver/data/xml/impl/SendMessageLocalisationData.java (revision 7463)
+++ java/org/l2jmobius/gameserver/data/xml/impl/SendMessageLocalisationData.java (working copy)
@@ -91,50 +91,54 @@
  {
  if (Config.MULTILANG_ENABLE)
  {
- final Map<String[], String[]> localisations = SEND_MESSAGE_LOCALISATIONS.get(player.getLang());
- if (localisations != null)
+ final String lang = player.getLang();
+ if (lang != null)
  {
- // No pretty way of doing something like this.
- // Consider using proper SystemMessages where possible.
- String[] searchMessage;
- String[] replacementMessage;
- String localisation = message;
- boolean found;
- for (Entry<String[], String[]> entry : localisations.entrySet())
+ final Map<String[], String[]> localisations = SEND_MESSAGE_LOCALISATIONS.get(lang);
+ if (localisations != null)
  {
- searchMessage = entry.getKey();
- replacementMessage = entry.getValue();
-
- // Exact match.
- if (searchMessage.length == 1)
+ // No pretty way of doing something like this.
+ // Consider using proper SystemMessages where possible.
+ String[] searchMessage;
+ String[] replacementMessage;
+ String localisation = message;
+ boolean found;
+ for (Entry<String[], String[]> entry : localisations.entrySet())
  {
- if (searchMessage[0].equals(localisation))
+ searchMessage = entry.getKey();
+ replacementMessage = entry.getValue();
+
+ // Exact match.
+ if (searchMessage.length == 1)
  {
- return replacementMessage[0];
- }
- }
- else // Split match.
- {
- found = true;
- for (String part : searchMessage)
- {
- if (!localisation.contains(part))
+ if (searchMessage[0].equals(localisation))
  {
- found = false;
- break;
+ return replacementMessage[0];
  }
  }
- if (found)
+ else // Split match.
  {
- for (int i = 0; i < searchMessage.length; i++)
+ found = true;
+ for (String part : searchMessage)
  {
- localisation = localisation.replace(searchMessage[i], replacementMessage[i]);
+ if (!localisation.contains(part))
+ {
+ found = false;
+ break;
+ }
  }
- break;
+ if (found)
+ {
+ for (int i = 0; i < searchMessage.length; i++)
+ {
+ localisation = localisation.replace(searchMessage[i], replacementMessage[i]);
+ }
+ break;
+ }
  }
  }
+ return localisation;
  }
- return localisation;
  }
  }
  return message;


Offline MASSACRE

  • Heir
  • **
    • Posts: 18
I get error:
Code: [Select]
    [javac] Compiling 2412 source files to C:\eclipse\workspace\build\bin
    [javac] C:\eclipse\workspace\L2J_Mobius_7.0_PreludeOfWar\java\org\l2jmobius\gameserver\data\xml\impl\SendMessageLocalisationData.java:125: error: cannot find symbol
    [javac] message = message.replace(searchMessage[i], replacementMessage[i]);
    [javac]                                         ^
    [javac]   symbol:   variable i
    [javac]   location: class SendMessageLocalisationData
    [javac] C:\eclipse\workspace\L2J_Mobius_7.0_PreludeOfWar\java\org\l2jmobius\gameserver\data\xml\impl\SendMessageLocalisationData.java:125: error: cannot find symbol
    [javac] message = message.replace(searchMessage[i], replacementMessage[i]);
    [javac]                                                                ^
    [javac]   symbol:   variable i
    [javac]   location: class SendMessageLocalisationData
    [javac] 2 errors


Online Mobius

  • Distinguished King
  • *****
    • Posts: 16033
You should not have this warning.
Last time I checked localizations worked fine.