|
Shifting the value makes no difference if you don't actually use the value for anything lol. If you're not using, you could simplify this shit simply by getting rid of the second loop and changing the short into an int in the first.
In addition to this, divine is actually used in-game. It's one of the items that moderators can transform themselves into; this may add more of a reason behind why the shield was found in the cache in the first place.
The PvP armour isn't in the current cache yet FYI, here's a list of the current item ids(based on cache released on 30th august: https://gist.github.com/f2bf85f68b63...eadbcb0399a297
Spooky Are you sure that 820KB seq.dat file is correct? The 173 client build seems to load around 985KB of .seq information (8186 animations).The .dat files themselves seem fine though at the moment.
https://www.dropbox.com/s/l0wc1106slxv963/seq.dat?dl=1
Last edited by Jason; 09-12-2018 at 08:04 PM.
OSRS read values which are practically the same as 317, aside from from bitshifting. I'd share but it's not mine to share. However, you can checkout this OSRS snippet of code that mine replicates;
I've indicated the types of information being read.Code:void y(gg var1, int var2) { int var3; int var4; if (var2 == 1) { var3 = var1.f(1876346029); // un short this.l = new int[var3]; for(var4 = 0; var4 < var3; ++var4) { this.l[var4] = var1.f(1876346029); // un short } this.i = new int[var3]; for(var4 = 0; var4 < var3; ++var4) { this.i[var4] = var1.f(1876346029); // un short } for(var4 = 0; var4 < var3; ++var4) { this.i[var4] += var1.f(1876346029) << 16; // un short } } else if (2 == var2) { this.o = var1.f(1876346029) * 262123655; // un short } else if (var2 == 3) { var3 = var1.y(309561664); // un byte this.s = new int[1 + var3]; for(var4 = 0; var4 < var3; ++var4) { this.s[var4] = var1.y(-709968764); // un byte } this.s[var3] = 9999999; } else if (4 == var2) { this.k = true; } else if (5 == var2) { this.v = var1.y(-1313363544) * 1503246477; // un byte } else if (var2 == 6) { this.p = var1.f(1876346029) * -226204147; // short } else if (var2 == 7) { this.n = var1.f(1876346029) * 184707387; // short } else if (var2 == 8) { this.t = var1.y(-2085834204) * 855417221; // un byte } else if (var2 == 9) { this.r = var1.y(160475940) * -1217731645; // un byte } else if (var2 == 10) { this.x = var1.y(-1036172195) * -588824783; // un byte } else if (var2 == 11) { this.b = var1.y(205207427) * 346255421; // un byte } else if (var2 == 12) { var3 = var1.y(-253120332); // un byte this.h = new int[var3]; for(var4 = 0; var4 < var3; ++var4) { this.h[var4] = var1.f(1876346029); // short } for(var4 = 0; var4 < var3; ++var4) { this.h[var4] += var1.f(1876346029) << 16; // short } } else if (var2 == 13) { var3 = var1.y(-1380369513); // byte this.d = new int[var3]; for(var4 = 0; var4 < var3; ++var4) { this.d[var4] = var1.ay(835238020); // 24 bits (tri byte) } } }
Mine posted in OP match, but still gives issues reading the file?
Code:private void decode(Buffer buffer) { while(true) { final int opcode = buffer.readUByte(); if (opcode == 0) { break; } else if (opcode == 1) { frameCount = buffer.readUShort(); primaryFrames = new int[frameCount]; secondaryFrames = new int[frameCount]; durations = new int[frameCount]; for (int i = 0; i < frameCount; i++) { durations[i] = buffer.readUShort(); } for (int i = 0; i < frameCount; i++) { primaryFrames[i] = buffer.readUShort(); secondaryFrames[i] = -1; } for (int i = 0; i < frameCount; i++) { primaryFrames[i] += buffer.readUShort() << 16; } } else if (opcode == 2) { loopOffset = buffer.readUShort(); } else if (opcode == 3) { int len = buffer.readUByte(); interleaveOrder = new int[len + 1]; for (int i = 0; i < len; i++) { interleaveOrder[i] = buffer.readUByte(); } interleaveOrder[len] = 9999999; } else if (opcode == 4) { stretches = true; } else if (opcode == 5) { forcedPriority = buffer.readUByte(); } else if (opcode == 6) { playerOffhand = buffer.readUShort(); } else if (opcode == 7) { playerMainhand = buffer.readUShort(); } else if (opcode == 8) { maxLoops = buffer.readUByte(); } else if (opcode == 9) { animatingPrecedence = buffer.readUByte(); } else if (opcode == 10) { walkingPrecedence = buffer.readUByte(); } else if (opcode == 11) { replayMode = buffer.readUByte(); } else if (opcode == 12) { int len = buffer.readUByte(); for (int i = 0; i < len; i++) { buffer.readUShort(); } for (int i = 0; i < len; i++) { buffer.readUShort(); } } else if (opcode == 13) { int len = buffer.readUByte(); for (int i = 0; i < len; i++) { buffer.read24Int(); } } } if (frameCount == 0) { frameCount = 1; primaryFrames = new int[1]; primaryFrames[0] = -1; secondaryFrames = new int[1]; secondaryFrames[0] = -1; durations = new int[1]; durations[0] = -1; } if (animatingPrecedence == -1) { animatingPrecedence = (interleaveOrder == null) ? 0 : 2; } if (walkingPrecedence == -1) { walkingPrecedence = (interleaveOrder == null) ? 0 : 2; } }
Try this; https://www.dropbox.com/s/l0wc1106slxv963/seq.dat?dl=1
edit; You need all 2221/2220 animation files as well for it to work properly. The ones provided by Spooky aren't all of them.
Do you have them, if so mind sharing i had a hunch the once provided where not all.
Edit: also i tried ur seq file didn't work, mind looking over my readvalues are they correct or not if so mind pointing me where to look:
Should match 100% created two local variables. for 12 and 13.Code:private void decode(Buffer buffer) { while(true) { final int opcode = buffer.readUByte(); if (opcode == 1) { frameCount = buffer.readUShort(); duration = new int[frameCount]; for (int i = 0; i < frameCount; i++) { duration[i] = buffer.readUShort(); } primaryFrames = new int[frameCount]; for (int i = 0; i < frameCount; i++) { primaryFrames[i] = buffer.readUShort(); } for (int i = 0; i < frameCount; i++) { primaryFrames[i] += buffer.readUShort() << 16; } } else if (opcode == 2) { padding = buffer.readUShort(); } else if (opcode == 3) { int len = buffer.readUByte(); interleaveOrder = new int[len + 1]; for (int i = 0; i < len; i++) { interleaveOrder[i] = buffer.readUByte(); } interleaveOrder[len] = 9999999; } else if (opcode == 4) { allowsRotation = true; } else if (opcode == 5) { forcedPriority = buffer.readUByte(); } else if (opcode == 6) { rightHandEquip = buffer.readUShort(); } else if (opcode == 7) { leftHandEquip = buffer.readUShort(); } else if (opcode == 8) { resetCycle = buffer.readUByte(); } else if (opcode == 9) { runFlag = buffer.readUByte(); } else if (opcode == 10) { walkFlag = buffer.readUByte(); } else if (opcode == 11) { type = buffer.readUByte(); } else if (opcode == 12) { int len = buffer.readUByte(); opcode12 = new int[len]; for (int i = 0; i < len; i++) { opcode12[i] = buffer.readUShort(); } for (int i = 0; i < len; i++) { opcode12[i] = buffer.readUShort() << 16; } } else if (opcode == 13) { int len = buffer.readUByte(); opcode13 = new int[len]; for (int i = 0; i < len; i++) { opcode13[i] = buffer.triByte(); } } } } private int opcode12[], opcode13[];
KK readvalues are solved, now i only need the animation files and graphics.
Last edited by _Patrick_; 09-12-2018 at 08:41 PM.
« Previous Thread | Next Thread » |
Thread Information |
Users Browsing this ThreadThere are currently 1 users browsing this thread. (0 members and 1 guests) |