Bugfix in deserialization
This commit is contained in:
@@ -397,34 +397,45 @@ public class Item extends AbstractWorldObject {
|
|||||||
if (includeSlot)
|
if (includeSlot)
|
||||||
reader.getInt();
|
reader.getInt();
|
||||||
reader.getInt();
|
reader.getInt();
|
||||||
|
int templateID = reader.getInt(); //itemBase
|
||||||
int objectType = reader.getInt(); //object type;
|
int objectType = reader.getInt(); //object type;
|
||||||
int UUID = reader.getInt();
|
int UUID = reader.getInt();
|
||||||
for (int i = 0; i < 14; i++) {
|
|
||||||
|
for (int i = 0; i < 14; i++)
|
||||||
reader.getInt(); // Pads and statics
|
reader.getInt(); // Pads and statics
|
||||||
}
|
|
||||||
int unknown = reader.getInt();
|
int unknown = reader.getInt();
|
||||||
|
|
||||||
byte readString = reader.get();
|
byte readString = reader.get();
|
||||||
|
|
||||||
if (readString == 1)
|
if (readString == 1)
|
||||||
reader.getString();
|
reader.getString();
|
||||||
|
|
||||||
byte readDurability = reader.get();
|
byte readDurability = reader.get();
|
||||||
|
|
||||||
if (readDurability == 1) {
|
if (readDurability == 1) {
|
||||||
reader.getInt();
|
reader.getInt();
|
||||||
reader.getInt();
|
reader.getInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
byte readEnchants = reader.get();
|
byte readEnchants = reader.get();
|
||||||
|
|
||||||
if (readEnchants == 1) {
|
if (readEnchants == 1) {
|
||||||
reader.getInt();
|
reader.getInt();
|
||||||
reader.getInt();
|
reader.getInt();
|
||||||
reader.getInt();
|
reader.getInt();
|
||||||
reader.getInt();
|
reader.getInt();
|
||||||
|
|
||||||
int enchantSize = reader.getInt();
|
int enchantSize = reader.getInt();
|
||||||
|
|
||||||
for (int i = 0; i < enchantSize; i++) {
|
for (int i = 0; i < enchantSize; i++) {
|
||||||
reader.getInt(); //effect token
|
reader.getInt(); //effect token
|
||||||
reader.getInt(); //trains
|
reader.getInt(); //trains
|
||||||
|
|
||||||
int type = reader.getInt();
|
int type = reader.getInt();
|
||||||
|
|
||||||
reader.get();
|
reader.get();
|
||||||
|
|
||||||
if (type == 1)
|
if (type == 1)
|
||||||
reader.getLong(); //item comp
|
reader.getLong(); //item comp
|
||||||
else
|
else
|
||||||
@@ -432,13 +443,14 @@ public class Item extends AbstractWorldObject {
|
|||||||
reader.getString(); //name
|
reader.getString(); //name
|
||||||
reader.getFloat(); //duration
|
reader.getFloat(); //duration
|
||||||
}
|
}
|
||||||
for (int i = 0; i < 5; i++) {
|
|
||||||
|
for (int i = 0; i < 5; i++)
|
||||||
reader.getInt();
|
reader.getInt();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
reader.get();
|
reader.get();
|
||||||
byte isContract = reader.get();
|
byte isContract = reader.get();
|
||||||
|
|
||||||
if (isContract == 1) {
|
if (isContract == 1) {
|
||||||
reader.getInt();
|
reader.getInt();
|
||||||
reader.getInt();
|
reader.getInt();
|
||||||
@@ -448,8 +460,10 @@ public class Item extends AbstractWorldObject {
|
|||||||
|
|
||||||
if (UUID == 0 || objectType == 0)
|
if (UUID == 0 || objectType == 0)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
if (objectType == GameObjectType.MobLoot.ordinal())
|
if (objectType == GameObjectType.MobLoot.ordinal())
|
||||||
return MobLoot.getFromCache(UUID);
|
return MobLoot.getFromCache(UUID);
|
||||||
|
|
||||||
return Item.getFromCache(UUID);
|
return Item.getFromCache(UUID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user