Recently packed 187 data and updated my readvalues from runelite...
My current problem is that animations will not play i know there somethink be messed up but i'm kinda lost trying to figure out but without any luck any help will means alot for me!!
Code:
Settings loaded: 18
Sprites Loaded: 663
Map Amount: 1761
Loaded: 34841 objects
Underlay Floors Loaded: 150
Overlay Floors Loaded: 174
Items Loaded: 23479
Npcs Loaded: 8336
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
npc def invalid opcode: 255
Loaded: 151 identity kits
Graphics Loaded: 1682
Successfully loaded Spotanim.dat

My read values -->
Code:
public void readValues(Buffer stream) {
int length;
int index;
while (true) {
int opcode = stream.readUByte();
if (opcode == 0) {
return;
} else if (opcode == 1) {
length = stream.readUByte();
models = new int[length];
for (index = 0; index < length; index++) {
models[index] = stream.readUShort();
}
} else if (opcode == 2)
name = stream.readString();
else if (opcode == 3)
description = stream.readBytes();
else if (opcode == 12)
aByte68 = stream.readSignedByte();
else if (opcode == 13)
standAnim = stream.readUShort();
else if (opcode == 14)
walkingAnimation = stream.readUShort();
else if (opcode == 15)
stream.readUShort();
else if (opcode == 16)
stream.readUShort();
/* else if (opcode == 17) {
walkingAnimation = stream.readUShort();
anInt58 = stream.readUShort();
anInt83 = stream.readUShort();
anInt55 = stream.readUShort();
if (anInt58 == 65535) {
anInt58 = walkingAnimation;
}
if (anInt83 == 65535) {
anInt83 = walkingAnimation;
}
if (anInt55 == 65535) {
anInt55 = walkingAnimation;
}*/
else if (opcode == 17) {
walkingAnimation = stream.readUShort();
rotate180Animation = stream.readUShort();
rotate90RightAnimation = stream.readUShort();
rotate90LeftAnimation = stream.readUShort();
} else if (opcode >= 30 && opcode < 35) {
if (actions == null)
actions = new String[5];
actions[opcode - 30] = stream.readString();
if (actions[opcode - 30].equalsIgnoreCase("hidden"))
{
actions[opcode - 30] = null;
}
} else if (opcode == 40) {
length = stream.readUByte();
recolorToFind = new int[length];
recolorToReplace = new int[length];
for (index = 0; index < length; ++index) {
recolorToFind[index] = stream.readUShort();
recolorToReplace[index] = stream.readUShort();
}
} else if (opcode == 41)
{
length = stream.readUByte();
retextureToFind = new int[length];
retextureToReplace = new int[length];
for (index = 0; index < length; ++index)
{
retextureToFind[index] = stream.readUShort();
retextureToReplace[index] = stream.readUShort();
/*stream.readUShort(); // textures
stream.readUShort();*/
}
} else if (opcode == 60) {
length = stream.readUByte();
chatheadModels = new int[length];
for (index = 0; index < length; index++)
{
chatheadModels[index] = stream.readUShort();
}
/*} else if (opcode == 90) {
stream.readUShort();
} else if (opcode == 91) {
stream.readUShort();
} else if (opcode == 92) {
stream.readUShort();*/
} else if (opcode == 93)
isMinimapVisible = false;
else if (opcode == 95)
combatLevel = stream.readUShort();
else if (opcode == 97)
widthScale = stream.readUShort();
else if (opcode == 98)
heightScale = stream.readUShort();
else if (opcode == 99)
hasRenderPriority = true;
else if (opcode == 100)
ambient = stream.readSignedByte();
else if (opcode == 101)
contrast = stream.readSignedByte();
else if (opcode == 102) {
headIcon = stream.readUShort();
} else if (opcode == 103) {
rotationSpeed = stream.readUShort();
} else if (opcode == 106) {
varbitId = stream.readUShort();
if (varbitId == 65535) {
varbitId = -1;
}
varpIndex = stream.readUShort();
if (varpIndex == 65535) {
varpIndex = -1;
}
length = stream.readUByte();
childrenIDs = new int[length + 2];
for (index = 0; index <= length; ++index)
{
childrenIDs[index] = stream.readUShort();
if (childrenIDs[index] == '\uffff')
{
childrenIDs[index] = -1;
}
}
childrenIDs[length + 1] = -1;
} else if (opcode == 107) { // added = false;
isInteractable = false;
} else if (opcode == 109) {
rotationFlag = false;
} else if (opcode == 111) { // new
isPet = true;
//int value = -1;
/*if (opcode == 118) {
value = stream.readUShort();
}
int len = stream.readUByte();
childrenIDs = new int[len + 2];
for (int i = 0; i <= len; i++) {
childrenIDs[i] = stream.readUShort();
if (childrenIDs[i] == 65535) {
childrenIDs[i] = -1;
}
}
childrenIDs[len + 1] = value;*/
} else if (opcode == 118) {
varbitId = stream.readUShort();
if (varbitId == 65535) //anInt57 = Varbit
{
varbitId = -1;
}
varpIndex = stream.readUShort();
if (varpIndex == 65535)
{
varpIndex = -1;
}
int var = stream.readUShort();
if (var == 0xFFFF)
{
var = -1;
}
length = stream.readUByte();
childrenIDs = new int[length + 2];
for (index = 0; index <= length; ++index)
{
childrenIDs[index] = stream.readUShort();
if (childrenIDs[index] == '\uffff')
{
childrenIDs[index] = -1;
}
}
childrenIDs[length + 1] = var;
}
else if (opcode == 249)
{
length = stream.readUByte();
params = new HashMap<>(length);
for (index = 0; index < length; index++)
{
boolean isString = stream.readUByte() == 1;
int key = stream.read24Int();
Object value;
if (isString)
{
value = stream.readString();
}
else
{
value = stream.readInt();
}
params.put(key, value);
}
} else {
System.out.println(String.format("npc def invalid opcode: %d", opcode));
}
}
}