Помогите пожалуйста столкнулся со следующей проблемой. Хотел сделать что бы скилы к итемам были привязаны как у GodWorld
PHP код:
<set name="item_skill" value="13062-2"/>
Добавил код в ItemTemplate:
PHP код:
String skills = set.getString("item_skill", null);
if(skills != null)
{
String arr[] = skills.split(";");
len = arr.length;
for(int i = 0; i < len; i++)
{
String aSkillsSplit = arr[i];
int id;
int level;
String ngt[] = aSkillsSplit.split("-");
if (ngt.length == 2)
{
id = Integer.parseInt(ngt[0]);
level = Integer.parseInt(ngt[1]);
Skill skill = SkillTable.getInstance().getInfo(id, level);
_skills = ArrayUtils.add(_skills, skill);
}
}
}
Если прописан один скилл как показано выше все нормально. Но если прописать два скила
PHP код:
<set name="item_skill" value="13062-2;3566-9"/>
При запуске сервера выдает ошибку но грузит сервак полностью.
PHP код:
ERROR scripts.Scripts: Scripts: Failed running handler.items.ItemSkills.onLoad()
java.lang.NullPointerException
at handler.items.ItemSkills.<init>(ItemSkills.java:30)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at org.mmocore.gameserver.scripts.Scripts.init(Scripts.java:95)
at org.mmocore.gameserver.GameServer.<init>(GameServer.java:153)
at org.mmocore.gameserver.GameServer.main(GameServer.java:307)
При попытке одеть итем с двумя прописанными скилами гс выдает ошибку
PHP код:
ERROR clientpackets.L2GameClientPacket: Client: IN_GAME IP: 127.0.0.1 Account: admin Player : Sigel[268487687] - Failed running: [C] UseItem - Server Version: ${build.revision}
java.lang.NullPointerException
at org.mmocore.gameserver.model.items.listeners.ItemSkillsListener.onEquip(ItemSkillsListener.java:86)
at org.mmocore.gameserver.model.items.Inventory$InventoryListenerList.onEquip(Inventory.java:65)
at org.mmocore.gameserver.model.items.Inventory.onEquip(Inventory.java:175)
at org.mmocore.gameserver.model.items.PcInventory.onEquip(PcInventory.java:360)
at org.mmocore.gameserver.model.items.Inventory.setPaperdollItem(Inventory.java:296)
at org.mmocore.gameserver.model.items.Inventory.equipItem(Inventory.java:459)
at handler.items.EquipableItem.useItem(EquipableItem.java:101)
at org.mmocore.gameserver.network.clientpackets.UseItem.runImpl(UseItem.java:95)
at org.mmocore.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:49)
at org.mmocore.commons.net.nio.impl.MMOExecutableQueue.run(MMOExecutableQueue.java:39)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
А в игре персонаж как бы одел этот итем но внешне он показывается но иконки в инвертаре нету. За основу брал исходы Rebellion Tauti.