Перейти к содержанию
Авторизация  
1d3x

Itemtable: Не Знаю, Где Создать Тему [Нужна Помощь]

Рекомендуемые сообщения

Ку всем. Столкнулся с проблемой, решение которой не нашел за 3 часа.

 

При создании любого итема в таблу armor, armorsets, custom_armor и custom_armorsets вылетает не понятная ошибка, после которой нельзя заспавнить эти вещи, мол пишет что нет такого предмета. С серверами имею дело довольно давно, но эта проблема просто ввела меня в ступор.

 

=====================================================================-[ Items ]
[iNFO 22:39:02]: Items: Cleanup items table
[WARN 22:39:02]: data error on custom item:
java.lang.NullPointerException
at ru.catssoftware.gameserver.datatables.ItemTable.readArmor(ItemTable.java:414)
at ru.catssoftware.gameserver.datatables.ItemTable.(ItemTable.java:265)
at ru.catssoftware.gameserver.datatables.ItemTable.getInstance(ItemTable.java:174)
at ru.catssoftware.gameserver.L2GameServer.(L2GameServer.java:273)
at ru.catssoftware.gameserver.util.BootManager.(BootManager.java:150)
at ru.catssoftware.gameserver.util.BootManager.main(BootManager.java:41)
[iNFO 22:39:02]: ItemTable: Loaded 6882/6882 Items.

 

Прощу помощи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Ку всем. Столкнулся с проблемой, решение которой не нашел за 3 часа.

 

При создании любого итема в таблу armor, armorsets, custom_armor и custom_armorsets вылетает не понятная ошибка, после которой нельзя заспавнить эти вещи, мол пишет что нет такого предмета. С серверами имею дело довольно давно, но эта проблема просто ввела меня в ступор.

 

=====================================================================-[ Items ]
[iNFO 22:39:02]: Items: Cleanup items table
[WARN 22:39:02]: data error on custom item:
java.lang.NullPointerException
at ru.catssoftware.gameserver.datatables.ItemTable.readArmor(ItemTable.java:414)
at ru.catssoftware.gameserver.datatables.ItemTable.(ItemTable.java:265)
at ru.catssoftware.gameserver.datatables.ItemTable.getInstance(ItemTable.java:174)
at ru.catssoftware.gameserver.L2GameServer.(L2GameServer.java:273)
at ru.catssoftware.gameserver.util.BootManager.(BootManager.java:150)
at ru.catssoftware.gameserver.util.BootManager.main(BootManager.java:41)
[iNFO 22:39:02]: ItemTable: Loaded 6882/6882 Items.

 

Прощу помощи.

 

 

 private Item readArmor(ResultSet rset, boolean custom) throws SQLException
{
Item item = new Item();
item.set = new StatsSet();
item.type = _armorTypes.get(rset.getString("armor_type"));
item.id = rset.getInt("item_id");
item.displayid = custom ? rset.getInt("item_display_id") : item.id;
item.name = rset.getString("name");

item.set.set("item_id", item.id);
item.set.set("item_display_id", item.displayid);
item.set.set("name", item.name);
int bodypart = _slots.get(rset.getString("bodypart"));
item.set.set("bodypart", bodypart);
item.set.set("crystallizable", Boolean.valueOf(rset.getString("crystallizable")));
item.set.set("crystal_count", rset.getInt("crystal_count"));
item.set.set("sellable", Boolean.valueOf(rset.getString("sellable")));
item.set.set("dropable", Boolean.valueOf(rset.getString("dropable")));
item.set.set("destroyable", Boolean.valueOf(rset.getString("destroyable")));
item.set.set("tradeable", Boolean.valueOf(rset.getString("tradeable")));

item.set.set("skills_item", rset.getString("skills_item"));

if (bodypart == L2Item.SLOT_NECK || bodypart == L2Item.SLOT_HAIR || bodypart == L2Item.SLOT_FACE
|| bodypart == L2Item.SLOT_HAIRALL || (bodypart & L2Item.SLOT_L_EAR) != 0
|| (bodypart & L2Item.SLOT_L_FINGER) != 0
|| (bodypart & L2Item.SLOT_R_BRACELET) != 0
|| (bodypart & L2Item.SLOT_L_BRACELET) != 0 )
{
item.set.set("type1", L2Item.TYPE1_WEAPON_RING_EARRING_NECKLACE);
item.set.set("type2", L2Item.TYPE2_ACCESSORY);
}
else
{
item.set.set("type1", L2Item.TYPE1_SHIELD_ARMOR);
item.set.set("type2", L2Item.TYPE2_SHIELD_ARMOR);
}

item.set.set("weight", rset.getInt("weight"));
item.set.set("material", _materials.get(rset.getString("material")));
item.set.set("crystal_type", _crystalTypes.get(rset.getString("crystal_type")));
item.set.set("avoid_modify", rset.getInt("avoid_modify"));
item.set.set("duration", rset.getInt("duration"));
item.set.set("lifetime",rset.getInt("lifetime"));
item.set.set("p_def", rset.getInt("p_def"));
item.set.set("m_def", rset.getInt("m_def"));
item.set.set("mp_bonus", rset.getInt("mp_bonus"));
item.set.set("price", rset.getInt("price"));

if (item.type == L2ArmorType.PET)
{
if (bodypart == L2Item.SLOT_NECK)
{
item.set.set("type1", L2Item.TYPE1_WEAPON_RING_EARRING_NECKLACE);
item.set.set("type2", L2Item.TYPE2_ACCESSORY);
item.set.set("bodypart", L2Item.SLOT_NECK);
}
else
{
item.set.set("type1", L2Item.TYPE1_SHIELD_ARMOR);
switch (item.set.getInteger("bodypart"))
{
case L2Item.SLOT_WOLF:
item.set.set("type2", L2Item.TYPE2_PET_WOLF);
break;
case L2Item.SLOT_GREATWOLF:
item.set.set("type2", L2Item.TYPE2_PET_EVOLVEDWOLF);
break;
case L2Item.SLOT_HATCHLING:
item.set.set("type2", L2Item.TYPE2_PET_HATCHLING);
break;
case L2Item.SLOT_BABYPET:
item.set.set("type2", L2Item.TYPE2_PET_BABY);
break;
default:
item.set.set("type2", L2Item.TYPE2_PET_STRIDER);
break;
}
item.set.set("bodypart", L2Item.SLOT_CHEST);
}
}

return item;
}


 

Ссылаеться на

int bodypart = _slots.get(rset.getString("bodypart"));

Проверь, правильно ли указано в таблице значение

bodypart 

для добавленного тобой предмета

Изменено пользователем Shkaf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ку всем. Столкнулся с проблемой, решение которой не нашел за 3 часа.

 

При создании любого итема в таблу armor, armorsets, custom_armor и custom_armorsets вылетает не понятная ошибка, после которой нельзя заспавнить эти вещи, мол пишет что нет такого предмета. С серверами имею дело довольно давно, но эта проблема просто ввела меня в ступор.

 

=====================================================================-[ Items ]
[iNFO 22:39:02]: Items: Cleanup items table
[WARN 22:39:02]: data error on custom item:
java.lang.NullPointerException
at ru.catssoftware.gameserver.datatables.ItemTable.readArmor(ItemTable.java:414)
at ru.catssoftware.gameserver.datatables.ItemTable.(ItemTable.java:265)
at ru.catssoftware.gameserver.datatables.ItemTable.getInstance(ItemTable.java:174)
at ru.catssoftware.gameserver.L2GameServer.(L2GameServer.java:273)
at ru.catssoftware.gameserver.util.BootManager.(BootManager.java:150)
at ru.catssoftware.gameserver.util.BootManager.main(BootManager.java:41)
[iNFO 22:39:02]: ItemTable: Loaded 6882/6882 Items.

 

Прощу помощи.

 

не знаю может уже пробывал!!!! ты прописал в датапаке?? gameserver/data/stats ???

Изменено пользователем OoYaololo

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

 private Item readArmor(ResultSet rset, boolean custom) throws SQLException
{
Item item = new Item();
item.set = new StatsSet();
item.type = _armorTypes.get(rset.getString("armor_type"));
item.id = rset.getInt("item_id");
item.displayid = custom ? rset.getInt("item_display_id") : item.id;
item.name = rset.getString("name");

item.set.set("item_id", item.id);
item.set.set("item_display_id", item.displayid);
item.set.set("name", item.name);
int bodypart = _slots.get(rset.getString("bodypart"));
item.set.set("bodypart", bodypart);
item.set.set("crystallizable", Boolean.valueOf(rset.getString("crystallizable")));
item.set.set("crystal_count", rset.getInt("crystal_count"));
item.set.set("sellable", Boolean.valueOf(rset.getString("sellable")));
item.set.set("dropable", Boolean.valueOf(rset.getString("dropable")));
item.set.set("destroyable", Boolean.valueOf(rset.getString("destroyable")));
item.set.set("tradeable", Boolean.valueOf(rset.getString("tradeable")));

item.set.set("skills_item", rset.getString("skills_item"));

if (bodypart == L2Item.SLOT_NECK || bodypart == L2Item.SLOT_HAIR || bodypart == L2Item.SLOT_FACE
|| bodypart == L2Item.SLOT_HAIRALL || (bodypart & L2Item.SLOT_L_EAR) != 0
|| (bodypart & L2Item.SLOT_L_FINGER) != 0
|| (bodypart & L2Item.SLOT_R_BRACELET) != 0
|| (bodypart & L2Item.SLOT_L_BRACELET) != 0 )
{
item.set.set("type1", L2Item.TYPE1_WEAPON_RING_EARRING_NECKLACE);
item.set.set("type2", L2Item.TYPE2_ACCESSORY);
}
else
{
item.set.set("type1", L2Item.TYPE1_SHIELD_ARMOR);
item.set.set("type2", L2Item.TYPE2_SHIELD_ARMOR);
}

item.set.set("weight", rset.getInt("weight"));
item.set.set("material", _materials.get(rset.getString("material")));
item.set.set("crystal_type", _crystalTypes.get(rset.getString("crystal_type")));
item.set.set("avoid_modify", rset.getInt("avoid_modify"));
item.set.set("duration", rset.getInt("duration"));
item.set.set("lifetime",rset.getInt("lifetime"));
item.set.set("p_def", rset.getInt("p_def"));
item.set.set("m_def", rset.getInt("m_def"));
item.set.set("mp_bonus", rset.getInt("mp_bonus"));
item.set.set("price", rset.getInt("price"));

if (item.type == L2ArmorType.PET)
{
if (bodypart == L2Item.SLOT_NECK)
{
item.set.set("type1", L2Item.TYPE1_WEAPON_RING_EARRING_NECKLACE);
item.set.set("type2", L2Item.TYPE2_ACCESSORY);
item.set.set("bodypart", L2Item.SLOT_NECK);
}
else
{
item.set.set("type1", L2Item.TYPE1_SHIELD_ARMOR);
switch (item.set.getInteger("bodypart"))
{
case L2Item.SLOT_WOLF:
item.set.set("type2", L2Item.TYPE2_PET_WOLF);
break;
case L2Item.SLOT_GREATWOLF:
item.set.set("type2", L2Item.TYPE2_PET_EVOLVEDWOLF);
break;
case L2Item.SLOT_HATCHLING:
item.set.set("type2", L2Item.TYPE2_PET_HATCHLING);
break;
case L2Item.SLOT_BABYPET:
item.set.set("type2", L2Item.TYPE2_PET_BABY);
break;
default:
item.set.set("type2", L2Item.TYPE2_PET_STRIDER);
break;
}
item.set.set("bodypart", L2Item.SLOT_CHEST);
}
}

return item;
}


 

Ссылаеться на

int bodypart = _slots.get(rset.getString("bodypart"));

Проверь, правильно ли указано в таблице значение

bodypart 

для добавленного тобой предмета

 

Все правильно, я это проверял несколько раз

 

1 15000 Breastplate of Daybreak chest true heavy 580 leather s 0 -1 -1 150 0 0 1160000 4000 true true true true
2 15001 Gaiters of Daybreak legs true none 580 leather s 0 -1 -1 86 0 0 1160000 4000 true true true true
3 15002 Gloves of Daybreak gloves true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
4 15003 Boots of Daybreak boots true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
5 15004 Shirt of Daybreak chest true light 580 leather s 0 -1 -1 130 0 0 1160000 4000 true true true true
6 15005 Pants of Daybreak legs true none 580 leather s 0 -1 -1 76 0 0 1160000 4000 true true true true
7 15006 Gloves of Daybreak gloves true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
8 15007 Shoes of Daybreak boots true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
9 15008 Robe of Daybreak chest true magic 580 leather s 0 -1 -1 110 0 0 1160000 4000 true true true true
10 15009 Stockings of Daybreak legs true none 580 leather s 0 -1 -1 66 0 0 1160000 4000 true true true true
11 15010 Gloves of Daybreak gloves true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
12 15011 Sandals of Daybreak boots true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
13 15012 Helmet of Daybreak head true none 580 leather s 0 -1 -1 96 0 0 1160000 4000 true true true true
14 15013 Circlet of Daybreak head true none 580 leather s 0 -1 -1 86 0 0 1160000 4000 true true true true
15 15014 Cap of Daybreak head true none 580 leather s 0 -1 -1 76 0 0 1160000 4000 true true true true

 

Ошибка всплывала для ИД 15000, но его я мог одеть, и так же мог одеть 15000-15002, а вот дальше писало что не найден предмет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не знаю может уже пробывал!!!! ты прописал в датапаке?? gameserver/data/stats/armor/ ???

 

Об этом позаботился в первую очередь

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все правильно, я это проверял несколько раз

 

 

1 15000 Breastplate of Daybreak chest true heavy 580 leather s 0 -1 -1 150 0 0 1160000 4000 true true true true
2 15001 Gaiters of Daybreak legs true none 580 leather s 0 -1 -1 86 0 0 1160000 4000 true true true true
3 15002 Gloves of Daybreak gloves true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
4 15003 Boots of Daybreak boots true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
5 15004 Shirt of Daybreak chest true light 580 leather s 0 -1 -1 130 0 0 1160000 4000 true true true true
6 15005 Pants of Daybreak legs true none 580 leather s 0 -1 -1 76 0 0 1160000 4000 true true true true
7 15006 Gloves of Daybreak gloves true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
8 15007 Shoes of Daybreak boots true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
9 15008 Robe of Daybreak chest true magic 580 leather s 0 -1 -1 110 0 0 1160000 4000 true true true true
10 15009 Stockings of Daybreak legs true none 580 leather s 0 -1 -1 66 0 0 1160000 4000 true true true true
11 15010 Gloves of Daybreak gloves true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
12 15011 Sandals of Daybreak boots true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
13 15012 Helmet of Daybreak head true none 580 leather s 0 -1 -1 96 0 0 1160000 4000 true true true true
14 15013 Circlet of Daybreak head true none 580 leather s 0 -1 -1 86 0 0 1160000 4000 true true true true
15 15014 Cap of Daybreak head true none 580 leather s 0 -1 -1 76 0 0 1160000 4000 true true true true

 

Ошибка всплывала для ИД 15000, но его я мог одеть, и так же мог одеть 15000-15002, а вот дальше писало что не найден предмет

 

Исходный sql в студию

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Исходный sql в студию

 

Заливал ручками, без скулов)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заливал ручками, без скулов)

полюбому трабла может быть в Бд тоесть куда заливал может не то значение встроке прописал проверб по шаблонам других почти аналогичных вешей!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все правильно, я это проверял несколько раз

 

 

1 15000 Breastplate of Daybreak chest true heavy 580 leather s 0 -1 -1 150 0 0 1160000 4000 true true true true
2 15001 Gaiters of Daybreak legs true none 580 leather s 0 -1 -1 86 0 0 1160000 4000 true true true true
3 15002 Gloves of Daybreak gloves true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
4 15003 Boots of Daybreak boots true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
5 15004 Shirt of Daybreak chest true light 580 leather s 0 -1 -1 130 0 0 1160000 4000 true true true true
6 15005 Pants of Daybreak legs true none 580 leather s 0 -1 -1 76 0 0 1160000 4000 true true true true
7 15006 Gloves of Daybreak gloves true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
8 15007 Shoes of Daybreak boots true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
9 15008 Robe of Daybreak chest true magic 580 leather s 0 -1 -1 110 0 0 1160000 4000 true true true true
10 15009 Stockings of Daybreak legs true none 580 leather s 0 -1 -1 66 0 0 1160000 4000 true true true true
11 15010 Gloves of Daybreak gloves true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
12 15011 Sandals of Daybreak boots true none 580 leather s 0 -1 -1 46 0 0 1160000 4000 true true true true
13 15012 Helmet of Daybreak head true none 580 leather s 0 -1 -1 96 0 0 1160000 4000 true true true true
14 15013 Circlet of Daybreak head true none 580 leather s 0 -1 -1 86 0 0 1160000 4000 true true true true
15 15014 Cap of Daybreak head true none 580 leather s 0 -1 -1 76 0 0 1160000 4000 true true true true

 

Ошибка всплывала для ИД 15000, но его я мог одеть, и так же мог одеть 15000-15002, а вот дальше писало что не найден предмет

 

Эм, стоп, что за цифры 1-15 перед id?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ааа, всё понял

Залей без цифр 1-15 в таблицу armor а не в custom_armor

=-=-=

itemid и item_display_id это фишка люцеры

можно допустим сделать второй щит Imperial Crusader со статами +100500 не добавляя его в клиент

в клиенте будет показывать обычный ик щит а расчитываться статы будут от того нового щита и которые статы вы ему указали

 

То есть в поле ItemId указываем на ИД указаный в xml, например 15000, а во втором поле указываем Id щита то есть 6377

Изменено пользователем Shkaf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И туда

Ааа, всё понял

Залей без цифр 1-15 в таблицу armor а не в custom_armor

 

И туда, и туда пробовал по 10 раз заливать - все идентично

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И туда

 

И туда, и туда пробовал по 10 раз заливать - все идентично

Блин, не знаю тогда

 

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

перезаполни ВРУЧНУЮ еще раз bodypart что бы уж точно исключить что там мог быть кириллический символ

Изменено пользователем Shkaf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ааа, всё понял

Залей без цифр 1-15 в таблицу armor а не в custom_armor

=-=-=

itemid и item_display_id это фишка люцеры

можно допустим сделать второй щит Imperial Crusader со статами +100500 не добавляя его в клиент

в клиенте будет показывать обычный ик щит а расчитываться статы будут от того нового щита и которые статы вы ему указали

 

То есть в поле ItemId указываем на ИД указаный в xml, например 15000, а во втором поле указываем Id щита то есть 6377

 

Но ведь я одевал первые 3 вещи, в этом вся суть

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но ведь я одевал первые 3 вещи, в этом вся суть

Вот именно что одевал первые три вещи, следовательно в четвертой вещи ошибка, и дальше он не может прочесть таблицу

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Блин, не знаю тогда

 

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

перезаполни ВРУЧНУЮ еще раз bodypart что бы уж точно исключить что там мог быть кириллический символ

 

Делал пару раз, не в этом дело(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот именно что одевал первые три вещи, следовательно в четвертой вещи ошибка, и дальше он не может прочесть таблицу

 

Но ошибка ругалась на ид 15000, а это самый первый итем

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Но ошибка ругалась на ид 15000, а это самый первый итем

Пойдём по другому, скинь мне xml, и дамп таблицы

залей на ргхост

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я уже забил хрен на это)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...