Сообщений: 466
Тем: 10
Зарегистрирован: Dec 2012
Репутация:
398
Ну я же говорил, разжевал, как мог :redlol: Ну и тем более, так как мне известны все команды с точностью, то зачем замедлять ее выполнение циклом?
Сообщений: 102
Тем: 0
Зарегистрирован: Dec 2012
Репутация:
139
09-26-2014, 12:25 AM
(Сообщение последний раз редактировалось: 09-26-2014, 12:56 PM silvermain.)
спасибо большое, завтра буду смотреть=)
Добавлено через 12 часов 30 минут
Warencense Написал:Ну я же говорил, разжевал, как мог :redlol: Ну и тем более, так как мне известны все команды с точностью, то зачем замедлять ее выполнение циклом?
если отключить камушки то всё отлично, но как только включаю их то вот:
Ошибка
PHP код: <?php
[26/09 13:54:06] Client: [Account: test - IP: 127.0.0.1] - Failed writing: CharSelectionInfo - L2J Server Version: Unsupported Custom Version. - DP Revision: Unsupported Custom Version. ; 31
java.lang.ArrayIndexOutOfBoundsException: 31
at com.l2jserver.gameserver.model.CharSelectInfoPackage.getPaperdollItemId(CharSelectInfoPackage.java:220)
at com.l2jserver.gameserver.network.serverpackets.lobby.CharSelectionInfo.writeImpl(CharSelectionInfo.java:156)
at com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket.write(L2GameServerPacket.java:116)
at org.mmocore.network.SelectorThread.putPacketIntoWriteBuffer(SelectorThread.java:621)
at org.mmocore.network.SelectorThread.prepareWriteBuffer(SelectorThread.java:589)
at org.mmocore.network.SelectorThread.writePacket(SelectorThread.java:500)
at org.mmocore.network.SelectorThread.run(SelectorThread.java:187)
не знаю на данный момент как побороть сиё чудо
Сообщений: 527
Тем: 17
Зарегистрирован: Oct 2010
Репутация:
1,919
увеличь размер массива под инвентарь в CharSelectInfoPackage, оно должно ровняться максимальному количеству слотов.
Сообщений: 102
Тем: 0
Зарегистрирован: Dec 2012
Репутация:
139
09-26-2014, 10:30 PM
(Сообщение последний раз редактировалось: 09-26-2014, 11:33 PM silvermain.)
Mifesto Написал:увеличь размер массива под инвентарь в CharSelectInfoPackage, оно должно ровняться максимальному количеству слотов.
сделал полностью по аналогии браслетов и таликов, всё равно одна и та же ошибка=(((
не помещаются STONE5 и STONE6
Сообщений: 527
Тем: 17
Зарегистрирован: Oct 2010
Репутация:
1,919
09-26-2014, 11:50 PM
(Сообщение последний раз редактировалось: 09-26-2014, 11:51 PM Mifesto.)
PcInventory имеет метод:
[SRC="java"]
public static int[][] restoreVisibleInventory(int objectId)
{
int[][] paperdoll = new int[PAPERDOLL_TOTALSLOTS][4];
ThreadConnection con = null;
FiltredPreparedStatement statement = null;
ResultSet invdata = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection();
statement = con.prepareStatement("SELECT object_id,item_id,loc_data,enchant_level,skin_id FROM items WHERE owner_id=? AND loc='PAPERDOLL'");
statement.setInt(1, objectId);
invdata = statement.executeQuery();
while(invdata.next())
{
int slot = invdata.getInt("loc_data");
paperdoll[slot][0] = invdata.getInt("object_id");
paperdoll[slot][1] = invdata.getInt("item_id");
paperdoll[slot][2] = invdata.getInt("enchant_level");
paperdoll[slot][3] = invdata.getInt("skin_id");
}
}
catch(Exception e)
{
_log.log(Level.ERROR, "Could not restore inventory: " + e.getMessage(), e);
}
finally
{
DatabaseUtils.closeDatabaseCSR(con, statement, invdata);
}
return paperdoll;
}
[/SRC]
или что то подобное, как видно тут создается массив paperdoll, у вас он меньшего размера чем слотов, по этому есть 2 вероятности, у вас в создании массива статическое число, или же PAPERDOLL_TOTALSLOTS меньше чем слотов.
Добавлено через 1 минуту
Список слотов:
[SRC="java"]
@PaperdollSlot
public static final int PAPERDOLL_UNDER = 0;
@PaperdollSlot
public static final int PAPERDOLL_REAR = 1;
@PaperdollSlot
public static final int PAPERDOLL_LEAR = 2;
@PaperdollSlot
public static final int PAPERDOLL_NECK = 3;
@PaperdollSlot
public static final int PAPERDOLL_RFINGER = 4;
@PaperdollSlot
public static final int PAPERDOLL_LFINGER = 5;
@PaperdollSlot
public static final int PAPERDOLL_HEAD = 6;
@PaperdollSlot
public static final int PAPERDOLL_RHAND = 7;
@PaperdollSlot
public static final int PAPERDOLL_LHAND = 8;
@PaperdollSlot
public static final int PAPERDOLL_GLOVES = 9;
@PaperdollSlot
public static final int PAPERDOLL_CHEST = 10;
@PaperdollSlot
public static final int PAPERDOLL_LEGS = 11;
@PaperdollSlot
public static final int PAPERDOLL_FEET = 12;
@PaperdollSlot
public static final int PAPERDOLL_CLOAK = 13;
@PaperdollSlot
public static final int PAPERDOLL_LRHAND = 14;
@PaperdollSlot
public static final int PAPERDOLL_HAIR = 15;
@PaperdollSlot
public static final int PAPERDOLL_HAIR2 = 16;
@PaperdollSlot
public static final int PAPERDOLL_RBRACELET = 17;
@PaperdollSlot
public static final int PAPERDOLL_LBRACELET = 18;
@PaperdollSlot
public static final int PAPERDOLL_DECO1 = 19;
@PaperdollSlot
public static final int PAPERDOLL_DECO2 = 20;
@PaperdollSlot
public static final int PAPERDOLL_DECO3 = 21;
@PaperdollSlot
public static final int PAPERDOLL_DECO4 = 22;
@PaperdollSlot
public static final int PAPERDOLL_DECO5 = 23;
@PaperdollSlot
public static final int PAPERDOLL_DECO6 = 24;
@PaperdollSlot
public static final int PAPERDOLL_BELT = 25;
@PaperdollSlot
public static final int PAPERDOLL_BROOCH = 26;
@PaperdollSlot
public static final int PAPERDOLL_STONE1 = 27;
@PaperdollSlot
public static final int PAPERDOLL_STONE2 = 28;
@PaperdollSlot
public static final int PAPERDOLL_STONE3 = 29;
@PaperdollSlot
public static final int PAPERDOLL_STONE4 = 30;
@PaperdollSlot
public static final int PAPERDOLL_STONE5 = 31;
@PaperdollSlot
public static final int PAPERDOLL_STONE6 = 32;
public static final int PAPERDOLL_TOTALSLOTS = 33;
[/SRC]
Сообщений: 102
Тем: 0
Зарегистрирован: Dec 2012
Репутация:
139
спойлер
Mifesto Написал:PcInventory имеет метод:
[SRC="java"]
public static int[][] restoreVisibleInventory(int objectId)
{
int[][] paperdoll = new int[PAPERDOLL_TOTALSLOTS][4];
ThreadConnection con = null;
FiltredPreparedStatement statement = null;
ResultSet invdata = null;
try
{
con = L2DatabaseFactory.getInstance().getConnection();
statement = con.prepareStatement("SELECT object_id,item_id,loc_data,enchant_level,skin_id FROM items WHERE owner_id=? AND loc='PAPERDOLL'");
statement.setInt(1, objectId);
invdata = statement.executeQuery();
while(invdata.next())
{
int slot = invdata.getInt("loc_data");
paperdoll[slot][0] = invdata.getInt("object_id");
paperdoll[slot][1] = invdata.getInt("item_id");
paperdoll[slot][2] = invdata.getInt("enchant_level");
paperdoll[slot][3] = invdata.getInt("skin_id");
}
}
catch(Exception e)
{
_log.log(Level.ERROR, "Could not restore inventory: " + e.getMessage(), e);
}
finally
{
DatabaseUtils.closeDatabaseCSR(con, statement, invdata);
}
return paperdoll;
}
[/SRC]
или что то подобное, как видно тут создается массив paperdoll, у вас он меньшего размера чем слотов, по этому есть 2 вероятности, у вас в создании массива статическое число, или же PAPERDOLL_TOTALSLOTS меньше чем слотов.
Добавлено через 1 минуту
Список слотов:
[SRC="java"]
@PaperdollSlot
public static final int PAPERDOLL_UNDER = 0;
@PaperdollSlot
public static final int PAPERDOLL_REAR = 1;
@PaperdollSlot
public static final int PAPERDOLL_LEAR = 2;
@PaperdollSlot
public static final int PAPERDOLL_NECK = 3;
@PaperdollSlot
public static final int PAPERDOLL_RFINGER = 4;
@PaperdollSlot
public static final int PAPERDOLL_LFINGER = 5;
@PaperdollSlot
public static final int PAPERDOLL_HEAD = 6;
@PaperdollSlot
public static final int PAPERDOLL_RHAND = 7;
@PaperdollSlot
public static final int PAPERDOLL_LHAND = 8;
@PaperdollSlot
public static final int PAPERDOLL_GLOVES = 9;
@PaperdollSlot
public static final int PAPERDOLL_CHEST = 10;
@PaperdollSlot
public static final int PAPERDOLL_LEGS = 11;
@PaperdollSlot
public static final int PAPERDOLL_FEET = 12;
@PaperdollSlot
public static final int PAPERDOLL_CLOAK = 13;
@PaperdollSlot
public static final int PAPERDOLL_LRHAND = 14;
@PaperdollSlot
public static final int PAPERDOLL_HAIR = 15;
@PaperdollSlot
public static final int PAPERDOLL_HAIR2 = 16;
@PaperdollSlot
public static final int PAPERDOLL_RBRACELET = 17;
@PaperdollSlot
public static final int PAPERDOLL_LBRACELET = 18;
@PaperdollSlot
public static final int PAPERDOLL_DECO1 = 19;
@PaperdollSlot
public static final int PAPERDOLL_DECO2 = 20;
@PaperdollSlot
public static final int PAPERDOLL_DECO3 = 21;
@PaperdollSlot
public static final int PAPERDOLL_DECO4 = 22;
@PaperdollSlot
public static final int PAPERDOLL_DECO5 = 23;
@PaperdollSlot
public static final int PAPERDOLL_DECO6 = 24;
@PaperdollSlot
public static final int PAPERDOLL_BELT = 25;
@PaperdollSlot
public static final int PAPERDOLL_BROOCH = 26;
@PaperdollSlot
public static final int PAPERDOLL_STONE1 = 27;
@PaperdollSlot
public static final int PAPERDOLL_STONE2 = 28;
@PaperdollSlot
public static final int PAPERDOLL_STONE3 = 29;
@PaperdollSlot
public static final int PAPERDOLL_STONE4 = 30;
@PaperdollSlot
public static final int PAPERDOLL_STONE5 = 31;
@PaperdollSlot
public static final int PAPERDOLL_STONE6 = 32;
public static final int PAPERDOLL_TOTALSLOTS = 33;
[/SRC]
спасибо огромное, я 3 дня уже никак не мог додуматься=)
Сообщений: 527
Тем: 17
Зарегистрирован: Oct 2010
Репутация:
1,919
да я недавно тоже занялся реализацией их, вот сей час застопорился на реализации камней, интересует инфа а работе Топаз, если я правильно понял он активный, или же тут типо тригера который с шансом срабатывает когда ты получаешь(наносишь) урон.
Сообщений: 102
Тем: 0
Зарегистрирован: Dec 2012
Репутация:
139
Mifesto Написал:да я недавно тоже занялся реализацией их, вот сей час застопорился на реализации камней, интересует инфа а работе Топаз, если я правильно понял он активный, или же тут типо тригера который с шансом срабатывает когда ты получаешь(наносишь) урон.
ммм, мне до этого не много рановато=))) у меня теперь новый косяк, всё с этим же лобби=))) у меня чары стоят правильные, но отображение шмоток... верхней одежды нету и мечей в руках, только ноги прикрыты и тапки=)
Топаз
Блокирует умения противника. В PvP наносить дополнительный урон 1062
При ношении камней одного типа эффект появится только от самого мощного из них. Нельзя обменять/выбросить.
Сообщений: 527
Тем: 17
Зарегистрирован: Oct 2010
Репутация:
1,919
09-27-2014, 12:47 AM
(Сообщение последний раз редактировалось: 09-27-2014, 01:04 AM Mifesto.)
я отправляю так:
PAPERDOLL_ORDER
[SRC="java"]
public static final int[] PAPERDOLL_ORDER =
{
Inventory.PAPERDOLL_HAIR,
Inventory.PAPERDOLL_REAR,
Inventory.PAPERDOLL_LEAR,
Inventory.PAPERDOLL_NECK,
Inventory.PAPERDOLL_RFINGER,
Inventory.PAPERDOLL_LFINGER,
Inventory.PAPERDOLL_HEAD,
Inventory.PAPERDOLL_RHAND,
Inventory.PAPERDOLL_LHAND,
Inventory.PAPERDOLL_GLOVES,
Inventory.PAPERDOLL_CHEST,
Inventory.PAPERDOLL_LEGS,
Inventory.PAPERDOLL_FEET,
Inventory.PAPERDOLL_CLOAK,
Inventory.PAPERDOLL_RHAND,
Inventory.PAPERDOLL_HAIR,
Inventory.PAPERDOLL_HAIR2,
Inventory.PAPERDOLL_RBRACELET,
Inventory.PAPERDOLL_LBRACELET,
Inventory.PAPERDOLL_DECO1,
Inventory.PAPERDOLL_DECO2,
Inventory.PAPERDOLL_DECO3,
Inventory.PAPERDOLL_DECO4,
Inventory.PAPERDOLL_DECO5,
Inventory.PAPERDOLL_DECO6,
Inventory.PAPERDOLL_BELT,
Inventory.PAPERDOLL_BROOCH,
Inventory.PAPERDOLL_STONE1,
Inventory.PAPERDOLL_STONE2,
Inventory.PAPERDOLL_STONE3,
Inventory.PAPERDOLL_STONE4,
Inventory.PAPERDOLL_STONE5,
Inventory.PAPERDOLL_STONE6
};
[/SRC]
кусок CharacterSelectionInfo
[SRC="java"]
writeD(charInfoPackage.getReputation()); // Reputation
writeD(charInfoPackage.getPkKills());
writeD(charInfoPackage.getPvPKills());
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00);
writeD(0x00); // 603
writeD(0x00); // 603
for (int slot : Inventory.PAPERDOLL_ORDER)
writeD(charInfoPackage.getPaperdollItemId(slot));
writeD(charInfoPackage.getPaperdollItemSkinByItemId(Inventory.PAPERDOLL_RHAND));
writeD(charInfoPackage.getPaperdollItemSkinByItemId(Inventory.PAPERDOLL_LHAND));
writeD(charInfoPackage.getPaperdollItemSkinByItemId(Inventory.PAPERDOLL_GLOVES));
writeD(charInfoPackage.getPaperdollItemSkinByItemId(Inventory.PAPERDOLL_CHEST));
writeD(charInfoPackage.getPaperdollItemSkinByItemId(Inventory.PAPERDOLL_LEGS));
writeD(charInfoPackage.getPaperdollItemSkinByItemId(Inventory.PAPERDOLL_FEET));
writeD(charInfoPackage.getPaperdollItemSkinByItemId(Inventory.PAPERDOLL_RHAND));
writeD(charInfoPackage.getPaperdollItemSkinByItemId(Inventory.PAPERDOLL_HAIR));
writeD(charInfoPackage.getPaperdollItemSkinByItemId(Inventory.PAPERDOLL_HAIR2));
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeH(0);
writeD(charInfoPackage.getHairStyle());
writeD(charInfoPackage.getHairColor());
writeD(charInfoPackage.getFace());
[/SRC]
Добавлено через 16 минут
Поделиться ли кто абнормалами Ertheia?
Сообщений: 441
Тем: 15
Зарегистрирован: Oct 2012
Репутация:
3,319
Люди! Сделайте, пожалуйста, стринг дамп этой дллки, это Engine.dll, последний протокол руофа времен эпизода. Просто у меня ноут с 8-й виндой и ольгой сам не могу сделать. Буду очень благодарен.
Библиотека без темиды.
http://rghost.ru/58238608
|